东南大学数值分析上机题作业MATLAB版..docx

东南大学数值分析上机题作业MATLAB版..docx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
东南大学数值分析上机题作业MATLAB版.

上机作业题报告 1.Chapter 11.1题目设,其精确值为。(1)编制按从大到小的顺序,计算SN的通用程序。(2)编制按从小到大的顺序,计算SN的通用程序。(3)按两种顺序分别计算,并指出有效位数。(编制程序时用单精度)(4)通过本次上机题,你明白了什么?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);endfor i=N:-1:2 Sns2l=Sns2l+1/(i*i-1);endfprintf('精确值为: %f\n',Ac);fprintf('从大到小的顺序累加得SN=%f\n',Snl2s);fprintf('从小到大的顺序累加得SN=%f\n',Sns2l);disp('========================================================');1.2程序>> P20T17请输入N值:10^2精确值为: 0.740049从大到小的顺序累加得SN=0.740049从小到大的顺序累加得SN=0.740050============================================================>> P20T17请输入N值:10^4精确值为: 0.749900从大到小的顺序累加得SN=0.7498521.3运行结果从小到大的顺序累加得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 22.1题目(1)给定初值及容许误差,编制牛顿法解方程f(x)=0的通用程序。(2)给定方程,易知其有三个根由牛顿方法的局部收敛性可知存在当时,Newton迭代序列收敛于根x2*。试确定尽可能大的。试取若干初始值,观察当时Newton序列的收敛性以及收敛于哪一个根。(3)通过本上机题,你明白了什么?2.2程序函数m文件:fu.mfunction Fu=fu(x)Fu=x^3/3-x;end函数m文件:dfu.mfunction Fu=dfu(x)Fu=x^2-1;end用Newton法求根的通用程序Newton.mclear;x0=input('请输入初值x0:');ep=input('请输入容许误差:');flag=1;while flag==1 x1=x0-fu(x0)/dfu(x0); if abs(x1-x0)<epflag=0; endx0=x1;endfprintf('方程的一个近似解为:%f\n',x0);寻找最大δ值的程序:Find.mcleareps=input('请输入搜索精度:');ep=input('请输入容许误差:');flag=1;k=0;x0=0;while flag==1 sigma=k*eps;x0=sigma; k=k+1; m=0; flag1=1; while flag1==1 && m<=10^3 x1=x0-fu(x0)/dfu(x0); if abs(x1-x0)<ep flag1=0; end m=m+1; x0=x1; end if flag1==1||abs(x0)>=ep flag=0; endendfprintf('最大的sigma值为:%f\n',sigma);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请输入

文档评论(0)

kakaxi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档