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方法实际收敛形态

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需要多少步。

特征值分布 → 多项式逼近 → 收敛速率 谱分布(对称正定示例) 0 λ_max 小特征值簇 大特征值簇 κ = λ_max/λ_min 大,但谱分两簇 相对残差收敛曲线(示意) 迭代步数 k ‖r‖ 小特征值导致平台 簇被快速消去 CG 误差界:‖e_k‖_A/‖e_0‖_A ≤ 2·((√κ−1)/(√κ+1))^k κ=100 → 因子0.818,约70步;κ=10⁴ → 因子0.980,约690步;κ=10⁶ → 约6900步 调参判断:κ大且谱连续 → 上预条件;谱分簇 → 预期超线性,勿过度调参;孤立小特征值 → deflation/移位 非正规矩阵:特征值不足以刻画收敛,需结合数值域/伪谱与实测残差曲线

四、理论界怎么用:从界到停机与调参

理论界的作用不是精确预测步数,而是给出量级判断和调参方向。实践中建议按以下顺序使用:

  1. 先估κ:用幂迭代估 λ_max,用逆迭代或Lanczos估 λ_min,得到κ的量级。若κ>10⁴,直接考虑预条件,而不是先调松弛因子。
  2. 再看谱形:用少量Lanczos步观察Ritz值是否分簇、是否有孤立小特征值。分簇明显时,理论最坏界会严重高估步数,应以实测残差曲线为准。
  3. 设定停机判据:相对残差 ‖r_k‖/‖b‖ < 1e-8 是常见选择;对病态问题应同时监控 ‖e_k‖_A 的估计(CG中可由递推量免费获得),避免残差小而误差大。
  4. 验证调参效果:更换预条件后重估κ与谱分布,对比达到同一残差阈值的步数,而不是只看单步残差下降。
常见误区:把 ρ(G)<1 当作“一定快”。谱半径接近1时收敛极慢;而非正规矩阵即使ρ<1,前期误差也可能放大。判断收敛必须同时看谱半径、条件数、谱分布与实测曲线。

小结:谱半径回答“定常迭代收不收敛、渐近多快”;条件数回答“问题本身多病态、CG最坏多慢”;特征值分布回答“实际会不会比最坏界快得多”;Krylov多项式逼近理论则把三者统一起来——收敛速度本质上取决于能否找到一个低次多项式在谱集上足够小。掌握这条主线,后续的预条件选择、松弛因子设定与停机判据就有了可解释的依据。