计算方法--牛顿法

上传人:博****1 文档编号:557057452 上传时间:2022-11-11 格式:DOCX 页数:6 大小:53.74KB
返回 下载 相关 举报
计算方法--牛顿法_第1页
第1页 / 共6页
计算方法--牛顿法_第2页
第2页 / 共6页
计算方法--牛顿法_第3页
第3页 / 共6页
计算方法--牛顿法_第4页
第4页 / 共6页
计算方法--牛顿法_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《计算方法--牛顿法》由会员分享,可在线阅读,更多相关《计算方法--牛顿法(6页珍藏版)》请在金锄头文库上搜索。

1、牛顿迭代法应用及运算一、实验问题1给定初值心及容许误差,编制牛顿法解方程/(%) = 0的通用程序。2.给定方程f(x) = 33-x = 0,易知其有三个根書=-V3,%2 = 0,%; = V3 由牛顿方法的局部收敛性可知存在50,当尤0(厲+5)时,Newton迭 代序列收敛于根巧,试确定尽可能大的5。 试取若干初始值,观察当心 G (m, 1), (1, S), (S, +S), (S, 1), (1, +m) 时 Newton 序列的收敛性以及收敛于哪一个根。二、实验原理构造迭代函数的一条重要途径,是用近似方程来代替原方程去求根。因此 如果能将非线性方程f(x) = 0用线性工程来代

2、替,那么求近似根问题就很容易解 决,而且十分方便。牛顿法就是把非线性方程线性化的一种方法。设耳是f(x) = 0的一个近似根,扌把f(x)在耳处作一阶泰勒级数展开,即 f(x) - f(xj+ f,(xk)(x 叫) 于是我们得到近似方程/(%)+()(%-%)= 0设广(叫)工0,则上式解为户(叫)可以得到牛顿迭代法的公式为f(xjX= x k+1k户(叫严0,1SJ已知无0,就可以用牛顿迭代法的公式进行迭代运算,直到可以得到近似结果。判断牛顿法的局部收敛性,需要考虑单根和双根两种情况:牛顿法的迭代函数为申(x) = x 保广(光)2对申(x)求导得 0(x) = 1 d)= fJfg()2

3、(ff(x)2f(x)fgx)(/心)2=f,(x)y(Q(/心)2f(x)y(Q(/心)2i当x*是才仗)=0的单根时,则有f(x) = (x x*)g(x),且g(x*) H 0.这时ff(x) = g(x) (x x*)g(x)且ff(x*) = g(x*) H 0于是0(x*) =(*)(*)= 0,ff(x*) = f(x*(ff(x*)2ff(x*)半的有ff(x*) H 0。因而牛顿法对单根至少是二阶局部收敛的;ii.当 x* 是 f(x) = 0 的 m(m 2)重根时,则有 f(x) = (x x*mg(),且 g(x*) H 0这时(X X*)mg(x),fr(x) = m

4、(x X*)mlg(x)(x X*)mgr(x)()=f (x) = X x fr(x) X m(x x*)mig(x) (x X*)mgr(x)(x x*)g(x),mg (%)(x x*)gf(x)所以(x*) - lim(x) - x*XX *(x x*)g(x)/ 、7. (x) (x*)mg(x)(x x*)gr(x)f(x*) lim limxx *X X*xx *g(x)x X*=limXX *1 mg(x) (x x*)gr(x)牛顿法对m(m 2)重根是一阶局部收敛的总结:不论单根还是重根均是局部收敛的。只要初值足够靠近肝,牛顿迭代序列均收敛于疋三、编程、求编制牛顿法解方程/

5、(%) = o的通用程序的流程图如下:分三个脚本实现牛顿法;用 fu 脚本和 dfu 脚本分别表示原函数和原函数的 导数,用 newton 脚本实现牛顿法求近似根。ifu 脚本程序如下:function Fu=fu(x)Fu=xA3/3-x;endiidfu 脚本程序如下:function Fu=dfu(x)Fu=xA2-1;EndiiiNewton 脚本程序如下:clear;x0=input(请输入初值X0);ep=input(请输入容许误差);flag=1;while flag=1x1=x0-fu(x0)/dfu(x0);if abs(x1-x0)epflag=0;end x0=x1;en

6、dfprintf(方程的一近似解为%fn,x0);运行newton之后,在命令行窗口输入x0=3,容许误差ep=0.01如下图:其有三个根%1 = V3, = , = V3,其中V3 u 1.7320508076 ,即求得一个大于0的近似根。结果符合预期。求5的尽可能大的值的时候,需要用的新的脚本(定义为cout.m)cout 脚本的源程序如下:clear;/清除变量eps=input(请输入搜索精度); ep=input(请输入容许误差);flag=1;k=0;x0=0;while flag=1sigma=k*eps;x0=sigma;k=k+1;m=0;flag1=1;while flag

7、1=1 &m=10A3 x1=x0-fu(x0)/dfu(x0);if abs(x1-x0)=ep flag=0;endendfprintf(最大的 sigma 值为 %fn,sigma);输入搜索精度1和容许误差0.1时得到sigma的值为1.000000(未求得根x0的值)名称基值sigma1xONaNxlNaN输入搜索精度0.1和容许误差0.01时得到sigma的值为0.8000000借eP0.0100eps0.1 oooflanatz flagl0k9m8sigma0.8000xO1.7321x11.7321当不断提高搜索精度和容许误差时0值相对更小如下表所示:0搜索精度容许误差5x0

8、,x110.11.000000NaN0.10.010.8000001.73210.010.0010.7800001.73210.0010.00010.7750001.73210.00010.000010.774600-1.73210.000010.0000010.774600-1.73210.0000010.00000010.7745971.7321当w (-8,-1)时,Newton序列收敛于叫=V3。当w (-1,-5)时,Newton序列收敛于 = V3。当尤0 w (-3, +3)时,Newton序列收敛于勺=0。当尤0 w (8,1)时,Newton序列收敛于咛=一73。当尤0 w

9、(1,+8)时,Newton序列收敛于 = V3O都满足局部收敛性. n亡毗an请输人初fixO-3 请揄人容说误差工01 方程的个近似解対-1. newton请输入初值5 谙输人容许误差0. 0L 方程萊一个近似解艾CU newton netanit输人初值kO-O. S5 请瑜人容忤误差0. 01 方程的一个近似解为1. 732081 newton请输A初值sOO, 5请輸八宕许误差0. 01方程的一个近他解为-心000000 newton请输A初1x03请輸八言专误差0. 01方程的一个近僦舞为1, 732051诗输人初值工00. 85 诗箱1.人容iT咲羞0. 01 方程的一个近似解为-1.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号