雅可比法
/ yah-KOH-bee /
雅可比法是迭代解 A x = b 中最一目了然的方法。取系統中任一條方程——比方第 i 條,它牽涉到 x_i 與其他幾個未知數。暫且假裝你已經知道所有其他未知數,就用那一條方程把 x_i 解出來。對每一列都這麼做,永遠使用上一輪掃描留下的「舊」值,你就產生了一個完整的新猜測。如此反覆。每個變數都被當成彷彿只有它一個未知數那樣去更新——是對所有方程的同時鬆弛。
寫成公式,第 i 個分量的更新是 x_i^{new} = (b_i - 對所有 j 不等於 i 求和 a_ij x_j^{old}) / a_ii。你除以對角元 a_ii,這正是雅可比法需要非零對角、且在對角佔優時表現最好的原因。作為一個拆分,它是 A = D - (L + U),M = D(對角),所以迭代矩陣為 G = D^{-1}(L + U),當該矩陣的譜半徑小於 1 時就收斂——例如當 A 嚴格對角佔優時(每個對角元都大過同列其他元素之和)便保證收斂。一個極佳的實務特性:因為每個新值只用到舊值,所有分量都能獨立、以任意順序更新,所以雅可比法天然就能平行化。
它的弱點是速度。在典型的離散化偏微分方程上,雅可比法每掃描一輪只把誤差縮小一個小常數倍,所以要達到精度需要 O(n) 輪掃描——單獨用在大問題上太慢。但它有一項救贖的特質:它能有效消滅誤差中高頻、鋸齒狀的部分,卻幾乎不動那平滑、緩變的部分。這種選擇性的平滑,正是多重網格法所利用的,這也是為什麼雅可比法(常以阻尼、加權的形式)以平滑子、以及所有預條件子中最簡單者——對角預條件子——的身分存活下來。
對 2x + y = 11、x + 3y = 13,從 x_0 = y_0 = 0 開始。第一輪:x = 11/2 = 5.5,y = 13/3 = 4.33。第二輪:x = (11 - 4.33)/2 = 3.33,y = (13 - 5.5)/3 = 2.5。迭代值逐漸逼近精確解 x = 4、y = 3。
每一輪都只用上一輪的值來更新每個未知數——完全可平行,但很慢。
若 A 不是對角佔優(或對稱正定),純雅可比法其實可能發散;單單對角非零並不足夠。即使收斂,它的緩慢也使它今日幾乎從不單獨作為求解器——它現代的歸宿是當平滑子或對角預條件子。