DynamischeSysteme

Abschnitt 1

Vorbereitung: Python und Matplotlib

0 von 1 Übungen erledigt

Da wir im Folgenden komplexe Iterationen und dynamische Systeme untersuchen wollen, ist der Computer ein unverzichtbares Werkzeug. Wir nutzen Python und die Bibliothek matplotlib, um Daten zu berechnen und zu visualisieren. Hier ist eine kurze Wiederholung der wichtigsten Konzepte aus dem Informatikunterricht, fokussiert auf das, was wir für die Simulationen dieses Kapitels benötigen.

Anders als im gedruckten Skript

Alle Code-Beispiele auf dieser Seite stehen in einer Werkbank: Sie lassen sich frei verändern und mit Ausführen starten. Erzeugt der Code einen Plot, erscheint er unter der Konsolenausgabe.

Python Code ausführen

Um den Python-Code ausführen zu können, haben Sie zwei Möglichkeiten:

Listen, Indizes und Slicing

Um eine Folge von Zahlen zu speichern (z. B. die Entwicklung einer Population über die Zeit), verwenden wir Listen. In Python sind Listen geordnet, und jedes Element hat eine Position (Index).

Besonders wichtig für unsere Simulationen sind der Zugriff auf das letzte Element (um den nächsten Wert zu berechnen) und das «Ausschneiden» (Slicing) von Teilen der Liste.

Vorwärts-Index
Beginnt bei 0. liste[0] ist das erste Element.
Rückwärts-Index
Beginnt bei −1. liste[-1] ist das letzte Element. Das ist extrem praktisch für Iterationen (xn hängt von xn−1 ab), da wir nicht wissen müssen, wie lang die Liste gerade ist.
Slicing
Mit dem Doppelpunkt : können wir Teilbereiche wählen. Die Syntax ist [Start:Ende]. Dabei ist das Element beim Ende-Index nicht mehr enthalten.

Beispiel. Zugriff auf Listenelemente

Schleifen und Listenmanipulation

Für Simulationen starten wir oft mit einer Liste, die nur den Startwert enthält, und fügen dann Schritt für Schritt neue Werte hinzu.

Beispiel. Iteratives Füllen einer Liste

Funktionen

Um den Code sauber zu halten, lagern wir die Berechnungsvorschrift (die Trägerfunktion) oft aus.

Beispiel. Definition einer einfachen Funktion

Daten visualisieren mit Matplotlib

Die Bibliothek matplotlib.pyplot (meistens als plt importiert) ist der Standard für wissenschaftliche Diagramme in Python. Ein typischer Plot besteht aus drei Schritten: Daten bereitstellen, Plot-Befehl ausführen, Anzeigen.

Liniendiagramme

In einem Liniendiagramm werden Punkte miteinander verbunden. Wir müssen dazu einfach eine Liste von x-Koordinaten (x) und eine Liste von y-Koordinaten (y) angeben. Die entsprechenden Punkte werden dann in dieser Reihenfolge miteinander verbunden. Geben wir keine Liste von x-Koordinaten an, so wird dafür einfach [0, 1, 2, …] verwendet.

Beispiel. Grundgerüst eines Linien-Plots

Streudiagramme (Scatter Plots)

Manchmal wollen wir Punkte nur als Einzelwerte darstellen, ohne sie mit einer Linie zu verbinden (z. B. wenn es keinen sinnvollen zeitlichen Zusammenhang gibt oder wir sehr viele chaotische Punkte haben, wie beim Feigenbaum-Diagramm in Abschnitt 2). Dafür nutzen wir den Befehl plt.scatter. Dieser funktioniert genau analog zu plt.plot, nur werden da die Punkte nicht miteinander verbunden.

Beispiel. Erstellen eines Streudiagramms

In der offiziellen Dokumentation finden Sie zahlreiche nützliche Beispiele zur umfangreichen Bibliothek.

Übung

Schreiben Sie mit Hilfe der Bibliothek Matplotlib in Python ein Programm, das die folgende Grafik erzeugt.

Eine mit Matplotlib gezeichnete M-Kurve mit drei roten Punkten
Zielgrafik
Lösungsvorschlag

Lösungsvorschlag (matplotlib-example.py)