Appearance
11. Arnoldi、FOM 与 GMRES
当矩阵很大且只能高效计算
11.1 Krylov 子空间
给定初始残差
我们在仿射空间
11.2 Arnoldi 过程
令
其中
- 计算
; - 对已有基向量做投影并减去;
- 用剩余向量的范数归一化得到
。
经典或修正 Gram–Schmidt 都会受舍入误差影响。若正交性明显丢失,应进行一次或选择性重正交化。
若
第
11.3 FOM:Galerkin 条件
设
代入 Arnoldi 关系得到小型线性系统
FOM 让残差对试探空间正交,但不直接最小化残差范数。
11.4 GMRES:最小残差
GMRES 解的是
利用 Arnoldi 关系,原来的大问题等价为
每加入一列,只需用 Givens 旋转更新小型 QR 分解;无需每轮重新求整个最小二乘问题。旋转后的最后一个分量还能廉价给出递推残差范数。
具体地,若已有旋转把
11.5 重启与预处理
完整 GMRES 的基向量存储和正交化成本随
预处理的目标是改善谱分布:
- 左预处理:
; - 右预处理:
,再令 。
右预处理便于用原方程的真实残差判断停机。无论采用哪一种,都应通过“解
11.6 算法选择
- 一般非对称矩阵:GMRES 是标准选择之一。
- Hermitian 不定矩阵:可用保持短递推的 MINRES。
- 对称正定矩阵:优先考虑共轭梯度法。
结构专用算法通常能节省存储和正交化成本,不应无条件把所有问题都交给 GMRES。
11.7 GMRES 的多项式解释
任意
GMRES 选择使
这个界说明谱聚簇可能有利,但非正规性会通过
11.8 递推残差与真实残差
Givens 递推得到的是“小问题所预测的残差”。有限精度下 Arnoldi 关系和正交性都会有误差,因此它可能逐渐偏离
稳健实现应周期性显式重算真实残差,并最终以真实残差验收。若二者偏差显著,应考虑重正交化、残差替换或更可靠的停止准则。
11.9 重启、停滞与保留信息
GMRES(
改进方法包括:
- 增大重启长度;
- 在重启时保留近似不变子空间(deflated/recycled GMRES);
- 使用灵活 GMRES 允许预处理器随步数变化;
- 根据残差停滞诊断预处理而非只修改容差。
11.10 其他 Krylov 线性求解器
| 结构 | 代表方法 | 主要特征 |
|---|---|---|
| Hermite 正定 | CG | 三项短递推, |
| Hermite 不定 | MINRES | 短递推并最小化 2-范数残差 |
| 一般非对称 | BiCG、QMR、BiCGSTAB | 短递推,存储小,但残差可能不单调 |
| 一般非对称 | GMRES | 残差单调不增,但存储和正交化增长 |
短递推通常以更复杂的收敛行为或潜在 breakdown 为代价。选择算法时应先利用矩阵结构,再权衡内存与单调残差需求。
11.11 预条件的实际形式
左预条件 GMRES 最小化的是
好的预处理器不只让条件数变小,更希望把特征值聚在远离零的区域、削弱非正规性,并且构造与应用成本可控。
自检
- Arnoldi 关系为何把大规模残差最小化化为小型最小二乘?
- FOM 与 GMRES 对残差施加的条件分别是什么?
- 为什么重启能节省资源,却可能破坏收敛?
- 为什么 GMRES 的特征值分布不足以单独预测收敛?
- 左、右预处理分别影响哪一个残差或变量?