模型误差(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=x−x∗ ,则称 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∗=∣x∣ex为近似值 x ∗ x^* x∗的相对误差 | 在实际计算中,由于真值x xx总是不知道的,因此相对误差通常取 e r ∗ = e x ∣ x ∗ ∣ e^*_ r= \frac{e^x}{\lvert x^* \rvert} \quad er∗=∣x∗∣ex |
相对误差限 | ϵ 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.a1a2a3⋯an⋯(其中 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} ∣ x−xA∣<0.5×10k−n,则称 x A x_A xA为有n位有效数字,精确到 1 0 k − n 10^{k-n} 10k−n。
=>已知 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.a1a2a3⋯an0.5×10k−n≤2a11×10−n+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} ∣ x−x∗∣≤ϵr∗×∣x∗∣≤0.5×10k−n
ϵ 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)×10k−1≤0.5×10k−n
则 x* 相对误差限 ϵ r ∗ \epsilon_r^* ϵr∗可以写为 1 2 ( a 1 + 1 ) × 1 0 − n + 1 \frac{1}{2{(a_1+1)}}\times10^{-n+1} 2(a1+1)1×10−n+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} x−x∗≤ϵr∗×∣x∗∣=2(a1+1)1×10−n+1×0.a1a2a3⋯×10k<2(a1+1)1×(a1+1)×10−n+1=0.5×10k−n
满足条件,则其有效数字至少为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^* A−A∗
在点 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)=A−A∗=f(x1,x2,....,xn)−f(x1∗,x2∗,....,xn∗)≈∑j=1n∂xj∂f(x)(xj−xj∗)
对于 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)∣⋅∣xx−x∗∣=∣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很大,将引起函数值相对误差很大,出现这种问题就是病态问题。