精度。
4)平行切线法
5)与其他方法联合使用。 梯度法作业:
第五节、牛顿法
一、基本思想
由于梯度法相邻两次搜索方向总是互相正交,前进路线呈锯齿形,使得其在极小点附近,收敛速度越来越慢。人们试图找到这样一种方向:它直接指向最优点,从任意选定的初始点出发,沿此方向迭代一次就达到极小点—牛顿法。
牛顿法亦称切线法,其基本思想来源于牛顿法求解方程的根。
求一个一元函数?(x)?0的根,可在函数上任取一点xk,作?(xk)切线,交x轴与xk?1,在过xk?1作?(xk?1)的切线,得到xk?2点,如此反复,最终可趋近于方程的根。其迭代公式为:
xk?1?xk??(xk) ?'(xk)求函数f(x)的极小点可视为求方程f'(x)?0的根。
设f(x)有连续的一阶和二阶导数则牛顿法求极值的迭代公式为
f'(xk)
xk?1?xk?\f(xk)
若f'(xk)??,则xk就是近似极小点
对于正定二次函数
1f(X)?XTAX?bTX?C
2其梯度为 ?f(X)?AX?b
由极值理论知?f(X)?0是极小点的必要条件,故极小点
X*??A?1b
若任取初始点X0,其梯度为 ?f(X0)?AX0?b
若取S0??A?1?f(X0)为搜索方向 则:S0??A?1?f(X0)??X0?A?1b
当步长为1时,X(1)?X(0)??S(0)?X0?X0?A?1b??A?1b 为极小点 比较阴影部分的值,对二次函数沿S0??A?1?f(X)方向搜索,取适当步长,只要一次迭代就可达到极值点。对于非二次函数,算法就没有那么简单,但由于函数在极小点附近往往具有非常强的正定二次函数性态,所以我们可以利用二次函数的这种性质,来加快搜索速度。牛顿法就是利用了这种性质。
二、原始牛顿法
对于多元函数,可以将函数在X(k)附近用泰勒公式展开
T1kkkT??????? f(X)??(X)?f(X)???f(X)??X?X???X?X?H(Xk)?X?Xk??????2kkk???H(X)X?X其梯度??(X)??f(Xk)??????
S=X*-X0 若X(k?1)为极小点,必有,
kk?1k?????(Xk?1)??f(Xk)??H(X)X?X?????0 ?1kk??Xk?1?Xk??H(X)?f(X) ???1kk?H(X)?f(X), 并且,其步长为1,这是原所以牛顿法的方向S(k)?????始牛顿法。
2例题:用原始牛顿法解f(X)?x12?25x2得最优解
三、修正的牛顿法---阻尼牛顿法 原始牛顿法的优点:收敛速度快
从原始牛顿法的推导过程可知,对任何正定二次函数,因其近似函数由?(X)kH(X)?与原目标函数f(x)完全相同,二阶偏导数矩阵???又为一常数正定方阵,因
此可以从任一初始点出发,按迭代公式迭代一次就可达到目标函数的极小点X*。对于非二次函数虽然不能一步就求出极小点,但由于在X*附近二次函数由?(X)
与原目标函数f(x)是近似的,所以牛顿方向可以作为近似方向,按公式进行迭代一般也将很快收敛于函数的最优点X*。
原始牛顿法的缺点:
1,计算较复杂。在每次迭代确定牛顿方向时,都要计算目标函数的一阶导数和二阶偏导数矩阵及其逆矩阵。这就使计算较为复杂,增加了每次迭代的计算工作量。
2,对海赛矩阵要求高。为了保证牛顿方向S(K)是目标函数的下降方向,必
?1kk?H(X)?f(X?),0须满足?f(Xk)TS(k)?0 ??f(Xk)T?要求H(X)可逆(非??奇异)、正定。
3,对于非二次函数,要求初始点的选取要靠近极值点,否则可能导致不收敛。
原始牛顿法并不是对所有函数都会很好地收敛,有时会出现函数值上升的情况,甚至会收敛到鞍点或不收敛,原因是步长为1,不经过一维搜索,方法的效果依赖于初始点的选取。
不收敛的例子:
一阶导数二阶导数:
定义域的三个区域:
由于原始牛顿法不能保证函数值稳定地下降,于是使出现了修正牛顿或称阻尼牛顿法。其修正方法是:由Xk求Xk?1时,不是直接利用原来的迭代公式计算,而是沿着Xk点处的牛顿方向进行一维搜索,将该方向上的目标函数最优点作为
Xk?1。这样就会避免收敛到鞍点或不收敛。迭代格式改为:
?1kk?Xk?1?Xk???H(X)?f(X) ??式中?为沿牛顿方向作一维搜索求得的最优步长,即:
f(X(K)??(K)S(K))?minf(X(K)??S(K))
式中S(K)是牛顿方向,这种修正牛顿法虽然汁算工作量多了一些,但在目标函数的海森矩阵处处正定的情况下,它能保证每次迭代都能使函数值有所下降,
即使初始点选得不好,用这种搜索方法也会成功。同时,它还保持了牛顿法收敛快的优点。
四、迭代步骤及计算框图