[PYTHON] Ein Memorandum über die Geschwindigkeit der Diagonalisierung beliebigen Grades

Zweck

Ich habe mpmath (Python) und Mathematica verwendet, die eine Diagonalisierung mit willkürlicher Genauigkeitsberechnung durchführen, um die für die Diagonalisierung erforderliche Zeit zu messen, sodass ich sie als Memorandum belassen werde.

Bewertungsmethoden

Die ausgewertete Matrix ist ein eindimensionaler Hamilton-Operator $ H = p^2/2 + q^4/2 $ Einsiedlermatrix bestehend aus den Basen des harmonischen Oszillators. Matrixelemente werden mit 100-stelliger Genauigkeit zusammengesetzt. Diagonale Routine

verwenden.

Ergebnis

Mathematica ist ungefähr 10 mal schneller.

diag time.png

Aufgabe

In mehrdimensional wird eine Matrix von ungefähr $ 10 ^ 4 \ times10 ^ 4 $ ausgewertet, so dass es für mathematica 40 Tage dauert. Ich möchte mpack verwenden, eine mehrfache Erweiterung von Lapack.

Nachtrag

Ich habe mpack installiert und ein paar Stunden lang angefasst. Da die Geschwindigkeit ausgewertet wurde, werde ich sie als zusätzliche Notiz aufzeichnen.

Die Diagonalmatrix ist eine symmetrische Ausführungsspalte $ a_ {i, i} = i $, $ a_ {i + 1, j} = i $, $ a_ {i, j + 1} = i $ Verwenden Sie andernfalls eine echte symmetrische Matrix mit 0 Elementen.

Vergleichen Sie die Routinen von mathematica und mpack Rsyev. Infolgedessen scheint mpack etwa zehnmal schneller zu sein als mathematica. diag-time-2.png

Im Fall von Elmeat habe ich es noch nicht bewertet, aber wenn es ungefähr 10-mal schneller als Mathematica ist, wird berechnet, dass die Diagonalisierung von $ 10 ^ 4 \ mal 10 ^ 4 $ in 4 Tagen endet. Das ist sehr vielversprechend.

Aber zuerst müssen Sie in der Lage sein, mpack zu verwenden.

Recommended Posts

Ein Memorandum über die Geschwindigkeit der Diagonalisierung beliebigen Grades
Hinweis zur Kernel-Kompilierung
Ein kleines Memorandum von openpyxl
Ein Memorandum zur Verwendung von eigen3
[Python] Ein Memorandum der schönen Suppe4
Memorandum of files unter conf.d.
Ein Memorandum über den Inhalt der Abschlussumfrage
Hinweis zur Verwendung der Python-Eingabefunktion
Memorandum zu Djangos QueryDict
Memorandum zum Löschen von Python-Strings
Ein Memorandum über Probleme beim Formatieren von Daten
Memorandum of JSON Schema Notation für Wörterbücher, die beliebige Schlüssel verwenden
Memorandum von sed
Ein Memorandum zum Aufrufen von Python aus Common Lisp
Ein Memorandum zum Studieren und Implementieren von Deep Learning
Memorandum der Extraktion durch Python BS4-Anfrage
[Linux-Befehl] Ein Memorandum häufig verwendeter Befehle
Ein Memorandum über Warnungen in Pylint-Ausgabeergebnissen
Memorandum of fastText (Bearbeitung)
Memorandum of vi Befehl
Ein Memorandum über Nan.
elasticsearch_dsl Memorandum
Ein Memorandum, in dem ich über mein persönliches HEROKU & Python (Flask) gestolpert bin
Zusammenfassung des mit einer Geschwindigkeit von einer Sekunde durchgeführten Bildcrawls
Erstellen Sie mit Falcon einen Light-Speed-Web-API-Server
[Einführung in AWS] Memorandum zum Erstellen eines Webservers auf AWS