在5.12.1部分提出的牛顿法可以扩展用于最小化多变量函数。为此,考虑二阶近似的功能f(X)=Xi可以利用泰勒级数展开如下:
是二阶偏导数在点Xi的矩阵(海森矩阵)。为了求f(X)的最小值,我们通过设置方程 (6.95)中偏导数等于零得到:
由方程(6.96)和(6.95)可得:49614
(6.97)
如果 是非奇异矩阵,方程(6.97)可以得到一个近似(X=Xi+t)如下所示:
(6.98)
方程(6.95)和(6.98)中的高阶项被省略是用于迭代来寻找最优解X*。
矩阵 是非奇异的,从任何初始点X1开始的序列点X1,X2,...,Xi+1都可证明它是收敛的,因为他们相当的接近最优解X*。可以看出,牛顿法采用了二阶偏导数的目标函数(形式的矩阵 ),因此它是一个二阶方法。
例6.11 牛顿法可以找到一次迭代的最少值。
解决方案:如下列二次函数可知
f(X) = XT[A]X+BTX+C
函数f(X) 的最小值如下可得
f = [A]X+B=0
又如
X*=-[A]-1B
对方程(6.98)迭代一次得
Xi+1=Xi-[A]-1( [A]Xi+B) (E1)
其中Xi是整个函数迭代的起点,因此方程(E1)可以简化成
Xi+1=X*=-[A]-1B
图6.17显示了这个过程。
例6.12 通过设定初始点X1={0,0}可以得到函数 的最小值。
方案如下: 我们通过方程(6.98)找到X2,我们要求得 -1,则
= =
因此,
图6.17 函数一次迭代的最小值
例如:
= = =
利用方程(6.98)可得:
X2 = X1 - -1 = - =
接下来我们要判断X2是不是最佳点,如下所示:
= = =
如果g2 =0,X2是最佳点。因此,该方法融合了函数的一次迭代。
如果函数f(X)是一个非二次的函数,牛顿法可能有点偏离,它可能收敛到鞍点和相对极大点,这一问题可以通过修改方程(6.98)避免,修改后的方程如下所示:
Xi+1=Xi+λi*Si=Xi-λi* -1 fi
λi* 在方向Si =- fi 上的最小步长,修改过后的方程(6.99)有很多的优点。第一,它可以通过原始的方法以较少的步骤找到最小值。第二,在某些情况下,利用原来的方法可能不收敛,但是通过方程(6.99)可以找到任何情况下函数的最小值。第三,它通常避免收敛到一个鞍点或最高点。这种方法拥有这么多的有点,那么它可以看作是是最好的求最小值的方法。尽管它有如此多的有点,但是由于如下所示的特点,该方法在实践中不是很常用,特点:
1、它需要的是 的矩阵形式;
2、它变得非常困难,有时,无法计算矩阵 的元素;
3、它要求矩阵 反演的每一步;