4. 线性方程组迭代解法与选型
直接法(如高斯消元、LU 分解)通过有限步运算得到精确解(在无舍入误差意义下),而迭代法从一个初始猜测出发,构造一串近似解,使其逐步逼近真解。对于工程中常见的大规模稀疏方程组——例如有限元离散后的刚度方程、热传导网格上的差分方程——系数矩阵动辄上万阶且绝大多数元素为零,直接法会因填充(fill-in)导致存储和计算量急剧膨胀,迭代法只需矩阵-向量乘,天然适合稀疏结构,因此成为工程求解的主力。
本节围绕四条主线展开:雅可比迭代、高斯-赛德尔迭代、SOR 方法、共轭梯度法,并给出收敛性判断与工程选型准则。
一、从分裂思想理解三种定常迭代
设方程组为 Ax = b。把系数矩阵分裂为 A = D − L − U,其中 D 为对角部分,−L 为严格下三角部分,−U 为严格上三角部分。三种经典迭代的区别,本质上就是"用哪部分旧信息、哪部分新信息"来构造下一步。
雅可比(Jacobi)迭代:只用上一轮的全体分量计算新值,
x_i^(k+1) = ( b_i − Σ_{j≠i} a_ij · x_j^(k) ) / a_ii
它的优点是各分量彼此独立,天然可并行;缺点是收敛通常最慢,且要求对角占优等条件较严。
高斯-赛德尔(Gauss-Seidel)迭代:计算第 i 个分量时,前面已更新的 x_1^(k+1) … x_{i−1}^(k+1) 立即投入使用,
x_i^(k+1) = ( b_i − Σ_{j<i} a_ij·x_j^(k+1) − Σ_{j>i} a_ij·x_j^(k) ) / a_ii
由于"边算边用",在同样条件下它通常比雅可比快约一倍,但失去了分量级并行性,且更新顺序会影响结果。
SOR(逐次超松弛):在高斯-赛德尔新值与旧值之间做外推,引入松弛因子 ω,
x_i^(k+1) = (1−ω)·x_i^(k) + ω·(高斯-赛德尔新值)
ω = 1 退化为高斯-赛德尔;1 < ω < 2 为超松弛,可显著加速;0 < ω < 1 为低松弛,用于抑制振荡。ω 的选取是 SOR 的关键,对典型模型问题存在最优值 ω_opt = 2 / (1 + √(1 − ρ_J²)),其中 ρ_J 为雅可比迭代矩阵的谱半径。工程中常先用小规模试算扫描 ω,再用于大规模问题。
二、共轭梯度法:Krylov 子空间路线
共轭梯度法(CG)不属于定常迭代,它专用于对称正定矩阵。其思想是在 Krylov 子空间 span{r₀, Ar₀, A²r₀, …} 中寻找使能量范数误差最小的解,每步沿一组 A-共轭方向前进,理论上 n 步内精确收敛,实际因舍入误差需按残差阈值停止。CG 每步只需一次矩阵-向量乘和少量向量内积,存储需求极低,是大型对称正定稀疏系统的首选。若矩阵非对称,则需改用 GMRES、BiCGSTAB 等 Krylov 方法。
三、收敛性判断
迭代 x^(k+1) = B x^(k) + f 收敛的充要条件是迭代矩阵谱半径 ρ(B) < 1。谱半径计算代价高,工程中常用充分条件快速判断:
- 严格对角占优:若
|a_ii| > Σ_{j≠i}|a_ij|对所有 i 成立,则雅可比与高斯-赛德尔均收敛。 - 对称正定:A 对称正定时,高斯-赛德尔收敛;此时 CG 也适用。
- 不可约弱对角占优:配合至少一行严格占优,同样保证收敛。
实际运行时还应设置三重停止准则:残差范数 ‖r^(k)‖ ≤ tol·‖b‖、相邻迭代增量足够小、以及最大迭代次数上限,防止病态问题下无限循环。
四、预处理技术简介
收敛速度取决于矩阵的条件数与特征值分布。预处理即用 M⁻¹A 替代 A 求解,其中 M 近似 A 且 M⁻¹v 易于计算。常见选择:对角预处理(Jacobi 预处理,最简单)、不完全 LU 分解(ILU)、对称超松弛预处理(SSOR)、以及多重网格预处理。好的预处理能把迭代次数从数千降到几十,是工程求解器的核心竞争力之一。
五、工程场景下的选型准则
选型不是背结论,而是按"矩阵性质—规模—精度—并行需求"逐层判断。下面这张决策图把关键判断路径与对应方法组织在一起,可作为实际选型的速查依据。
结合上图,工程选型可归纳为几条经验:
- 对称正定且规模大:首选 CG 加对角或 SSOR 预处理;若条件数极差,升级到 ILU 预处理或代数多重网格。
- 非对称或不定:用 GMRES(需重启控制内存)或 BiCGSTAB,配合 ILU 预处理。
- 结构简单、对角占优的差分网格:高斯-赛德尔或 SOR 实现成本低、代码短,适合快速原型;SOR 的 ω 需试算确定。
- 需要 GPU 并行:雅可比与 CG 的分量级/向量级并行更友好,高斯-赛德尔需红黑排序才能并行。
落地时建议形成固定流程:先判断矩阵对称性与对角占优性,选定候选方法;用小规模子问题试算,记录迭代次数与残差下降曲线;确定容差与最大迭代数;再投入全规模求解,并保留残差日志用于复盘。这样选型才有依据,而不是凭经验拍板。