牛顿迭代法解非线性方程(组)----迭代原理介绍和迭代公式推导
在辨识工作中,常常需要对辨识准则或者判据进行求极值,这往往涉及到求非线性方程(组)的解问题。牛顿迭代法是一种常用方法。下面把自己对牛顿迭代法的学习和理解做个总结。
以一元非线性方程 f(x)=0 为例,对函数 f(x)进行Taylor级数展开(只展开至线性项)得
f(x) = f(x0)+f\'(x0)(x-x0)
所以方程可写成
f(x0)+f\'(x0)(x-x0) = 0
其中x0是给定的已知值,则不难推导出方程的解(当然,只是近似解,毕竟Taylor展开过程中只取了线性项)
x = x0 – f(x0) / f\'(x0)
其中x不是真实解,但是相比之前的x0更靠近真实解了,因此可以多重复几次上述过程,从而使得到的解非常接近准确值。所以,对于一元非线性方程,牛顿拉夫逊迭代公式为:
x(k+1) = x(k) – f(x(k))
/ f\'(x(k))
根据Taylor级数的几何意义我们可以从几何上形象的看牛顿迭代法的求解f(x)=0的过程。
第一次迭代x1 = x0 – f(x0)
/ f\'(x0),其中f(x0)
/ f\'(x0)的几何意义很明显,就是x0到x1的线段长度(这可以从直角三角形的知识得到)。第二次迭代x2
= x1 – f(x1)
/ f\'(x1),其中f(x1)
/ f\'(x1)的几何意义很明显,就是x1到x2的线段长度。同理可以进行第三次迭代第四次迭代,可以明显的看出x的取值在不断逼近真实解x*。
可能有人问,迭代求得的结果会不会不收敛,也就是x会不会偏离x*。由于x0是在x*附近区域取值的,因此x0到x1这段曲线应该认为是平滑的没有转折的,因此切线与x轴的交点只会越来越接近真实解x*。但是如果x0的取值离x*比较远的话,那么x0到x1这段曲线上可能有“转折”,这样就可能引起迭代的不收敛。下图中迭代从x0到x1是在靠近真实解,但x2却反而远离真实解。
这也是牛顿拉夫逊迭代法在解非线性方程(组)问题时,要求初值选定尽量接近真实解得原因。