LU decomposition with 5 output arguments
Show older comments
Dear all,
I am trying to solve a huge linear system Ax = b using LU decomposition with five output arguments:
[L, U, p, q, D] = lu(A, 'vector');
My matrix A is sparse with nnz(A) =1e+9 and size(A) = (1e+7, 1e+7)
However, I cannot find any official help to use these 5 arguments to solve the system.
Does anyone have any idea how to ultilize these arguments?
Best,
Doan
Accepted Answer
More Answers (1)
dA=decomposition(A,'ldl');
x=dA\b;
3 Comments
Duy Hai
on 22 Mar 2024
[L,U,P,Q,D] = lu(S) also returns a diagonal scaling matrix D such that P*(D\S)*Q = L*U. Typically, the row-scaling leads to a sparser and more stable factorization.
outputForm — Shape of permutation outputs
'matrix' (default) | 'vector'
Shape of permutation outputs, specified as 'matrix' or 'vector'. This flag controls whether lu returns the row permutations P and column permutations Q as permutation matrices or permutation vectors.
As matrices, the outputs P and Q satisfy these identities:
- Three outputs — P satisfies P*A = L*U.
- Four outputs — P and Q satisfy P*S*Q = L*U.
- Five outputs — P, Q, and D satisfy P*(D\S)*Q = L*U.
As vectors, the outputs P and Q satisfy these identities:
- Three outputs — P satisfies A(P,:) = L*U
- Four outputs — P and Q satisfy S(P,Q) = L*U
- Five outputs — P, Q, and D satisfy D(:,P)\S(:,Q) = L*U.
Example: [L,U,P] = lu(A,'vector')
Thanks, but my matrix is not Hermitian so that LDL doesn't apply.
Well, you can just do,
dA=decomposition(A)
and let it choose what is best for thte matrix
I have no idea on which option that decomposition uses: 'vector' format or the default format 'matrix'.
I don't think you need to know. You can just check how much memory the dA object consumes.
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!