colperm

Разреженное сочетание столбца на основе ненулевого счета

Синтаксис

j = colperm(S)

Описание

j = colperm(S) генерирует вектор сочетания j таким образом, что столбцы S(:,j) упорядочены в соответствии с увеличением количества ненулевых записей. Это иногда полезно в качестве предварительного упорядоченного расположения для LU-факторизации; в этом случае используйте lu(S(:,j)).

Если S симметрично, тогда j = colperm(S) генерирует сочетание j так что и строки, и столбцы S(j,j) упорядочены в соответствии с увеличением количества ненулевых записей. Если S положительно определено, это иногда полезно в качестве предварительного упорядоченного расположения для факторизации Холесского; в этом случае используйте chol(S(j,j)).

Примеры

The n-by- n матрица стрелок

A = [ones(1,n); ones(n-1,1) speye(n-1,n-1)]

имеет полную первую строку и столбец. Его LU-факторизация, lu(A), почти полностью полно. Оператор

j = colperm(A)

возвращает j = [2:n 1]. Итак A(j,j) отправляет полную строку и столбец внизу и сзади, и lu(A(j,j)) имеет ту же ненулевую структуру, что и A сам.

С другой стороны, пример мяча Баки,

B = bucky

имеет в точности три ненулевых элемента в каждой строке и столбце, так что j = colperm(B) являются тождества сочетания и вообще не помогает уменьшить заполнение с последующими факторизациями.

Алгоритмы

Алгоритм включает сортировку по счетам ненули в каждом столбце.

См. также

| | | | | |

Представлено до R2006a