数值线性代数

GMRES

GMRES——广义极小残差法——是面向一般非对称 Ax = b 的主力 Krylov 求解器,此时共轭梯度那些优雅的技巧不再适用。它的定义原则正如其名:在第 k 步,它从 Krylov 子空间中挑选使残差欧几里得范数 ||b - A x_k|| 极小的向量 x_k。在子空间提供的所有候选中,GMRES 总返回剩余最小的那个。

机理上,它运行 Arnoldi 过程为 Krylov 子空间构造一组标准正交基,并把 A 约化为一个小的上海森伯格矩阵。极小化残差于是塌缩为该海森伯格矩阵上的一个微型最小二乘问题,每步都能廉价求解。由于残差范数单调不增,GMRES 永远不会变糟——这是一个令人安心的保证,而那些面向非对称的 CG 变体并不都具备。

代价是内存与开销。与 CG 的短递推不同,完整 GMRES 必须存储每个 Arnoldi 基向量并对它们全部重新正交化,故第 k 步的开销和存储均为 O(k)——无界增长。标准补救是重启,即 GMRES(m):跑 m 步,把当前答案当作新初始猜测,从头开始。这给内存封顶,但可能停滞,因为重启丢弃了全局子空间。

非对称矩阵的收敛确实比 CG 更难预测;当 A 远非正规时,仅凭特征值并不能决定它。实践中 GMRES 没有好的预处理子很少有竞争力,但配上一个,它就是流体力学、电磁学和电路仿真中那些非对称系统的可靠默认选择。

x_k = argmin over x in K_k(A,b) of ||b - A x||_2

GMRES 由一个极小化定义:每步返回 2-范数下残差最小的 Krylov 子空间向量。

完整 GMRES 在数学上最干净,但实践中昂贵;几乎人人都用重启的 GMRES(m)。选 m 是一门艺术:m 越大,外循环越少就收敛,但每个循环耗更多内存与工作量。

又称
generalized minimal residual method