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

上传人:无*** 文档编号:31425818 上传时间:2021-10-11 格式:DOCX 页数:12 大小:152.94KB
收藏 版权申诉 举报 下载
二分法牛顿迭代法普通迭代法_第1页
第1页 / 共12页
二分法牛顿迭代法普通迭代法_第2页
第2页 / 共12页
二分法牛顿迭代法普通迭代法_第3页
第3页 / 共12页
资源描述:

《二分法牛顿迭代法普通迭代法》由会员分享,可在线阅读,更多相关《二分法牛顿迭代法普通迭代法(12页珍藏版)》请在装配图网上搜索。

1、The School of Compuier and Comunicalion Enyiwlng数值球根试验报告数值计算方法专业班级 软件08-1姓 名熊文成学 号 08083H7时 间2010年10月24日星期天实验目的熟悉二分法以及牛顿迭代法求方程近似根的数值方法,掌握各种迭代方法,自 己扩张研究迭代法的效率与收敛性和初始值的关系。实验内容1.已知f(X)=xJ +4X2 -10 =0在1, 2上有一个实根xf(l)=_5, f(2)=14,用二分法和牛顿迭代法求该实根,要求精度满足条件.?灯0。*222.条件允许的话,扩展研究各种迭代法的效率,以及迭代的效率和 收敛性与初 始值的关系,并

2、通过比较采用两点加速的方法与普通的方法的效率体验加速迭代的优 点。总而言之,本实验中的用到的求根方法有二分法,牛顿迭代法, 迭代函数为护(X) J2的迭代方法,以及对函数2(XUr(10 X)半 W 3 2采用两点加速迭代的方法。主函数流程四、源程序#include #include #include 根据x的值计算函数值函数 f (x)=x*x*x+4*x*xT0 double func(double x) (double value;value=x*x*x+4*x*x-10;return value; 根据参数x的值计算函数f(x)的导数值 double divFunc(double x)

3、 (return 3*x*x+8*x; 二分法计算方程f (x) =0在1, 2上的跟/二份迭代结束条件由参数precision精度给出void biSectionMethod(double precision) int k=0;double xl=l. 0, x2=2. 0;/ 均分次数double midx;/ 区间1 . 0,printf (z/nt k 有根区间 do 2.0f(x(k+l) );/二分之后的值k+1printf (nt%3d, k); printf ( %. 3f, %. 3f,,xl,x2);midx=(xl+x2)/2;printf ( f, midx);prin

4、tf (%. 6f, func (midx);if (func(midx)=precision);/每次输出4个等用户审查/区间的长度超过5e-3就一直迭代printf (nt二分法分区间的次数:%d所求的根是:%lf,b1, x2);/牛顿迭代法根据初值值xO,在区间1.020上迭代求根迭代次数由参数precision精度决定void NewTonMethod(double xO,double precision)int k=0; double xl, x2=x0;/ 迭代次数printf (,znt k x (k)do printf Cnt%2dz,, k) ; printf (,z f

5、(x(k) |x(k+l)x(k) |z,): %. 6f,x2);printf (%. 6f,func (x2);xl=x2;x2=x2-func(xl)/divFunc(xl);if (x2-xl0) printf(,z else printf( k+;if (k%3=0)%.6f,x2-xl); /输然两族输的惟个等用户审查getchO ;值 %. 6f,xl-x2); while (x2-xlprecision | xl-x2precision) ; printf (z,nt 牛顿迭代初值:%lf 次数:%(1所 求的根是:%lfz; x0, k-l,x2):)/ 迭代函数 g(x)

6、= (sqrt (10-x*x*x)/2; double fun cTwo (double x) return (sqrt (10-x*x*x)/2; )/普通迭代函数void ordinaMethod(double xO,double precision) int k=0;/迭代次数double xl, x2=x0;printf (,znt k x(k)f (x(k) |x(k+l)-x(k) | );do printf (nt%2d,k) ; printf (z,%. 6f,x2) ; printf C %. 6f,func (x2);xl=x2; x2=funcTwo(xl) ; if

7、(x2-xl0) printf (z/ else printf (z,k+; if (k%3=0) getchO ; while (x2-xlprecision xl-x2precision);printf (nt普通迭代初. 6f, x2-xl); 输出两次迭代的差值值:%lf次数:d所求的根%. 6f,xl-x2);是:%xO, k-l, x2);/每次输出4个等用户审查/使用两个跌代值的组合加速跌代/ 对迭代函数 f (x) = (sqrt (10-x*x*x)/2 的加速 void twoValue (double xO, double precision) int k=0;/迭代次数

8、double xl,x2=x0;printf (,znt k x(k)f (x (k)|x(k+l)-x(k) | );do (printf(nt%2d,k);printf (%. 6f, x2);printf (%. 6f,z, func (x2);xl=x2;x2= (funcTwo(xl)+xl)/2;if (x2-xl0)printf C %. 6f,x2-xl);输出两次迭代的差值else printf (,z%. 6f, xl-x2);k+; if (k%3=0) getchO ; while (x2-xlprecision | xl-/每次输出4个等用户审查x2precision

9、);printf Cznt 两点加速迭代初值:If,次数:*根: If ,x0, k, x2); )void main () double orgin=l. 5;/ 初始值double precision=5e-6; / 精度 char sel=0; / 操作符while (1)printf (z/nt 选择:);printf (ntl.二分法 nt2.迭代法 nt); sel=getch();printf Cnnt注:程序停止处按任意键继续); if (sei二二1)printf (/znnt*二分法求解过程*biSectionMethod(precision);)/测试函数elseprin

10、tf (/znt输入迭代的初 值 :);scanf(lf, &orgin);/if (orgin2. 0| |orgin 数值程序停止处按任意犍继续WKHXMHWWWWMH i 井?主求解过程 MWHMHHMWHMW012345&7891011121314151617有根区间 fl - 000. 2 0001 1. 000. 1. 500 r.25O, 1. 500J 1-250, 1. 3751 i-313, i-375 r.344, .37S 1-359, 1. 3751 i. 359, i, 367 .363, 1.367 1-363, 1. 365 i. 364, 1. 365 tl-

11、3bS,1-36S i-365, 1. 365 i. 365, 1. 365 1-365, 1-365 i-365, 1. 365 1. 365, 1. 365 J 1-365, 1-365k+11. 5000001. 2500001. 375000 13125001. 343750 1-359375 1367188 1-3632811.365234 1-364258 1-364744 1, 364990 1.3651121-3651731. 365204 1365219 1-3652271. 365231二分任何:八塞间的次数所求的根是必fxk+l 2.375000 -1-796875 0.

12、162109 -0.848389 -0-350983 -0. 09409 0. 032356 -0.032150 0.000072 -0. 016047 -0.007989 -0.003959 -0.001944 -0.000936 -0. 000432 -0.000180 -0.000054 0. 90000?选择迭代法查看结果:首先显示的是牛顿迭代法的结果:土击鬲:出牛dz母dd薛e123x1. 1000031. 408045i. 3&ei3i1. 36S2301 石/厂肝心土-3.829000 0-7219410. 0143950. 0Q00060. 3090450. 0419440.

13、000710. 00000Q牛顿迭代初值 任何键继续:1B00Q0,次数 所求的根是,1365230然后是普通迭代法函数是:()弓1。3尸,结果如下:*普通迭代 st 灯内 x*xx /2*wQ 12 3 4 S6 7S91011121314151617x1. 1000001. 4721581. 3047481-3945291. 3498191.3730091.3612191.3672761. 3641811-3657671. 3649551. 3653711-3651581. 3652671.3652111. 3652401-3652251. 365233fCxk-3. 829000 1.8

14、59535-0.9693770. 490794-0.252569 0_128947-0. Q&ei08 0. 033820-0. 017321-0. 004539 0.002324-0.3011900. 000609-0. 0003120. 000160-0. 0000820. 000042ix-xCk i0. 3721580 16741i0, 0897810. 0447100.Q231900.0117900.0060570. 00309 石0.0015860.0008120. 0004160. 0002130. 00010?0.Q00Q560.0000290. 0009150. Q00Q07

15、0.000004血:通迭代初值二1T00000,次数汽二所求的根是a-365229 件何犍继续:1 J接着可以看到的是用两点加速法对函数护(X)=_L(1O-%3)2的力口速: 2两个值组合加速迭代XK中X +X /21. 1000001. 2860791. 344503 1-3600721. 3639651. 3649211, 3651551. 365212-3.8290001. 2568270. 3387970. 0849550. 0208730.0051020, 0012460. 0003040. 000074!x-x! 0*6079 0. 058424 0. 015569 003 即

16、3 0. 000956 0. 000234 0. 000057 0. 000014 0. 000003下面采用不同的初值查看普 通迭代函数的收敛性与效 率:各个结果如下:g通迭代和值二1. 20眄00叫次数二17-所求的根是次.盹吕22号上图对应的是收敛性:收敛的。JUJZ.匕 rcrmcrermn-上图收敛的,且速度比上面的要快。昔通迭代初值:他1.回豳盹叫次数:孔所求的根是:-1 - tn ND腼上图对应的是收敛性:发散的。六、结论与分析从以上的程序可以看出一下几点结论1二分法和迭代法均能解出方程的根。、一般地看来,牛顿迭代法的效率较普通迭代法的要高,两点加速迭代法能加速一般迭代法。3、 迭代法对初值是敏感的,若初值选择的不合适可能导致迭代的效率1很低,甚至是发散的。例如,对于函数W仪)=_L(1073严形成的迭代,2当选取初值X。=10时,因为9 (10)是没有意义的,这样就导致了迭代 的停止或发 散。七、收获与感想学到了:本次实验在课堂的基础上熟练掌握了二分法和各种迭代法的具体步 骤,感受了牛顿迭代法的方便,深刻体会到了两点加速迭代的效率,理解了初始值对 迭代法的效率和收敛性的影响。感受:本次实验进度比较慢,在和其他课程不冲突的情况下,我用课余时间完成了本次实 验,以后在学习的各个方面不能在落在后面,尽量让自己早的完成作业。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!