MATLAB Function Reference | Search  Help Desk |
dmperm |
Dulmage-Mendelsohn decomposition
p = dmperm(A) [p,q,r] = dmperm(A) [p,q,r,s] = dmperm(A)If
A
is a reducible matrix, the linear system Ax = b can be solved by permuting A
to a block upper triangular form, with irreducible diagonal blocks, and then performing block backsubstitution. Only the diagonal blocks of the permuted matrix need to be factored, saving fill and arithmetic in the blocks above the diagonal.
p = dmperm(A)
returns a row permutation p
so that if A
has full column rank, A(p,:)
is square with nonzero diagonal. This is also called a maximum matching.
[p,q,r] = dmperm(A)
where A
is a square matrix, finds a row permutation p
and a column permutation q
so that A(p,q)
is in block upper triangular form. The third output argument r
is an integer vector describing the boundaries of the blocks: The kth block of A(p,q)
has indices r(k):r(k+1)-1
.
[p,q,r,s] = dmperm(A),
where A
is not square, finds permutations p
and q
and index vectors r
and s
so that A(p,q)
is block upper triangular. The blocks have indices (r(i):r(i+1)-1, s(i):s(i+1)-1)
.
In graph theoretic terms, the diagonal blocks correspond to strong Hall components of the adjacency graph of A
.