symrcm
Ordenação de Cuthill-McKee reversa que reduz a largura de banda de uma matriz esparsa.
Categoria: Mathematics > Sparse Matrices
Sintaxe
p = symrcm(S)
Retorna um vetor de permutação p tal que S(p,p) tenha largura de banda menor.
Descrição
O método numera os nós do grafo da matriz em largura, partindo de um nó distante do centro, e depois inverte a ordem. Linhas e colunas ligadas ficam próximas, e os não nulos se reúnem perto da diagonal. Uma banda mais estreita significa menos preenchimento em fatorações de Cholesky ou LU em banda, e um produto matriz-vetor mais amigável ao cache.
Aplique-a simetricamente, S(p,p), para manter simétrica uma matriz simétrica.
Argumentos de entrada
S- Matriz esparsa quadrada, tratada como simétrica pelo seu padrão.
Argumentos de saída
p- Vetor linha, uma permutação de
1:size(S,1).
Exemplo
Reordenando uma matriz
S = sparse([1 0 0 1; 0 1 1 0; 0 1 1 0; 1 0 0 1]);
p = symrcm(S)
full(S(p, p))
Saída
p = 1×4
2 3 1 4
ans = 4×4
1 1 0 0
1 1 0 0
0 0 1 1
0 0 1 1