線性系統的迭代法

BiCGStab(穩定化雙共軛梯度法)

/ BY-see-jee-stab /

BiCGStab 是針對非對稱矩陣一個惱人兩難的務實解答。GMRES 穩健,但它的記憶體每步增長,所以在難題上會變得昂貴。人們渴望一個像共軛梯度法的方法——固定記憶體、短遞迴、每步便宜——但能用於非對稱的 A。BiCGStab 正是最受歡迎的這類方法之一:它不論迭代次數多少,都維持固定、小的記憶體足跡,使它在 GMRES 的儲存代價過高的超大型問題上很有吸引力。

它源自雙共軛梯度(BiCG)的想法,該想法藉同時運用 A 與其轉置 A^T,為非對稱的 A 恢復了短遞迴。不過純 BiCG 的殘差不規則、劇烈震盪。BiCGStab——這個 Stab 代表 stabilized(穩定化)——在每次迭代加上一個額外的局部最小化(一個 GMRES(1) 風格的步),把收斂平滑化,使殘差下降穩定許多。最終結果是:在許多非對稱問題上,此法每步用兩次矩陣向量乘積、只儲存少數幾個向量就快速收斂——常以遠少的記憶體勝過重啟的 GMRES。

誠實的取捨是可靠性。不像 GMRES 的殘差保證單調遞減,BiCGStab 可能崩潰(隱藏著除以一個近乎零的量),而它的收斂雖通常不錯,卻無保證,在某些問題上仍可能不規則。所以實務智慧是:對非對稱系統先試 BiCGStab,因為它便宜又常常快;若它停滯或崩潰,就退回較穩健(但耗記憶體)的 GMRES。而且一如每個克雷洛夫方法,真正的槓桿是預條件子——好的能讓任一方法幾步就收斂,壞的則讓兩者都爬行。

在一個大型非對稱對流擴散系統上,每步做兩次 A 乘積、約儲存 7 個向量的 BiCGStab,常以比重啟的 GMRES(30) 更少的總矩陣向量乘積收斂,且只用一小部分記憶體——但在較剛性的變體上它可能崩潰,這時就切換到完整 GMRES。

短遞迴、固定記憶體的非對稱求解器——又快又便宜,但可能崩潰。

BiCGStab 以 GMRES 那種保證單調、不崩潰的收斂,換取低的固定記憶體。它通常在成本上勝出,卻可能崩潰或不規則收斂;把 GMRES 當作穩健的後備。沒有任何非對稱克雷洛夫方法是普遍最佳的——把選擇與一個強力的預條件子搭配起來。

又称
BiCGStabbiconjugate gradient stabilized穩定化雙共軛梯度法