GMRES 和 FOM 之间的主要区别是什么?

计算科学 克雷洛夫法 格瑞斯
2021-12-21 00:00:49

我正在阅读 Saad 教授的“稀疏线性系统的迭代方法”(第 2 版)

FOM 的基本算法在第 166 页给出,GMRES 的基本算法在第 172 页给出。

FOM 和 GMRES 似乎都构建了相同的 Krylov 子空间和上 Hessenberg 矩阵。

然而,在算法的最后,FOM 求解线性系统以获得xm(似乎丢弃了 Hessenberg 矩阵的最后一行)而 GMRES 解决了整个 Hessenberg 矩阵的最小二乘问题以获得xm. 那么,这两个问题的解决方案是ym=Vmxm+x0我认为Vm两种算法都是一样的。

我的问题是:

  1. 为什么这个(在我看来,看似很小的)差异会创建两个独立的算法?

  2. 为什么 GMRES 比 FOM 被广泛使用?

显然我似乎错过了一些东西,但我不知道是什么。

1个回答

GMRES 与 FOM 之间有一个主要区别。这也是我推荐 GMRES 而不是 FOM 的原因。

在精确算术中,GMRES 得到的残差形成一个递减序列。您确定在没有舍入误差的情况下 GMRES 残差不会增加。一旦计算出的残差偏离了这个简单的模式,就不会从进一步的迭代中获得任何收益。

在 FOM 的情况下,任意正残差曲线是可能的。您仍然可以检测到进一步的迭代何时没有意义,但您必须测量次对角元素的大小hj+1,j作为Vj是矩阵的不变子空间A+ΔA在哪里ΔA2=hj+1,j. 你会发现一个明确的公式ΔA在萨德的书中。换句话说,一旦hj+1,j跌至以下τA2在哪里τ是与计算相关的范数相对误差A,进一步的 Arnoldi 步骤是没有意义的。在这个阶段,我们完全有可能准确地解决了真正的问题。

与决定进一步的 GMRES 迭代何时无意义相比,确定进一步的 FOM 迭代何时无意义需要更多的知识和洞察力。