Как вычислить первое собственное значение и собственный вектор в Фортране
Я пытался использовать ARPACK, используя некоторые примеры ( здесь), но я даже не мог понять, как ввести свою матрицу. Исходя из этого вопроса, кажется, что реализации в Python и Matlab являются единственным решением, позволяющим избежать сложности ARPACK. Есть ли какой-нибудь (на основе Фортрана) способ сделать это, также избегая вычисления всех собственных значений / собственных векторов?
1 ответ
Я написал оболочку, которой нужно только установить матрицу A и количество собственных значений (например, nev = 1, если вам нужно только первое собственное значение). Код адаптирован из конкретного приложения, которое можно найти здесь. Моей модульной версии нужно только установить матрицу A, количество признаков, количество собственных значений и какие из них следует взять ("LM" - наибольшая величина ".
Код доступен как Гист здесь.
Примечание: ARPACK отличается от LAPACK, потому что обычно оптимизируется для плотных матриц, в то время как оптимизируется для больших разреженных матриц.
Пакет ARPACK предназначен для вычисления нескольких собственных значений и соответствующих собственных векторов больших разреженных или структурированных матриц с использованием неявно перезапущенного метода Арнольди (IRAM) или, в случае симметричных матриц, соответствующего варианта алгоритма Ланцоша. Он используется многими популярными вычислительными средами, такими как SciPy, Mathematica, GNU Octave и MATLAB, чтобы обеспечить эту функциональность. (источник: Википедия)