在辨识工作中,常常需要对辨识准则或者判据进行求极值,这往往涉及到求非线性方程(组)的解问题。牛顿迭代法是一种常用方法。下面把自己对牛顿迭代法的学习和理解做个总结。
1.一元非线性方程的牛顿迭代公式和原理
以一元非线性方程 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却反而远离真实解。
这也是牛顿拉夫逊迭代法在解非线性方程(组)问题时,要求初值选定尽量接近真实解得原因。
2.二元非线性方程组的牛顿迭代公式
可以看出,对二元非线性方程组的每一个方程分别Taylor展开并推导相对来说麻烦了一些,但是也是可接受的。但是对于三元及更多元的非线性方程组来说,分别对每一个方程进行Taylor展开最后求解多元线性方程组也是非常复杂的。所以用矩阵的形式,根据牛顿迭代的原理和意义进行推导,能使得推导过程和表达式更简单。
3.多元函数方程组迭代