- это n × n- симметричная разреженная матрица с положительным определением (SPD). G - разреженная диагональная матрица. n большое ( n > 10000) и число ненулевых в G обычно составляет 100 ~ 1000.
Были разложено в Холецкой формевиде L D L T .
Как эффективно обновить и D, когда A становится A + G ?
Ответы:
Последняя версия пакета CHOLMOD SuiteSparse (бета-версия 4.4.5) поддерживает изменение симметричной строки / столбца (обновление ранга 2) для декомпозицииLDLT с использованием API-интерфейса matlab (и C). Я успешно использовал его в одном из моих проектов.
Вы можете использовать его для обновленияnnz(G) факторизации. Он основан на этой статье.
Следовательно, сложность будетO(nnz(G)∗nnz(L)) . Где nnz(L) может быть значительно уменьшено при использовании перестановки уменьшения заполнения для разреженного A
Пакет можно скачать здесь
Ниже приведены некоторые примечания, сделанные владельцем пакета (проф. Тим Дэвис):
API:
Сложность:
Заполнить редукционную перестановку:
источник