如何更好的理解共軛梯度方法?

如題


國內的教材和論文中對此深度講解的較少,建議參看《An Introduction to the Conjugate Gradient Method Without the Agonizing Pain》,直觀講解此CG演算法。


找到n個basis,然後找到如何對寫basis vector進行線性組合的參數,方程就解出來了,只是這樣的n個basis vector在和矩陣有conjugate gradient關係的時候非常容易找到,不要額外存儲舉著或向量等特點。買本numerical optimization吧


X=X_{0} + e_{0}=X_{0}+JC, X_{0}為初始值,JX空間內一個完備的坐標基組,可以通過其他完備的基組構建,C是初始error在這組基下的坐標。

方程映射到b的空間是b=AX=AX_{0}+AJC,即r_{0}=AJC

假如J滿足J^{T}AJ=Lambda Lambda為對角化的矩陣,相比普通的正交矩陣M^{T}M=Lambda,可以稱JA-正交或者A-共軛。

於是有J^{T}r_{0}=J^{T}AJC=Lambda CC可以很簡單地得到。J的維度和A相同,所以理論上e_{0}可在n步內求出。

下個問題是如何構建J,從一般的基組出發計算量太大。而如果從r_{0}出發,取j_{0}=r_{0},再取r_{i}中與span(r_{0},r_{1}, ... ,r_{i-1})span(j_{0},j_{1},...,j_{i-1})Krylov subspacespan(b, Ab, A^{2}b, ..., A^{i-1} b)}中A-正交的部分作為j_{i},可以巧妙地發現j_{i+1}的構建只需要j_{i}的信息,簡化了計算,以及計算的儲存量要求。

參考文獻推薦:

An Introduction to the Conjugate Gradient Method Without the Agonizing Pain by Jonathan Richard Shewchuk.

https://www.cs.cmu.edu/~quake-papers/painless-conjugate-gradient.pdf


&


推薦閱讀:

利普希茨連續的幾何意義是什麼?怎麼較好的理解它呢?
Boyd 5.3節有關於Slater』s constraint推導使用的一個結論存疑?
運籌學與最優化有什麼關係?
如何理解分形的維度?
Fokker-Planck方程具體如何刻畫SDE的?

TAG:演算法 | 數學 | 最優化 | 矩陣 |