Метод степенной итерации для наибольшего собственного значения

У меня есть матрица double[800][800], и мне нужно найти наибольшее собственное значение этой матрицы и соответствующий собственный вектор. Как мне удалось выяснить, метод степенной итерации для меня является лучшим, так как моя матрица близка к сингулярной и стандартные функции мне не помогут. Кто-нибудь знает рабочий код для этого применения метода итерации мощности?


person user2080209    schedule 23.05.2013    source источник


Ответы (2)


Вы проверили следующее: http://www.bluebit.gr/net/

Вы тестировали С#, чтобы увидеть, может ли он справиться с этим размером? ( здесь показано, как )

person Mzf    schedule 23.05.2013
comment
С сингулярной матрицей не получится, стандартными алгоритмами поиска собственных векторов и собственных значений я получаю неверные результаты - person user2080209; 23.05.2013

Взгляните на ARPACK. Исходным кодом был Fortran, который вы можете найти в Интернете для загрузки. Погуглив немного, кажется, что есть интерфейсы или, может быть, переводы на другие языки. Я вижу кое-что о C# и ARPACK [1].

[1] http://sweb.cityu.edu.hk/kincau/blog/files/0e9a2b646554191e9ddc831b697cf04d-1.html

person Robert Dodier    schedule 28.05.2013