逐次超鬆弛法
逐次超鬆弛法是踩了油門的高斯-賽德爾法。每一輪高斯-賽德爾掃描都把每個未知數朝它的修正值移動一段距離。SOR 觀察到這個修正通常指向一個好的方向,卻過於膽怯——於是它刻意「衝過頭」,比高斯-賽德爾多走一點。一個鬆弛參數 omega 控制走多遠:omega = 1 還原成普通的高斯-賽德爾法,omega 介於 1 與 2 之間是超鬆弛(衝過頭,有用的情形),omega 小於 1 則是欠鬆弛(謹慎、阻尼的一步,有時為穩定性所需)。
操作上,先算出 x_i 的普通高斯-賽德爾更新,記為 x_i^{GS},再與舊值做加權混合:x_i^{new} = (1 - omega) x_i^{old} + omega x_i^{GS}。當 omega > 1 時,這會越過高斯-賽德爾那一點。驚人的回報是:對良好的模型問題,存在一個最佳 omega(大網格時接近 2),能把收斂速度從緩慢的高斯-賽德爾 O(n) 輪掃描,降到 O(sqrt(n)) 輪——一個巨大的加速。經典例子是離散化的卜松方程,適當的 omega 把一個需要數千輪掃描的方法,變成只需數十輪。
難處在於 SOR 的魔法完全取決於把 omega 選好,而最佳值依賴迭代矩陣的譜性質,這通常事先並不知道。omega 取太大或太小,可能讓全部好處付諸流水,甚至發散(對對稱正定矩陣,omega 必須落在 (0, 2) 才能收斂)。正因如此,經典的 SOR 大致已被帶預條件的克雷洛夫方法與多重網格法取代,後者更快且不需手調參數——但 SOR 仍是歷史上重要的想法,至今也以可調平滑子的形式現身。
在 N 乘 N 網格上的標準五點卜松問題,高斯-賽德爾法需 O(N^2) 輪掃描才收斂,但取最佳 omega ~ 2 - O(1/N) 的 SOR 只需 O(N) 輪——對 N = 100 來說,大致是數十輪而非數千輪。
選對超鬆弛參數 omega,能把高斯-賽德爾的 O(n) 輪掃描變成 O(sqrt(n))。
SOR 的巨大加速是真實的,卻很脆弱:它的成敗繫於 omega 的選擇,而最佳值在實務上鮮少已知。現代的大規模求解一般偏好帶預條件的共軛梯度法、GMRES 或多重網格法,它們不需這類調參。