好文档 - 专业文书写作范文服务资料分享网站

数值分析上机题课后课后复习全部-东南大学

天下 分享 时间: 加入收藏 我要投稿 点赞

2015.1.9

上机作业题报告 USER

!-

1.Chapter 1

1.1题目

1311(??)。 ??2?1

22NN?1111(1)编制按从大到小的顺序SN?2,计算SN的通用程序。 ?2????22?13?1N?1设S??=∑????=2

1

,其精确值为

(2)编制按从小到大的顺序SN?111,计算SN的通用程?????N2?1(N?1)2?122?1序。

(3)按两种顺序分别计算S102,S104,S106,并指出有效位数。(编制程序时用单精度) (4)通过本次上机题,你明白了什么?

1.2程序

clear; N=input('请输入N值:'); Ac=single((3/2-1/N-1/(N+1))/2); Snl2s=single(0); Sns2l=single(0); for i=2:N Snl2s=Snl2s+1/(i*i-1); end for i=N:-1:2 Sns2l=Sns2l+1/(i*i-1); end fprintf('精确值为: %f\\n',Ac); fprintf('从大到小的顺序累加得SN=%f\\n',Snl2s); fprintf('从小到大的顺序累加得SN=%f\\n',Sns2l); disp('========================================================'); 1.3运行结果

>> P20T17 请输入N值:10^2 精确值为: 0.740049 从大到小的顺序累加得SN=0.740049 从小到大的顺序累加得SN=0.740050 ============================================================ >> P20T17 请输入N值:10^4 精确值为: 0.749900 从大到小的顺序累加得SN=0.749852 !-

从小到大的顺序累加得SN=0.749900 ============================================================ >> P20T17 请输入N值:10^6 精确值为: 0.749999 从大到小的顺序累加得SN=0.749852 从小到大的顺序累加得SN=0.749999 ============================================================ 1.4结果分析

按从大到小的顺序,有效位数分别为:6,4,3。 按从小到大的顺序,有效位数分别为:5,6,6。

可以看出,不同的算法造成的误差限是不同的,好的算法可以让结果更加精确。当采用从大到小的顺序累加的算法时,误差限随着N的增大而增大,可见在累加的过程中,误差在放大,造成结果的误差较大。因此,采取从小到大的顺序累加得到的结果更加精确。

2.Chapter 2

2.1题目

(1)给定初值x0及容许误差?,编制牛顿法解方程f(x)=0的通用程序。

3(2)给定方程f(x)?x3?x?0,易知其有三个根x1???3,x2??0,x3??3

○1由牛顿方法的局部收敛性可知存在??0,当x0?(??,Newton迭代序列收敛??)时,于根x2*。试确定尽可能大的δ。

○2试取若干初始值,观察当x0?(??,?1),(?1,??),(??,??),(?,1),(1,??)时Newton序列的收敛性以及收敛于哪一个根。

(3)通过本上机题,你明白了什么?

2.2程序

??(??)函数m文件:fu.m function Fu=fu(x) Fu=x^3/3-x; end 用Newton法求根的通用程序Newton.m clear; x0=input('请输入初值x0:'); ep=input('请输入容许误差:'); flag=1; while flag==1 x1=x0-fu(x0)/dfu(x0); if abs(x1-x0)

x0=x1; end fprintf('方程的一个近似解为:%f\\n',x0); m=0; flag1=1; while flag1==1 && m<=10^3 x1=x0-fu(x0)/dfu(x0); if abs(x1-x0)=ep flag=0; end end fprintf('最大的sigma值为:%f\\n',sigma); 寻找最大δ值的程序:Find.m clear eps=input('请输入搜索精度:'); ep=input('请输入容许误差:'); flag=1; k=0; x0=0; while flag==1 sigma=k*eps; x0=sigma; k=k+1; 2.3运行结果

(1)寻找最大的δ值。

算法为:将初值x0在从0开始不断累加搜索精度eps,带入Newton迭代公式,直到求得的根不再收敛于0为止,此时的x0值即为最大的sigma值。运行Find.m,得到在不同的搜索精度下的最大sigma值。 >> Find 请输入搜索精度:10^-6 请输入容许误差:10^-6 最大的sigma值为:0.774597 >> Find 请输入搜索精度:10^-4 请输入容许误差:10^-6 最大的sigma值为:0.774600 >> Find 请输入搜索精度:10^-2 请输入容许误差:10^-6 最大的sigma值为:0.780000 (2)运行Newton.m 在(?∞,?1)内取初值,运行结果如下: X0 -1000 -500 -100 -10 -5 -2.5 -1.5 Xk -1.732051 -1.732051 -1.732051 -1.732051 -1.732051 -1.732051 -1.732051 !-

可见,在(?∞,?1)区间内取初值,Newton序列收敛,且收敛于根?√3。

在(?1,?δ)内取初值,运行结果如下: X0 Xk -0.95 -0.85 -0.8 -0.774598 1.732051 1.732051 1.732051 1.732051 可见,在(?1,?δ)内取初值,Newton序列收敛,且收敛于根√3。 在(?δ,δ)内内取初值,运行结果如下: X0 Xk -0.774596 -0.55 -0.35 -0.15 0.05 0.25 0.45 0.65 0.774596 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 可见,在(?δ,δ)内取初值,Newton序列收敛,且收敛于根0。 在(δ,1)内取初值,运行结果如下: X0 Xk 0.774598 0.8 0.85 0.95 -1.732051 -1.732051 -1.732051 -1.732051 可见,在(δ,1)内取初值,Newton序列收敛,且收敛于根?√3 在(1,+∞)内取初值,运行结果如下: X0 Xk 1.5 2.5 5 10 100 500 1000 1.732051 1.732051 1.732051 1.732051 1.732051 1.732051 1.732051 可见,在(1,+∞)内取初值,Newton序列收敛,且收敛于根√3

3.Chapter 3

3.1题目

对于某电路的分析,归结为求解线性方程组RI=V,其中

9zjy96hzbi9ersa9pruq6ksx797jw500woy
领取福利

微信扫码领取福利

微信扫码分享