5.4 牛顿—雷扶生方法
解非线性方程牛顿方法是一种将非线性函数线性化的方法。牛顿方法的最大优点是在方程单根附近具有较高的收敛速度,牛顿方法可用来计算
的实根,还可计算代数方程的复根。
5.4.1 牛顿法公式及误差分析
设有非线性方程
(5.4.1)
其中,设为
上一阶连续可微,且
;又设
是
一个零点
的近似值(设
),现考虑用过曲线
上点
的切线近似代替函数
,即用线性函数
代替,且用切线(即线性函数)的零点,记为
,作为方程(5.4.1)根
的近似值,即求解
得到
(5.4.2)
一般,若已求得,将式(5.4.2)中的
换为
,重复上述过程,即得求方程
根的牛顿方法的计算公式
(5.4.3)
下面利用的泰勒公式进行误差分析。设已知
图5-7
的根的第
次近似
,于是
在
点泰勒公式为(设
二次连续可微):
(5.4.4)
其中,在
与
之间。
如果用线性函数近似代替
,其误差为
,且用
根记为
作为
的根
的近似值又得到牛顿公式
现在式(5.4.4)中取,则有
于是(设
)
利用牛顿公式(5.4.3)即得误差关系式
(5.4.5)
误差公式(5.4.5)说明的误差是与
误差的平方成比例的。当初始误差(即
)是充分小时,以后迭代的误差将非常快地减少。
由计算公式(5.4.3)可知,用牛顿方法求方程的根,每计算一步需要计算一次函数值
及一次导数
。
例7 用牛顿法求的根。
解 显然,,方程于
内有一根。求导
牛顿法计算公式为
(1)取,计算结果见表5-4.
(2)取,计算结果见表5-5.
表5-4 表5-5
|
||||
0 1 2 3 4 5 6 |
1.0 -1.155999 0.189438 0.714043 0.782542 0.783595 0.783596 |
0 1 2
|
8.0 34.778107 869.1519 |
求得近似根,
。
说明当初值选取靠近根
时牛顿法收敛且收敛较快,当初值
不是选取接近方程根时,牛顿法可能会给出发散的结果。
例8 对于例3试用牛顿法计算内一实根。
解 ,
牛顿法计算公式:
计算结果见表5-6
表5-6
0 |
1.5 |
|
|
1 |
1.30049088 |
||
2 |
1.18148042 |
||
3 |
1.13945559 |
||
4 |
1.13477763 |
||
5 |
1.13472415 |
||
6 |
1.13472414 |
方程的真根,求得的近似根
具有8位有效数字。
5.4.2 牛顿法的局部收敛性
设有方程,显然,牛顿法是一种迭代法,即
(5.4.6)
其中迭代函数为
(设
)
于是,可用迭代法理论来考查牛顿方法的收敛性。
定理6 (牛顿法的局部收敛性)
设有方程
(1)设在根
邻近具有连续二阶导数;
(2)且设,但
,则存在
的一个邻域
使得对于任意选取初值
,由牛顿法产生的序列
收敛于
且有
(5.4.7)
证明 由于牛顿法是一个迭代法,其迭代函数为
计算
由假设条件(2),则有
于是由定理5,迭代法式(5.4.6)(即牛顿法)为局部收敛。且由(5.4.5)式取极限即得(5.4.7)式。
5.4.3 牛顿法例子及框图
例9 设,试用牛顿法建立计算
的公式。
解 开方问题即为求解方程。现用牛顿法解此方程,见图5-8
图5-8
试计算,要求
时迭代终止。
取,用牛顿法计算结果见表5-7。
表5-7
0 1 2 3 4 5 6 |
1.0 5.5 3.65909091 3.19600508 3.16245562 3.16227767 3.16227766 |
所以
例10 用牛顿法求方程
的正实根。
图5-9
方程在内有一实根,在
内有二重根(见图5-9)。
(1)用牛顿法计算内单根,要求
。计算结果见表5-8
表5-8
0 1 2 3 4 5 |
7.0 7.485612 7.36041 7.34857 7.34847 7.34847 |
0.485612 -0.125202 |
即为所要求的近似根。
(2)用牛顿法求内重根。计算结果见表5-9
表5-9
0 1 2 3 4 5 |
4.0 4.145408 4.22138 4.26033 4.28007 4.29001 |
0.145408 0.038952 0.038952 0.019740 0.009939 |
需要迭代19次,则有,且
。
由此例可见,牛顿方法在单根附近具有较快的收敛速度(达到一定的精度所需要的迭代次数减少),而用一般牛顿法求内二重根时收敛较慢。这种情况牛顿方法可改进如下:
设为
二重根(即
且
)。这种情况可定义一个函数
显然,为
单根,于是可用牛顿法求解
。
计算公式
(5.4.9)
用公式(5.4.9)计算内方程
的二重根,且要求
,计算结果见表5-10。
表5-10
0 1 2 3 4 |
4.0 4.308129 4.300001 4.300000 4.300000 |
0.308129 |
用方程(5.4.9)只迭代4次就得到满足精度要求的二重根,但这方法付出的代价是需要计算。
用牛顿方法求多项式方程复根时,初值应取为复数,即
牛顿法框图见图5-10所示。
图5-10
牛顿法:设有方程。
(1)选择合适的初值;
(2),计算
其中,表示最大迭代次数,当
时,迭代终止。其中,
,表示求得满足给定精度的近似根;
,表示
,计算中断;
,表示迭代
次后精度要求仍不满足。
5.4.4 牛顿下山法
由牛顿迭代法的局部收敛性定理知,牛顿法对初值的要求是很苛刻的,即选取初始近似值
要在根
的附近,牛顿法才收敛较快,否则牛顿法产生的序列
可能不收敛。但在实际应用中,往往很难给出较好的初值
。牛顿下山法就是在事先没有给出较好的初值情况下,求
根的一种修正的牛顿法。
为了改善对初值的要求,我们在牛顿迭代公式中引入因子,即将牛顿迭代公式修改为
其中,为初始近似值,
为下山因子(可选择的参数),且满足
,
为下山因子下界。
选择因子(即选取
)使
称为下山,将下山法和牛顿法结合使用,即牛顿下山法。
牛顿下山法计算步骤:
(1)输入,
,
,
;
(2)计算;
(3);
(4)计算;
(5)如果,则输出“
”,停机;
(6);
(7)计算 ,
;
(8)如果,则输出
,
,
,停机;
(9)如果,则转(11);
(10)如果,则
,转(7),否则输出“Minimum
exceeded”,停机;
(11)如果,则输出
,
,
,停机,否则
,
,转(3)。
注意:其中为下山因子下界,
是根的误差限,
是残量精度。
例11 设方程,求在
附近的一个根。
解 (1)用牛顿法计算(取)
按牛顿迭代公式计算有
,
,
,…
(2)用牛顿下山法计算
取,计算结果见表5-11。
表5-11
0 |
|
0.6 |
-1.384 |
1 |
1.140625 |
-0.6566 |
|
2 |
1.36681 |
0.1866 |
|
3 |
1.326280 |
0.00667 |
|
4 |
1.324720 |
8.771 |
由此看出,下山法保证逐步下降,即
且牛顿法使这一过程收敛加速。