LDL Factorization Fails on Sparse Matrix
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I was playing with matlab's built in finite difference laplacian operator and noticed that the ldl factorization in matlab works when it is dense but somehow fails when it is sparse:
A = (delsq(numgrid('L', 40)));
A2 = full(delsq(numgrid('L', 40)));
bA = sum(A,2);
[LA, DA, PA] = ldl(A);
x = LA'\(DA\(LA\bA));
[L2, D2, P2] = ldl(A2);
x2 = L2'\(D2\(L2\bA));
The Laplacian should be positive definite and is real symmetric so hermitian so the LDL should be applicable but am stumped on why factorizing the sparse version fails.
2 commentaires
Torsten
le 2 Jan 2022
From the documentation of LDL:
L = ldl(A) returns only the permuted lower triangular matrix L as in the two-output form. The permutation information is lost, as is the block diagonal factor D. By default, ldl references only the diagonal and lower triangle of A, and assumes that the upper triangle is the complex conjugate transpose of the lower triangle. Therefore [L,D,P] = ldl(TRIL(A)) and [L,D,P] = ldl(A)both return the exact same factors. Note, this syntax is not valid for sparse A.
Réponses (0)
Voir également
Catégories
En savoir plus sur Linear Algebra dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!