为什么 MATLAB 在其内置函数 gmres.m 中选择 Householder?

计算科学 迭代法 克雷洛夫法
2021-12-14 00:31:12

最近研究了如何构造Krylov子空间的正交基来求解Ax=b, 在哪里ARn×n是非奇异的。我们知道,通常有 4 种方法来构建一个m维 Krylov 子空间如下:{v,Av,...,Am1v}

  1. 标准革兰-施密特 (GS);
  2. 改良的革兰-施密特 (MGS);
  3. 户主反思(House);
  4. 重新正交化的 MGS (MGSR)。

MethodWorkStorageG-S2m2n(m+1)nMGS2m2n(m+1)nHouse4m2n43m3(m+1)n12m2MGSR4m2n(m+1)n

我的问题来自计算工作,MGSR 最多是 GS 和 MGS 的两倍。从数值稳定性来看,Householder是最可靠的方法,但计算量很大。对我们来说,如果给定任意矩阵,我们应该如何选择最好的算法来编写该方法,例如 gmres.m?有标准吗?顺便说一句,我发现我的 Matlab 2018b 选择了 Householder 方法。这是否意味着在实践中,Householder 被证明是最有效和最稳定的方法?A

1个回答

如果你使用 GMRES,通常你有一个大的刚性系统。与 GMRES 和预处理器的开销相比,为户主算法所做的额外工作可以忽略不计。因此,我们需要数值更稳定的方法来确保系统更有可能收敛。特别是因为您选择 GMRES 是因为您想要保证收敛的东西,所以引入的数值不稳定性是次优的。