数值分析喻文健部分习题答案

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

第一题:

>> clear;

>> x=logspace(_16,0); >> loglog(x,x/2,'r--'); >> hold on

>> loglog(x,1./(mldivide(2*10A-17,x)),'b--'); >> loglog(x,x/2+1./(mldivide(2*10A -17,x)),'g-'); >> xlabel('步长 h'); >> ylabel('误差');

>> text(10A-12,10A-13,'截断误差'); >> text(10A-5.5,10A-13,'舍入误差'); >> text(10A-10,10A-6,'总误差限');

第四题:

>> clear; >> k=1:20; >> n=10.Ak; >> e=(1+1./n).An

1至9列 2.5937 2.7048

2.7169

2.7181

2.7183

2.7183

2.7183

2.7183

2.7183 10至18列

10r

10

10

10 7

;L ■- < h

1012

1020 10

2.7183

2.7183 2.7185 2.7161 2.7161

3.0350 1.0000 1.0000 1.0000

19 至20 列

1.0000 1.0000

>> y=e-exp(1)

y =

1 至9 列

-0.1245

-0.0135 -0.0014 -0.0001 -0.0000 -0.0000 -0.0000 -0.0000 0.0000

10 至18 列

0.0000 0.0000 0.0002 -0.0022 -0.0022 0.3168 -1.7183 -1.7183 -1.7183

19 至20 列

-1.7183 -1.7183

>> plot(k,y)

>> grid on

由图可知,误差并不是随n的增大而降低。第五题

(1 )

>> clear;

>> x=in put('e nter a nu mber:');

en ter a nu mber:1

>> y1=1+x+x A2/factorial(2);

>> y2=exp(1);

>> f1=y1-exp(1);

>> e1=abs(f1)/exp(1);

>> disp(f1)

-0.2183

>> disp(e1)

0.0803

>> y3=1+x+xA2/factorial(2)+xA3 /factorial(3); >> f2=y3-exp(1);

>> e2=abs(f2)/exp(1);

>> disp(f2)

-0.0516

>> disp(e2)

0.0190

>> y4=1+x+x A2/factorial(2)+x A3 /factorial(3)+x A4 /factorial(4);

>> f3=y4-exp(1);

>> e3=abs(f3)/exp(1);

>> disp(f3)

-0.0099

>> disp(e3)

0.0037

>> y5=1+x+xA2/factorial(2)+xA3 /factorial(3)+xA4 /factorial(4)+xA5 /factorial(5); >> f4=y5-exp(1);

>> e4=abs(f4)/exp(1);

>> disp(f4)

-0.0016

>> disp(e4)

5.9418e-04

根据以上绝对误差和相对误差的数据分析选四阶泰勒展开式为判停标准。

(2)

>> for x=-20:20;if rem(x,5)==0

f1=1+x+xA2/factorial(2)+xA3 /factorial(3)+xA4 /factorial(4);

f2=exp(1);

f=f1-f2;

disp(f);

end

end

5.5116e+03

1.6427e+03

288.2817

10.9901

-1.7183

62.6567

641.6151

2.7977e+03

8.2183e+03

(3)

不能,正负交替出现抵消现象,计算结果误差较大。 (改程序在琢磨中)

(4)

当x<0 时,能通过级数项的重新排列或分组得到较准确的结果。因为重新排列或分组后可以有效地减少抵消现象的影响,从而使得计算结果较准确。

例1.21

>> clear;

>> tic;

>> p=input('please input p(x)=');

please input p(x)=[7 6 2 6 3]

>> x=input('please input x=');

please input x=2

>> n=length(p);

>> s(1)=p(1);

>> for i=1:n-1

s(i+1)=s(i)*x+p(i+1);

end

>> p=s(n);

>> toc;

时间已过196.889093 秒。

相关文档
最新文档