《数值分析》学习笔记 ·002——误差知识

一、误差类型与误差来源

误差类型 误差来源 具体解释
模型误差 实际问题→物理模型 这个过程中,我们需要作一些假设、近似简化
模型误差 物理模型→一般数学模型 这个过程中,我们也需要做一些假设
测量误差 一般数学模型→具体数学模型 只有测量出一些参数、定解条件才能建立具体的数学模型,而测量时往往会产生误差
截断误差 具体数学模型→算法编程 在构造算法时,为了便于实现,还会再忽略一些影响小的地方
舍入误差 算法编程→上机计算 计算机以二进制方式存储数值,往往存在一些精度问题,从而产生误差。

注:上述误差中,我们重点研究的是截断误差。

二、绝对误差与相对误差

1、绝对误差与绝对误差限

  • 定义1:
    x x 是一个准确值, x x^* 是它的近似值。
    e = x x e^*=x^*-x 为近似值 x x^* 绝对误差,简称误差

    实际上准确值 x x 常常无法得到,因而无法求出绝对误差,一般只能估计出 e e^* 的上界,即 e = x x ε | e^* | = |x^* - x| \leq \varepsilon^* 我们称 ε \varepsilon^* 为近似值 x x^* 绝对误差限。有了误差限 ε \varepsilon^* ,就能知道准确值 x x 的范围 x ε x x + ε x^* - \varepsilon^* \leq x \leq x^* + \varepsilon^* 在工程上常用 x = x ± ε x = x^* \pm \varepsilon^* 来表示这个范围。

2、相对误差与相对误差限

  • 定义2:
    x x^* 为准确值 x x 的一个近似值。
    e r = e x = x x x e_r^*= \frac {e^*} {x} = \frac {x^* - x} {x} 为近似值 x x^* 相对误差

    实际计算中,由于准确值 x x 往往无法得到,常常将相对误差取作 e r = e x = x x x e_r^*=\frac {e^*} {x^*} = \frac {x^* - x} {x^*}
    相对误差常常无法得到,只能估计它的大小范围。如果有正数 ε r \varepsilon_r^* ,使得 e r = e x ε r | e_r^* |=| \frac {e^*} {x^*} | \leq \varepsilon_r^* 则称 ε r \varepsilon_r^* 为近似值 x x^* 相对误差限

三、有效数字

1、有效数字

  • 定义3:
    设近似值 x x^* 的误差限是某一位的半个单位,该位到 x x^* 的第一位非零数字共有 n n 位,就说 x x^* 有n位有效数字。可表示为 x = ± 1 0 m × ( a 1 + a 2 × 1 0 1 + + a n × 1 0 ( n 1 ) ) x^* = \pm 10^m \times (a_1 + a_2 \times 10^{-1} + \cdots + a_n \times 10^{-(n-1)}) 其中 a i ( i = 1 , 2 , , n ) a_i(i = 1, 2, \cdots, n) 是0到9中的一个数字, a 1 0 a_1 \not= 0 m m 为整数,且 x x 1 2 × 1 0 m n + 1 | x - x^* | \leq \frac {1} {2} \times 10^{m - n + 1}

举个例子吧,比如 x = π = 3.14159265 × 1 0 0 x = \pi = 3.14159265\cdots \times 10^0 ,这里 m = 0 m = 0

近似值 x x^* (绝对)误差限 ε \varepsilon^* 有效数字
3 3 | e e^* | = = | x x x^*-x | 0.14 0.5 = 1 2 × 1 0 0 = 1 2 × 1 0 0 1 + 1 \leq 0.14 \leq 0.5 = \frac {1} {2} \times 10^{0} = \frac{1} {2} \times 10^{0 - 1 + 1} 1 1 位有效数字
3.1 3.1 | e e^* | = = | x x x^*-x | 0.05 0.05 = 1 2 × 1 0 1 = 1 2 × 1 0 0 2 + 1 \leq 0.05 \leq 0.05 = \frac {1} {2} \times 10^{-1} = \frac{1} {2} \times 10^{0 - 2 + 1} 2 2 位有效数字
3.14 3.14 | e e^* | = = | x x x^*-x | 0.0016 0.005 = 1 2 × 1 0 2 = 1 2 × 1 0 0 3 + 1 \leq 0.0016 \leq 0.005 = \frac {1} {2} \times 10^{-2} = \frac{1} {2} \times 10^{0 - 3 + 1} 3 3 位有效数字
3.142 3.142 | e e^* | = = | x x x^*-x | 0.0005 0.0005 = 1 2 × 1 0 3 = 1 2 × 1 0 0 4 + 1 \leq 0.0005 \leq 0.0005 = \frac {1} {2} \times 10^{-3} = \frac{1} {2} \times 10^{0 - 4 + 1} 4 4 位有效数字
3.1416 3.1416 | e e^* | = = | x x x^*-x | 0.000008 0.00005 = 1 2 × 1 0 4 = 1 2 × 1 0 0 5 + 1 \leq 0.000008 \leq 0.00005 = \frac {1} {2} \times 10^{-4} = \frac{1} {2} \times 10^{0 - 5 + 1} 5 5 位有效数字
\ \ \
3.2 3.2 | e e^* | = = | x x x^*-x | 0.06 0.5 = 1 2 × 1 0 0 = 1 2 × 1 0 0 1 + 1 \leq 0.06 \leq 0.5 = \frac {1} {2} \times 10^{0} = \frac{1} {2} \times 10^{0 - 1 + 1} 1 1 位有效数字
3.15 3.15 | e e^* | = = | x x x^*-x | 0.009 0.05 = 1 2 × 1 0 1 = 1 2 × 1 0 0 2 + 1 \leq 0.009 \leq 0.05 = \frac {1} {2} \times 10^{-1} = \frac{1} {2} \times 10^{0 - 2 + 1} 2 2 位有效数字
3.141 3.141 | e e^* | = = | x x x^*-x | 0.0006 0.005 = 1 2 × 1 0 2 = 1 2 × 1 0 0 3 + 1 \leq 0.0006 \leq 0.005 = \frac {1} {2} \times 10^{-2} = \frac{1} {2} \times 10^{0 - 3 + 1} 3 3 位有效数字
3.1415 3.1415 | e e^* | = = | x x x^*-x | 0.0001 0.0005 = 1 2 × 1 0 3 = 1 2 × 1 0 0 4 + 1 \leq 0.0001 \leq 0.0005 = \frac {1} {2} \times 10^{-3} = \frac{1} {2} \times 10^{0 - 4 + 1} 4 4 位有效数字

再举个例子吧,比如 x = 0.019283746 = 1.9283746 × 1 0 2 x = 0.019283746 = 1.9283746 \times 10^{-2} ,这里 m = 2 m = -2

近似值 x x^* (绝对)误差限 ε \varepsilon^* 有效数字
0.02 0.02 | e e^* | = = | x x x^*-x | = 0.000716254 0.005 = 1 2 × 1 0 2 = 1 2 × 1 0 2 1 + 1 = 0.000716254 \leq 0.005 = \frac {1} {2} \times 10^{-2} = \frac{1} {2} \times 10^{-2 - 1 + 1} 1 1 位有效数字
0.019 0.019 | e e^* | = = | x x x^*-x | = 0.000283746 0.0005 = 1 2 × 1 0 3 = 1 2 × 1 0 2 2 + 1 = 0.000283746 \leq 0.0005 = \frac {1} {2} \times 10^{-3} = \frac{1} {2} \times 10^{-2 - 2 + 1} 2 2 位有效数字
0.0193 0.0193 | e e^* | = = | x x x^*-x | = 0.000016254 0.00005 = 1 2 × 1 0 4 = 1 2 × 1 0 2 3 + 1 = 0.000016254 \leq 0.00005 = \frac {1} {2} \times 10^{-4} = \frac{1} {2} \times 10^{-2 - 3 + 1} 3 3 位有效数字
0.01928 0.01928 | e e^* | = = | x x x^*-x | = 0.000003746 0.000005 = 1 2 × 1 0 5 = 1 2 × 1 0 2 4 + 1 = 0.000003746 \leq 0.000005 = \frac {1} {2} \times 10^{-5} = \frac{1} {2} \times 10^{-2 - 4 + 1} 4 4 位有效数字
0.019284 0.019284 | e e^* | = = | x x x^*-x | = 0.000000254 0.0000005 = 1 2 × 1 0 6 = 1 2 × 1 0 2 5 + 1 = 0.000000254 \leq 0.0000005 = \frac {1} {2} \times 10^{-6} = \frac{1} {2} \times 10^{-2 - 5 + 1} 5 5 位有效数字
\ \ \
0.020 0.020 | e e^* | = = | x x x^*-x | = 0.000716254 0.005 = 1 2 × 1 0 2 = 1 2 × 1 0 2 1 + 1 = 0.000716254 \leq 0.005 = \frac {1} {2} \times 10^{-2} = \frac{1} {2} \times 10^{-2 - 1 + 1} 1 1 位有效数字
0.0192 0.0192 | e e^* | = = | x x x^*-x | = 0.000083746 0.0005 = 1 2 × 1 0 3 = 1 2 × 1 0 2 2 + 1 = 0.000083746 \leq 0.0005 = \frac {1} {2} \times 10^{-3} = \frac{1} {2} \times 10^{-2 - 2 + 1} 2 2 位有效数字
0.01929 0.01929 | e e^* | = = | x x x^*-x | = 0.000006254 0.00005 = 1 2 × 1 0 4 = 1 2 × 1 0 2 3 + 1 = 0.000006254 \leq 0.00005 = \frac {1} {2} \times 10^{-4} = \frac{1} {2} \times 10^{-2 - 3 + 1} 3 3 位有效数字
0.019283 0.019283 | e e^* | = = | x x x^*-x | = 0.000000746 0.000005 = 1 2 × 1 0 5 = 1 2 × 1 0 2 4 + 1 = 0.000000746 \leq 0.000005 = \frac {1} {2} \times 10^{-5} = \frac{1} {2} \times 10^{-2 - 4 + 1} 4 4 位有效数字

观察上面两个例子,我们很容易得出以下结论:

  • 小结1:
    如果近似数是由“四舍五入”得到的,显然绝对误差限 ε \varepsilon^* 会是最后单位的半个单位,因此最后一位是有效数位,因此从最后一位一直到其最左边第一个(“最左边第一个”需要从左往右数)非零数字之间的一切数字都是有效数字。

下面来看一道例题。

  • 例题1:
    下面各数是经过“四舍五入”得到的近似值,室温他们各有即为有效数字?误差限是多少? 3.1433 0.01005 6 × 1 0 3 2 × 1 0 3 -3.1433、0.01005、6 \times 10^3、2 \times 10^{-3}
    解:

    根据小结1中的结论,我们很容易根据近似值 x x^* ,计算出有效位数 n n
    根据定义3中的不等式,我们很容易根据近似值 x x^* ,计算出近似值科学计数法的幂指数 m m
    计算如下表所示:
    近似值 x x^* 的科学计数法表示 有效位数 n n 近似值 x x^* 科学计数法幂指数 m m 根据| x x x - x^* | 1 2 × 1 0 m n + 1 \leq \frac {1} {2} \times 10^{m - n + 1} 计算(绝对)误差限 ε \varepsilon^*
    3.1433 = 3.1433 × 1 0 0 -3.1433 = -3.1433 \times 10^0 5 5 0 0 1 2 × 1 0 0 5 + 1 = 1 2 × 1 0 4 \frac {1} {2} \times 10^{0-5+1} = \frac {1} {2} \times 10^{-4}
    0.01005 = 1.005 × 1 0 2 0.01005 = 1.005 \times 10^{-2} 4 4 2 -2 1 2 × 1 0 2 4 + 1 = 1 2 × 1 0 5 \frac {1} {2} \times 10^{-2-4+1} = \frac {1} {2} \times 10^{-5}
    6 × 1 0 3 6 \times 10^3 1 1 3 3 1 2 × 1 0 3 1 + 1 = 1 2 × 1 0 3 \frac {1} {2} \times 10^{3-1+1} = \frac {1} {2} \times 10^{3}
    2 × 1 0 3 2 \times 10^{-3} 1 1 3 -3 1 2 × 1 0 3 1 + 1 = 1 2 × 1 0 3 \frac {1} {2} \times 10^{-3-1+1} = \frac {1} {2} \times 10^{-3}

2、有效数字与相对误差限的关系

有效数字与相对误差限的关系,有下面的定理。

  • 定理1:
    设近似数 x x^* 表示为 x = ± 1 0 m × ( a 1 + a 2 × 1 0 1 + + a l × 1 0 ( l 1 ) ) x^* = \pm 10^m \times (a_1 + a_2 \times 10^{-1} + \cdots + a_l \times 10^{-(l-1)}) ,其中 a i ( i = 1 , 2 , , n ) a_i(i = 1, 2, \cdots, n) 是0到9中的一个数字, a 1 0 a_1 \not= 0 m m 为整数,
    • x x^* 具有 n n 位有效数字,则其相对误差限 ε r 1 2 a 1 × 1 0 ( n 1 ) \varepsilon_r^* \leq \frac {1} {2a_1} \times 10^{-(n-1)}
    • 反之,若 x x^* 的相对误差限 ε r \varepsilon_r^* 满足 ε r 1 2 ( a 1 + 1 ) × 1 0 ( n 1 ) \varepsilon_r^* \leq \frac {1} {2(a_1 + 1)} \times 10^{-(n-1)} x x^* 至少具有 n n 位有效数字。

定理1实际上说明了:有效位数越多,相对误差限越少。

四、数值计算中的误差估计

1、两个近似值运算的误差限

  • 结论1
    设两个近似值 x 1 x_1^* x 2 x_2^* 的误差限分别为 ε ( x 1 ) \varepsilon(x_1^*) ε ( x 2 ) \varepsilon(x_2^*) ,则将它们加、减、乘、除运算所得到的误差限分别满足以下不等式:
    • ε ( x 1 ± x 2 ) ε ( x 1 ) + ε ( x 2 ) \varepsilon(x_1^* \pm x_2^*) \leq \varepsilon(x_1^*) + \varepsilon(x_2^*)
    • ε ( x 1 x 2 ) x 1 ε ( x 2 ) + x 2 ε ( x 1 ) \varepsilon(x_1^* x_2^*) \leq | x_1^* | \varepsilon(x_2^*) + | x_2^* |\varepsilon(x_1^*)
    • ε ( x 1 x 2 ) ε ( x 1 x 2 ) x 1 ε ( x 2 ) + x 2 ε ( x 1 ) x 2 2 \varepsilon(\frac {x_1^*} {x_2^*}) \leq \frac {\varepsilon(x_1^* x_2^*) \leq | x_1^* | \varepsilon(x_2^*) + | x_2^* |\varepsilon(x_1^*)} {{|x_2^*|}^2} x 2 0 x_2^* \not= 0

2、近似值带入一元函数产生的误差

  • 结论2
    根据泰勒公式,可知: f ( x ) f ( x ) f ( x ) ε ( x ) + f ( ξ ) 2 ε 2 ( x ) |f(x)-f(x^*)| \leq | f'(x^*) | \varepsilon(x^*) + \frac {| f^{\prime\prime}(\xi) |} {2} \varepsilon^2(x^*) 忽略高阶项,可得计算函数的误差限 ε ( f ( x ) ) f ( x ) ε ( x ) \varepsilon \left( f \left( x^* \right) \right) \approx |f'(x^*)| \varepsilon(x^*)

3、近似值带入多元函数产生的误差

  • 结论3
    A = f ( x 1 , x 2 , , x n ) A = f(x_1, x_2, \cdots, x_n) A = f ( x 1 , x 2 , , x n ) A^* = f(x_1^*, x_2^*, \cdots, x_n^*)

    根据泰勒公式,可知, A A^* 的相对误差限为 ε r = ε r ( A ) = ε ( A ) A k = 1 n ( f x k ) ε ( x k ) A \varepsilon_r^* = \varepsilon_r(A^*) = \frac {\varepsilon(A^*)} {| A^* |} \approx \sum_{k=1}^n {\left| \left( \frac {\partial f} {\partial x_k} \right)^* \right|} \cdot \frac {\varepsilon \left( x_k^* \right)} {\left|A^* \right|}
发布了49 篇原创文章 · 获赞 9 · 访问量 3121

猜你喜欢

转载自blog.csdn.net/qq_44220418/article/details/104479928