数值运算的误差估计
数值运算的误差估计
设两个近似数 x 1 ∗ x_1^* x1∗与 x 2 ∗ x_2^* x2∗的误差限分别为 ε ( x 1 ∗ ) \varepsilon(x_{1}^{*}) ε(x1∗)和 ε ( x 2 ∗ ) \varepsilon(x_{2}^{*}) ε(x2∗)
误差限满足一下运算法则:
-
和差运算的误差限:
- 设 y = x 1 ± x 2 y = x_1\pm x_2 y=x1±x2
- 对于 y ∗ = x 1 ∗ ± x 2 ∗ y^ *= x_1^*\pm x_2^* y∗=x1∗±x2∗,其误差限 ε ( y ∗ ) \varepsilon(y^*) ε(y∗)满足 ε ( y ∗ ) = ε ( x 1 ∗ ) + ε ( x 2 ∗ ) \varepsilon(y^*)=\varepsilon(x_1^*)+\varepsilon(x_2^*) ε(y∗)=ε(x1∗)+ε(x2∗)。
- 证明:因为
∣ x 1 − x 1 ∗ ∣ ⩽ ε ( x 1 ∗ ) \vert x_1 - x_1^*\vert\leqslant\varepsilon(x_1^*) ∣x1−x1∗∣⩽ε(x1∗) ∣ x 2 − x 2 ∗ ∣ ⩽ ε ( x 2 ∗ ) \vert x_2 - x_2^*\vert\leqslant\varepsilon(x_2^*) ∣x2−x2∗∣⩽ε(x2∗)
而
∣ y − y ∗ ∣ = ∣ ( x 1 ± x 2 ) − ( x 1 ∗ ± x 2 ∗ ) ∣ = ∣ ( x 1 − x 1 ∗ ) ± ( x 2 − x 2 ∗ ) ∣ ⩽ ∣ x 1 − x 1 ∗ ∣ + ∣ x 2 − x 2 ∗ ∣ ⩽ ε ( x 1 ∗ ) + ε ( x 2 ∗ ) \vert y - y^*\vert=\vert(x_1\pm x_2)-(x_1^*\pm x_2^*)\vert=\vert(x_1 - x_1^*) \pm(x_2 - x_2^*)\vert\leqslant\vert x_1 - x_1^*\vert+\vert x_2 - x_2^*\vert\leqslant\varepsilon(x_1^*)+\varepsilon(x_2^*) ∣y−y∗∣=∣(x1±x2)−(x1∗±x2∗)∣=∣(x1−x1∗)±(x2−x2∗)∣⩽∣x1−x1∗∣+∣x2−x2∗∣⩽ε(x1∗)+ε(x2∗)
-
乘积运算的误差限:
-
设 y = x 1 x 2 y = x_1x_2 y=x1x2
-
则
ε ( y ∗ ) ∣ y ∗ ∣ ≈ ∣ x 2 ∗ ∣ ε ( x 1 ∗ ) + ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) ∣ x 1 ∗ x 2 ∗ ∣ = ε ( x 1 ∗ ) ∣ x 1 ∗ ∣ + ε ( x 2 ∗ ) ∣ x 2 ∗ ∣ \frac{\varepsilon(y^*)}{\vert y^*\vert}\approx\frac{\vert x_2^*\vert\varepsilon(x_1^*)+\vert x_1^*\vert\varepsilon(x_2^*)}{\vert x_1^*x_2^*\vert}=\frac{\varepsilon(x_1^*)}{\vert x_1^*\vert}+\frac{\varepsilon(x_2^*)}{\vert x_2^*\vert} ∣y∗∣ε(y∗)≈∣x1∗x2∗∣∣x2∗∣ε(x1∗)+∣x1∗∣ε(x2∗)=∣x1∗∣ε(x1∗)+∣x2∗∣ε(x2∗)(当 x 1 ∗ ≠ 0 x_1^*\neq0 x1∗=0且 x 2 ∗ ≠ 0 x_2^*\neq0 x2∗=0),所以
ε ( y ∗ ) ≈ ∣ x 2 ∗ ∣ ε ( x 1 ∗ ) + ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) \varepsilon(y^*) \approx\vert x_2^*\vert\varepsilon(x_1^*)+\vert x_1^*\vert\varepsilon(x_2^*) ε(y∗)≈∣x2∗∣ε(x1∗)+∣x1∗∣ε(x2∗) -
证明:
∣ y − y ∗ ∣ = ∣ x 1 x 2 − x 1 ∗ x 2 ∗ ∣ = ∣ x 1 x 2 − x 1 x 2 ∗ + x 1 x 2 ∗ − x 1 ∗ x 2 ∗ ∣ = ∣ x 1 ( x 2 − x 2 ∗ ) + x 2 ∗ ( x 1 − x 1 ∗ ) ∣ ⩽ ∣ x 1 ∣ ∣ x 2 − x 2 ∗ ∣ + ∣ x 2 ∗ ∣ ∣ x 1 − x 1 ∗ ∣ \vert y - y^*\vert=\vert x_1x_2 - x_1^*x_2^*\vert=\vert x_1x_2 - x_1x_2^*+x_1x_2^* - x_1^*x_2^*\vert=\vert x_1(x_2 - x_2^*)+x_2^*(x_1 - x_1^*)\vert\leqslant\vert x_1\vert\vert x_2 - x_2^*\vert+\vert x_2^*\vert\vert x_1 - x_1^*\vert ∣y−y∗∣=∣x1x2−x1∗x2∗∣=∣x1x2−x1x2∗+x1x2∗−x1∗x2∗∣=∣x1(x2−x2∗)+x2∗(x1−x1∗)∣⩽∣x1∣∣x2−x2∗∣+∣x2∗∣∣x1−x1∗∣
当用近似值 x 1 ∗ x_1^* x1∗, x 2 ∗ x_2^* x2∗代替 x 1 x_1 x1, x 2 x_2 x2时,
∣ y − y ∗ ∣ ≈ ∣ x 2 ∗ ∣ ε ( x 1 ∗ ) + ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) \vert y - y^*\vert\approx\vert x_2^*\vert\varepsilon(x_1^*)+\vert x_1^*\vert\varepsilon(x_2^*) ∣y−y∗∣≈∣x2∗∣ε(x1∗)+∣x1∗∣ε(x2∗)
-
-
商运算的误差限:
- 设 y = x 1 x 2 ( x 2 ≠ 0 ) y=\frac{x_1}{x_2}(x_2\neq0) y=x2x1(x2=0)
- 则
ε ( y ∗ ) ∣ y ∗ ∣ ≈ ε ( x 1 ∗ ) ∣ x 1 ∗ ∣ + ε ( x 2 ∗ ) ∣ x 2 ∗ ∣ \frac{\varepsilon(y^*)}{\vert y^*\vert}\approx\frac{\varepsilon(x_1^*)}{\vert x_1^*\vert}+\frac{\varepsilon(x_2^*)}{\vert x_2^*\vert} ∣y∗∣ε(y∗)≈∣x1∗∣ε(x1∗)+∣x2∗∣ε(x2∗)(当 x 1 ∗ ≠ 0 x_1^*\neq0 x1∗=0且 x 2 ∗ ≠ 0 x_2^*\neq0 x2∗=0),所以
ε ( y ∗ ) ≈ ∣ x 2 ∗ ∣ ε ( x 1 ∗ ) + ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) ∣ x 2 ∗ ∣ 2 \varepsilon(y^*) \approx\frac{\vert x_2^*\vert\varepsilon(x_1^*)+\vert x_1^*\vert\varepsilon(x_2^*)}{\vert x_2^*\vert^2} ε(y∗)≈∣x2∗∣2∣x2∗∣ε(x1∗)+∣x1∗∣ε(x2∗) - 证明:
∣ y − y ∗ ∣ = ∣ x 1 x 2 − x 1 ∗ x 2 ∗ ∣ = ∣ x 1 x 2 ∗ − x 1 ∗ x 2 x 2 x 2 ∗ ∣ = ∣ x 1 x 2 ∗ − x 1 ∗ x 2 ∗ + x 1 ∗ x 2 ∗ − x 1 ∗ x 2 x 2 x 2 ∗ ∣ = ∣ x 2 ∗ ( x 1 − x 1 ∗ ) + x 1 ∗ ( x 2 ∗ − x 2 ) x 2 x 2 ∗ ∣ ⩽ ∣ x 2 ∗ ∣ ∣ x 1 − x 1 ∗ ∣ + ∣ x 1 ∗ ∣ ∣ x 2 − x 2 ∗ ∣ ∣ x 2 ∣ ∣ x 2 ∗ ∣ \vert y - y^*\vert=\left\vert\frac{x_1}{x_2}-\frac{x_1^*}{x_2^*}\right\vert=\left\vert\frac{x_1x_2^* - x_1^*x_2}{x_2x_2^*}\right\vert=\left\vert\frac{x_1x_2^* - x_1^*x_2^*+x_1^*x_2^* - x_1^*x_2}{x_2x_2^*}\right\vert=\left\vert\frac{x_2^*(x_1 - x_1^*)+x_1^*(x_2^* - x_2)}{x_2x_2^*}\right\vert\leqslant\frac{\vert x_2^*\vert\vert x_1 - x_1^*\vert+\vert x_1^*\vert\vert x_2 - x_2^*\vert}{\vert x_2\vert\vert x_2^*\vert} ∣y−y∗∣= x2x1−x2∗x1∗ = x2x2∗x1x2∗−x1∗x2 = x2x2∗x1x2∗−x1∗x2∗+x1∗x2∗−x1∗x2 = x2x2∗x2∗(x1−x1∗)+x1∗(x2∗−x2) ⩽∣x2∣∣x2∗∣∣x2∗∣∣x1−x1∗∣+∣x1∗∣∣x2−x2∗∣
当用近似值 x 1 ∗ x_1^* x1∗, x 2 ∗ x_2^* x2∗代替 x 1 , x 2 x_1,x_2 x1,x2时,
ε ( y ∗ ) ≈ ∣ x 2 ∗ ∣ ε ( x 1 ∗ ) + ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) ∣ x 2 ∗ ∣ 2 \varepsilon(y^*) \approx\frac{\vert x_2^*\vert\varepsilon(x_1^*)+\vert x_1^*\vert\varepsilon(x_2^*)}{\vert x_2^*\vert^2} ε(y∗)≈∣x2∗∣2∣x2∗∣ε(x1∗)+∣x1∗∣ε(x2∗)
-
一般函数关系
ε ( A ∗ ) ≈ ∑ k = 1 n ( ∣ ∂ f ∂ x k ∗ ε ( x k ∗ ) ∣ ) \boxed{\varepsilon(A^*)\approx \sum_{k=1}^{n}\left(\left|\dfrac{\partial f}{\partial x_k}^*\varepsilon(x^*_k)\right|\right)} ε(A∗)≈k=1∑n( ∂xk∂f∗ε(xk∗) )
例
解
另一个同理,只写前半部分。设 f ( x ) = ln ( x − x 2 − 1 ) f(x)=\ln (x-\sqrt{x^2-1}) f(x)=ln(x−x2−1)
y = ln ( x − x 2 − 1 ) y=\ln (x-\sqrt{x^2-1}) y=ln(x−x2−1)
由误差公式:
ε ( f ∗ ) = ε ( y ∗ ) ∣ y ∗ ∣ \varepsilon(f^*)=\frac{\varepsilon(y^*)}{|y^*|} ε(f∗)=∣y∗∣ε(y∗)
计得,保留 4 4 4位有效数字
∣ y ∗ ∣ = 0.01667 |y^*|=0.01667 ∣y∗∣=0.01667
带入得到:
ε ( f ∗ ) = 0.5 × 1 0 − 5 0.01667 ≈ 2.9994 × 1 0 − 4 \varepsilon(f^*)=\frac{0.5\times 10^{-5}}{0.01667}\approx 2.9994\times 10^{-4} ε(f∗)=0.016670.5×10−5≈2.9994×10−4
原答案: