数值计算之第二期:误差分析

参考资料:
数值分析教程 刘长安 西北工业大学出版社
数值计算方法 黄云清 科学出版社
数值分析简明教程 王能超 高等教育出版社 第二版

误差来源

误差来源主要分为以下几种:模型误差、观测误差、舍入误差以及截断误差。我们主要讨论一下截断误差以及舍入误差。
以下我们的x表示某一个β进制数为 x = 0. a 1 a 2 . . . a s × β c x=0.a_{1}a_{2}...a_{s} \times \beta ^{c} x=0.a1a2...as×βc

截断误差

模型的准确解与数值方法的准确解之差就称为截断误差。什么意思呢?举个简单点的例子就是:
已知 x > 0 x\gt0 x>0,求 e x e^{x} ex时,有泰勒展开
e x = 1 + x + 1 2 x 2 + 1 6 x 3 + . . . e^{x}=1+x+\frac1 2x^{2}+\frac1 6x^{3}+... ex=1+x+21x2+61x3+...
取部分和
e ( x ) = 1 + x + 1 2 x 2 + 1 6 x 3 e(x)=1+x+\frac1 2x^{2}+\frac1 6x^{3} e(x)=1+x+21x2+61x3
作为 e x e^{x} ex的近似值,则误差项就为
R ( x ) = e x − e ( x ) = 1 24 e − ξ x 4 , 其 中 0 < ξ < x . R ( x ) R(x)=e^{x}-e(x)=\frac1 {24}e^{-\xi}x^{4},其中0\lt\xi\lt x.R(x) R(x)=exe(x)=241eξx4,0<ξ<x.R(x)即为 e ( x ) e(x) e(x)作为 e − x e^{-x} ex的近似时所产生的误差,这样的误差就是我们所谓的截断误差 .
用数学的语言描述的话就是将 f l ( x ) fl(x) fl(x)(这是上次留下的一个坑,等会会补上)取成满足 ∣ f l ( x ) ∣ ≤ ∣ x ∣ |fl(x)|\le|x| fl(x)x的误差最小者,即:
∣ x − f l ( x ) ∣ = min ⁡ f ∈ F , ∣ f ∣ ≤ ∣ x ∣ ∣ x − f ∣ |x-fl(x)|=\min \limits_{f\in F,|f|\leq|x|}|x-f| xfl(x)=fF,fxminxf
相当于在x的规格化浮点数中截去从t+1位起(包括第t+1位)后面的每一个数.
虽然讲的很简单,但是截断误差是重点,我们后面讨论的很多数值计算方法(如函数逼近、数值积分等)都要考虑截断误差.

好了,下面就补充说明 f l ( x ) fl(x) fl(x),如果x不属于机器数系,那么计算机会自动用机器数f将其表示出来,记为 f = f l ( x ) f=fl(x) f=fl(x),这就定义了区间
[ β m − 1 , ( 1 − β − t ) β M ] [\beta^{m-1},(1-\beta^{-t})\beta^M] [βm1,(1βt)βM] F ( β , t , m , M ) F(\beta,t,m,M) F(β,t,m,M)的函数 f l fl fl

舍入误差

关于舍入误差,我们最熟悉的莫过于四舍五入了,但是,四舍五入在这里实际上是关于十进制数在计算机中表示的时候出现的舍入误差,下面我们讨论一般的 β \beta β进制数的舍入误差.舍入误差实际上是这样得到的,
a t + 1 < 1 2 β a^{t+1}\lt\frac 12\beta at+1<21β,则将 a t + 1 a^{t+1} at+1以后各数舍去,得到
∣ x − f l ( x ) ∣ = min ⁡ f ∈ F ∣ x − f ∣ |x-fl(x)|=\min \limits_{f\in F}|x-f| xfl(x)=fFminxf
即将 f l ( x ) fl(x) fl(x)取成与x最接近者.

最后我们根据 F ( β , t , m , M ) F(\beta,t,m,M) F(β,t,m,M)的定义,有
舍入误差: ∣ x − f l ( x ) ∣ ≤ 1 2 β c − t |x-fl(x)|\le\frac12\beta^{c-t} xfl(x)21βct
截断误差: ∣ x − f l ( x ) ∣ ≤ β c − t |x-fl(x)|\le\beta^{c-t} xfl(x)βct
一般地,每种计算机只使用其中一种规则

近似数的误差和有效数字

近似数,顾名思义就是与精确值近似的数,以下用 x ∗ x^* x表示精确值 x x x的近似数

绝对误差

我们记 E ( x ) = x − x ∗ E(x)=x-x^* E(x)=xx为近似数 x ∗ x^* x的绝对误差
例:取 1 3 \frac13 31的近似值为 0.33 0.33 0.33,则绝对误差为
E ( x ) = 1 3 − 0.3333 = 0.0033... E(x)= \frac 13-0.3333=0.0033... E(x)=310.3333=0.0033...
一般来说,精确值往往是未知的,因此我们得不到绝对误差,但有时却能估计出 E ( x ) E(x) E(x)的绝对值上界 η \eta η( η > 0 \eta\gt0 η>0),且有
∣ E ( x ) ∣ ≤ η |E(x)|\le\eta E(x)η
那么称 η \eta η x ∗ x^* x的绝对误差界,此时
x ∗ − η ≤ x ≤ x ∗ + η x^*-\eta\le x\le x^*+\eta xηxx+η 简记为 x = x ∗ ± η x=x^*\pm\eta x=x±η

相对误差

我们记 E r ( x ) = E ( x ) x E_r(x)=\frac {E(x)}{x} Er(x)=xE(x)为相对误差
跟绝对误差一样,相对误差一般也是未知的,不过往往可以估计相对误差的上界 δ \delta δ( δ > 0 \delta\gt0 δ>0),且有
∣ E r ( x ) ∣ ≤ δ |E_r(x)|\le \delta Er(x)δ
δ \delta δ为相对误差限
前方数学小高能,不适者可以跳过
在实际分析中,常常将 E r ∗ ( x ) = E ( x ) x ∗ E_r^*(x)=\frac {E(x)}{x^*} Er(x)=xE(x)为近似数 x ∗ x^* x的相对误差,这是因为有下式:
E r ( x ) = E ( x ) x = E ( x ) x ∗ + E ( x ) E_r(x)=\frac {E(x)} {x}=\frac {E(x)}{x^*+E(x)} Er(x)=xE(x)=x+E(x)E(x)
= E ( x ) x ∗ [ 1 − E ( x ) x ∗ + ( E ( x ) x ∗ ) 2 − . . . ] =\frac {E(x)}{x^*}[1-\frac {E(x)}{x^*}+(\frac {E(x)}{x^*})^2-... ] =xE(x)[1xE(x)+(xE(x))2...]
= E ( x ) x ∗ − ( E ( x ) x ∗ ) 2 + ( E ( x ) x ∗ ) 3 − . . . =\frac{E(x)}{x^*}-(\frac{E(x)}{x^*})^2+(\frac{E(x)}{x^*})^3-... =xE(x)(xE(x))2+(xE(x))3...
= E r ∗ ( x ) − ( E r ∗ ( x ) ) 2 − ( E r ∗ ( x ) ) 3 − . . . =E_r^*(x)-(E_r^*(x))^2-(E_r^*(x))^3-... =Er(x)(Er(x))2(Er(x))3...
因此当 E r ∗ ( x ) E_r^*(x) Er(x)较小时,两者差别很小.这里的话就不举例子去验证了,感兴趣的同学自己动笔算一算(^ - ^)

有效数字

x ∗ = ± 1 0 m ⋅ 0. a 1 a 2 . . . a k . . . a n x^*=\pm10^m\cdot0.a_1a_2...a_k...a_n x=±10m0.a1a2...ak...an,其中 a i ( i = 0 , 1 , . . . , n ) a_i(i=0,1,...,n) ai(i=0,1,...,n)是0到9中的某个整数,且 a 1 ≠ 0 a_1\neq0 a1=0.若 x ∗ x^* x的绝对误差限满足
∣ E ( x ) ∣ ≤ 1 2 × 1 0 m − k |E(x)|\le\frac 12\times10^{m-k} E(x)21×10mk
则称 a k a_k ak及其之前的数为有效数字.若 x ∗ x^* x的每位数字都有效,则称 x ∗ x^* x为具有n位有效数字的有效数.例:
e = 2.7182818284 e=2.7182818284 e=2.7182818284截取它的前2至5位,四个数分别为:
2.7, 2.71, 2.718, 2.7182
它们分别有2位,2位,四位,四位有效数字
下面了解一下两个与有效数字有关的定理
1.若 x ∗ x^* x有n位有效数字,则其相对误差限为:
∣ E r ∗ ( x ) ∣ ≤ 1 2 a 1 × 1 0 − ( n − 1 ) |E_r^*(x)|\le \frac {1}{2a_1}\times10^{-(n-1)} Er(x)2a11×10(n1)
2.若近似数 x ∗ x^* x的相对误差满足
∣ E r ∗ ( x ) ∣ ≤ 1 2 ( a 1 + 1 ) × 1 0 − ( n − 1 ) |E_r^*(x)|\le \frac 1{2(a_1+1)}\times 10^{-(n-1)} Er(x)2(a1+1)1×10(n1)
x ∗ x^* x至少有n位有效数字
了解一下就行,感兴趣的同学可以尝试证明,嘿嘿
那么根据上面的定理我们得知,相对误差与有效数字的位数有关,有效数字越多,相对误差越小.

好了,这期先到这里,我大概一周会更新一期,看情况吧,因为我也不明白最近作业咋么会越写越多呢T_T

对了,下一期是高斯消元和矩阵(串讲)和LU分解(主讲)

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