七、抛物线法(穆勒法)

求实系数n次方程

f(x)=xn+a1xn-1+L+an=0               (1)

的近似根.

       可先求出f(x)=0的一个根x=r,则

                      f(x)=(x-r)g(x)

                         =(xr)(xn1+b1xn2+L+bn1)

文本框:  
                 图     3.8
式中g(x)n1次多项式,然后再求出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)n1a1+Lan1+an

f(x1)=1+a1+L+an

f(x2)=an

或用x=0附近的近似值

f(x0)»an2an1+an

f(x1) »an2+an1+an

f(x2)=an

2)设

                                                        li=,     di=1+li=

                                                        gi=f(xi2)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(xixi-1)+xi

计算出xi+1