数值计算的误差
误差的来源
- 模型误差
- 观测误差
- 截断误差
- 舍入误差
其中模型误差和观测误差是不可避免的,不属于数值分析考虑范畴
截断误差是指数学模型(数值计算方法)与精确解直接存在的误差
舍入误差是指受计算机器字长限制导致的误差,由于计算机每个单元存储位数有限,且是按二级制存储在计算机中,没有办法存储所有的数字
误差的分类
绝对误差:
e
∗
=
x
∗
−
x
e^*=x^*-x
e∗=x∗−x
其中
x
x
x 代表准确值,
x
∗
x^*
x∗表示近似值
当 e ∗ = x ∗ − x ≥ 0 e^*=x^*-x\ge0 e∗=x∗−x≥0 说明近似值大于准确指是一个强近似值
当 e ∗ = x ∗ − x ≤ 0 e^*=x^*-x\le0 e∗=x∗−x≤0 说明近似值小于准确指是一个若近似值
相对误差:
e
r
∗
=
e
∗
x
∗
e_r^*=\frac{e^*}{x^*}
er∗=x∗e∗
相对误差更能表示一种误差成都
有效数字
若近似值与绝对值之间的误差,是某一个单位的 1 2 \frac{1}{2} 21,从第一个非0数字开始到这个位数共有n个位,那么就说近似值具有n位有效数字
计算公式:
x ∗ − x < 1 2 ∗ 1 0 m − n x^*-x<\frac{1}{2}*10^{m-n} x∗−x<21∗10m−n
其中 x , x ∗ x,x^* x,x∗是用科学计数表示的,m为10的次方,n表示有效位数的个数
相对误差与有效数字之间的转换
-
若 x ∗ x^* x∗ 具有n位有效数字,那么相对误差满足:
e r ∗ ≤ 1 2 a 1 ∗ 1 0 − n + 1 e_r^*\le\frac{1}{2a_1}*10^{-n+1} er∗≤2a11∗10−n+1
-
如果相对误差满足
e r ∗ ≤ 1 2 a 1 + 1 ∗ 1 0 − n + 1 e_r^*\le\frac{1}{2a_1+1}*10^{-n+1} er∗≤2a1+11∗10−n+1
那么x至少具有n位有效数字
误差限的计算法则
误差限的四则运算
ε
(
x
1
∗
±
x
2
∗
)
=
ε
(
x
1
∗
)
+
ε
(
x
2
∗
)
ε
(
x
1
∗
∗
x
2
∗
)
=
ε
(
x
1
∗
)
∣
x
2
∗
∣
+
ε
(
x
2
∗
)
∣
x
1
∗
∣
ε
(
x
1
∗
/
x
2
∗
)
=
ε
(
x
1
∗
)
∣
x
2
∗
∣
+
ε
(
x
2
∗
)
∣
x
1
∗
∣
∣
x
2
∗
∣
2
\varepsilon(x_1^*\pm x_2^*)=\varepsilon(x_1^*)+\varepsilon(x_2^*) \\[5pt]\varepsilon(x_1^** x_2^*)=\varepsilon(x_1^*)|x_2^*|+\varepsilon(x_2^*)|x_1^*| \\[5pt]\varepsilon(x_1^*/ x_2^*)=\frac{\varepsilon(x_1^*)|x_2^*|+\varepsilon(x_2^*)|x_1^*|}{|x_2^*|^2}
ε(x1∗±x2∗)=ε(x1∗)+ε(x2∗)ε(x1∗∗x2∗)=ε(x1∗)∣x2∗∣+ε(x2∗)∣x1∗∣ε(x1∗/x2∗)=∣x2∗∣2ε(x1∗)∣x2∗∣+ε(x2∗)∣x1∗∣
函数误差线的计算
ε
(
f
(
x
∗
)
)
≈
∣
f
′
(
x
∗
)
∣
ε
(
x
∗
)
ε
(
f
(
x
1
,
x
2
,
x
3
.
.
.
x
n
)
)
≈
∑
k
=
1
n
∣
∂
f
(
x
1
∗
,
x
2
∗
,
.
.
.
,
x
n
∗
)
∂
x
k
∣
∣
ε
(
x
k
∗
)
\varepsilon(f(x^*))\approx|f'(x^*)|\varepsilon(x^*) \\[5pt]\varepsilon(f(x_1,x_2,x_3...x_n))\approx\sum_{k=1}^{n}|\frac{\partial f(x_1^*,x_2^*,...,x_n^*)}{\partial x_k}||\varepsilon(x_k^*)
ε(f(x∗))≈∣f′(x∗)∣ε(x∗)ε(f(x1,x2,x3...xn))≈k=1∑n∣∂xk∂f(x1∗,x2∗,...,xn∗)∣∣ε(xk∗)
避免误差危害的若干原则
- 避免两个相近的数相减
- 避免大数吃小数,可以适当调整运算顺序
- 避免除数远小于被除数的除法,防止溢出
- 简化公式