BFGS法(BFGS method)是一種擬牛頓法,指用BFGS矩陣作為擬牛頓法中的對稱正定迭代矩陣的方法,此法是1970年前后由柏蘿登(C.G.Broyden)、弗萊徹(R.Fletcher)、戈德福布(D.Goldfarb),以及生納(D.F.Shanno)所研究,故得名,由于BFGS法對一維搜索的精度要求不高,并且由迭代產(chǎn)生的BFGS矩陣不易變?yōu)槠娈惥仃?,因而BFGS法比DFP法在計算中具有更好的數(shù)值穩(wěn)定性1。
基本介紹理論和實踐表明,DFP法是一種非常有效的無約束最優(yōu)化方法,自從1959年發(fā)表以來,深受歡迎,然而到了60年代后期,從計算實踐中發(fā)現(xiàn)DFP法在數(shù)值穩(wěn)定方面存在一定問題,從而人們又提出各種各樣的修改算法,其中被公認為具有更好數(shù)值穩(wěn)定性的算法乃是BFGS法。
方法步驟BFGS法是用逐次修改切線剛度矩陣的方法求新近似解的非線性方程組解法。對于方程組
在第m次迭代首先計算迭代增量的方向
其中
取起點的切線剛度矩陣KT,而令
β是一標量系數(shù),通過選擇使
ε為迭代允許誤差。然后修改剛度矩陣
其中
式中
,然后返回作m+1次迭代,直至收斂為止2。
DFP法與BFGS法的比較在目標函數(shù)的梯度容易計算的情況下,DFP變尺度法是一種很有效的方法。在計算變尺度矩陣的公式中,其分母含有近似矩陣,計算中由于舍入誤差使數(shù)值穩(wěn)定性較差,并可能導致變尺度矩陣變?yōu)槠娈惥仃嚒K?,為提高實際運算穩(wěn)定性,通常將進行n次(n為目標函數(shù)的維數(shù))迭代作為一個循環(huán),將變尺度矩陣重置二維單位矩陣I,并以一個循環(huán)的終點作為起點,進行下一輪的迭代。
為了進一步改善DFP變尺度法在實際計算中存在的算法穩(wěn)定性問題,Broydon等人提出了改進的算法——BFGS變尺度法。
BFGS法與DFP法的不同之處在于修正矩陣的計算公式不同。BFGS變尺度法的特別是BFGS法分母中不再有近似矩陣。BFGS法的優(yōu)點在于計算中它的數(shù)值穩(wěn)定性強,所以它是變尺度法中最受歡迎的一種算法3。
本詞條內(nèi)容貢獻者為:
王沛 - 副教授、副研究員 - 中國科學院工程熱物理研究所