DynamischeSysteme

Abschnitt 1

Vorbereitung: Listen und Iterationen in Python

Da wir im Folgenden komplexe Iterationen und dynamische Systeme untersuchen wollen, ist der Computer ein unverzichtbares Werkzeug. Die Grundlagen zu Python und matplotlib haben Sie bereits im Abschnitt «Vorbereitung: Python und Matplotlib» im Kapitel Regression kennengelernt: wie man Python-Code ausführt, wie man Funktionen definiert und wie man mit plt.plot bzw. plt.scatter Diagramme zeichnet.

Hier wiederholen wir das kurz und ergänzen die Konzepte, die wir zusätzlich für Simulationen benötigen: den Umgang mit Listen und mit Schleifen.

Anders als im gedruckten Skript

Die Code-Beispiele auf dieser Seite stehen in einer Werkbank: Sie lassen sich frei verändern und mit Ausführen starten.

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 (\(x_n\) hängt von \(x_{n-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 Berechnungsvorschriften oft in eigene Funktionen aus.

Beispiel. Definition einer einfachen Funktion