Lorenz Attraktor zeichnen mit Matplotlib

In diesem Beitrag zu Matplotlib wird gezeigt, wie der Lorenz Attraktor visuell dargestellt werden kann. Dieser Attraktor ist das Resultat eines dynamischen Systems, das von dem Meteorologen Edward Lorenz entdeckt wurde. (Link zur Beschreibung). Sehen wir uns zunächst die Grafik an.

Lorenz Attraktor Zeichnen Mit Matplotlib

Wie zu erkennen ist, handelt es sich um eine 3D Darstellung. Jeder Punkt des Attraktors wird mit Hilfe von drei Differentialgleichungen berechnet, die die Änderungen der Koordinaten im Raum beschreiben. Das von Lorenz beschriebene System dient als Modellierung für Zustände in der Erdatmosphäre.

Folgende gewöhnliche Differentialgleichungen beschreiben den Lorenz Attraktor:

Gleichungen Lorenz Attraktor

Zum Zeichnen der Darstellung importieren wir im ersten Schritt die benötigten Module.

Anschließend legen wir mehrere Konstanten fest. Wir benötigen eine Schrittweite (step), einen Wert für die Anzahl an Schritten (numSteps) und die Werte a, b und c für die Berechnung der Differentialgleichungen.

Nachdem wir drei Arrays für die x, y, und z Position initialisiert haben, benötigen wir noch drei geeignete Startwerte für diese Positionen.

In einer for Schleife werden nun die Koordinaten des Attarktors berechnet. Da dabei in jedem Schritt auf die jeweils nächsten Stellen in den Arrays zugegriffen wird, wird die Schleife eine Stelle vor dem Ende der Arrays beendet. Inklusive dem Startwert befinden sich 10001 Positionen in jedem der drei Arrays. Die Berechnung jeder neuen Koordinate beruht auf der aktuellen Position (x[i], y[i], z[i]), der Schrittweite (step) sowie der Änderung der Position, die durch die Differentialgleichungen beschrieben wird.

Nachdem alle Werte vorhanden sind, wird eine neue Figur (figure) erzeugt und die Darstellung als 3D Projektion definiert (projection='3d'). Mit dem Befehl plot() zeichnen wir die Grafik und übergeben dabei die drei Arrays mit den x, y und z Positionen. Die Linienbreite (lw) wird auf auf 1.0 gesetzt. Abschließend wird das Diagramm beschriftet und das Bild angezeigt.

Das Beispiel kann mit folgendem Befehl ausgeführt werden:

python3 matplotlib_lorenz.py

Das komplette Beispiel herunterladen: matplotlib_lorenz.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