Разреженная перестановка столбца на основе ненулевого количества
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)).
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) является единичной перестановкой и не является никакой справкой вообще для сокращения временной замены с последующими факторизациями.
Алгоритм включает вид на количествах ненулей в каждом столбце.