第一章 误差与范数

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.1 误差的来源

例1.1.1 用差商h

a f h a f a f )

()()(-+≈

'求x x f ln )(=在3=x 处导数的近似值.取

1.0=h ,1000.0=h ,h =0.000 000 000 000 001和h =0.000 000 000 000 000 1

分别用MATLAB 软件计算,取十五位数字计算.

解 在MATLAB 工作窗口输入下面程序

>>a=3;h=0.1;y=log(a+h)-log(a);yx=y/h

运行后得

yx = 0.32789822822991 将此程序中h 改为0.000 1,运行后得

yx = 0.33332777790385

后者比前者好.再取h = 0.000 000 000 000 001,运行后得

yx = 0.44408920985006

不如前者好.取h = 0.000 000 000 000 000 1,运行后得

yx = 0

算出的结果反而毫无价值.

例1.1.2 分别求方程组b AX =在下列情况时的解,其中A ⎪⎪⎭

⎝⎛=0111

11

.. (1)⎪⎪⎭

⎫ ⎝⎛=22b ;(2)⎪⎪⎭

⎝⎛=0122.b . 解 (1) 首先将方程组b AX =化为同解方程b A X 1

-=,然后在MATLAB 工作窗口

输入程序

>> b=[2,2]';A=[1,1;1,1.01]; X=A\b

运行后输出当⎪⎪⎭⎫ ⎝⎛=22b 时,b AX =的解为⎪⎪⎭

⎝⎛=02X ;

(2)同理可得,当⎪⎪⎭⎫ ⎝⎛=0122.b 时,b AX =的解为⎪⎪⎭

⎝⎛=11X .

例1.1.3 计算e 的近似值. 解 泰勒级数

e +++++++=!!4!3!21432 n x x x x x n x

)(∞<<-∞x , 取1=x ,得

e +++++++=!1!41!31!2111 

 n . (1.2)

这是一个无限过程,计算机无法求到精确值.只能在(1.2)取有限项时计算,再估计误差.如果取有限项

!!!!)( 

 n s n 1

413121111++++++=

作为e 的值必然会有误差,根据泰勒余项定理可知其截断误差为

e !)1()1( 

+=

-n e s n θ

)10(<<θ.

如果取(1.2)的前九项,输入程序

>> n=8; s=1;S =1; for

k=1:n s=s*k; S=S+1/s, end s, S,

R=3/(s*(n+1)) 或

>>S1=1+1+1/2+1/(1*2*3)+1/(1*2*3*4)+1/(1*2*3*4*5)+1/(1*2*3

*4*5*6)+1/(1*2*3*4*5*6*7)+1/(1*2*3*4*5*6*7*8),

R1=3/(1*2*3*4*5*6*7*8*9)

运行后结果

S = R =

2.71827876984127 8.267195767195768e-006 因为截断误差为

e ),10(101968.267!93

!)18()1(6-8<<⨯≈<+=

-θθ 

 e s 所以e 的近似值e ≈≈+++++++

+=!

81

!71!61!51!41!31!2111)1(8 s 2.718 28.

1.2 误差和有效数字

例1.2.1 取282.718作为e 的四舍五入近似值时,求其绝对误差和相对误差. 解 在MATLAB 工作窗口输入程序

>>juewu=exp(1)-2.71828

运行后输出结果为

juewu = 1.828 459 045 505 326e-006

例1.2.2 计算

⎰π20

sin x x

d x 的近似值,并确定其绝对误差和相对误差.

解 因为被积函数x

x

sin 的原函数不是初等函数,故用泰勒级数求之.

++-+-=!

!!!sin 9 75 38

6x x x x x x 421 )(∞<<-∞x , (1.5) 这是一个无限过程,计算机无法求到精确值.可用(1.5)的前四项!

!!75 36

x x x -+-421代替被积函数

x

x

sin ,得 ⎰π

=20

sin x x y d ⎰

π

≈20(x !

!!14275 36

x x x -+-)d x =!

7)2(!5)2(!3)2(27

5

375 3⋅π

-⋅π+⋅π-π=y ˆ. 根据泰勒余项定理和交错级数收敛性的判别定理,得到绝对误差

!

99)2(ˆ9

⋅<-=π

y

y R = WU , 在MA TLAB 命令窗口输入计算程序如下:

syms x

f=1-x^2/(1*2*3)+x^4/(1*2*3*4*5)-x^6/(1*2*3*4*5*6*7) y=int(f,x,0,pi/2),y1=double(y)

y11=pi/2-(pi/2)^3/(3*3*2)+(pi/2)^5/(5*5*4*3*2)-(pi/2)^7/

(7*7*6*5*4*3*2)

inf=int(sin(x)/x,x,0,pi/2) ,infd=double(inf) WU =(pi/2)^9/(9*9*8*7*6*5*4*3*2), R =infd-y11

因为运行后输出结果为: =y 1.370 762 168 154 49,y

ˆ=1.370 744 664 189 38,=R 1.750 396 510 491 47e-005, WU = 1.782 679 830 970 664e-0054

10-<.

所以,y

ˆ的绝对误差为=ε4

10-,故⎰π

=20

sin x x

y d 7 1.370≈x .y

ˆ的相对误差为 =r ε7

1.37010ˆ4

-=

y ε<0.007 3%.

1.3 误差估计的基本方法

例1.3.4 设计三种算法求方程01522=-+x x 在)3,2(的一个正根*

x 的近似值,并研究每种算法的误差传播情况.

解 为解已知方程,我们可以设计如下三种算法,然后将计算结果与此方程的精确解5.2*

=x 比较,观察误差的传播.

算法1 将已知方程化为同解方程=x 2

215x -.取初值20=x ,按迭代公式

2

1215k k x x -=+

依次计算 ,,,,21n x x x ,结果列入表1–3中.

算法2 将已知方程化为同解方程1

215

+=

x x .取初值20=x ,按迭代公式 1

215

1+=

+k k x x

依次计算 ,,,,21n x x x ,结果列入表1–3中.

算法3 将已知方程化为同解方程1

415

22+-+-=x x x x x .取初值20=x ,按迭代公

式为

1

415

22

1

+-+-=+k k k

k k x x x x x 依次计算 ,,,,21n x x x ,结果列入表1–3中.

我们为这三种算法的计算编写两套MATLAB 程序如下: (1)MATLAB 主程序

function [k,juecha,xiangcha,xk]= liti112(x0,x1,limax) % 输入的量--x0是初值, limax 是迭代次数和精确值x; % 输出的量--每次迭代次数k 和迭代值xk,

% --每次迭代的绝对误差juecha 和相对误差xiangcha , x(1)=x0;

for i=1:limax

相关文档
最新文档