[PYTHON] Un mémorandum de la vitesse de diagonalisation arbitraire des degrés

Objectif

J'ai utilisé mpmath (python) et Mathematica, qui effectuent une diagonalisation avec un calcul de précision arbitraire, pour mesurer le temps nécessaire à la diagonalisation, je vais donc le laisser comme un mémorandum.

Méthode d'évaluation

La matrice évaluée est un hamiltonien unidimensionnel $ H = p^2/2 + q^4/2 $ Matrice hermite composée des bases de l'oscillateur harmonique. Les éléments de la matrice sont composés avec une précision de 100 chiffres. Routine diagonale

utilisation.

résultat

Mathematica est environ 10 fois plus rapide.

diag time.png

Tâche

En multidimensionnel, une matrice d'environ 10 $ ^ 4 \ times10 ^ 4 $ est évaluée, donc cela prend 40 jours pour Mathematica. Je voudrais utiliser mpack, qui est une extension multiple de lapack.

Postscript

J'ai installé mpack et l'ai touché pendant quelques heures. Puisque la vitesse a été évaluée, je l'enregistrerai comme note supplémentaire.

La matrice diagonale est une colonne d'exécution symétrique $ a_ {i, i} = i $, $ a_ {i + 1, j} = i $, $ a_ {i, j + 1} = i $ Sinon, utilisez une matrice symétrique réelle avec 0 élément.

Comparez les routines Mathematica et mpack Rsyev. En conséquence, mpack semble être environ 10 fois plus rapide que Mathematica. diag-time-2.png

Dans le cas d'Elmeat, je ne l'ai pas encore évalué, mais s'il est environ 10 fois plus rapide que Mathematica, on calculera que la diagonalisation de 10 $ 4 \ fois 10 ^ 4 $ se terminera dans 4 jours. C'est très prometteur.

Mais d'abord, vous devez être capable d'utiliser mpack.

Recommended Posts

Un mémorandum de la vitesse de diagonalisation arbitraire des degrés
Remarque sur la compilation du noyau
Un petit mémorandum d'openpyxl
Un mémorandum d'utilisation de eigen3
[Python] Un mémorandum de belle soupe4
Mémorandum de dossiers sous conf.d
Un mémorandum du contenu de l'enquête de clôture
Un mémorandum sur l'utilisation de la fonction d'entrée de Python
Mémorandum sur le QueryDict de Django
Mémorandum du processus de suppression de chaîne python
Un mémorandum de problème lors du formatage des données
Mémorandum de notation de schéma JSON pour les dictionnaires qui prennent des clés arbitraires
Mémorandum de sed
Un mémorandum sur l'appel de Python à partir de Common Lisp
Un mémorandum d'étude et de mise en œuvre du Deep Learning
Mémorandum d'extraction par requête python bs4
[Commande Linux] Un mémorandum des commandes fréquemment utilisées
Un mémorandum sur les avertissements dans les résultats de sortie de pylint
Mémorandum de fastText (édition)
mémorandum de commande vi
Un mémorandum sur Nan.
Mémorandum elasticsearch_dsl
Un mémorandum où je suis tombé sur mon HEROKU & Python personnel (Flask)
Résumé de l'exploration d'image effectuée à la vitesse d'une seconde
Créez un serveur API Web ultra-rapide avec Falcon
[Introduction à AWS] Mémorandum de création d'un serveur Web sur AWS