求解涉及矩阵乘法的 mxm 对称线性系统与 (n+m) x (n+m) 系统

计算科学 线性求解器 线性系统
2021-12-03 20:37:04

假设RD是一个n×mm×m矩阵。假使,假设mn然后D是肯定的。我们想解决系统(RTR+D)x=RTb. 这涉及矩阵乘法RTR这是相当昂贵的,O(m2n)在最坏的情况下。

相反,让z=Rxb,我们可以尝试解决

[DRTRIn][xz]=[0b]
在最坏情况下的成本(n+m)3这似乎比原来的方法更糟糕。但后一个系统有一个很大的身份块。是否有可能比较小的系统更有效地解决较大的系统,例如通过有效的 Cholesky 分解或迭代过程。让我们假设R通常是密集的,尽管我们可以通过阈值化通过稀疏矩阵来近似它。

我应该补充一点,任何避免直接矩阵乘法的原始问题的解决方案也很有趣。

1个回答

在我看来,你需要一个很好的借口来采用一个对称的正定系统,然后把它变成一个不定系统。

我要尝试的第一件事是与你原来的共轭梯度法RTR+D=RTb系统,除了每次迭代执行 3 个矩阵向量乘积。对待RTR+D作为运算符,而不是显式地形成矩阵。

如果这太慢,您可以执行 Cholesky 分解D.

RTR+D=RTR+LLT=[RTL][RLT]=CTC

从这里开始,使用带有两个矩阵向量运算的共轭梯度。

最后你可以计算 QR 分解C,这基本上产生了一个cholesky分解RTR+D.

CTC=rTQTQr=rTr

如果不测试您的实际矩阵,很难知道最好的方法是什么。

编辑:修正 QR 分解公式