Нахождение k-наименьшего собственного значения и соответствующего ему собственного вектора для большой матрицы - PullRequest
1 голос
/ 27 марта 2019

Для симметричной разреженной квадратной матрицы размером 300 000 * 300 000, каков наилучший способ найти 10 наименьших собственных значений и соответствующих им собственных векторов в течение нескольких часов на любом языке или пакетах.

1 Ответ

1 голос
/ 27 марта 2019

Алгоритм Ланцоша, который работает на эрмитовой матрице, является одним из хороших способов найти самые низкие и самые большие собственные значения и соответствующие собственные векторы.Отметим, что вещественная симметричная матрица по определению является эрмитовой.Ланцошу требуется O(N) память, а также приблизительно O(N) время для оценки экстремальных собственных значений / собственных векторов.Это контрастирует с диагонализацией грубой силы, которая требует O(N^2) хранения и O(N^3) времени работы.По этой причине алгоритм Ланцоша сделал возможным приближенное решение многих проблем, которые ранее были неосуществимы в вычислительном отношении.

Вот полезная ссылка на сайт Калифорнийского университета в Дэвисе, где перечислены реализации Ланцоша вряд языков / пакетов, включая FORTRAN, C / C ++ и MATLAB.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...