《数值分析》学习笔记 ·002——误差知识
一、误差类型与误差来源误差类型误差来源具体解释模型误差实际问题→物理模型这个过程中,我们需要作一些假设、近似简化模型误差物理模型→一般数学模型这个过程中,我们也需要做一些假设测量误差一般数学模型→具体数学模型只有测量出一些参数、定解条件才能建立具体的数学模型,而测量时往往会产生误差截断误差具体数学模型→算法编程在构造算法时,为了便于实现,还...
·
文章目录
一、误差类型与误差来源
误差类型 | 误差来源 | 具体解释 |
---|---|---|
模型误差 | 实际问题→物理模型 | 这个过程中,我们需要作一些假设、近似简化 |
模型误差 | 物理模型→一般数学模型 | 这个过程中,我们也需要做一些假设 |
测量误差 | 一般数学模型→具体数学模型 | 只有测量出一些参数、定解条件才能建立具体的数学模型,而测量时往往会产生误差 |
截断误差 | 具体数学模型→算法编程 | 在构造算法时,为了便于实现,还会再忽略一些影响小的地方 |
舍入误差 | 算法编程→上机计算 | 计算机以二进制方式存储数值,往往存在一些精度问题,从而产生误差。 |
注:上述误差中,我们重点研究的是截断误差。
二、绝对误差与相对误差
1、绝对误差与绝对误差限
- 定义1:
设 x x x是一个准确值, x ∗ x^* x∗是它的近似值。
称 e ∗ = x ∗ − x e^*=x^*-x e∗=x∗−x为近似值 x ∗ x^* x∗的绝对误差,简称误差。
实际上准确值 x x x常常无法得到,因而无法求出绝对误差,一般只能估计出 e ∗ e^* e∗的上界,即 ∣ e ∗ ∣ = ∣ x ∗ − x ∣ ≤ ε ∗ | e^* | = |x^* - x| \leq \varepsilon^* ∣e∗∣=∣x∗−x∣≤ε∗我们称 ε ∗ \varepsilon^* ε∗为近似值 x ∗ x^* x∗的绝对误差限。有了误差限 ε ∗ \varepsilon^* ε∗,就能知道准确值 x x x的范围 x ∗ − ε ∗ ≤ x ≤ x ∗ + ε ∗ x^* - \varepsilon^* \leq x \leq x^* + \varepsilon^* x∗−ε∗≤x≤x∗+ε∗在工程上常用 x = x ∗ ± ε ∗ x = x^* \pm \varepsilon^* x=x∗±ε∗来表示这个范围。
2、相对误差与相对误差限
- 定义2:
设 x ∗ x^* x∗为准确值 x x x的一个近似值。
称 e r ∗ = e ∗ x = x ∗ − x x e_r^*= \frac {e^*} {x} = \frac {x^* - x} {x} er∗=xe∗=xx∗−x为近似值 x ∗ x^* x∗的相对误差。
实际计算中,由于准确值 x x x往往无法得到,常常将相对误差取作 e r ∗ = e ∗ x ∗ = x ∗ − x x ∗ e_r^*=\frac {e^*} {x^*} = \frac {x^* - x} {x^*} er∗=x∗e∗=x∗x∗−x
相对误差常常无法得到,只能估计它的大小范围。如果有正数 ε r ∗ \varepsilon_r^* εr∗,使得 ∣ e r ∗ ∣ = ∣ e ∗ x ∗ ∣ ≤ ε r ∗ | e_r^* |=| \frac {e^*} {x^*} | \leq \varepsilon_r^* ∣er∗∣=∣x∗e∗∣≤εr∗则称 ε r ∗ \varepsilon_r^* εr∗为近似值 x ∗ x^* x∗的相对误差限。
三、有效数字
1、有效数字
- 定义3:
设近似值 x ∗ x^* x∗的误差限是某一位的半个单位,该位到 x ∗ x^* x∗的第一位非零数字共有 n n n位,就说 x ∗ 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)}) x∗=±10m×(a1+a2×10−1+⋯+an×10−(n−1))其中 a i ( i = 1 , 2 , ⋯ , n ) a_i(i = 1, 2, \cdots, n) ai(i=1,2,⋯,n)是0到9中的一个数字, a 1 ≠ 0 a_1 \not= 0 a1=0, m m m为整数,且 ∣ x − x ∗ ∣ ≤ 1 2 × 1 0 m − n + 1 | x - x^* | \leq \frac {1} {2} \times 10^{m - n + 1} ∣x−x∗∣≤21×10m−n+1
举个例子吧,比如 x = π = 3.14159265 ⋯ × 1 0 0 x = \pi = 3.14159265\cdots \times 10^0 x=π=3.14159265⋯×100,这里 m = 0 m = 0 m=0,
近似值 x ∗ x^* x∗ | (绝对)误差限 ε ∗ \varepsilon^* ε∗ | 有效数字 |
---|---|---|
3 3 3 | | e ∗ e^* e∗| = = = | x ∗ − x 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} ≤0.14≤0.5=21×100=21×100−1+1 | 1 1 1位有效数字 |
3.1 3.1 3.1 | | e ∗ e^* e∗| = = = | x ∗ − x 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} ≤0.05≤0.05=21×10−1=21×100−2+1 | 2 2 2位有效数字 |
3.14 3.14 3.14 | | e ∗ e^* e∗| = = = | x ∗ − x 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} ≤0.0016≤0.005=21×10−2=21×100−3+1 | 3 3 3位有效数字 |
3.142 3.142 3.142 | | e ∗ e^* e∗| = = = | x ∗ − x 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} ≤0.0005≤0.0005=21×10−3=21×100−4+1 | 4 4 4位有效数字 |
3.1416 3.1416 3.1416 | | e ∗ e^* e∗| = = = | x ∗ − x 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} ≤0.000008≤0.00005=21×10−4=21×100−5+1 | 5 5 5位有效数字 |
\ | \ | \ |
3.2 3.2 3.2 | | e ∗ e^* e∗| = = = | x ∗ − x 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} ≤0.06≤0.5=21×100=21×100−1+1 | 1 1 1位有效数字 |
3.15 3.15 3.15 | | e ∗ e^* e∗| = = = | x ∗ − x 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} ≤0.009≤0.05=21×10−1=21×100−2+1 | 2 2 2位有效数字 |
3.141 3.141 3.141 | | e ∗ e^* e∗| = = = | x ∗ − x 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} ≤0.0006≤0.005=21×10−2=21×100−3+1 | 3 3 3位有效数字 |
3.1415 3.1415 3.1415 | | e ∗ e^* e∗| = = = | x ∗ − x 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} ≤0.0001≤0.0005=21×10−3=21×100−4+1 | 4 4 4位有效数字 |
再举个例子吧,比如 x = 0.019283746 = 1.9283746 × 1 0 − 2 x = 0.019283746 = 1.9283746 \times 10^{-2} x=0.019283746=1.9283746×10−2,这里 m = − 2 m = -2 m=−2,
近似值 x ∗ x^* x∗ | (绝对)误差限 ε ∗ \varepsilon^* ε∗ | 有效数字 |
---|---|---|
0.02 0.02 0.02 | | e ∗ e^* e∗| = = = | x ∗ − x 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} =0.000716254≤0.005=21×10−2=21×10−2−1+1 | 1 1 1位有效数字 |
0.019 0.019 0.019 | | e ∗ e^* e∗| = = = | x ∗ − x 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} =0.000283746≤0.0005=21×10−3=21×10−2−2+1 | 2 2 2位有效数字 |
0.0193 0.0193 0.0193 | | e ∗ e^* e∗| = = = | x ∗ − x 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} =0.000016254≤0.00005=21×10−4=21×10−2−3+1 | 3 3 3位有效数字 |
0.01928 0.01928 0.01928 | | e ∗ e^* e∗| = = = | x ∗ − x 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} =0.000003746≤0.000005=21×10−5=21×10−2−4+1 | 4 4 4位有效数字 |
0.019284 0.019284 0.019284 | | e ∗ e^* e∗| = = = | x ∗ − x 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} =0.000000254≤0.0000005=21×10−6=21×10−2−5+1 | 5 5 5位有效数字 |
\ | \ | \ |
0.020 0.020 0.020 | | e ∗ e^* e∗| = = = | x ∗ − x 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} =0.000716254≤0.005=21×10−2=21×10−2−1+1 | 1 1 1位有效数字 |
0.0192 0.0192 0.0192 | | e ∗ e^* e∗| = = = | x ∗ − x 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} =0.000083746≤0.0005=21×10−3=21×10−2−2+1 | 2 2 2位有效数字 |
0.01929 0.01929 0.01929 | | e ∗ e^* e∗| = = = | x ∗ − x 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} =0.000006254≤0.00005=21×10−4=21×10−2−3+1 | 3 3 3位有效数字 |
0.019283 0.019283 0.019283 | | e ∗ e^* e∗| = = = | x ∗ − x 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} =0.000000746≤0.000005=21×10−5=21×10−2−4+1 | 4 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} −3.1433、0.01005、6×103、2×10−3
解:
根据小结1中的结论,我们很容易根据近似值 x ∗ x^* x∗,计算出有效位数 n n n
根据定义3中的不等式,我们很容易根据近似值 x ∗ x^* x∗,计算出近似值科学计数法的幂指数 m m m
计算如下表所示:近似值 x ∗ x^* x∗的科学计数法表示 有效位数 n n n 近似值 x ∗ x^* x∗科学计数法幂指数 m m m 根据| x − x ∗ x - x^* x−x∗| ≤ 1 2 × 1 0 m − n + 1 \leq \frac {1} {2} \times 10^{m - n + 1} ≤21×10m−n+1计算(绝对)误差限 ε ∗ \varepsilon^* ε∗ − 3.1433 = − 3.1433 × 1 0 0 -3.1433 = -3.1433 \times 10^0 −3.1433=−3.1433×100 5 5 5 0 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} 21×100−5+1=21×10−4 0.01005 = 1.005 × 1 0 − 2 0.01005 = 1.005 \times 10^{-2} 0.01005=1.005×10−2 4 4 4 − 2 -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} 21×10−2−4+1=21×10−5 6 × 1 0 3 6 \times 10^3 6×103 1 1 1 3 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} 21×103−1+1=21×103 2 × 1 0 − 3 2 \times 10^{-3} 2×10−3 1 1 1 − 3 -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} 21×10−3−1+1=21×10−3
2、有效数字与相对误差限的关系
有效数字与相对误差限的关系,有下面的定理。
- 定理1:
设近似数 x ∗ 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)}) x∗=±10m×(a1+a2×10−1+⋯+al×10−(l−1)),其中 a i ( i = 1 , 2 , ⋯ , n ) a_i(i = 1, 2, \cdots, n) ai(i=1,2,⋯,n)是0到9中的一个数字, a 1 ≠ 0 a_1 \not= 0 a1=0, m m m为整数,- 若 x ∗ x^* x∗具有 n n n位有效数字,则其相对误差限 ε r ∗ ≤ 1 2 a 1 × 1 0 − ( n − 1 ) \varepsilon_r^* \leq \frac {1} {2a_1} \times 10^{-(n-1)} εr∗≤2a11×10−(n−1)
- 反之,若 x ∗ x^* x∗的相对误差限 ε r ∗ \varepsilon_r^* εr∗满足 ε r ∗ ≤ 1 2 ( a 1 + 1 ) × 1 0 − ( n − 1 ) \varepsilon_r^* \leq \frac {1} {2(a_1 + 1)} \times 10^{-(n-1)} εr∗≤2(a1+1)1×10−(n−1)则 x ∗ x^* x∗至少具有 n n n位有效数字。
定理1实际上说明了:有效位数越多,相对误差限越少。
四、数值计算中的误差估计
1、两个近似值运算的误差限
- 结论1
设两个近似值 x 1 ∗ x_1^* x1∗与 x 2 ∗ x_2^* x2∗的误差限分别为 ε ( x 1 ∗ ) \varepsilon(x_1^*) ε(x1∗)、 ε ( x 2 ∗ ) \varepsilon(x_2^*) ε(x2∗),则将它们加、减、乘、除运算所得到的误差限分别满足以下不等式:- ε ( x 1 ∗ ± x 2 ∗ ) ≤ ε ( x 1 ∗ ) + ε ( x 2 ∗ ) \varepsilon(x_1^* \pm x_2^*) \leq \varepsilon(x_1^*) + \varepsilon(x_2^*) ε(x1∗±x2∗)≤ε(x1∗)+ε(x2∗)
- ε ( 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^*) ε(x1∗x2∗)≤∣x1∗∣ε(x2∗)+∣x2∗∣ε(x1∗)
- ε ( 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} ε(x2∗x1∗)≤∣x2∗∣2ε(x1∗x2∗)≤∣x1∗∣ε(x2∗)+∣x2∗∣ε(x1∗), x 2 ∗ ≠ 0 x_2^* \not= 0 x2∗=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∗)∣≤∣f′(x∗)∣ε(x∗)+2∣f′′(ξ)∣ε2(x∗)忽略高阶项,可得计算函数的误差限 ε ( f ( x ∗ ) ) ≈ ∣ f ′ ( x ∗ ) ∣ ε ( x ∗ ) \varepsilon \left( f \left( x^* \right) \right) \approx |f'(x^*)| \varepsilon(x^*) ε(f(x∗))≈∣f′(x∗)∣ε(x∗)
3、近似值带入多元函数产生的误差
- 结论3
设 A = f ( x 1 , x 2 , ⋯ , x n ) A = f(x_1, x_2, \cdots, x_n) A=f(x1,x2,⋯,xn), A ∗ = f ( x 1 ∗ , x 2 ∗ , ⋯ , x n ∗ ) A^* = f(x_1^*, x_2^*, \cdots, x_n^*) A∗=f(x1∗,x2∗,⋯,xn∗)
根据泰勒公式,可知, A ∗ 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|} εr∗=εr(A∗)=∣A∗∣ε(A∗)≈k=1∑n∣∣∣∣(∂xk∂f)∗∣∣∣∣⋅∣A∗∣ε(xk∗)
更多推荐
所有评论(0)