Rössler Attraktor zeichnen mit Matplotlib

Dieser Beitrag zu Matplotlib zeigt, wie der so genannte Rössler Attraktor gezeichnet werden kann. Dieser seltsame Attraktor ist nach dem deutschen Biochemiker Otto E. Rössler benannt (Link zum Wikipedia Eintrag). Werfen wir einen Blick auf die Darstellung dieses dynamischen Systems.

Roessler Attraktor Zeichnen Mit Matplotlib

Dieser Attraktor wir durch die folgenden Differentialgleichungen beschrieben:

Roessler Attraktor Gleichungen

Um die Grafik zu zeichnen, binden wir in unserem Python Skript zunächst die erforderlichen Module ein. Wir benötigen Numpy, Pyplot und Axes3D aus dem mpl_toolkits Modul.

Um die einzelnen x, y und z Positionen zu berechnen, definieren wir die Funktion roessler(). Dieser Funktion übergeben wir die aktuellen Positionen (x, y und z) sowie drei Konstanten (a, b und c), die für die korrekte Ermittlung der Änderungen der Positionen (dx, dy und dz) notwendig sind.

Wir legen die Schrittweite (dt) und die Anzahl an Schritten (numSteps) fest. Des Weiteren erzeugen wir drei Arrays, um die berechneten Positionen aufzunehmen. Wir definieren zusätzlich Startpositionen für die ersten Werte für x, y und z.

Wir berechnen nun in einer Schleife alle Koordinaten des Attraktors. Da wir in jedem Schritt auf die Stelle i+1 der Arrays zugreifen, wurden die Arrays mit einem zusätzlichen Wert initialisiert. Zur Berechnung wird die zuvor definierte Funktion roessler() in jedem Durchlauf mit den aktuellen x, y und z Werten aufgerufen.

Wir erzeugen eine neue Figur und setzen die Perspektive auf 3D. Abschließend beschriften wir das Diagramm und zeigen das Bild an.

Das Skript kann (unter Linux) mit folgendem Befehl ausgeführt werden:

python3 matplotlib_roessler.py

Das komplette Beispiel herunterladen: matplotlib_roessler.zip

Über Anton Neururer 31 Artikel
Ich bin Programmierer und Blogger. Themen die mich besonders interessieren sind Python, C++ und Javascript. Des Weiteren befasse ich mich mit Fraktalen.

Hinterlasse jetzt einen Kommentar

Kommentar hinterlassen