数值计算的误差

内容来源
数值分析第五版 清华大学出版社


误差的来源与分类

数值分析只研究用数值方法求解数学模型产生的误差

模型误差

用计算机解决科学计算问题首先要建立数学模型,它是对被描述的实际问题进行抽象、简化而得到的,因而是近似的。

我们把数学模型与实际问题之间出现的这种误差称为模型误差。

由于这种误差难以用数量表示,通常都假定数学模型是合理的,这种误差可忽略不计,在“数值分析”中不予讨论。

观测误差

数学模型中往往还有一些根据观测得到的物理量,如温度、长度、电压等,这些参量显然也包含误差。

这种由观测产生的误差称为观测误差,在“数值分析”也不讨论这种误差。

截断误差(也称方法误差)

当数学模型不能得到精确解时,通常要用数值方法求它的近似解,其近似解与精确解之间的误差称为截断误差或方法误差。

例如,可微函数 f ( x ) f(x) f(x) T a y l o r T a y l o r TaylorTaylor TaylorTaylor 多项式

P n ( x ) = f ( 0 ) + f ′ ( 0 ) 1 ! x + f ′ ′ ( 0 ) 2 ! x 2 + ⋯ + f ( n ) ( 0 ) n ! x n P_n(x)=f(0)+\frac{f'(0)}{1!}x+\frac{f''(0)}{2!}x^2 +\cdots+\frac{f^{(n)}(0)}{n!}x^n Pn(x)=f(0)+1!f(0)x+2!f′′(0)x2++n!f(n)(0)xn

近似代替,则数值方法的截断误差是

R n ( x ) = f ( x ) − P n ( x ) = f n + 1 ( ξ ) ( n + 1 ) ! x n + 1 , ξ 在 0 与 x 之间 R_n(x)=f(x)-P_n(x)=\frac{f^{n+1}(\xi)}{(n+1)!}x^{n+1},\xi在0与x之间 Rn(x)=f(x)Pn(x)=(n+1)!fn+1(ξ)xn+1,ξ0x之间

舍入误差

用计算机做数值计算时,由于计算机的字长有限,原始数据在计算机上表示时会产生误差,计算过程又可能产生新的误差,这种误差称为舍入误差。


误差与有效数字

绝对误差

x x x 为准确值, x ∗ x^* x x x x 的一个近似值,称 e ∗ = x ∗ − x e^*=x^*-x e=xx 为近似值的绝对,简称误差

误差限

通常我们不能算出准确值 x x x ,也不能算出误差 e ∗ e^* e 的准确值,只能根据测量工具或计算情况估计出误差的绝对值不超过某正数 ε ∗ \varepsilon^* ε ,也就是误差绝对值的一个上界

相对误差

我们把近似值的误差 e ∗ e^* e 与准确值 x x x 的比值

e ∗ x = x ∗ − x x \frac{e^*}{x}=\frac{x^*-x}{x} xe=xxx

称为近似值 x ∗ x^* x 的相对误差,记作 e r ∗ e^*_r er

在实际计算中,由于真值 x x x 总是不知道的,通常取

e r ∗ = e ∗ x ∗ = x ∗ − x x ∗ e^*_r=\frac{e^*}{x^*}=\frac{x^*-x}{x^*} er=xe=xxx

作为 x ∗ x^* x 的相对误差,条件是 e r ∗ = e ∗ x ∗ e^*_r=\frac{e^*}{x^*} er=xe 较小,此时

e ∗ x − e ∗ x ∗ = e ∗ ( x ∗ − x ) x ∗ x = ( e ∗ ) 2 x ∗ ( x ∗ − e ∗ ) = ( e ∗ / x ∗ ) 2 1 − ( e ∗ / x ∗ ) \frac{e^*}{x}-\frac{e^*}{x^*}=\frac{e^*(x^*-x)}{x^*x}= \frac{(e^*)^2}{x^*(x^*-e^*)}=\frac{(e^*/x^*)^2}{1-(e^*/x^*)} xexe=xxe(xx)=x(xe)(e)2=1(e/x)(e/x)2

e r ∗ e^*_r er 的平方项级,故可忽略不计

相对误差限

相对误差也可正可负,它的绝对值上界叫做相对误差限,记作 ε r ∗ \varepsilon^*_r εr ,即 ε r ∗ = ε ∗ ∣ x ∗ ∣ \varepsilon^*_r=\frac{\varepsilon^*}{|x^*|} εr=xε

相对误差与相对误差限是无量纲的,而误差与误差限是有量纲的

有效数字

若近似值 x ∗ x^* x 的误差限是某一位的半个单位,该为到 x ∗ x^* x 的第一位非零数字共有 n n n 位,就说 x ∗ x^* x n n n 位有效数字。它可表示为

x ∗ = ± 1 0 m × ( a 1 + a 2 × 1 0 − 1 + ⋯ + a n × 1 0 − ( n − 1 ) ) x^*=\pm10^m\times(a_1+a_2\times10^{-1}+\cdots+a_n\times10^{-(n-1)}) x=±10m×(a1+a2×101++an×10(n1))

上式就是科学计数法

其中 a i ( i = 1 , 2 , ⋯   , n ) a_i(i=1,2,\cdots,n) ai(i=1,2,,n) 0 0 0 9 9 9 中的一个数字, a 1 ≠ 0 a_1\neq0 a1=0 m m m 为整数,且

绝对误差限为

∣ x − x ∗ ∣ ⩽ 1 2 × 1 0 m − n + 1 |x-x^*|\leqslant\frac{1}{2}\times10^{m-n+1} xx21×10mn+1

相对误差限为

ε r ∗ ⩽ 1 2 a 1 × 1 0 − ( n − 1 ) \varepsilon^*_r\leqslant\frac{1}{2a_1}\times10^{-(n-1)} εr2a11×10(n1)


数值运算的误差估计

加减乘除

设两个近似数 x 1 ∗ x^*_1 x1 x 2 ∗ x^*_2 x2 的误差限分别为 ε ( x 1 ∗ ) \varepsilon(x^*_1) ε(x1) ε ( x 2 ∗ ) \varepsilon(x^*_2) ε(x2) ,则它们进行加、减、乘、除运算得到的误差限分别满足不等式

ε ( 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 , x 2 ∗ ≠ 0 \varepsilon(x^*_1\pm x^*_2)\leqslant \varepsilon(x^*_1)+\varepsilon(x^*_2)\\ \varepsilon(x^*_1x^*_2)\leqslant |x^*_1|\varepsilon(x^*_2)+|x^*_2|\varepsilon(x^*_1)\\ \varepsilon(x^*_1/x^*_2)\leqslant \frac{|x^*_1|\varepsilon(x^*_2)+|x^*_2|\varepsilon(x^*_1)} {|x^*_2|^2},x^*_2\neq 0 ε(x1±x2)ε(x1)+ε(x2)ε(x1x2)x1ε(x2)+x2ε(x1)ε(x1/x2)x22x1ε(x2)+x2ε(x1),x2=0

函数运算

当自变量有误差时计算函数值也产生误差,其误差限可利用函数的 T a y l o r Taylor Taylor 展开式进行估计

f ( x ) f(x) f(x) 是一元可微函数, x x x 的近似值为 x ∗ x^* x ,则

f ( x ) − f ( x ∗ ) = f ′ ( x ) ( x − x ∗ ) + f ′ ′ ( ξ ) 2 ( x − x ∗ ) 2 f(x)-f(x^*)=f'(x)(x-x^*)+\frac{f''(\xi)}{2}(x-x^*)^2 f(x)f(x)=f(x)(xx)+2f′′(ξ)(xx)2

取绝对值得

∣ f ( x ) − f ( x ∗ ) ∣ = ∣ f ′ ( x ) ∣ ε ( x ∗ ) + ∣ f ′ ′ ( ξ ) ∣ 2 ε 2 ( x ∗ ) |f(x)-f(x^*)|=|f'(x)|\varepsilon(x^*) +\frac{|f''(\xi)|}{2}\varepsilon^2(x^*) f(x)f(x)=f(x)ε(x)+2f′′(ξ)ε2(x)

假定 f ′ ( x ∗ ) f'(x^*) f(x) f ′ ′ ( x ∗ ) f''(x^*) f′′(x) 的比值不太大,可忽略 ε ( x ∗ ) \varepsilon(x^*) ε(x) 的高阶项,得

这个忽略有些草率

ε ( f ( x ∗ ) ) ≈ ∣ f ′ ( x ∗ ) ∣ ε ( x ∗ ) \varepsilon(f(x^*))\approx|f'(x^*)|\varepsilon(x^*) ε(f(x))f(x)ε(x)

同理,当 f f f 为多元函数时

ε ( f ∗ ) ≈ ∑ i = 1 n ∣ ∂ f ∂ x i ∗ ∣ ε ( x i ∗ ) \varepsilon(f^*)\approx\sum^n_{i=1} \bigg|\frac{\partial f}{\partial x^*_i}\bigg|\varepsilon(x^*_i) ε(f)i=1n xif ε(xi)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值