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種方式,歡迎大家批評指正。
推薦閱讀: