收藏 分享(赏)

实验五__牛顿迭代法.ppt

上传人:11xg27ws 文档编号:4619523 上传时间:2019-01-05 格式:PPT 页数:14 大小:335KB
下载 相关 举报
实验五__牛顿迭代法.ppt_第1页
第1页 / 共14页
实验五__牛顿迭代法.ppt_第2页
第2页 / 共14页
实验五__牛顿迭代法.ppt_第3页
第3页 / 共14页
实验五__牛顿迭代法.ppt_第4页
第4页 / 共14页
实验五__牛顿迭代法.ppt_第5页
第5页 / 共14页
点击查看更多>>
资源描述

1、实验五 牛顿迭代法,【实验目的】 1.了解牛顿迭代法的基本概念. 2.了解牛顿迭代法的收敛性和收敛速度。 3.学习、掌握MATLAB软件有关的命令。 【实验内容】 用牛顿迭代法求解方程 的近似根,误 差不超过10-3。,【实验准备】 1.牛顿迭代法原理设已知方程 的近似根 ,则在 附近 可用一阶泰勒多项式 近似代替。因此,方程 可近似表示为 。用 近似表示 根差异不大。设 ,由于 满足 ,解得重复这以过程,得到迭代格式 这就是著名得牛顿迭代公式,它相应的不动点方程为,3.牛顿迭代法的收敛性计算可得 ,设 是 的单根,有 , 则 故在 附近,有 。根据不动点原理知牛顿迭 代法收敛。 4.牛顿迭代

2、法的收敛速度 定理(牛顿法收敛定理)设 在区间 上有二 阶连续导数,且满足 , 在 上不变号, 在a,b上不等于0,令,有 ,则对任意 ,牛顿迭代格式收敛于 在 中的唯一实根 ,且, 牛顿迭代法为二阶收敛。对不动点方程 ,它导出的迭代过程有可能发散,也可能收敛得非常缓慢。这时,我们有没有办法改进不动点方程,让迭代过程收敛得快一些呢?,迭代过程的加速,(1)一个简单办法 注意到 和 都是不动点方程,它们的加权平均也是不动点方程,而且 和 有完全相同的不动点。适当选取 的值,可以使发散的迭代过程变得收敛,使收敛慢的迭代过程变得收敛迅速。 (2)加速的原因 在下面的实验中我们可以看到, 在不动点 附

3、近的导数值在很大程度上决定了迭代过程的收敛性。 的绝对值越小,收敛性越好。因此,选择 使得 。计算得到理想的 值为 ,相应可计算出,(1)一个简单办法 注意到 和 都是不动点方程,它们的加权平均也是不动点方程,而且 和 有完全相同的不动点。适当选取 的值,可以使发散的迭代过程变得收敛,使收敛慢的迭代过程变得收敛迅速。 (2)加速的原因 在下面的实验中我们可以看到, 在不动点 附近的导数值在很大程度上决定了迭代过程的收敛性。 的绝对值越小,收敛性越好。因此,选择 使得 。计算得到理想的 值为 ,相应可计算出,(3) 的选取 由于理想的 值为 ,当变化不大时,可以取 近似计算 。 (4)回到牛顿迭

4、代法的讨论 为求解方程 ,可以使用不动点方程 ,相应的迭代函数为 对 进行加速所以,牛顿迭代法是对基本迭代格式进行加速的结果。 5.迭代的MATLAB命令MATLAB中主要用for,while等控制流命令实现迭代。,练习 1 用牛顿迭代法求方程 在附近的近似根,误差不超过10-3 。,牛顿迭代法的迭代函数为:,练习2 用牛顿迭代法求方程 的近似正实根,由此建立一种求平方根的计算方法。 由计算可知,迭代格式为 ,在实验12的练习4中已经进行了讨论。 练习3 用牛顿迭代法求方程 的正根。 牛顿迭代法的迭代函数为如果取初值为 ,相应的MATLAB代码为(运行),clear x=0; for i=1:

5、6x=x-(x*exp(x)-1)/(x+1)*exp(x) end可得迭代数列前6项为1.0000 ,0.6839, 0.5775 0.5672, 0.5671,0.5671,说明迭代实收敛的。 如果取初值为10,相应的MATLAB代码为 clear; x=10.0; for i=1:20x=x-(x*exp(x)-1)/(x+1)*exp(x)y(i)=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.74

6、53,0.5902 0.5676 , 0.5671 ,0.5671 , 0.5671 , 0.5671, 0.5671 , 0.5671,说明迭代是收敛的。如果取初值 或 ,可算得迭代数列是发散 的,根据函数图形分析原因。 练习4 求方程 在 附近的根,精确到10-5先直接使用 的迭代格式,相应的MATLAB代码为 n=0;esp=1.05e-5;x=0.5; while abs(x-exp(-x)espx=exp(-x);n=n+1; end x,n(运行) 结果为x=0.5671,n=17,说明迭代17次后达到精度要求。,可算得迭代数列的前20项为9.0909 ,8.1900 7.2989

7、 , 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,说明迭代是收敛的。如果取初值 或 ,可算得迭代数列是发散 的,根据函数图形分析原因。 练习4 求方程 在 附近的根,精确到10-5先直接使用 的迭代格式,相应的MATLAB代码为 n=0;esp=1.05e-5;x=0.5; while abs(x-exp(-x)espx=exp(-x);n=n+1; end

8、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)epsx=0.625*exp(-x)+0.375*x;n=n+1; end x,n 结果为0.5671,n=3,说明迭代三次后达到精度要求。 练习5 对练习中方程 ,用加快后的迭代格式求x=0.5附近的根,精确到10-5,计算 可得 ,相应的MATLAB代码为 n=0;eps=1.0e-5;x=0.5; while abs(x-(x+1)*exp(-x)/(1+exp(-x)epsx=(x+1)*exp(-x)/(1+exp(-x);n=n+1; end x,n 结果为x=0.5671,n=2,说明迭代2次后达到精度要求。,【实验作业】 1.用牛顿迭代法求方程 的近似根。 2.为求出方程 的根,在区间1,2内使用迭代函数进行迭代,记录迭代数据,问迭代是否收敛?对迭代进行加速,对比加速前的数据,比较加速效果。 3.使用在不动点 的泰勒公式,证明牛顿迭代法收敛定理。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 中学实验

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报