Newton迭代法的改进
1. Newton下山法
Newton法的收敛性与初值x0的选取由很大关系,如果x0偏离方程的根x∗太远,则Newton法可能发散或迭代次数增加,因此,有必要对迭代法加以改进。
例1:用Newton法求x3−x−1=0在x0=1.5附近的一个根。
解:原方程的Newton迭代格式为xk+1=xk−2xk2−1xk2−x−1,迭代结果为x3=1.32472。如果迭代初值取为x0=0.6,则迭代一次所得结果x1=17.9就大大远离了x∗。因此,迭代过程可能是发散的或迭代次数增加。
为了避免迭代过程出现发散或迭代次数增加,可对迭代过程再附加如下一个条件:
∣f(xk+1)∣<∣f(xk)∣(1)
即保证函数值单调下降,则上例中的现象可以避免。
将条件(1)与Newton迭代法合并起来,即在保证函数值稳定下降的条件下,用Newton法来加快迭代,这就是Newton下山法。
Newton下山法具体操作:
将用Newton法求得的结果xk+1与前一步迭代的近似值xk适当加权平均,作为新的改进值xk+1即:
xk+1=λxk+1+(1−λ)x
或
xk+1=xk−λf′(xk)f(xk)
其中,λ(0≤λ<1)称为下山因子。然后,适当选择λ的值,使之满足条件(1)。
下山因子λ的选择是一个逐步试探的过程,可以从λ=1开始,将λ逐步减半进行试算,一旦条件(1)满足,则称下山成功,否则下山失败,需另选初值x0再试。
现在用Newton下山来考察例1:仍取x0=0.6,将用Newton法求得的x1=17.9与初值x0=0.6加权平均,并取λ=321,则
x1=321x1+3231x0=1.140625
这个结果比17.9要小许多。可见,上述严重偏离x∗的现象已经不复存在。
2. 简化Newton法
应用Newton法求方程的根,要计算函数的导数。如果函数的导数太复杂,计算量大且繁琐,这时可以用常数值c来代替函数的导数值,则迭代公式就变成:
xk+1=xk−cf(xk)(2)
这就是简化Newton法。在(2)式中,常数值c的选取可以根据迭代函数及收敛条件来确定。记
φ(x)=x−cf(x)
则
φ′(x)=1−cf′(x)
由
∣φ′(x)∣=∣1−cf′(x)∣<1
得
0<cf′(x)<2
这样,常数值c就容易确定了。
简化Newton法的几何意义是:过点(xk,f(xk)),以c为斜率,作一直线与x轴的交点近似代替曲线与x轴的交点。如下图所示。
2.6.3 弦截法
弦截法是Newton法的简化与改进,它保留了Newton法收敛速度快的优点,克服了需要计算函数的导数f′(x)的缺点。
如果用差商
xk−xk−1f(xk)−f(xk−1)
代替Newton迭代法中的f′(xk),则可得到下面的离散化形式:
xk+1=xk−f(xk)−f(xk−1)f(xk)(xk−xk−1)(3)
(3)式中的等号右边,即为下图所示曲线y=f(x)上pk−1点(xk−1,f(xk−1))与pk点(xk,f(xk))相连的直线或弦线的方程式。按(3)式求得的xk+1,就是该弦线与x轴的交点的横坐标,故该方法被称为弦截法。另一方面,对照Newton法,(3)式实际上也可以看成是用经过曲线y=f(x)上pk−1点(xk−1,f(xk−1))和pk点(xk,f(xk))的割线的斜率来代替函数在pk点(xk,f(xk))的导数,故该方法又被称为割线法。
弦截法是一种两步迭代法,即在计算xk+1时,必须先给出xk−1和xk。因此,在使用公式(3)时,必须首先给出两个迭代初值x0和x1,否则无法启动迭代运算。
在(3)式中,xk−1点可以一直用一个固定点x0点来代替,此时弦截法演变成为了单点弦截法,其几何解释如下图所示。相应地之前的为双点弦截法。
弦截法的收敛性有下面两个定理:
定理3:设函数f(x)在区间[a,b]上存在二阶导数,且满足条件:
(1)f′′(x)在区间[a,b]上不改变符号;
(2)f′(x)在区间[a,b]上不等于零;
(3)f(a)f(b)<0;
(4)x0∈[a,b]且满足条件f(x0)f′′(x0)>0,x1∈[a,b]
这时,由递推计算公式
xn+1=xn−f(xn)−f(x0)xn−x0f(xn),(n=1,2,⋯)
而得的序列{xn}单调收敛于f(x)在[a,b]上的惟一解x∗。
该定理即为单点弦截法的收敛性定理。
定理4:设x∗为f(x)的实根,f′(x)和f′′(x)在包含x∗的某一区间是连续的,并且f′(x∗)=0,则当x0和x1足够接近x∗时,由递推计算公式
xn+1=xn−f(xn)−f(xn−1)xn−xn−1f(xn),(n=1,2,⋯)
而得的序列xn收敛于x∗。
该定理即为双点弦截法的收敛性定理。