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.
Die ausgewertete Matrix ist ein eindimensionaler Hamilton-Operator
verwenden.
Mathematica ist ungefähr 10 mal schneller.
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.
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.
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