exponenta event banner

colperm

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

Синтаксис

j = colperm(S)

Описание

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

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

Примеры

nоколо-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