Python-Bibliothek für Simulations- und Bifurkationsstudien dynamischer Systeme

Welche Bibliotheken sind in Python für die Simulation und Bifurkationsstudie dynamischer Systeme verfügbar?

Ich möchte ein Modell basierend auf vier oder fünf ODEs simulieren und Bifurkationskarten basierend auf zwei Parametern erstellen. Dazu benötige ich Zeitreihen von 40000 Datenpunkten, um die Morphologie für jeden Punkt im Parameterraum zu klassifizieren. Geschwindigkeit ist wichtig, obwohl ich mit Python Zugriff auf einen Cluster habe.

Ich kenne PyDSTool; gibt es eine andere Alternative?

Antworten (2)

Ich habe ein Python-Modul namens JiTCODE geschrieben , das für die Community dynamischer Systeme gedacht ist. Hier sind einige Funktionen oder fehlende Funktionen, die für Sie relevant sein könnten:

  • Die rechte Seite der Differentialgleichung wird just-in-time kompiliert, was die Integration ziemlich schnell macht. Bei kleineren Systemen wie Ihrem kann es aber dennoch zu einem relevanten Overhead kommen (zB im Vergleich zu einem reinen C-Programm). Seine Performance ist vergleichbar oder besser als die von PyDSTool (siehe Abb. 5 im Begleitpapier ).

  • Es ermöglicht Ihnen, Steuerungsparameter zur Laufzeit zu ändern, wodurch ein häufiges Neukompilieren beim Scannen eines Parameterraums vermieden wird.

  • Es bietet weder dedizierte Tools zur Erkennung und Bestimmung der Art von Verzweigungen noch zur Fortsetzung. Da die Eingabe jedoch symbolisch ist, ist es kein großer Schritt, symbolische Gleichungslöser zu verwenden, um Fixpunkte zu finden und ihre Stabilität zu bestimmen.

  • Es erlaubt Ihnen, reguläre und transversale Lyapunov-Exponenten fast automatisch zu bestimmen.

Sie könnten Netlogo installieren . Es ist ein kostenloses Java-basiertes GUI-Tool, aber es hat einige Sprachbindungen, um es "fernzusteuern" und die Ergebnisse abzurufen. Es verfügt über eine große Modellbibliothek mit vielen nützlichen und vorkonfigurierten Modellen, von denen einige Ihren Anforderungen entsprechen könnten.

In diesem Beitrag auf SO erwähnt jemand eine neue Python-API, PyNetLogo , aber ich habe diese API noch nicht verwendet und kann nicht sagen, wie gut sie ist.

Danke, ich werde mit mehr Aufmerksamkeit nachsehen, aber ich habe vielleicht nach etwas Spezifischerem für ODE gesucht