在數值線性代數中,共軛梯度法是一種求解對稱正定線性方程組

的迭代方法。共軛梯度法可以從不同的角度推導而得,包括作為求解最優化問題的共軛方向法的特例,以及作為求解特徵值問題的Arnoldi/Lanczos迭代的變種。
本條目記述這些推導方法中的重要步驟。
共軛梯度法可以看作是應用於二次函數最小化的共軛方向法的特例

在共軛方向上求最小化:

從最初的猜測
開始,以及相應的殘差
, 並通過公式計算迭代和殘差

其中,
為一系列相互共軛的方向,例如:
,對於任何
由於共軛方向法沒有給出用於選擇方向的公式,因此該方法具有誤差
而共軛方向法也有多種方法分支,包括共軛梯度法和高斯消元法。
共軛梯度法可以看作Arnoldi/Lanczos迭代應用於求解線性方程組時的一個變種。
Arnoldi迭代從一個向量
開始,通過定義
,其中

逐步建立Krylov子空間

的一組標準正交基
。
換言之,對於
,
由將
相對於
進行Gram-Schmidt正交化然後歸一化得到。
寫成矩陣形式,迭代過程可以表示為

其中

當應用於求解線性方程組時,Arnoldi迭代對應於初始解
的殘量
開始迭代,在每一步迭代之後計算
和新的近似解
.
在餘下的討論中,我們假定
是對稱正定矩陣。由於
的對稱性, 上Hessenberg矩陣
變成對陣三對角矩陣。於是它可以被更明確地表示為

這使得迭代中的
有一個簡短的三項遞推式。Arnoldi迭代從而簡化為Lanczos迭代。
由於
對稱正定,
同樣也對稱正定。因此,
可以通過不選主元的LU分解分解為

其中
和
有簡單的遞推式:

改寫
為

其中

此時需要觀察到

實際上,
和
同樣有簡短的遞推式:

通過這個形式,我們得到
的一個簡單的遞推式:

以上的遞推關係立即導出比共軛梯度法稍微更複雜的直接Lanczos方法。
如果我們允許縮放
並通過常數因子補償縮放的係數,我們可能可以得到以下形式的更簡單的遞推式:

作為簡化的前提,我們現在推導
的正交性和
的共軛性,即對於
,

各個殘量之間滿足正交性的原因是
實際上可由
乘上一個係數而得。這是因為對於
,
,對於
,

要得到
的共軛性,只需證明
是對角矩陣:

是對稱的下三角矩陣,因而必然是對角矩陣。
現在我們可以單純由
的正交性和
的共軛性推導相對於縮放後的
的常數因子
和
。
由於
的正交性,必然有
。於是

類似地,由於
的共軛性,必然有
。於是

推導至此完成。
- Hestenes, M. R.; Stiefel, E. Methods of conjugate gradients for solving linear systems (PDF). Journal of Research of the National Bureau of Standards. 1952年12月, 49 (6) [2010-06-20]. (原始內容 (PDF)存檔於2010-05-05).
- Saad, Y. Chapter 6: Krylov Subspace Methods, Part I. Iterative methods for sparse linear systems 2nd. SIAM. 2003. ISBN 978-0898715347.