计算方法实习报告.docVIP

  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文档。上传文档
查看更多
5.29.2004 PAGE PAGE 1 一.给出一个有效的算法和无效的算法计算积分 y(n)=∫(x^n)/(4x+1)dx,n=0,1,2,…,10,积分限为(0,1) 有效算法 利用递推公式y(n)=-y(n-1)/4+1/(4n),取y0=(log5)/4 程序为:#includeiostream.h #includemath.h void main() { double y0,y1; y0=1/4.0*log(5.0); couty0=y0 ; for(int n=1;n=10;n++) { y1=-1.0/4.0*y0+1.0/(4.0*n); coutyn=y1 ; y0=y1; if(n%3==0) coutendl; } } 其结果为: y0=0.402359 y1=0.14941 y2=0.0876475 y3=0.0614215 y4=0.0471446 y5=0.0382138 y6=0.0321132 y7=0.027686 y8=0.0243285 y9=0.0216957 y10=0.0195761 Press any key to continue 无效算法 利用递推公式y(n-1)=-4y(n)+1/n, 又由广义积分中值定理可得y(n)=1/((4n+1)(4ζ+1)), ζ∈(0,1),则1/(5(n+1))y(n)1/(n+1), 所以可取y(n)≈[1/(5(n+1))+ 1/(n+1)]/2=3/(5(n+1) 程序为:#includeiostream.h #includemath.h void main() { float y9,y10; y10=3.0 /55.0; couty10=y10 ; for(int n=9;n=0;n--) { y9=-4.0*y10+1.0/(n+1); coutyn=y9 ; y10=y9; if(n%3==0) coutendl; } } 其结果为:y10=0.0545455 y9=-0.118182 y8=0.583838 y7=-2.21035 y6=8.98427 y5=-35.7704 y4=143.282 y3=-572.877 y2=2291.84 y1=-9166.86 y0=36668.4 心得体会 由有效算法与无效算法的结果可以知道:有效算法的误差的传递是逐步缩小的,而无效算法的误差的传递是逐步扩大的。因此有效算法是数值稳定的算法。 二.用牛顿法求下列方程lnx+x-2=0的根。 1.算法 给定初值X0,ε为根的容许误差,η为|F(X)|的容许误差,N为迭代次数的容许值。 (1).如果F(X0)的导数等于零或者迭代次数大于N,则算法失败,结束;否则执行2。 (2).计算X1=X0-F(X0)/F’(X0)。 (3).若|X1-X0|ε,或者|F(X1)|η,则输出X1,程序结束,否则执行4。 (4).令X0=X1,转向1。 2.程序 #includeiostream.h #includemath.h #define EPS 1e-8 #define ETA 1e-8 #define N 100 float f(float x) { return log(x)+x-2; } float f1(float x) { return 1+1/x; } void main() { float x1,x0=1.5,d; coutx0=x0 ; for(int i=0;i=N;) { if(f1(x0)==0) break; else x1=x0-f(x0)/f1(x0); d=(x1-x0); if(fabs(f(x1))ETAfabs(d)EPS) { coutx1endl; break; } else x0=x1; i++; coutxi=x0 ; while(i%3==0) coutendl; } coutThe root of the equation is x=x0endl; } 3.结果 x0=1.5 x1=1.55672 x2=1.55715 1.55715 The root of the equation is x=1.55715 4.心得体会 通过牛顿迭代算法的编

文档评论(0)

_______ + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档