矩陣拆分
矩陣拆分是把「解不動」的方程 A x = b 變成一連串「容易解」的方程的把戲。想法是:把 A 寫成一個差 A = M - N,其中 M 是 A 裡你能便宜地拿來解方程的某一部分(例如就取它的對角,或它的下三角部分),而 N 是剩下的部分。難解的矩陣 A 就這樣被拆成一個容易的 M 與一個修正項 N。
把拆分代入 A x = b,得到 M x = N x + b。右端仍含有未知數 x,所以無法直接解——但我們可以迭代:把目前的猜測代到右邊,再解左邊那個容易的系統求得下一個猜測,x_{k+1} = M^{-1}(N x_k + b)。等價地寫成 x_{k+1} = G x_k + c,迭代矩陣 G = M^{-1} N,c = M^{-1} b。一個好的拆分有兩個彼此衝突的要求:M 必須容易求逆(這樣每步才快),但 M 又必須夠像 A,使 N 很小、G = M^{-1} N 的譜半徑遠小於 1(這樣迭代才收斂得快)。這兩個目標方向相反,拿捏其間的平衡正是門藝術。
M 的不同選法為經典方法命名:M 取 A 的對角,得雅可比法;M 取下三角部分(對角加上其下方一切),得高斯-賽德爾法;加權混合得 SOR。同樣的想法——用一個鄰近、易求逆的 M 取代 A——正是預條件子為克雷洛夫方法所做的事。所以拆分這個概念悄悄撐起了幾乎整個迭代線性代數:你從不直接解那個難題,而是反覆解一個便宜的替身,讓迭代一點一點削去差距。
把 A 寫成 A = D - L - U(對角 D、嚴格下三角 L、嚴格上三角 U)。雅可比法用 M = D、N = L + U。高斯-賽德爾法用 M = D - L、N = U。SOR 用 M = (1/omega) D - L,其中 omega 是鬆弛參數。
一個矩陣 A,三種經典拆分——各自在「M 易解」與「M 像 A」之間取捨。
若 G = M^{-1} N 的譜半徑小於 1,就稱該拆分收斂;這並非理所當然。對雅可比法與高斯-賽德爾法,對某些重要類別(例如嚴格對角佔優或對稱正定的 A)保證收斂,但在這些類別之外可能失敗。