在FETI方法中,需要一个稀疏矩阵K的广义逆。在我的例子中,K是由四面体网格上的有限元离散产生的矩阵
线性弹性方程。我知道如何计算LDL^T的广义逆但我不确定如何有效地计算LDL^T分解。该算法同时使用矩阵的行和列。我应该使用向左看还是向右看的算法?如果有人能给我提供任何提示,我将非常感激。谢谢你!
我相信LAPACK有一个高效的LDLT算法。我不确定它是否已经实现了复值矩阵,但算法应该是相当简单的扩展到复数。你可以在下面找到代码:
http://www.alglib.net/matrixops/symmetric/ldlt.php
对于稀疏系统,我建议使用线轴而不是LAPACK或者自己编写算法。也存在并行实现。
更一般地说,奇异值分解也许能更有效地找到伪逆取决于矩阵的结构。
——Biswajit
Re: ldlt分解
我相信LAPACK有一个高效的LDLT算法。我不确定它是否已经实现了复值矩阵,但算法应该是相当简单的扩展到复数。你可以在下面找到代码:
http://www.alglib.net/matrixops/symmetric/ldlt.php
对于稀疏系统,我建议使用线轴而不是LAPACK或者自己编写算法。也存在并行实现。
更一般地说,奇异值分解也许能更有效地找到伪逆取决于矩阵的结构。
——Biswajit