Столбец аппроксимированное минимальное сочетание степени
p = colamd(S)
p = colamd(S)
возвращается столбец аппроксимируют минимальный вектор сочетания степени для разреженной матрицы S
. Для несимметрической матрицы S
, S(:,p)
имеет тенденцию иметь более разреженные факторы LU, чем S
. Факторизация Холесского S(:,p)' * S(:,p)
также имеет тенденцию быть более разреженным, чем тот из S'*S
.
knobs
двухэлементный вектор. Если S является m
- n
, затем строки с больше, чем (knobs(1))*n
записи проигнорированы. Столбцы с больше, чем (knobs(2))*m
записи удалены до упорядоченного расположения и упорядочены в последний раз в выходном сочетании p
. Если knobs
параметр не присутствует, затем knobs(1)
= knobs(2) = spparms('wh_frac')
.
stats
дополнительный вектор, который обеспечивает данные об упорядоченном расположении и валидности матричного S
.
| Количество плотных или пустых строк проигнорировано |
| Количество плотных или пустых столбцов проигнорировано |
| Количество сборок мусора, выполняемых на внутренней структуре данных, используется |
| 0 |
| Индекс крайнего правого столбца, который не отсортирован или содержит дублирующиеся записи или |
| В последний раз замеченная дублирующаяся или неисправная строка индексирует в индексе столбца, данном |
| Количество дублирующихся и неисправных индексов строки |
Несмотря на то, что встроенные функции MATLAB® генерируют допустимые разреженные матрицы, пользователь может создать недопустимую разреженную матрицу с помощью API MATLAB C или Фортрана и передать ее colamd
. Поэтому colamd
проверяет тот S
isvalid:
Если индекс строки появляется два или больше раза в том же столбце, colamd
игнорирует дублирующиеся записи, продолжает обрабатывать и предоставляет информацию о дублирующихся записях в stats(4:7)
.
Если индексы строки в столбце не работают, colamd
виды каждый столбец его внутренней копии матричного S
(но не восстанавливает входную матрицу S
), продолжает обрабатывать и предоставляет информацию о неисправных записях в stats(4:7)
.
Если S
недопустимо любым другим способом, colamd
не может продолжиться. Это распечатывает сообщение об ошибке и не возвращает выходных аргументов (p
или stats
) .
Упорядоченное расположение сопровождается поступорядоченным расположением дерева устранения столбца.
[1] Авторы кода для colamd
Стефан Ай. Лэримор и Тимоти А. Дэвис. Алгоритм был разработан в сотрудничестве с Джоном Гильбертом, Xerox PARC, и Эсмондом Ыном, Окриджской национальной лабораторией. Исследование Алгоритмов Разреженной матрицы: https://people.engr.tamu.edu/davis/research.html