從冪迭代到 QR 演算法
在第一卷中你透過分解特徵多項式來求特徵值——對 2x2 尚可,對 2000x2000 則毫無希望,而且出了名地病態。機器從不那樣做。種子思想是冪方法:反覆用 A 乘以一個向量再重新歸一化,它會逼近主特徵向量,因為那個方向增長最快。反冪迭代把冪方法應用於 (A - sigma I)^-1,收斂到最接近所選位移 sigma 的特徵值——讓你能瞄準任意想要的特徵值。
一次性求所有特徵值的主力是 QR 演算法。反覆做 A = Q R 分解(一個 QR 分解)再以相反次序重組 A_{new} = R Q。這個相似變換保持特徵值不變,同時把矩陣推向上三角形式,其對角線隨即一次性揭示每一個特徵值。配以位移加速,QR 演算法是二十世紀最重要的演算法之一。
預處理:把問題彎成合適的形狀
回想上一篇的結論:Krylov 收斂受條件數支配。預處理直接攻擊這個數字。你不再求解 A x = b,而是求解等價系統 M^-1 A x = M^-1 b,其中 M 是一個預處理子,選得使得 (a) M^-1 A 的條件性遠好於 A,且 (b) 對向量應用 M^-1 很便宜。兩者兼得,一次一萬步的求解就能降到三十步。
其技藝在於這兩個目標之間的張力。完美的預處理子是 M = A,它使 M^-1 A = I 一步收斂——但應用 A^-1 恰恰是你解不了的那個問題。無用的預處理子是 M = I,便宜卻毫無作用。每一個實用選擇都介於二者之間:不完全 LU(分解 A 但丟棄大部分填充)、Jacobi/對角預處理子(A 的對角部分),或針對具體問題的多重網格或區域分解方案。
- 從零成本預處理子(Jacobi/對角縮放)開始,測量迭代次數。
- 若仍太慢,嘗試只保留較大填充元的不完全 LU。
- 對結構化的偏微分方程問題,採用多重網格或區域分解預處理子。
- 在搭建成本與每步節省之間權衡——最佳的 M 最小化總時間,而非迭代次數。
回報:一切之下的靜默引擎
退後一步,看看這五篇指南拼裝出了什麼。帶選主元的後向穩定分解、Krylov 求解器 CG 與 GMRES、QR 演算法這樣的特徵值引擎,全都被預處理磨利——這正是把第一卷純淨理論轉化為有限機器上可信答案的機械裝置。它對終端使用者全然不可見,卻無處不在。