colperm

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

Синтаксис

j = colperm (S)

Описание

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

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

Примеры

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

Была ли эта тема полезной?