数值分析一-误差与有效数字

误差与有效数字

  • 一、误差的来源与种类
  • 二、误差分析
  • 三、有效数字
  • 四、算术运算的误差估计
  • 五、病态问题和条件数


一、误差的来源与种类

模型误差(Modeling Error)-从实际问题中抽象出数学模型时产生的误差
观测误差(Measurement Error )-通过测量得到模型中参数的值导致输入数据的误差
舍入误差(Roundoff Error)-由于计算机字长有限而在数值运算的每一步所产生的误差
方法误差 or截断误差(Truncation Error )-近似求解时产生的误差,例如泰勒展开式忽略高阶项

二、误差分析

x x x为精确值, x ∗ x^* x x x x的近似值

概念 释义 性质
绝对误差 e x = x − x ∗ e^x=x-x^* ex=xx ,则称 e x e^x ex为近似值的绝对误差,简称误差 当绝对误差为正时,又叫做强近似值;当绝对误差为负时,又叫做弱近似值
绝对误差限 ∣ e x ∣ \lvert e^x \rvert ex不超过某正数 ϵ ∗ \epsilon^* ϵ,则称 ϵ ∗ \epsilon^* ϵ 为近似值的绝对误差限,简称误差限 总是正数,且现实中相较绝对误差更加常用
相对误差 e r ∗ = e x ∣ x ∣ e^*_ r= \frac{e^x}{\lvert x \rvert} \quad er=xex为近似值 x ∗ x^* x的相对误差 在实际计算中,由于真值x xx总是不知道的,因此相对误差通常取 e r ∗ = e x ∣ x ∗ ∣ e^*_ r= \frac{e^x}{\lvert x^* \rvert} \quad er=xex
相对误差限 ϵ r ∗ = ϵ x ∣ x ∣ \epsilon^*_ r= \frac{\epsilon^x}{\lvert x \rvert} \quad ϵr=xϵx为近似值 x ∗ x^* x的相对误差限 总是正数,且现实中相较相对误差更加常用

三、有效数字

用科学计数法,记 x A = ± 1 0 k × 0. a 1 a 2 a 3 ⋯ a n ⋯ x_A=\pm10^k\times0.a_1a_2a_3\cdots a_n\cdots xA=±10k×0.a1a2a3an(其中 a 1 ≠ 0 a_1\not=0 a1=0)。若 ∣   x − x A ∣ < 0.5 × 1 0 k − n \left| \ x-x_A\right|<0.5\times10^{k-n}  xxA<0.5×10kn,则称 x A x_A xA为有n位有效数字,精确到 1 0 k − n 10^{k-n} 10kn

=>已知 x 有 n 位有效数字,则其相对误差限为*
ϵ r ∗ = ∣ ϵ ∗ x ∗ ∣ ≤ 0.5 × 1 0 k − n 1 0 k × 0. a 1 a 2 a 3 ⋯ a n ≤ 1 2 a 1 × 1 0 − n + 1 \epsilon_r^*=\left| \frac{\epsilon^*}{x^*}\right|\leq\frac{0.5\times10^{k-n}}{10^k\times0.a_1a_2a_3\cdots a_n}\leq\frac{1}{2a_1}\times10^{-n+1} ϵr=xϵ10k×0.a1a2a3an0.5×10kn2a11×10n+1

=>已知 x 相对误差限,求其有效数字*
已知
∣   x − x ∗ ∣ ≤ ϵ r ∗ × ∣ x ∗ ∣ ≤ 0.5 × 1 0 k − n \left| \ x-x^*\right|\leq\epsilon_r^*\times\left| x^*\right|\leq0.5\times10^{k-n}  xxϵr×x0.5×10kn

ϵ r ∗ × ∣ x ∗ ∣ = ϵ r ∗ × 0. a 1 a 2 a 3 ⋯ × 1 0 k ≤ ϵ r ∗ × ( a 1 + 1 ) × 1 0 k − 1 ≤ 0.5 × 1 0 k − n \epsilon_r^*\times\left| x^*\right|=\epsilon_r^*\times0.a_1a_2a_3\cdots\times10^k\leq\epsilon_r^*\times(a_1+1)\times10^{k-1}\leq0.5\times10^{k-n} ϵr×x=ϵr×0.a1a2a3×10kϵr×a1+1×10k10.5×10kn
则 x* 相对误差限 ϵ r ∗ \epsilon_r^* ϵr可以写为 1 2 ( a 1 + 1 ) × 1 0 − n + 1 \frac{1}{2{(a_1+1)}}\times10^{-n+1} 2a1+11×10n+1
则有
x − x ∗ ≤ ϵ r ∗ × ∣ x ∗ ∣ = 1 2 ( a 1 + 1 ) × 1 0 − n + 1 × 0. a 1 a 2 a 3 ⋯ × 1 0 k < 1 2 ( a 1 + 1 ) × ( a 1 + 1 ) × 1 0 − n + 1 = 0.5 × 1 0 k − n x-x^*\leq\epsilon_r^*\times\left| x^*\right|=\frac{1}{2{(a_1+1)}}\times10^{-n+1}\times0.a_1a_2a_3\cdots\times10^k<\frac{1}{2{(a_1+1)}}\times(a_1+1)\times10^{-n+1}=0.5\times10^{k-n} xxϵr×x=2a1+11×10n+1×0.a1a2a3×10k<2a1+11×(a1+1)×10n+1=0.5×10kn
满足条件,则其有效数字至少为n。

四、算术运算的误差估计

设多元函数 A = f ( x 1 , x 2 , . . . . , x n ) A=f(x_1,x_2,....,x_n) A=f(x1,x2,....,xn),其中 x 1 ∗ , x 2 ∗ , . . . . , x n ∗ x_1^*,x_2^*,....,x_n^* x1,x2,....,xn x 1 , x 2 , . . . . , x n x_1,x_2,....,x_n x1,x2,....,xn的近似值 A ∗ = f ( x 1 ∗ , x 2 ∗ , . . . . , x n ∗ ) A^*=f(x_1^*,x_2^*,....,x_n^*) A=f(x1,x2,....,xn)
考察 A − A ∗ A-A^* AA
在点 x = ( x 1 , x 2 , . . . . , x n ) x=(x_1,x_2,....,x_n) x=(x1,x2,....,xn)的泰勒展开式,略去高阶项
e ( A ) = A − A ∗ = f ( x 1 , x 2 , . . . . , x n ) − f ( x 1 ∗ , x 2 ∗ , . . . . , x n ∗ ) ≈ ∑ j = 1 n ∂ f ( x ) ∂ x j ( x j − x j ∗ ) e(A)=A-A^*=f(x_1,x_2,....,x_n)-f(x_1^*,x_2^*,....,x_n^*)\approx \sum_{j=1}^n \frac{\partial f(x)}{\partial x_j}(x_j-x^*_j) \quad e(A)=AA=f(x1,x2,....,xn)f(x1,x2,....,xn)j=1nxjf(x)(xjxj)

五、病态问题和条件数

对于 y = f ( x ) y = f (x) y=f(x),若用 x ∗ x^* x 取代 x x x,将对 y y y 产生什么影响
e r ( y ) = f ( x ) − f ( x ∗ ) f ( x ∗ ) ≈ ∣ x f ′ ( x ) f ( x ) ∣ ⋅ ∣ x − x ∗ x ∣ = ∣ x f ′ ( x ) f ( x ) ∣ ⋅ e r ∗ e_r(y)=\frac{f(x)-f(x^*)}{f(x^*)}\approx|\frac{xf^{'}(x)}{f(x)}|\cdot|\frac{x-x^*}{x}|=|\frac{xf^{'}(x)}{f(x)}|\cdot e^*_ r er(y)=f(x)f(x)f(x)f(x)xf(x)xxx=f(x)xf(x)er

C p = ∣ x f ′ ( x ) f ( x ) ∣ C_p=|\frac{xf^{'}(x)}{f(x)}| Cp=f(x)xf(x)即为条件数,自变量相对误差一般不会差太大,如果条件数 C p C_p Cp很大,将引起函数值相对误差很大,出现这种问题就是病态问题。

你可能感兴趣的:(数值分析)