提要:今天講的牛頓法與擬牛頓法是求解無約束問題最優化方法的常用方法。
一 牛頓法
假設我們求下面函數的最小值:
假設f(x)具有連續的二階的連續偏導數,假設第K次迭代值為xk的值,那么可將f(X)在xk附近進行二階泰勒展開得到:
我們對上述公式求導可得:
假設其中可逆,我們就可以得到牛頓法的迭代公式為:
這樣就可以得到牛頓法的迭代公式了。
牛頓法算法如下:
輸入:目標函數f(X),梯度▽f(x),海賽矩陣H(x),精度要求ε;
輸出:f(x)的極小點x*.
步驟一:取初始點x0,置k=0
步驟二:計算梯度▽f(x)
步驟三:||▽f(x)||〈ε,那么停止計算得到的x*=xk。
步驟四:計算H(x)
步驟五:
步驟6:轉步驟二
牛頓法的缺點:牛頓法收斂速度快,但是要計算二階偏導數矩陣及其逆陣,計算量過大。
二 擬牛頓法
擬牛頓法與原始牛頓法的區別在於增加了沿牛頓方向的一維搜索,其迭代公式為:
其中為牛頓方向,
是由一維搜索的步長,也就是滿足:
其實牛頓法就是阻尼牛頓法步長為1的特殊情況。
擬牛頓法算法:
輸入:目標函數f(X),梯度▽f(x),海賽矩陣H(x),精度要求ε;
輸出:f(x)的極小點x*.
步驟一:取初始點x0,置k=0
步驟二:計算梯度▽f(x)
步驟三:||▽f(x)||〈ε,那么停止計算得到的x*=xk。
步驟四:計算H(x)
步驟五:從xk出發,沿着dk方向作一維搜索,
步驟六:
步驟七:轉步驟二
本文完。