MATLAB--共軛梯度法--優化方法

該演算法是求解數學特定線性方程組的數值解的方法,其中那些矩陣為對稱和正定。共軛梯度法是一個迭代方法,它適用於稀疏矩陣線性方程組,因為這些系統對於像Cholesky分解這樣的直接方法太大了。這種方程組在數值求解偏微分方程時很常見。共軛梯度法也可以用於求解無約束的最優化問題。理論知識網上都有,一下簡單的總結共軛梯度法的應用:

共軛梯度法不僅是解決大型線性方程組最有用的方法之一,也是解大型非線性最優化最有效的演算法之一。

1、

初始點坐標默認值為:[0;0]

終止條件默認值為:0.0001

修正係數選擇: Fletcher-Reeves【alpha=t2^2/t1^2】

目標方程選擇默認為 :f = 100*(x2-x1^2)^2+(1-x1)^2

2、

初始點坐標默認值為:[0;0]

終止條件默認值為:0.0001

修正係數選擇: Dixon-Myers【alpha=-t2^2/(p0*g1)】

目標方程選擇默認為 :f = x1^2-x1*x2+x2^2+2*x1-4*x2

3、

初始點坐標默認值為:[0;0]

終止條件默認值為:0.0001

修正係數選擇: Polak-Ribiere【alpha=g2*(g2-g1)/t1^2】

目標方程選擇默認為 : f = x1^2+(x2-1)^2+x1*x2

4、

初始點坐標默認值為:[0;0]

終止條件默認值為:0.0001

修正係數選擇: Crowder-wolfe【 alpha=g2*(g2-g1)/(p0*(g2-g1))】

目標方程選擇默認為 :f = 100*(x2-x1^2)^2+(1-x1)^2

以上的參數:初始點坐標、終止條件、修正係數和目標方程均可以進行組合,更多的組合沒辦法一一展示,按照4個參數的選擇,從概率上有16種方式,歡迎大家批評指正。


推薦閱讀:

TAG:MATLAB | 演算法 | 凸優化 |