Есть ли в LAPACK / BLAS подпрограмма Fortran или где-то еще для расчета разложения ЛПНП? - PullRequest
1 голос
/ 28 мая 2009

Как гласит заголовок, мне нужно сформировать разложение холесткого ЛПНП для моей положительно определенной матрицы A (как и в нормальном холески, но есть одна диагональ L, а D - диагональная матрица). Я нашел только одну функцию в Лапаке, которая делает это, но она говорит, что матрица А должна быть трехугольной. Есть ли какая-то функция, которая делает это в некоторых бесплатных библиотеках подпрограмм, таких как lapack?

1 Ответ

2 голосов
/ 14 июня 2009

Проверьте функцию SSPTRF из LAPACK:

Цель
=======

SSPTRF вычисляет факторизацию реальной симметричной матрицы A, хранящейся в упакованном формате методом диагонального поворота Бунча-Кауфмана:

A = U * D * U ** T или A = L * D * L ** T

где U (или L) - произведение перестановки на единицу верхней (нижней) треугольные матрицы, и D является симметричным и диагональным блоком с Диагональные блоки 1 на 1 и 2 на 2.

Кроме того, в книге «Матричные вычисления» Голуба и Ван Лоана приведен алгоритм выполнения декомпозиции. В моем третьем издании это на странице 138, раздел 4.1.2 «Симметрия и факторизация ЛНП ^ Т».

...