2017-08-07 4 views
0

ich ARPACK einige Beispiele verwenden zu verwenden versucht berechnen (here), aber ich konnte meine Matrix Eingabe nicht einmal herausfinden, wie. Von diesen question scheint es, dass die Implementierungen in Python und Matlab die einzige Lösung sind die Komplexität des ARPACK zu vermeiden. Gibt es einige (Fortran-basierte) Möglichkeiten, dies zu tun, und dabei zu vermeiden, alle Eigenwerte/Eigenvektoren zu berechnen?Wie der ersten Eigenwert und Eigenvektor in Fortran

+0

* Es scheint, dass * warum scheint es? Was ist dein tatsächliches Problem? Konnten Sie überhaupt ARPACK verwenden? Was ist die Frage? Wie kann ich die Matrix richtig eingeben? Wie hast du das gemacht, wenn es nicht funktioniert hat? Wie zeigte sich das Problem? Fehlermeldungen? Falsche Ergebnisse? Wie sah dein Code aus? –

+0

Die Frage ist alles im Titel. Ich fand ARPACK zu komplex für mein Problem und ich würde gerne wissen, ob es eine einfachere Methode in Fortran gibt. – Garini

+0

Wissen Sie, dass Bibliotheksempfehlungsfragen nicht zu den Themen gehören? Stattdessen sollten Sie das Problem beschreiben und * was bisher getan wurde, um es zu lösen *. –

Antwort

1

Ich schrieb einen Wrapper, der die Matrix A und die Anzahl der Eigenwerte (z nev = 1, wenn Sie brauchen nur den ersten Eigenwert) einstellen muss nur. Der Code ist von der spezifischen Anwendung angepasst, die here gefunden werden kann. Meine modulartige Version benötigt nur die Matrix A, die Anzahl von Merkmalen, die Anzahl von Eigenwerten zu setzen und der von ihnen genommen werden sollte (‚LM‘ -. Größten Magnitude‘

Der Code ist als Gist here verfügbar

NB:.. ARPACK unterscheidet sich von LAPACK, weil es in der Regel für dichte Matrizen optimiert wird, während dies für große dünn besetzte Matrizen optimiert

ARPACK Paket ist so konzipiert, einige Eigenwerte zu berechnen und Eigenvektoren von großen sparse oder strukturierter Matrizes unter Verwendung der Implizit erneut gestartet Arnoldi Methode (IRAM), oder, im Fall von symmetrischen Matrizen, die entsprechenden Variante der Lanczos entsprach Algorithmus. Es wird von vielen beliebten numerischen Rechenumgebungen wie SciPy, Mathematica, GNU Octave und MATLAB bietet diese Funktionalität eingesetzt wird. (Quelle: Wikipedia)