數值線性代數
GMRES
GMRES——廣義極小殘差法——是面向一般非對稱 Ax = b 的主力 Krylov 求解器,此時共軛梯度那些優雅的技巧不再適用。它的定義原則正如其名:在第 k 步,它從 Krylov 子空間中挑選使殘差歐幾里得範數 ||b - A x_k|| 極小的向量 x_k。在子空間提供的所有候選中,GMRES 總返回剩餘最小的那個。
機理上,它執行 Arnoldi 過程為 Krylov 子空間構造一組標準正交基,並把 A 約化為一個小的上海森伯格矩陣。極小化殘差於是塌縮為該海森伯格矩陣上的一個微型最小二乘問題,每步都能廉價求解。由於殘差範數單調不增,GMRES 永遠不會變糟——這是一個令人安心的保證,而那些面向非對稱的 CG 變體並不都具備。
代價是記憶體與開銷。與 CG 的短遞推不同,完整 GMRES 必須儲存每個 Arnoldi 基向量並對它們全部重新正交化,故第 k 步的開銷和儲存均為 O(k)——無界增長。標準補救是重啟,即 GMRES(m):跑 m 步,把當前答案當作新初始猜測,從頭開始。這給記憶體封頂,但可能停滯,因為重啟丟棄了全局子空間。
非對稱矩陣的收斂確實比 CG 更難預測;當 A 遠非正規時,僅憑特徵值並不能決定它。實踐中 GMRES 沒有好的預條件子很少有競爭力,但配上一個,它就是流體力學、電磁學和電路模擬中那些非對稱系統的可靠預設選擇。
x_k = argmin over x in K_k(A,b) of ||b - A x||_2
GMRES 由一個極小化定義:每步返回 2-範數下殘差最小的 Krylov 子空間向量。
完整 GMRES 在數學上最乾淨,但實踐中昂貴;幾乎人人都用重啟的 GMRES(m)。選 m 是一門藝術:m 越大,外循環越少就收斂,但每個循環耗更多記憶體與工作量。
又稱
另見