Newton-Raphson法基于函数y=f(x)的切线,利用切线的斜率来计算新的迭代值。这种方法所遇到的困难是需要计算函数的导数,即f′(x)。一种计算切线斜率的替代方法如图3.8所示,取所求根附近的两点进行内插并计算斜率。
图3.8 割线法的说明
这样就得到一个线性函数
q(x)=a0+a1x (3.67)
式中,q(x0)=f(x0)和q(x1)=f(x1)。这条直线是一条割线,并可表示为
求解方程并令x2=x得
现在,通过使用x2和x1构造另一条割线,这个过程可以重复。通过不断地更新割线,可得到一般性的公式为
注意,割线法可以看作是Newton-Raphson法
的一种近似,即在求导时进行了近似:
割线法通常比Newton-Raphson法快,尽管它需要更多次数的迭代才能收敛到相同精度的解。这是因为Newton-Raphson法需要计算2个函数(f(xk)和f′(xk)),而割线法只需要计算一个函数f(xk),因为f(xk-1)可以从前次迭代中继承。
割线法具有“超线性”收敛性,它比线性收敛快,但是不如平方收敛(Newton-Raphson法)快。令第k次迭代时的误差为
ek=xk-x∗ (3.73)
式中,x∗是精确解。利用Taylor级数展开:
类似地
此外有
xk-xk-1=(xk-x∗)-(xk-1-x∗)=ek-ek-1(www.xing528.com)
在式(3.70)两边同时减去x∗并应用f(x∗)=0得到
即
令
ek=Ck(ek)r式中,r是收敛阶。如果r>1,那么收敛速度就是超线性的。如果式(3.79)余下的项可以忽略,那么式(3.79)可以被重写为
取极限
对于很大的k,
ek=C(ek-1)r
并且
将此代入到式(3.81)中得
因为,这个关系只能在r2-r-1=0时成立,从而得到
因此是超线性收敛的。
例3.7 使用割线法求解如下方程的解,初始值为x0=1.5、x1=1.4。
解3.7 使用式(3.70),可得到如下的结果:
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。