Ich habe Jacobi-Methode verwendet, um alle Eigenwerte und Eigenvektoren in c-Code zu finden. Obwohl die Komplexität der Jacobi-Methode O (n^3) ist, ist die Dimension meiner Matrix sehr groß (17814 X 17814). Es benötigt viel Zeit. Ich möchte einen besseren Algorithmus kennen, mit dem ich dieses Problem lösen kann. Wenn Sie möchten, kann ich meinen c-Code anhängen.Wie finde ich einen besseren Algorithmus zur Berechnung von Eigenwert und Eigenvektor einer sehr großen Matrix?
6
A
Antwort
2
Der in den Kommentaren vorgeschlagene Algorithmus ist nicht unbedingt der beste.
Wie Sie sehen können here, kann die Jacobi-Methode erheblich schneller sein, wenn Sie spezielle Techniken verwenden.
Darüber hinaus ist Jacobi ziemlich einfach parallel zu laufen, und es ist viel schneller für dünn besetzte Matrizen als für dichte Matrizen, so dass Sie auch davon profitieren können, abhängig von Ihrer Architektur und der Art der Matrix, die Sie haben.
Ich würde sagen, dass das Beste ist, ein paar verschiedene Methoden zu testen und in der Praxis zu sehen, wo Sie die besten Ergebnisse erzielen können.
O(n^2.376)
ist nicht unbedingt besser als O(n^3)
abhängig von Konstanten.
Verwandte Themen
- 1. Berechnung der Umkehrung einer sehr großen Matrix
- 2. Finden Sie Eigenvektor für einen gegebenen Eigenwert R
- 3. Wie finde ich Eigenwert/Vektor auf Rubin
- 4. Schnellster Algorithmus zur Berechnung der Determinante einer Matrix?
- 5. Wie der Eigenvektor einer Spalte stochastische Matrix in C++
- 6. Schneller Aufbau einer sehr großen spärlichen Matrix
- 7. Algorithmus zur Berechnung Binomialkoeffizient
- 8. Suchen von Werten in einer großen Matrix
- 9. Scrollen einer sehr großen GtkDrawingArea
- 10. Python-Paket zur Schätzung von Perron-Frobenius Eigenwert der reellen, quadratischen, nicht negativen Matrix
- 11. Schneller, sehr leichter Algorithmus zur Kamerabewegungserkennung?
- 12. Optimierung/Vektorisierung von Matlab-Algorithmus einschließlich sehr großen Matrizen
- 13. Algorithmus zur RFC-Berechnung in Java
- 14. Berechnung Kosinusähnlichkeit von Spalten einer Python-Matrix
- 15. Effizienter Algorithmus zur Überprüfung doppelter Zeilen in einer Matrix
- 16. Numpy: verallgemeinerten Eigenwert Problem
- 17. R: Schnellere Methode der Berechnung der großen Distanz-Matrix
- 18. Problem mit Jamas Eigenwert-Zerlegungsfunktion
- 19. Berechnung von großen Faktoren genau
- 20. getThreads von sehr großen Label
- 21. Wie kann man einen besseren Algorithmus mit diesem Code erstellen?
- 22. Conditional Matrix adjacency Berechnung
- 23. Wie finde ich den Zusammenführungskonflikt in einer großen Datei?
- 24. Öffnen einer sehr großen Datei in Emacs
- 25. Berechnung des Fiedler-Vektors in Python
- 26. Wie finde ich die Indizes einer vektorisierten Matrix numpy
- 27. Gibt es einen Algorithmus zur Berechnung der Fläche einer Form gegebenen Koordinaten, die die Form definieren?
- 28. Wie finde ich "kleinsten Eigenwert" o eine Platte mit Python Scripting in abaqus?
- 29. Wie finde ich die beste Fuzzy-Übereinstimmung für einen String in einer großen String-Datenbank?
- 30. Bibliothek oder Algorithmus zur Berechnung sichtbarer GPS-Satelliten
Diese Frage wurde [bereits hier beantwortet] (http://mathoverflow.net/questions/62904/complexity-of-eigenvalue-decomposition) –
Der Coppersmith und Winograd Algorithmus kann das Problem in O lösen (n^2.376) –