1. 课程导入与全景认知

在科学计算与工程仿真中,我们最终要求解的绝大多数问题,都会归结为一个线性方程组 Ax = b。无论是有限元结构分析中的刚度矩阵、计算流体力学中的压力泊松方程、电磁场仿真中的稀疏离散系统,还是机器学习中的大规模最小二乘问题,求解器都是整个计算流程中最耗时、也最容易出问题的环节。理解迭代求解器的定位,是后续收敛分析与调参工作的起点。

直接法与迭代法:两种求解哲学

求解 Ax = b 有两条技术路线。直接法(如 LU 分解、Cholesky 分解)通过有限步消元得到精确解(在浮点意义下),结果稳定可预期,但计算量与存储量随问题规模快速增长,对三维大规模稀疏问题往往难以承受。迭代法从一个初始猜测 x₀ 出发,构造序列 x₁, x₂, …,使残差 rₖ = b − Axₖ 逐步减小,在满足收敛判据时停止。它不追求有限步精确,而是用可控的精度换取可扩展的计算效率——这正是大规模仿真中迭代法成为主力的根本原因。

常见的迭代求解器可分为几类:定常迭代法(Jacobi、Gauss-Seidel、SOR)实现简单但收敛慢,多用于光滑子或教学演示;Krylov 子空间方法(CG、GMRES、BiCGSTAB、MINRES)是现代主力,其中 CG 适用于对称正定系统,GMRES 适用于一般非对称系统;多重网格(AMG)则通过多尺度校正获得接近线性的复杂度。选择哪一类,取决于矩阵的对称性、正定性、条件数以及问题规模。

迭代求解器在仿真流程中的定位与收敛调参闭环 物理/工程问题 结构·流体·电磁·热 离散化 有限元/有限体积/差分 线性系统 Ax = b 稀疏·大规模·病态 求解器 直接法 / 迭代法 迭代求解核心循环 初始猜测 x₀ 零向量/前解外推 迭代步 xₖ → xₖ₊₁ Krylov/多重网格 收敛判据 ‖rₖ‖/‖b‖ < tol 输出解 x* 未收敛:继续迭代 收敛分析与调参闭环 观察收敛曲线 残差下降速率 诊断瓶颈 条件数/预条件/停滞 调整参数 tol/预条件/重启 验证 精度与效率 不满足:回到观察,形成调参迭代

收敛分析的核心挑战

迭代法“能算”不等于“算得动”。收敛分析要回答三个问题:会不会收敛、收敛多快、收敛到什么精度。对 CG 而言,收敛速度与矩阵条件数 κ(A) 密切相关,粗略估计迭代次数正比于 √κ;条件数从 10³ 恶化到 10⁶,迭代次数可能从几十步涨到上千步。对 GMRES,非正规矩阵可能导致残差平台期甚至停滞,此时单纯增加迭代次数无济于事。

实践中常见的收敛障碍包括:矩阵病态导致残差下降极慢;预条件子与矩阵不匹配,反而拖慢收敛;右端项 b 与初始残差尺度差异大,绝对容差判据失效;以及并行环境下浮点舍入累积使残差无法继续下降。这些问题无法靠“多迭代几次”解决,必须通过诊断定位根因。

调参的关键维度

调参不是盲目试参数,而是围绕几个可控维度做有依据的调整。第一是收敛容差:应优先使用相对残差判据 ‖rₖ‖/‖b‖ < tol,tol 常取 1e-6 至 1e-10,过严会浪费计算,过松则污染下游物理量。第二是预条件子:ILU、Jacobi、SSOR、AMG 的选择要与矩阵结构匹配,例如对角占优弱时 Jacobi 效果有限,而 AMG 对椭圆型问题往往显著。第三是算法参数:GMRES 的重启长度 m、BiCGSTAB 的稳定化策略、多重网格的层数与光滑子次数。第四是初始猜测:在瞬态或非线性外迭代中,用上一步解作为初值可大幅减少迭代步数。

调参的基本原则是“先诊断、后调整、再验证”。每次只改一个维度,记录迭代步数、残差曲线和总耗时,避免多参数同时变动导致无法归因。

课程目标与学习路径

本课程围绕“看懂收敛—定位瓶颈—有效调参”这条主线展开。学习路径分为四个阶段:首先建立迭代求解器的全景认知与数学基础,理解残差、条件数、谱分布等核心概念;其次掌握收敛行为的观测与诊断方法,学会读残差曲线、识别停滞与震荡;然后进入预条件技术与算法参数的实战调优,结合典型矩阵类型给出可操作的配置策略;最后通过综合案例完成从问题建模到调参验证的完整闭环。