MATLAB Function Reference
  Go to function:
    Search    Help Desk 
dmperm

Dulmage-Mendelsohn decomposition

Syntax

Description

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.



[ Previous | Help Desk | Next ]