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