在LAPACK / BLAS或其他地方有Fortran子程序来计算LDL分解吗?

时间:2009-05-28 15:18:58

标签: matrix linear-algebra lapack decomposition

就像标题所说的那样,我需要为我的正定矩阵A形成cholesky LDL分解(就像普通的cholesky,但是L的一个对角线,D是对角矩阵)。我发现Lapack中只有一个函数可以做到这一点,但它说矩阵A必须是三对角线。是否有一些函数可以在一些免费的子程序库中实现,比如lapack?

1 个答案:

答案 0 :(得分:2)

从LAPACK中查看SSPTRF功能:

目的
=======

SSPTRF计算存储的实对称矩阵A的分解 使用Bunch-Kaufman对角线旋转方法的打包格式:

   A = U * D * U ** T或A = L * D * L ** T.

其中U(或L)是置换和单位上(下)的乘积 三角矩阵,D是对称的,与对角线对齐 1对1和2对2对角块。

此外,Golub和van Loan的“Matrix Computations”一书给出了进行分解的算法。在我的第三版中,它在第138页,第4.1.2节“对称性和LDL ^ T分解”。