特點:具有超線性收斂速度,只需要計算梯度,避免計算二階導數
\(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 表示停機時實際迭代次數 ...