線性系統的迭代法

GMRES(廣義最小殘差法)

/ JEE-em-rez /

當 A 是一般矩陣時——非對稱、可能有複特徵值,正是對流主導的流動與許多真實工程系統會產生的那種——GMRES 是首選的克雷洛夫方法。共軛梯度法需要對稱正定那種溫馨的結構,才能施展它能量最小化的把戲;GMRES 丟掉那項要求,改做一件最自然不過的事:在當前克雷洛夫子空間的所有候選解中,挑出殘差 r = b - A x 長度最小的那一個。GMRES 是 Generalized Minimal RESidual(廣義最小殘差)的縮寫,而最小化殘差範數,正是它字面上的定義。

操作上,GMRES 用阿諾迪程序逐一建出克雷洛夫子空間 span{b, A b, A^2 b, ...} 的正交基底,每一步解一個小的最小平方問題,找出使殘差最小的組合。因為殘差範數只會下降(你在一個不斷成長的空間上做最佳化),GMRES 從不崩潰、其殘差單調遞減——這是個非常令人安心的性質。在精確算術下,它會在 n 步內抵達精確答案。代價是難處所在:為了讓所有方向保持正交,GMRES 必須儲存它建過的每一個基底向量、並對全部做正交化,所以它每步的記憶體與工作量會隨迭代「增長」——k 步後,你握著 k 個完整向量,每新增一步要做 O(k) 的工作。

這種增長的代價,正是無人長跑完整 GMRES 的原因。標準的補救是重啟,記作 GMRES(m):跑 m 步,把當前近似當成新的起始猜測,丟棄累積的基底,再從頭開始。這把記憶體封在 m 個向量,但也丟掉了得來不易的資訊,所以重啟的 GMRES 可能在完整 GMRES 本會收斂之處停滯——選 m 是記憶體與穩健性之間真實的工程取捨。一如所有克雷洛夫方法,決定性的因素是預條件:好的預條件子讓譜聚集,使 GMRES(或其重啟版)用少數幾步、而非數百步收斂。

GMRES(30) 跑 30 步阿諾迪、在那個 30 維克雷洛夫子空間上最小化殘差,再從找到的最佳向量重啟——最多握住 30 個基底向量。對同一問題,完整 GMRES 也許 80 步收斂,但需儲存全部 80 個向量。

GMRES 在不斷成長的克雷洛夫子空間上最小化殘差範數;重啟封住它增長的記憶體。

完整 GMRES 從不停滯、殘差單調遞減,但每步成本無上限地增長——重啟的 GMRES(m) 封住成本卻可能停滯,在難題上有時永不收斂。天下沒有白吃的午餐:GMRES 對非對稱 A 的穩健性,是用記憶體、或用重啟停滯的風險換來的,而讓它變實用的是預條件。

又称
generalized minimal residual method廣義最小殘差法