假设和是一个和矩阵。假使,假设然后是肯定的。我们想解决系统. 这涉及矩阵乘法这是相当昂贵的,在最坏的情况下。
相反,让,我们可以尝试解决
在最坏情况下的成本这似乎比原来的方法更糟糕。但后一个系统有一个很大的身份块。是否有可能比较小的系统更有效地解决较大的系统,例如通过有效的 Cholesky 分解或迭代过程。让我们假设通常是密集的,尽管我们可以通过阈值化通过稀疏矩阵来近似它。
我应该补充一点,任何避免直接矩阵乘法的原始问题的解决方案也很有趣。
假设和是一个和矩阵。假使,假设然后是肯定的。我们想解决系统. 这涉及矩阵乘法这是相当昂贵的,在最坏的情况下。
相反,让,我们可以尝试解决
在最坏情况下的成本这似乎比原来的方法更糟糕。但后一个系统有一个很大的身份块。是否有可能比较小的系统更有效地解决较大的系统,例如通过有效的 Cholesky 分解或迭代过程。让我们假设通常是密集的,尽管我们可以通过阈值化通过稀疏矩阵来近似它。
我应该补充一点,任何避免直接矩阵乘法的原始问题的解决方案也很有趣。
在我看来,你需要一个很好的借口来采用一个对称的正定系统,然后把它变成一个不定系统。
我要尝试的第一件事是与你原来的共轭梯度法系统,除了每次迭代执行 3 个矩阵向量乘积。对待作为运算符,而不是显式地形成矩阵。
如果这太慢,您可以执行 Cholesky 分解.
从这里开始,使用带有两个矩阵向量运算的共轭梯度。
最后你可以计算 QR 分解,这基本上产生了一个cholesky分解.
如果不测试您的实际矩阵,很难知道最好的方法是什么。
编辑:修正 QR 分解公式