数值计算方法上机实习题.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
........ .. . .. . .. .专业学习资料. . 专业学习资料 . 设I  1 xn dx 数值计算方法上机实习题 ,n 0 5 x , 由递推公式I n 5I 1 n 1 n ,从 , I 0 =0.1823出发,计算I ; 20 I  =0 , I  =10000 , 用I 1 I 1 ,计算I ; 20 20 n 1 5 n 1 5n 0 由I 0 计算 I20 由I 20 计算 I0 递推子程序: function f=fib(n,i) if n=1 f=fib(n-1,i)*(-5)+(1/(n)); elseif n==0 f=i; end 计算和显示程序: I=0.1824; I1=0.1823; fib1=fib(20,I); fib2=fib(20,I1); fprintf(I_0=0.18时24,I_20=%d\n,fib1); fprintf(I_0=0.18时23,I_20=%d\n,fib2); 计算结果显示: I_0=0.1824 时,I_20=7.480927e+09 I_0=0.1823 时,I_20=-2.055816e+09 程序: n=21; i1=0; i2=10000; f1=i1; f2=i2; while n~=0; f1=f1*(-1/5)+(1/(5*n)); f2=f2*(-1/5)+(1/(5*n)); n=n-1; end fprintf(I_20=0 时,I_0=%4.8f\n,f1); fprintf(I_20=1000时0 ,I_0=%4.8f\n,f2); 计算结果显示: I_20=0 时,I_0=0I_20=10000 时,I_0=0分析结果的可靠性及产生此现象的原因(重点分析原因)。答:第一个算法可得出 易知第一个算法每一步计算都把误差放大了 5 倍,n 次计算后更是放大了 5n 倍,可靠性低。 第二个算法可得出 可以看出第二个算法每一步计算就把误差缩小5 倍,n 次后缩小了 5n倍,可靠性高。 求方程ex 10x 2 0 的近似根,要求x k 1 x 5 10 4 ,并比较计算量。 k 在[0,1]上用二分法; [0,1]上的二分法 二分法子程序: function [root,n]=EFF3(f,x1,x2) % 第二题(1)二分法f1=subs(f,symvar(f),x1)函;%数在 x=x1 的值f2=subs(f,symvar(f),x2);%x=x2 n=0;% 步数er=5*10^-4;% 误差if(f1==0) root=x1; return; elseif(f2==0) root=x2; return; elseif(f1*f20) 计算根与步数程序: fplot(@(x) exp(x)+10*x-2,[0,1]); grid on; syms x; f=exp(x)+10*x-2; [root,n]=EFF3(f,0,1); fprintf(root=%6.8f ,n=%d \n,root,n); 计算结果显示: disp(两 端点函数值乘积大于 0!); return; else while(abs(x1-x2)er)%循环 x3=(x1+x2)/2; f3=subs(f,symvar(f),x3); root=0,n=11 n=n+1; n=n+1; if(f3==0) root=x3; break; elseif(f1*f30) x1=x3; else x2=x3; end end root=(x1+x2)/2;%while循环少一步需加上 end 取初值x 0 0 ,并用迭代x k 1 2 ex ; 10 (2) (2) 初值 x =0 迭代 0 计算根与步数程序: 迭代法子程序: function [root,n]=DDF(g,x0,err,max) ( 接 下页) %root 根,n+1 步数,g 函数,x0 初值,err 误 差,max 最大迭代次数X(1)=x0; for n=2:max X(n)=subs(g,symvar(g),X(n-1)); c=abs(X(n)-X(n-1)); root=X(n); if(cerr) break; end if n==max disp(超 出预设迭代次数); end end n=n-1;% 步数减 1 syms x; f=(2-exp(x))/10(; 接下页) x0=0; err=5*10^(-4); max=100; [root,n]=DDF(f,x0,err,max); fprintf(root=%6.8f ,n=%d \n,root,n); 计算结果

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

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

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档