3. 收敛性数学基础
迭代求解器的收敛快慢不是“调参玄学”,而是由系数矩阵的谱性质决定的。理解谱半径、条件数、特征值分布与Krylov子空间逼近理论,能让我们在动手调参之前,先判断“这个矩阵能不能快收敛”“瓶颈在哪个方向”“该换预条件还是该换算法”。本节从定义出发,逐步落到可计算的判断依据与理论界。
一、谱半径:迭代矩阵的渐近收敛因子
对定常迭代 x_{k+1} = G x_k + c,误差满足 e_{k+1} = G e_k,因此 e_k = G^k e_0。收敛的充要条件是迭代矩阵的谱半径 ρ(G) = max|λ_i(G)| < 1,且渐近收敛因子就是 ρ(G):每步误差大致乘以 ρ(G),达到精度 ε 所需步数约为 k ≈ ln(ε/‖e_0‖) / ln ρ(G)。
以Jacobi迭代为例,G_J = -D^{-1}(L+U)。对一维泊松矩阵(对角2、次对角-1,规模n),可解析得到 ρ(G_J) = cos(π/(n+1))。当 n=99 时 ρ ≈ 0.9995,要把误差降 6 个数量级需要约 6×ln10 / (1-ρ) ≈ 2.8×10^4 步——这就是“Jacobi在细网格上几乎不收敛”的定量解释。注意谱半径只描述渐近行为,若 G 非正规,前期可能出现误差先上升的“瞬态增长”,实际停机判据不能只看理论界。
二、条件数:误差放大与收敛上界的共同来源
对 Ax=b,2-范数条件数 κ_2(A) = σ_max/σ_min(对称正定时等于 λ_max/λ_min)。它有两个直接后果:其一,右端扰动 δb 引起的解相对误差上界为 κ·‖δb‖/‖b‖;其二,对CG这类Krylov方法,收敛速率由 √κ 控制。CG的经典误差界为
‖e_k‖_A / ‖e_0‖_A ≤ 2 · ((√κ - 1)/(√κ + 1))^k
代入数字:κ=100 时收缩因子约 0.818,降 6 个数量级约需 70 步;κ=10⁴ 时因子约 0.980,需约 690 步;κ=10⁶ 时需约 6900 步。可见条件数每恶化两个数量级,步数大致增加一个量级——这正是预条件子(把κ压下来)比调松弛因子更根本的原因。
三、特征值分布:决定Krylov方法实际收敛形态
Krylov子空间 K_k(A,r_0) = span{r_0, Ar_0, …, A^{k-1}r_0} 上的近似解,等价于用次数不超过k的多项式 p(p(0)=1)去极小化误差,即 e_k = p_k(A)e_0。因此收敛行为取决于多项式能否在A的谱集上被压小:
- 谱聚集:若特征值聚成m个簇,CG通常在约m步后出现“超线性”加速,因为多项式已在这些簇上接近零。
- 两端分离:若谱分布在
[a,b] ∪ [c,d]两段,收敛因子近似由两段的“等效条件数”决定,比整体κ小得多。 - 孤立小特征值:少数靠近零的特征值会拖慢收敛,表现为残差曲线先快速下降后进入长平台;此时可用deflation或对这些方向做预处理。
- 非对称情形:GMRES的界依赖特征值多项式的值
min_p max_{λ∈σ(A)} |p(λ)|,但非正规矩阵的特征值不能完全刻画收敛,需辅以数值域或伪谱判断。
实操中可用 scipy.sparse.linalg.eigsh(A, k=20, which='SM') 估计最小特征值,或用Lanczos过程观察Ritz值随步数的收敛,从而预判CG需要多少步。
四、理论界怎么用:从界到停机与调参
理论界的作用不是精确预测步数,而是给出量级判断和调参方向。实践中建议按以下顺序使用:
- 先估κ:用幂迭代估
λ_max,用逆迭代或Lanczos估λ_min,得到κ的量级。若κ>10⁴,直接考虑预条件,而不是先调松弛因子。 - 再看谱形:用少量Lanczos步观察Ritz值是否分簇、是否有孤立小特征值。分簇明显时,理论最坏界会严重高估步数,应以实测残差曲线为准。
- 设定停机判据:相对残差
‖r_k‖/‖b‖ < 1e-8是常见选择;对病态问题应同时监控‖e_k‖_A的估计(CG中可由递推量免费获得),避免残差小而误差大。 - 验证调参效果:更换预条件后重估κ与谱分布,对比达到同一残差阈值的步数,而不是只看单步残差下降。
ρ(G)<1 当作“一定快”。谱半径接近1时收敛极慢;而非正规矩阵即使ρ<1,前期误差也可能放大。判断收敛必须同时看谱半径、条件数、谱分布与实测曲线。小结:谱半径回答“定常迭代收不收敛、渐近多快”;条件数回答“问题本身多病态、CG最坏多慢”;特征值分布回答“实际会不会比最坏界快得多”;Krylov多项式逼近理论则把三者统一起来——收敛速度本质上取决于能否找到一个低次多项式在谱集上足够小。掌握这条主线,后续的预条件选择、松弛因子设定与停机判据就有了可解释的依据。