01 计算方法引论 | 数值分析

1. 误差

1. 误差的分类

  1. 模型误差
  2. 观测误差
  3. 截断误差(方法误差)
  4. 舍入误差

2. 误差的度量

  1. 绝对误差\(e^*\)

    1. \(e^* = x^* - x\),其中\(x^*\)为近似值,\(x\)为准确值
    2. \(e^*\le\varepsilon^*\)\(\varepsilon^*\)误差限
    3. 绝对误差 有量纲,可以有正负
  2. 相对误差\(e_r^*\)

    1. \(e_r^* = \frac{e^*}{x^*}\)
    2. 相对误差 无量纲,可正负
  3. 相对误差限\(\varepsilon_r^* = \frac{\varepsilon^*}{|x^*|}\)

  4. 有效数字:假定准确值\(𝑥\)与近似值\(𝑥^*\)写成小数形式, 近似值\(x^*\)的误差限是某一位的半个单位, 该位到\(x^*\)的第一位 非零 字共有\(𝑛\)位, 就说\(x^*\)\(n\)位有效数字image

    1. 绝对误差不超过末位有效数字的半个单位
    2. 当近似数\(x^*\)表示为\(x^* = \pm 10^m\times(a_1+a_2\times 10^{-1}+\cdots+a_L\times 10^{-(L-1)})\)具有\(n\)位有效数字\((L\ge n)\),则\(|x^* - x|\le\frac{1}{2}\times 10^{m - n + 1}\)
  5. 有效数与相对误差限之间关系:设近似数\(x^*\)表示为\(x^* = \pm 10^m\times(a_1+a_2\times 10^{-1}+\cdots+a_L\times 10^{-(L-1)})\),其中\(a_i(i = 1, 2, \cdots, L)\)\(0\)\(9\)的一个数字。\(a_1\ne 0,m\)位整数

    1. 如果\(x^*\)具有\(n\)位有效数字,那么其相对误差限为\(\varepsilon_r^*\le \frac{1}{2a_1}\times 10^{-(n-1)}\)
    2. 反之,若\(x^*\)相对误差限\(\varepsilon_r^*\le \frac{1}{2a_1 + 1}\times 10^{-(n-1)}\),则\(x^*\)至少有\(n\)位有效数字

3. 误差的传播

  1. 四则运算:给定两近似数\(x_1^*,x_2^*\),及其误差限\(\varepsilon(x_1^*), \varepsilon(x_2^*)\),那么
    1. 加法:\(\varepsilon(x_1^* + x_2^*)\le\varepsilon(x_1^*) + \varepsilon(x_2^*)\)
    2. 减法:\(\varepsilon(x_1^* - x_2^*)\le\varepsilon(x_1^*) + \varepsilon(x_2^*)\)
    3. 乘法:\(\varepsilon(x_1^*x_2^*)\approx|x_1^*|\varepsilon(x_2^*) + |x_2^*|\varepsilon(x_1^*)\)
    4. 除法:\(\varepsilon(\frac{x_1^*}{x_2^*})\approx\frac{|x_1^*|\varepsilon(x_2^*) + |x_2^*|\varepsilon(x_1^*)}{|x_2^*|^2}\)
  2. 函数误差
    1. 单变量:当\(f^{\prime\prime}(x^*)\)\(f^{\prime}(x^*)\)比值不大的时候,\(\varepsilon(f(x^*))\approx|f^{\prime}(x^*)|\varepsilon(x^*)\)
    2. 多变量:当\(f(x_1, x_2, \dots, x_n)\)是多元函数,\(x_1, \dots, x_n\)的近似值为\(x_1^*, \dots, x_n^*\),则误差限\(\varepsilon(f(x_1^*, \dots, x_n^*))\approx\sum_{k=1}^n|(\frac{\partial f}{\partial x_k})^*|\varepsilon(x_k^*)\)

2. 算法

1. 数值稳定性

  1. 数值稳定性:一个算法如果输入数据有误差,而在计算过程中舍入误差不增长,则称此算法时数值稳定的;否则称此算法为不稳定的
  2. 条件数:相对误差比值\(|\frac{f(x) - f(x^*)}{f(x)}|/|\frac{\Delta x}{x}|\approx|\frac{xf^{\prime}(x)}{f(x)}| = C_p\),其中\(C_p\)为计算函数值问题的 条件数
  3. 病态问题:如果条件数很大,即便变量(输入)相对误差不太大,但也会引起函数值(输出)相对误差很大,出现这种情况的问题就是 病态问题

2. 算法设计注意要点

  1. 避免除数绝对值远远小于被除数绝对值的除法
  2. 避免两个相近的数相减
  3. 防止“大数”吃掉“小数”
  4. 简化计算步骤、减少运算次数(秦九韶算法
posted @ 2023-03-13 20:10  RadiumStar  阅读(107)  评论(0编辑  收藏  举报