数值分析1.误差及误差分析
- 第一章
-
- 有效数
- 有效数字和相对误差
- 误差的数值运算
- 条件数
第一章
有效数
定义:某个数字 x ∗ x^* x∗可以写成下面的形式
x ∗ = + / − 1 0 m ∗ 0. a 1 a 2 . . . a n . . . a p x^*=+/- 10^m*0.a_1a_2...a_n...a_p x∗=+/−10m∗0.a1a2...an...ap
如果 n n n是满足
∣ e ∗ ∣ = ∣ x ∗ − x ∣ ≤ 1 / 2 ∗ 1 0 m − n |e^*|=|x^*-x| \leq 1/2 * 10^{m-n} ∣e∗∣=∣x∗−x∣≤1/2∗10m−n
的最大整数,则称 x ∗ x^* x∗为 x x x的具有 n n n位有效数字的近似数,当 n = p n=p n=p的时候,称 x ∗ x^* x∗为有效数。
有效数的一些结论:
- 对某有效数而言,末位数的半个单位是其绝对误差限,即有效数本身反映了近似数的绝对误差限。
- 对真值进行四舍五入得到的近似数是有效数
- 对近似同一真值的近似数而言,有效数字位数越多,其绝对误差限越小。
- 有效数的末尾不能随意添加零
- 有效数字位数与介于第一位非零数字和小数点之间的零的个数没有关系
- 准确值具有无穷位有效数字
有效数字和相对误差
若 x ∗ x^* x∗ 由n位有效数字,则
∣ e r ∗ ∣ ≤ 1 2 a 1 ∗ 1 0 1 − n |e^*_r| \leq \frac{1}{2a_1}*10^{1-n} ∣er∗∣≤2a11∗101−n
若
∣ e r ∗ ∣ ≤ 1 2 ( a 1 + 1 ) ∗ 1 0 1 − n |e^*_r| \leq \frac{1}{2(a_1+1)}*10^{1-n} ∣er∗∣≤2(a1+1)1∗101−n
则x^*至少具有n位有效数字
误差的数值运算
对于函数 y y y
e ( f ∗ ) = f ′ ( x ∗ ) ∗ e ( x ∗ ) e r ( f ∗ ) = x ∗ f ′ ( x ∗ ) f ( x ∗ ) e r ( x ∗ ) e(f^*)=f'(x^*)*e(x^*)\\ e_r(f^*)=\frac{x^*f'(x^*)}{f(x^*)}e_r(x^*) e(f∗)=f′(x∗)∗e(x∗)er(f∗)=f(x∗)x∗f′(x∗)er(x∗)
绝对误差:
ε ( 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 2 ∗ ∣ ε ( x 1 ∗ ) − ∣ x 1 ∗ ∣ ε ( x 2 ∗ ) ∣ x 2 ∗ ∣ 2 \begin{array}{l}{\varepsilon\left(x_{1}^{*} \pm x_{2}^{*}\right) \approx \varepsilon\left(x_{1}^{*}\right)\pm\varepsilon\left(x_{2}^{*}\right)} \\ {\varepsilon\left(x_{1}^{*} x_{2}^{*}\right) \approx\left|x_{1}^{*}\right| \varepsilon\left(x_{2}^{*}\right)+\left|x_{2}^{*}\right| \varepsilon\left(x_{1}^{*}\right)} \\ {\varepsilon\left(x_{1}^{*} / x_{2}^{*}\right) \approx \frac{\left|x_{2}^{*}\right| \varepsilon\left(x_{1}^{*}\right)-\left|x_{1}^{*}\right| \varepsilon\left(x_{2}^{*}\right)}{\left|x_{2}^{*}\right|^{2}}}\end{array} ε(x1∗±x2∗)≈ε(x1∗)±ε(x2∗)ε(x1∗x2∗)≈∣x1∗∣ε(x2∗)+∣x2∗∣ε(x1∗)ε(x1∗/x2∗)≈∣x2∗∣2∣x2∗∣ε(x1∗)−∣x1∗∣ε(x2∗)
相对误差:
ε r ( x 1 ∗ ± x 2 ∗ ) ≈ x 1 ∗ ε r ( x 1 ∗ ) ± x 2 ∗ ε r ( x 2 ∗ ) / x 1 ∗ ± x 2 ∗ ε r ( x 1 ∗ x 2 ∗ ) ≈ ε r ( x 1 ∗ ) + ε r ( x 2 ∗ ) ε ( x 1 ∗ / x 2 ∗ ) ≈ ε r ( x 1 ∗ ) − ε r ( x 2 ∗ ) \begin{array}{l}{\varepsilon_r\left(x_{1}^{*} \pm x_{2}^{*}\right)\approx x_1^*\varepsilon_r\left(x_{1}^{*}\right)\pm x_2^*\varepsilon_r\left(x_{2}^{*}\right)}/{x_1^* \pm x_2^*} \\ {\varepsilon_r\left(x_{1}^{*} x_{2}^{*}\right) \approx \varepsilon_r\left(x_{1}^{*}\right)+\varepsilon_r\left(x_{2}^{*}\right)} \\ {\varepsilon\left(x_{1}^{*} / x_{2}^{*}\right) \approx\varepsilon_r\left(x_{1}^{*}\right)- \varepsilon_r\left(x_{2}^{*}\right)}\end{array} εr(x1∗±x2∗)≈x1∗εr(x1∗)±x2∗εr(x2∗)/x1∗±x2∗εr(x1∗x2∗)≈εr(x1∗)+εr(x2∗)ε(x1∗/x2∗)≈εr(x1∗)−εr(x2∗)
条件数
绝对误差下函数值 f ( x ) f(x) f(x)的条件数: C o n d a ( f ) = ∣ f ′ ( x ) ∣ Cond_a(f)=|f'(x)| Conda(f)=∣f′(x)∣
相对误差下函数值 f ( x ) f(x) f(x)的条件数: C o n d r ( f ) = ∣ x f ′ ( x ) f ( ) x ∣ Cond_r(f)=|x\frac{f'(x)}{f()x}| Condr(f)=∣xf()xf′(x)∣