217牛顿迭代法.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
217牛顿迭代法

PAGE  PAGE 5 实验十七 牛顿迭代法 【实验目的】 了解牛顿迭代法的基本概念。 了解牛顿迭代法的收敛性和收敛速度。 学习掌握MATLAB软件有关的命令。 【实验内容】 用牛顿迭代法求方程的近似根,误差不超过。 【实验准备】 1.牛顿迭代法原理 设已知方程的近似根,则在附近可用一阶泰勒多项式近似代替.因此, 方程可近似地表示为.用表示的根,它与的根差异不大. 设,由于满足解得 重复这一过程,得到迭代格式 这就是著名的牛顿迭代公式,它相应的不动点方程为 . 2. 牛顿迭代法的几何解析 在处作曲线的切线,切线方程为。令,可得切线与轴的交点坐标,这就是牛顿法的迭代公式。因此,牛顿法又称“切线法”。 图17.1 牛顿迭代法 3.牛顿迭代法的收敛性 计算可得,设是的单根,有,则 , 故在附近,有.根据不动点原理知牛顿迭代法收敛. 4.牛顿迭代法的收敛速度 定理(牛顿法收敛定理) 设在区间上有二阶连续导数,且满足,在上不变号, 在上不等于0,令 有.则对任意,牛顿迭代格式收敛于在中的唯一实根,并且: (1) (2) (3) ,牛顿迭代法为2阶收敛. 5.迭代过程的加速 对不动点方程,它导出的迭代过程有可能发散,也可能收敛得非常缓慢.这时,我们有没有办法改进不动点方程,让迭代过程收敛得快一些呢? 一个简单办法 注意到和都是不动点方程,他们的加权平均 也是不动点方程,而且与有完全相同的不动点.适当选取的值,可以使发散的迭代过程变得收敛,使收敛慢的迭代过程变得收敛迅速. (2)加速的原因 在下面的实验中我们可以看到,在不动点附近的导数值在很大程度上决定了迭代过程的收敛性.的绝对值越小,收敛性越好.因此,选择使得.计算得到理想的值为,相应可计算出. (3) 的选取 由于理想的值为,当变换不大时可以取近似计算. (4) 回到牛顿迭代法的讨论 为求解方程,可以使用不动点方程,相应的迭代函数为.对进行加速 , 所以,牛顿迭代法是对基本迭代格式进行加速的结果. 迭代的MATLAB命令 MATLAB中主要用for, while等控制流命令实现迭代. 【实验方法与步骤】 练习1 用牛顿迭代法求方程在附近的近似根,误差不超过. 牛顿迭代法的迭代函数?? , 相应的MATLAB代码为: clear; x=0.5; for i=1:3 x=x-(x^3+x^2+x-1)/(3*x^2+2*x+1) end 可算得迭代数列的前3项0.5455, 0.5437, 0.5437.近三次迭代,就大大超过了精度要求. 练习2用牛顿迭代法求方程.的近似正实根,由此建立一种求平方根的计算方法. 由计算可知,迭代格式为.,在实验12的练习4种已经进行了讨论. 练习3用牛顿迭代法求方程的正根. 牛顿迭代法的迭代函数为 如果取初值为,相应的MATLAB代码为: clear; x=0.0; for i=1:6 x=x-(x*exp(x)-1)/((x+1)*exp(x)) end 可算得迭代数列的前6项1, 0.6839, 0.5775, 0.5672, 0.5671, 0.5671,说明迭代是收敛的. 如果取初值为,相应的MATLAB代码为: clear; x=10.0; for i=1:20 x=x-(x*exp(x)-1)/((x+1)*exp(x)) end 可算得迭代数列的前20项为 9.0909, 8.1900, 7.2989, 6.4194, 5.5544, 4.7076, 3.8844, 3.0933, 2.3487, 1.6759, 1.1195, 0.7453, 0.5902, 0.5676, 0.5671, 0.5671, 0.5671, 0.5671, 0.5671, 0.5671 说明迭代是收敛的. 如果取初值为,或,可算得(MATLAB代码略去)迭代数列是发散的.请根据函数图形分析原因, 练习4求方程在附近的根,精确到. 先直接使用的迭代格式, 相应的MATLAB代码为: n=0; eps=1.0e-5; x=0.5; while abs(x-exp(-x))eps p(-x); n=n+1; end x, n 结果为x= 0.5671, n = 17,说明迭代17次后达到精度要求. 为加快收敛速度,用构造迭代格式,由实验的预备知识中可知取, 相应的MATLAB代码为: n=0; eps=1.0e-5; x=0.5; while abs(x-0.625*exp(-x)-0.375*x)eps x=0.625*exp(-x)+0.375*x; n=n+1; end x, n 结果为x= 0.5671, n = 3,说明迭代3次后达到精度要求.. 练习5对练习中方程,用加快

文档评论(0)

2017ll + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档