数值分析上机实验1.docVIP

数值分析上机实验1.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  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文档。上传文档
查看更多

实验报告

求解方程迭代法实验(数值计算方法,4学时)

一实验目的

掌握方程迭代法思想,会用Aitken法、牛顿法、弦截法求解方程。

二实验内容

1用下列方法求方程附近的根,要求准确到四位有效数字。

(1)牛顿法。(2)单点弦截法(1、2班)。(3)双点弦截法(3、4班)。

2用Aitken法求方程在附近的根,精度要求为。

三实验步骤(算法)与结果

(1)a牛顿法:

#includestdio.h

#includemath.h

intmain()

{

floatx=2.0,y=0,g,g1;

floatfunction1(float);

floatfunction2(float);

do{

y=x;

g=function1(x);

g1=function2(x);

x=x-(g/g1);

printf(%.4f\n,x);

}while(fabs(x-y)0.5*0.001);

}

floatfunction1(floatx)

/*x3-3x-1=0*/

{

floatf1;

f1=pow(x,3)-3*x-1;

returnf1;

}

floatfunction2(floatx)

{

floatf2;

f2=3*pow(x,2)-3;

returnf2;

}

得出X=1.879

单点弦截法:

#includestdio.h

#includemath.h

main()

{

floatx=2,x1=1.9,x2,a,f,f1;

floatfunction(float);

do{

f=function(x);

f1=function(x1);

a=(f1-f)/(x1-x);

x2=x1-f1/a;

x1=x2;

printf(Therootis%0.4f\n,x2);

}while(fabs(f1/a)0.5*0.001);

return0;

}

floatfunction(floatx)

{floatg;

g=pow(x,3)-3*x-1;

returng;

}

得出x=1.879

双点弦截法:

#includestdio.h

#includemath.h

intmain()

{

floatx0=2.0,x1=1.9,x,y,a,b;

floatfunction(float);

do{

a=function(x0);

b=function(x1);

x=x1;

x1=(x0*b-x1*a)/(b-a);

x0=x;

printf(%.4f\n,x1);

}while(fabs(x1-x0)0.5*0.001);

return0;

}

floatfunction(floatx)

/*x3-3x-1=0*/

{

floatf1;

f1=pow(x,3)-3*x-1;

returnf1;

}

得出x=1.879

用Aitken法求方程在附近的根:

#includestdio.h

#includemath.h

main()

{floatx=1.5,x0,y,z,a;

floatfunction(floatx);

do{

x0=x;

y=function(x0);

z=function(y);

a=(z-y)/(y-x);

x=1/(1-a)*(y-a*x);

printf(Therootis%0.4f\n,x);

}while(fabs(x0-x)0.5*0.0001);

return0;}

floatfunction(floatx)

/*将方程f=pow(x,3)-pow(x,2)-1=0化为g=x*/

{floatg;

g=sqrt(pow(x,3)-1);

returng;

}

得出x=1.465

四收获如下:

在编程过程中,掌握和巩固了和牛顿迭代法、单点弦截法、双点弦截法和Atiken的知识以及运用;

温习了C语言的编程语法及加深其应用;

3、通过编程,认识到了自己的不足,用Aitken法得出的结果有待改善。

文档评论(0)

132****1393 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档