Существует ли функция BLAS/LAPACK для расчета обновлений коэффициента Холецкого?

Позволять A быть положительно определенной матрицей, и пусть A=L*L' быть его холеской факторизацией, где L нижняя треугольная. Позволять A2 = A + alpha*x*x' быть обновленной матрицей ранга 1 A, где x вектор соответствующей размерности и alpha это скаляр

Обновление фактора Холецкого - это процедура получения факторизации A2=L2*L2' без расчета A2 Во-первых, это полезно для ускорения вычислений в случае таких обновлений матрицы низкого ранга.

Я использую библиотеки BLAS/LAPACK для элементарных алгебраических манипуляций. Я могу рассчитать факторизацию Холецкого положительно определенной матрицы с помощью процедуры spptrf. Тем не менее, я искал вокруг, и я не смог найти функцию BLAS/LAPACK, которая выполняет обновления фактора Холецкого. Может ли быть так, что нет функции, делающей это?

Дополнительно: в этом старом посте обсуждалось добавление такой рутины. Тем не менее, это очень старый пост (2013), и я не смог найти ничего более свежего.

2 ответа

Там нет такой функции. Вы можете посмотреть на эту дискуссию о SciPy. Я составил скрипт на Python, который обновляет соответствующую статью. Вы можете использовать эту информацию.

https://github.com/scipy/scipy/issues/8188

Если вы чувствуете себя конкурентоспособным и действительно пишете для этого код на Фортране, я был бы очень признателен, если бы вы могли представить его в репозиторий LAPACK в качестве пиара. https://github.com/Reference-LAPACK/lapack

Библиотеки BLAS на Netlib, как вы указали, однако я сомневаюсь, что они есть на сайте. Если вы ищете код, просто есть код здесь. Если ты хочешь это быстро, я бы просто превратил этот код в Джулию. Есть книга, которую я никогда не проверял, в которой они могут быть . Также обратите внимание, что вы процитировали статью, для которой автор написал код. Вы могли бы просто связаться с автором статьи. Его сайт, кажется, здесь. Существует проблема с этой ссылкой, хотя.

Другие вопросы по тегам