Как получить собственное разложение разреженных матриц, используя броненосцы или собственные библиотеки?

У меня есть разреженные квадратные матрицы измерений порядка от 10000 до 100000. Я использую язык программирования C ++ с armadillo и eigen в качестве библиотек для линейной алгебры, с которыми я знаю, как работать с плотными матрицами.

Как я могу получить собственные разложения (собственные значения и собственные векторы) больших разреженных матриц, используя эти библиотеки? Можем ли мы получить собственное разложение по разреженным функциям Холецкого из собственных?

2

Решение

Ни одна из этих библиотек не обеспечивает разреженного разложения по собственным значениям. В Eigen unsupported / вы найдете оболочку для библиотеки ARPACK C. Обратите внимание, что вычисление всех собственных значений большой большой разреженной матрицы непомерно дорого. Обычно люди вычисляют только самые большие, что ARPACK может сделать.

3

Другие решения

Чтобы ответить на ваш второй вопрос: Нет, знание факторизации Холецкого (LL ^ T или LDL ^ T) бесполезно для проблемы собственных значений.

0

По вопросам рекламы [email protected]