七、抛物线法(穆勒法)
求实系数n次方程
f(x)=xn+a1xn-1+L+an=0 (1)
的近似根.
可先求出f(x)=0的一个根x=r,则
f(x)=(x-r)g(x)
=(x-r)(xn-1+b1xn-2+L+bn-1)
式中g(x)是n-1次多项式,然后再求出g(x)的根,依此类推,可以求出f(x)=0的全部实根来.
首先选取x轴上三点:x0,x1,x2,通过曲线y=f(x)上的三点:(x0,f(x0)), (x1,f(x1)),(x2,f(x2))作一抛物线y=P(x)(即拉格朗日插值多项式,见第十七章,§2,三),抛物线与x轴有两个交点,取离x2较近的一点作为x3;再过三点(x1,f(x1)), (x2,f(x2)), (x3,f(x3))作一抛物线(图3.8中的虚线),它与x轴有两个交点,取离x3较近的一点作为x4L,依此法作出点xi-2, xi-1, xi,再过三点(xi-2,f(xi-2)), (xi-1,f(xi-1)), (xi,f(xi))作一抛物线与x轴有两个交点,取离xi较近的一点作为xi+1,等等.
对于预先给定的允许误差e,当迭代过程进行到
ïxi+1-xiï<e
时,就取xi+1作为f(x)=0的一个近似根.
由此得到的序列是收敛的.极限值,就是方程f(x)=0的根.
迭代步骤如下:
(1)根据经验对上式(1)可取
x0=-1, x1=1, x2=0
作为初始值,于是
f(x0)=(-1)n+(-1)n-1a1+L-an-1+an
f(x1)=1+a1+L+an
f(x2)=an
或用x=0附近的近似值
f(x0)»an-2-an-1+an
f(x1) »an-2+an-1+an
f(x2)=an
(2)设
li=, di=1+li=
gi=f(xi-2)li2 -f(xi-1)lidi +f(xi)li
hi=f(xi-2)li2 -f(xi-1)di2 +f(xi)(li+di)
由此根据xi-2, xi-1, xi 计算出li, di, gi, hi,并根据下列公式计算出li+1
li+1=
(hi>0,根式取正号;hi<0,根式取负号)
当f(xi-2)=f(xi-1)=f(xi)时,取li+1=1.
(3)根据公式
xi+1=li+1(xi-xi-1)+xi
计算出xi+1