更新线性系统的近似解以响应微小的变化

计算科学 算法 线性求解器 矩阵 近似
2021-12-11 17:53:09

这个问题最初是在 SO 上发布的,但有人建议我在这里发布。

我正在开发一个程序,其中我有一个带状矩阵M和一个向量b,我想保持一个近似解向量x使得Mxb是否有一种快速的算法或建模方法,以便我可以更改M的各个元素并相应地更新x,而无需进行完整的矩阵求逆?

我正在考虑的一件事是保持M的近似逆,将Sherman Morrison 算法与这样的快速近似矩阵乘法算法结合使用

1个回答

为可能是评论-答案混合的内容道歉(并且评论可能太长而无法放入评论框中)。

您在问题中说的一件事是您想要一个近似解向量。您是否考虑过迭代方法?那里的近似倒数M可以用作与某些迭代方法(GMRES、BiCGStab 等)一起使用的预处理器,以保持近似解向量,然后可以将一个线性系统的近似解用作扰动线性系统解的初始猜测.

要更新预处理器以响应单元素(或低秩)扰动,您可以使用 Sherman-Morrison(-Woodbury)。根据扰动,即使没有更新,近似逆可能仍然是有效的预处理器。

我不知道近似矩阵乘法可能会降低迭代线性系统的解的速度。我猜想形成前置条件会更宽容,因为这可能是近似的。在形成预处理器之后,我会坚持使用标准矩阵向量产品来进行求解器迭代(对于 GMRES 迭代,或您考虑使用的任何迭代方法)。

当然,这整个讨论可能没有实际意义,具体取决于M. 如果它足够小,那么每次都值得解决;我认为它相对较大,否则我们将不会进行此讨论。