为什么固定一个点来删除一个空空间不好?

计算科学 克雷洛夫法
2021-12-21 01:49:08

具有所有 Neumann 边界条件的 Poisson 方程具有单个恒定维零空间。当通过 Krylov 方法求解时,可以通过每次迭代减去解的平均值或通过固定单个顶点的值来移除零空间。

固定单个顶点具有简单的好处,并且还避免了每个投影的额外全局减少。然而,由于它对调节的影响,它通常被认为是不好的。因此,我总是减去均值。

然而,这两种方法之间的差异最多为 2 级校正,因此根据(1),它们应该在几乎相同的迭代次数中收敛(至少在精确的算术中)。这种推理是否正确,或者是否还有其他原因表明点固定不好(可能是不精确的算术)?

(1):低秩修改如何影响 Krylov 方法的收敛?

1个回答

您的论点自然适用于无条件的情况。我不建议固定的原因是它混淆了规范和预处理。如果您知道典型对角线值的大小,则可以缩放固定节点的平凡方程,以便范数再次变得合理。

要查看预处理的结果,我们必须区分执行固定的不同方法。我认为其中两个最受欢迎。

  1. 如果通过“将行归零”(设置行等于恒等式的缩放行)来实现固定,则它会引入不对称性,这会限制 Krylov 方法的选择,并且会混淆预处理器(例如,使代数多重网格选择较差的聚合)。
  2. 如果相应的列也归零(贡献“提升”到右侧),则效果非常温和。

请注意,可能必须调整多重网格的插值算子以在每个级别上以兼容的方式进行固定。如果您不介意通过良好的缩放实现固定所引入的复杂性,那么这是一种很好的方法。在大多数情况下,我们发现以非破坏性方式实现 pinning 比提供近零空间更具侵入性和更容易出错。通过使用原始(奇异)矩阵,求解器库还可以验证提供的零空间确实是零空间,从而防止出现常见错误。