您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 解非线性方程组的牛顿迭代法
17.4牛顿法7.4.1牛顿法及其收敛性牛顿法是一种线性化方法,其基本思想是将非线性方程逐步归结为某种线性方程来求解.0)(xf设已知方程有近似根(假定),将函数在点展开,有0)(xfkx0)(kxf)(xfkx),)(()()(kkkxxxfxfxf于是方程可近似地表示为0)(xf.0))(()(kkkxxxfxf(4.1)这是个线性方程,记其根为,则的计算公式为1kx1kx2),,1,0()()(1kxfxfxxkkkk(4.2)这就是牛顿(Newton)法.牛顿法的几何解释.方程的根可解释为曲线与轴的交点的横坐标(图7-3).0)(xf*x)(xfyx设是根的某个近似值,过曲线上横坐标为的点引切线,并将该切线与轴的交点的横坐标作为的新的近似值.kx*x)(xfykxkPx1kx*x图7-33注意到切线方程为).)(()(kkkxxxfxfy这样求得的值必满足(4.1),从而就是牛顿公式(4.2)的计算结果.由于这种几何背景,牛顿法亦称切线法.1kx牛顿法(4.2)的收敛性,可直接由定理4得到,对(4.2)其迭代函数为,)()()(xfxfxx由于.)]([)()()(2xfxfxfx假定是的一个单根,即,则由上式知,于是依据定理4可以断定,牛顿法在根的邻近是平方收敛的.)(xf*x0*)(,0*)(xfxf0*)(x*x4又因,*)(*)(*)(xfxfx故由(2.9)可得.*)(2*)(*)(*lim21xfxfxxxxkkk(4.3)例7用牛顿法解方程.01xxe(4.4)解这里牛顿公式为,11kxkkkxexxxk取迭代初值,迭代结果列于表7-5中.5.00x556714.0356716.0257102.015.0057kxk计算结果表所给方程(4.4)实际上是方程的等价形式.若用不动点迭代到同一精度要迭代17次,可见牛顿法的收敛速度是很快的.xex牛顿法的计算步骤:步骤1准备选定初始近似值,计算0x),(00xff).(00xff步骤2迭代按公式0001/ffxx迭代一次,得新的近似值,计算1x).(),(1111xffxff步骤3控制如果满足或,则终1x121f6止迭代,以作为所求的根;否则转步骤4.此处是允许误差,而1x21,时,当时;当CxxxxCxxx1101101其中是取绝对误差或相对误差的控制常数,一般可取.C1C步骤4修改如果迭代次数达到预先指定的次数,或者,则方法失败;否则以代替转步骤2继续迭代.N01f),,(111ffx),,(000ffx77.4.2牛顿法应用举例对于给定的正数,应用牛顿法解二次方程C,02Cx可导出求开方值的计算程序C).(211kkkxCxx(4.5)这种迭代公式对于任意初值都是收敛的.00x事实上,对(4.5)式施行配方手续,易知.)(21;)(212121CxxCxCxxCxkkkkkk8以上两式相除得.211CxCxCxCxkkkk据此反复递推有.20011kCxCxCxCxkk(4.6)记,00CxCxq整理(4.6)式,得9.1222kkqqCCxk对任意,总有,故由上式推知,当时,即迭代过程恒收敛.00x1qkCxk723805.104723805.103723837.102750000.10110067kxk计算结果表解取初值,对按(4.5)式迭代3次便得到精度为的结果(见表7-6).100x115C610由于公式(4.5)对任意初值均收敛,并且收敛的速度很快,因此可取确定的初值如编成通用程序.00x10x例8求.115107.4.3简化牛顿法与牛顿下山法牛顿法的优点是收敛快,缺点一是每步迭代要计算及,计算量较大且有时计算较困难,二是初始近似只在根附近才能保证收敛,如给的不合适可能不收敛.)(kxf)(kxf)(kxf0x*x0x为克服这两个缺点,通常可用下述方法.(1)简化牛顿法,也称平行弦法.其迭代公式为.,1,0)(1CxCfxxkkk(4.7)迭代函数).()(xCfxx若在根附近成立,即取,则迭代法(4.7)局部收敛.*x1)(1)(xfCx2)(0xfC11在(4.7)中取,则称为简化牛顿法,这类方法计算量省,但只有线性收敛,其几何意义是用平行弦与轴交点作为的近似.如图7-4所示.)(10xfCx*x图7-412(2)牛顿下山法.牛顿法收敛性依赖初值的选取.如果偏离所求根较远,则牛顿法可能发散.0x0x*x例如,用牛顿法求方程.013xx(4.8)在附近的一个根.5.1x*x设取迭代初值,用牛顿法公式5.10x131231kkkkkxxxxx(4.9)计算得.32472.1,32520.1,34783.1321xxx迭代3次得到的结果有6位有效数字.3x13但如果改用作为迭代初值,则依牛顿法公式(4.9)迭代一次得6.00x.9.171x这个结果反而比更偏离了所求的根.6.00x32472.0*x为了防止迭代发散,对迭代过程再附加一项要求,即具有单调性:.)()(1kkxfxf(4.10)满足这项要求的算法称下山法.将牛顿法与下山法结合起来使用,即在下山法保证函数值稳定下降的前提下,用牛顿法加快收敛速度.将牛顿法的计算结果14)()(1kkkkxfxfxx与前一步的近似值适当加权平均作为新的改进值kx,)1(11kkkxxx(4.11)其中称为下山因子,(4.11)即为)0(),,1,0()()(1kxfxfxxkkkk(4.12)(4.12)称为牛顿下山法.选择下山因子时从开始,逐次将减半进行试算,直到能使下降条件(4.10)成立为止.1若用此法解方程(4.8),当时由(4.9)求得6.00x15,它不满足条件(4.10).9.171x通过逐次取半进行试算,当时可求得.此时有,而显然.32/1140625.11x656643.0)(1xf384.1)(0xf)()(01xfxf由计算时,均能使条件(4.10)成立.计算结果如下:1x,,32xx1.0000086.0)(,32472.1;00667.0)(,32628.1;1866.0)(,36181.1443322xfxxfxxfx即为的近似.一般情况只要能使条件(4.10)成立,则可得到,从而使收敛.4x*x0)(limkkxf}{kx167.4.4重根情形设,整数,则为方程的重根,此时有)(*)()(xgxxxfm0*)(,2xgm*x0)(xfm.0*)(,0*)(*)(*)()1(xfxfxfxfmm只要仍可用牛顿法(4.2)计算,此时迭代函数0)(kxf)()()(xfxfxx的导数为011*)(mx且,所以牛顿法求重根只是线性收敛.若取1*)(x17,)()()(xfxfmxx则.用迭代法0*)(x),1,0()()(1kxfxfmxxkkkk(4.13)求重根,则具有2阶收敛,但要知道的重数.mm*x构造求重根的迭代法,还可令,若是的重根,则)(/)()(xfxfx*x0)(xfm,)(*)()()(*)()(xgxxxmgxgxxx故是的单根.对它用牛顿法,其迭代函数为*x0)(x18.)()()]([)()()()()(2xfxfxfxfxfxxxxx从而可构造迭代法),,1,0()()()]([)()(21kxfxfxfxfxfxxkkkkkkk(4.14)它是二阶收敛的.例9方程的根是二重根,用上述三种方法求根.04424xx2*x解先求出三种方法的迭代公式:(1)牛顿法.4221kkkkxxxx19(2)用(4.13)式.2221kkkkxxxx(3)用(4.14)式.2)2(221kkkkkxxxxx取初值,计算结果如表7-7.5.10x414213562.1414213562.1425497619.13414211438.1414215686.1436607143.12411764706.1416666667.1458333333.1132177321xxxxkk)方法()方法()方法(三种方法数值结果表20计算三步,方法(2)及(3)均达到10位有效数字,而用牛顿法只有线性收敛,要达到同样精度需迭代30次.217.5弦截法与抛物线法用牛顿法求方程(1.1)的根,每步除计算外还要算,当函数比较复杂时,计算往往较困难,为此可以利用已求函数值来回避导数值的计算.)(kxf)(kxf)(xf)(xf),(),(1kkxfxf)(kxf7.5.1弦截法设是的近似根,利用构造一次插值多项式,并用的根作为新的近似根.由于1,kkxx0)(xf)(),(1kkxfxf)(1xp0)(1xp1kx).()()()(111kkkkkkxxxxxfxfxfxp(5.1)22因此有).()()()(111kkkkkkkxxxfxfxfxx(5.2)(5.2)可以看做牛顿公式)()(1kkkkxfxfxx中的导数用差商取代的结果.)(kxf11)(kkkkxxxfxf几何意义.曲线上横坐标为的点分别记为,则弦线的斜率等于差商值,其方)(xfy1,kkxx1,kkPP1kkPP11)(kkkkxxxfxf23程是).()()(11kkkkkkxxxxxfxfxfy因之,按(5.2)式求得的实际上是弦线与轴交点的横坐标.这种算法因此而称为弦截法.1kx1kkPPx表7-524弦截法与切线法(牛顿法)都是线性化方法,但两者有本质的区别.切线法在计算时只用到前一步的值,而弦截法(5.2),在求时要用到前面两步的结果,因此使用这种方法必须先给出两个开始值.1kxkx1kx1,kkxx01,xx例10用弦截法解方程.01)(xxexf解设取作为开始值,用弦截法求得的结果见表7-8,比较例7牛顿法的计算结果可以看出,弦截法的收敛速度也是相当快的.6.0,5.010xx56714.0456709.0356532.026.015.0087kxk计算结果表实际上,弦截法具有超线性的收敛性.25定理6假设在根的邻域内具有二阶连续导数,且对任意有,又初值,那么当邻域Δ充分小时,弦截法(5.2)将按阶收敛到根.这里是方程的正根.)(xf*x*:xxx0)(xf10,xx618.1251p*xp012267.5.2抛物线法设已知方程的三个近似根,以这三点为节点构造二次插值多项式,并适当选取的一个零点作为新的近似根,这样确定的迭代过程称抛物线法,亦称密勒(Müller)法.21,,kkkxxx0)(xf)(2xp)(2xp1kx在几何上,这种方法的基本思想是用抛物线与轴的交点作为所求根的近似位置(图7-6).)(2xpy1kxx*x图7-627插值多项式).)(](,,[)](,[)()(12112kkkkkkkkkxxxxxxxfxxxxfxfxp有两个零点:,],,[)(4)(22121kkkkkkkxxxfxfxfxx(5.3)式中).](,,[],[1211kkkkkkkxxxxxfxxf问题是该如何确定,假定在三个近似根中,更接近所求的根,为了保证精度,选(5.3)中较
本文标题:解非线性方程组的牛顿迭代法
链接地址:https://www.777doc.com/doc-3387340 .html