最優化演算法 共軛梯度法

2022-03-15 07:27:41 字數 1557 閱讀 5492

特點:具有超線性收斂速度,只需要計算梯度,避免計算二階導數

\(step0:\)

給定初始值\(x_0\),容許誤差\(\epsilon\)

\(step1:\)

計算梯度\(g_k=\nabla f(x_k)\),if \(norm(g_k)<=\epsilon\), \(break;\)

輸出當前值\(x_k\)

else \(to step2\)

\(step2:\)

\[\begin d_k=-g_k, & \text \\ d_k=-g_k+\beta_d_, & \text \end

\]\[\beta_=\frac^tg_}

\]\(step3:\)

利用線搜尋技術確定\(\alpha_k\)

共軛梯度演算法介於梯度下降和牛頓法之間,快於線性收斂,只需要梯度,不用計算二階導數;

《最優化方法及其matlab程式設計》

牛頓法,擬牛頓法, 共軛梯度法

牛頓法 當函式非凸時,找到的依然是區域性極值 1 求解方程。並不是所有的方程都有求根公式,或者求根公式很複雜,導致求解困難。利用牛頓法,可以迭代求解。原理是利用泰勒公式,在x0處展開,且展開到一階 即f x f x0 x x0 f x0 求解方程f x 0,即f x0 x x0 f x0 0,求解x...

梯度下降與共軛梯度法求解最優化應用

使用梯度下降與共軛梯度法求解 python原始碼 from numpy import import matplotlib.pyplot as plt def opt330 x ndarray,r int,alpha float,beta float,alg str,maxiter int 2000 ...

Matlab實現 最速下降法 共軛梯度法

盲人下山法 在山頂上,小盲人拿著小拐棍,先確定方向,再確定步長,尋找下山的最優辦法 即最短路徑 上圖偽碼來自某 數值線性代數 教科書,非原創 下述 是原創 最速下降法 function er,k fastdown a 定義最速下降法函式檔案 er 表示停機時實際絕對誤差 k 表示停機時實際迭代次數 ...