分法牛顿迭代法普通迭代法

分法牛顿迭代法普通迭代法

ID:29717407

大小:138.50 KB

页数:10页

时间:2018-12-22

分法牛顿迭代法普通迭代法_第1页
分法牛顿迭代法普通迭代法_第2页
分法牛顿迭代法普通迭代法_第3页
分法牛顿迭代法普通迭代法_第4页
分法牛顿迭代法普通迭代法_第5页
资源描述:

《分法牛顿迭代法普通迭代法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、数值球根试验报告《数值计算方法》专业班级软件08-1姓名熊文成学号08083117时间2010年10月24日星期天一、实验目的熟悉二分法以及牛顿迭代法求方程近似根的数值方法,掌握各种迭代方法,自己扩张研究迭代法的效率与收敛性和初始值的关系。二、实验内容1.已知在上有一个实根,,用二分法和牛顿迭代法求该实根,要求精度满足条件:。2.条件允许的话,扩展研究各种迭代法的效率,以及迭代的效率和收敛性与初始值的关系,并通过比较采用两点加速的方法与普通的方法的效率体验加速迭代的优点。总而言之,本实验中的用到的求根方法有①二分法,②牛顿迭代法,

2、③迭代函数为的迭代方法,以及④对函数采用两点加速迭代的方法。三、主函数流程程序是按顺序运行的,流程图如下图所示:一、源程序#include#include#include//根据x的值计算函数值//函数f(x)=x*x*x+4*x*x-10doublefunc(doublex){doublevalue;value=x*x*x+4*x*x-10;returnvalue;}//根据参数x的值计算函数f(x)的导数值doubledivFunc(doublex){return3*x*x+

3、8*x;}//二分法计算方程f(x)=0在[1,2]上的跟//二份迭代结束条件由参数precision精度给出voidbiSectionMethod(doubleprecision){intk=0;//均分次数doublex1=1.0,x2=2.0;//区间[1.0,2.0]doublemidx;//二分之后的值printf("tk有根区间k+1f(x(k+1))");do{printf("t%3d",k);printf("[%.3f,%.3f]",x1,x2);midx=(x1+x2)/2;printf("%f",m

4、idx);printf("%.6f",func(midx));if(func(midx)<0)x1=midx;elsex2=midx;k++;if(k%3==0)//每次输出4个等用户审查getch();}while(x2-x1>=precision);//区间的长度超过5e-3就一直迭代printf("t二分法分区间的次数:%d,所求的根是:%lf",k-1,x2);}//牛顿迭代法//根据初值值x0,在区间[1.0,2.0]上迭代求根//迭代次数由参数precision精度决定voidNewTonMethod(doubl

5、ex0,doubleprecision){intk=0;//迭代次数doublex1,x2=x0;printf("tkx(k)f(x(k))

6、x(k+1)-x(k)

7、");do{printf("t%2d",k);printf("%.6f",x2);printf("%.6f",func(x2));x1=x2;x2=x2-func(x1)/divFunc(x1);if(x2-x1>0)printf("%.6f",x2-x1);//输出两次迭代的差值elseprintf("%.6f",x1-x2);k++;if(k%3==0

8、)//每次输出4个等用户审查getch();}while(x2-x1>precision

9、

10、x1-x2>precision);printf("t牛顿迭代初值:%lf,次数:%d,所求的根是:%lf",x0,k-1,x2);}//迭代函数g(x)=(sqrt(10-x*x*x))/2;doublefuncTwo(doublex){return(sqrt(10-x*x*x))/2;}//普通迭代函数voidordinaMethod(doublex0,doubleprecision){intk=0;//迭代次数doublex1,x

11、2=x0;printf("tkx(k)f(x(k))

12、x(k+1)-x(k)

13、");do{printf("t%2d",k);printf("%.6f",x2);printf("%.6f",func(x2));x1=x2;x2=funcTwo(x1);if(x2-x1>0)printf("%.6f",x2-x1);//输出两次迭代的差值elseprintf("%.6f",x1-x2);k++;if(k%3==0)//每次输出4个等用户审查getch();}while(x2-x1>precision

14、

15、x1-x2>prec

16、ision);printf("t普通迭代初值:%lf,次数:%d,所求的根是:%lf",x0,k-1,x2);}//使用两个跌代值的组合加速跌代//对迭代函数f(x)=(sqrt(10-x*x*x))/2的加速voidtwoValue(dou

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。