xk?1?xk?3xk?4.8xk?0.516xk?4.82,k?0,1,2,...
x?2由于f''(x)?6?0,故取0迭代计算一定收敛,计算结果如表7-6所示.
表7-6 k xk k xk 0 1 2 继续计算仍得
x6?1.732.0 2.293055556 1.817783592 3 4 5 1.706815287 1.700025611 1.7 ,故x*?1.7.
2注 本题也可令x?0.51x?1?2.4x?1.89,解得切点横坐标满足方程
f(x)?x?2.4x?51x?2.89?0,用有重根时的牛顿迭代法(7.15)式计算,此时m?2.仍
32取
x0?2,经四步可得x*?1.7.
例7-9(牛顿迭代法收敛定理)设f(x)在[a,b]上具有二阶连续导数,且满足条件 (1)f(a)f(b)?0;
(2)在[a,b]上f'(x)?0,f''(x)?0; (3)
x0?[a,b]满足
f(x0)f''(x0)?0.
f(x)?0在[a,b]内的惟一实根x*,并且是平方
则由牛顿迭代法产生的序列收敛的.
?xk?单调收敛于
证明 因f(x)在[a,b]上连续,由条件(1)知,方程f(x)?0在(a,b)内有根x*.又由于条件(2)知f'(x)在[a,b]上恒正或恒负,所以f(x)在[a,b]上严格单调,因而x*是f(x)?0在(a,b)内的惟一实根.
条件(1),(2)共有四种情形:
(1)f(a)?0,f(b)?0,f'(x)?0,f''(x)?0,?x?[a,b]; (2)f(a)?0,f(b)?0,f'(x)?0,f''(x)?0,?x?[a,b]; (3)f(a)?0,f(b)?0,f'(x)?0,f''(x)?0,?x?[a,b];
(4)f(a)?0,f(b)?0,f'(x)?0,f''(x)?0,?x?[a,b]. 仅就(1)进行定理证明,其余三种情况的证明方法是类似的. 由
x0?[a,b],f(x0)f''(x0)?0可知
f(x0)?0x?x*,再由f'(x)?0知f(x)单增且0.又由
牛顿迭代法知
x1?x0?f(x0)f'(x0)?x0 又台劳展开得 其中
?0
12!f(x)?f(x0)?f'(x0)(x?x0)?f''(?0)(x?x0)2
介于x与
x0之间.利用f(x*)?0,得
12*f(x0)?f'(x0)(x*?x0)?x*?x0?x1?f(x0)f'(x0)*f''(?0)(x*?x0)?0(x*?x0)?2*2?1f''(?0)2f'(x0)21f''(?0)2f'(x0)(x*?x0)
x?x0由f'(x)?0,f''(x)?0以及前面证明的1,有
一般地,设
x*?x1?x0
f(xk)?0x*?xk?xk?1,则必有
?xk且
xk?1?xk?f(xk)f'(xk)
同样由台劳公式
12!f(x)?f(xk)?f'(xk)(x?xk)?f''(?k)(x?xk)2
及f(x*)?0,得
f(xk)?f'(xk)(x*?xk)?x*?xk?xk?1?f(xk)f'(xk)*12*f''(?k)(x*?xk)?0(x*?xk)?2*2?1f''(?k)2f'(xk)21f''(?k)2f'(xk)(x*?xk)?xk?1?xk
?llimxkxk??x*根据归纳法原理知,数列单调下降有下界,因此有极限.设k??.对迭代式
xk?1?xk?f(xk)f'(xk)两端取k??的极限,并利用f(x).f'(x)的连续性知f(l)?0,即
l?x*.
limxk?1?x*(xk?x*)2由上述证明知,有关系式
k???1f''(x*)2f'(x*),即对于单根,牛顿迭代法是平方收敛的.
f(x*)?0,f'(x*)?0,f''(x*)?0,?xk?例7-10 设函数f(x)具有二阶连续导数,是由牛顿
迭代法产生的序列,证明
limxk?1?xk(xk?xk?1)2
k????f''(x*)2f'(x*)
解 牛顿迭代法为
xk?1?xk?f(xk)f'(xk),k?0,1,2,...
xk?1?xk??f(xk)f'(xk)故
2xk?1?xkf(xk)?f'(xk?1)??????2(xk?xk?1)f'(xk)?f(xk?1)??f(xk)?f(x*)[f(xk?1)?f(x*)]f'(?k)[f'(xk?1)]222[f'(xk?1)]f'(xk)(xk?x*)2?? 其中
?kf'(xk)[f'(?k?1)](xk?1?x*)2
介于
xk与x*之间,
xk?1?xk?k?1介于
xk?1与x*之间,根据式(7.14)得
22lim?k??(xk?xk?1)2??limf'(?k)[f'(xk?1)]xk?x*2k??f'(xk)[f'(?k?1)](xk?1?x*)?1f''(x*)2f'(x*)
(m?2),?xk?例7-11 设f(x)具有连续的m阶导数,x*是f(x)?0的m重根是由牛顿迭
代法产生的序列,证明
limxk?1?x*xk?x*xk?1?xkxk?xk?1?1?1m1m;(1)
k??
;lim(2)
k???1?
limxk?1?xkxk?1?2xk?xk?1(3)
k???m.
证明 (1)因x*是f(x)?0的m重根,则f(x)可以表示成
x) f(x)?(x?x*)h(x),h(?
m所以
f'(x)?mx(?xm?1*)hx(?)x?(xh*x)mh*x)?'()
(x?x*)m?1m[hx(?)x?(x'()]
xk?1?xk?f(xk)f'(xk)由牛顿迭代法得
(xk?x*)hx(kmxk?1?x*?xk?x*?)(xk?x*)m?1[mh(xk)?(xk?x*)h'(xk)]???h(xk)(xk?x*)?1??mh(x)?(x?x*)h'(x)kkk??
故
limxk?1?x*xk?x*?1?1m (2)
xk?1?xkxk?xk?1?mk??
f(xk)f'(xk?1)f(xk?1)f'(xk)m?m?1(xk?x*)h(xk)(xk?1?x*)[mh(xk?1)?(xk?1?x*)h'(xk?1)]m?1(xk?1?x*)h(xk?1)(xk?x*)[mh(xk)?(xk?x*)h'(xk)]??xk?x*??h(xk)?mh(xk?1)?(xk?1?x*)h'(xk?1)????xk?1?x*??h(xk?1)?mh(xk)?(xk?x*)h'(xk)?
利用h(x*)?0及(1)的结论得
limxk?1?xkxk?xk?1?1?1m;
k??
f(x)f'(x)的导函数
?(x)?x?(3)先证明牛顿迭代函数
?'(x)?1?1m(x?x*)
因x*是f(x)的m重零点,则由假设,f(x)具有m阶连续导数,得
f(x*)?f且
f(x)?f'(x)?f''(x)?1x'(?*)?.f..(m?1)x?(*f)m(0x,?)( *)0m!f1(m)(?1)(x?x*)f(m)m(m?1)!1(m?2)!(?2)(x?x*)m?1f(m)(?3)(x?x*)m?2 其中
?1,?2,?3
介于x与x*之间,故有
f(x)f''(x)[f'(x)]2?'(x*)?lim 而
n?x*?limm?1fm(m)(?1)f(m)(m)(?3)2n?x*[f(?2)]?1?1m
xk?1?xkxk?1?2xk?xk?1?xk?1?xk(xk?1?xk)?(xk?xk?1)?11??'(?k)?xk?1?xk
所以
xk?1?xk??'(?k)(xk?1?xk)xk?1?xkxk?1?2xk?xk?11
1limk???lim11??'(?k)k???1?(1?1m?m)
?'(x*)?1?
注 结论(1)和
m都表明牛顿迭代法求重根时仅为线性收敛.结论(3)可以用来计
算重根数m.
例7-12 考虑下列修正的牛顿公式(单点斯蒂芬森方法)
xk?1?xk?f(xk)f(xk?f(xk))?f(xk)2
设f(x)有二阶连续导数,f(x*)?0,f'(x*)?0,试证明该方法是二阶收敛的. 证明 将
f(xk?f(xk))f(kx))?在
xk处作台劳展开,得
1f'k(x)fk(x?)2
f(xk?f(kx?)?f''(f)k
2x()其中?介于
xk与
xk?f(xk)之间,于是