我熟悉用于求解线性方程组的 Cholesky 分解和 LU 分解。
我有一个问题,我有大型稀疏矩阵(例如,1000x1000 或更大),其中只有一两行/列(最后几行/列)破坏对称性。我知道 Cholesky 的效率几乎是 LU 的两倍,但由于这些异常行/列,我不能使用 Cholesky。
是否有另一种方法或算法可以处理这种特殊情况 - 即,利用几乎整个矩阵是自伴/对称的事实(仅此处为实数值)?
我熟悉用于求解线性方程组的 Cholesky 分解和 LU 分解。
我有一个问题,我有大型稀疏矩阵(例如,1000x1000 或更大),其中只有一两行/列(最后几行/列)破坏对称性。我知道 Cholesky 的效率几乎是 LU 的两倍,但由于这些异常行/列,我不能使用 Cholesky。
是否有另一种方法或算法可以处理这种特殊情况 - 即,利用几乎整个矩阵是自伴/对称的事实(仅此处为实数值)?
让我们表达矩阵我们想用它来解决线性系统
在哪里是一个对称矩阵,, 和. 那是,是一个低秩更新,以解决缺乏对称性。从你的问题看来只是 1 或 2。
伍德伯里矩阵恒等式告诉
我们
现在,对称矩阵出现逆. 在预处理步骤中,您可以计算 Cholesky 分解和预计算. 注意只需要计算失败,这应该可以忽略不计。
预处理后,可以求解线性系统. 从右到左工作,我们可以使用前/后替换来计算. 然后,我们需要执行矩阵向量乘法. 以, 可以忽略不计。