Numerische Simulation

Wir wollen uns nun einem sehr aktuellen und relevanten Werkzeug im Paradigma der Modellierung widmen und dieses auch selber nutzen: numerische Simulationen. Bekannte Beispiele in denen numerische Simulationen genutzt werden sind die Entwicklung des Klimas oder von Pandemien.

Numerische Simulation als Teil eines Paradigmas

Numerische Simulationen können als Teil eines Paradigmas im Sinne Kuhns aufgefasst werden. Dabei kommen numerische Simulationen immer dann zum Einsatz, wenn Modelle so komplex sind, dass die Gleichung nicht analytisch gelöst werden kann. Analytisch lösbar bedeutet, dass zum Beispiel die Lösung einer Gleichung durch Äquivalenzumformungen direkt bestimmt werden kann. Auch komplexe physikalische Sachverhalte werden erstmal durch Gleichungen modelliert. Sind diese nicht analytisch zu lösen, wird eine numerische Simulation genutzt, um die Lösung anzunähern. Die Ergebnisse der Simulation werden dann mit bereits bekannten Daten verglichen. Passen die Ergebnisse zu den bekannten Daten, wird üblicherweise darauf vertraut, dass die Simulation auch in der Zukunft für unbekannte Daten belastbare Vorhersagen liefert. Es wird auch dann schon davon gesprochen, dass die Simulation zu den Daten passt, wenn die Übereinstimmung kleiner als 100% ist. Welche Abweichungen in Kauf genommen werden, hängt vom individuellen Sachverhalt ab und steht in direktem Zusammenhang zur Unsicherheit in Bezug auf die Ergebnisse der numerische Simulation.

Numerische Simulation – Die Idee

Der Begriff numerische Simulation ist jetzt schon oft gefallen – doch was verbirgt sich genauer dahinter? Schaut euch dafür das folgende Video an:

Numerische Simulation einer Wurfbewegung

Nun könnt ihr selber eine numerische Simulation zu einer Wurfbewegung machen! Dafür nutzen wir die App „Carnets“ auf euren iPads und gehen schrittweise vor. Erarbeitet euch zunächst die Rechenvorschrift für die numerische Simulation einer Wurfbewegung im Laborbuch.

Jetzt kann es los gehen: Klickt auf den Button und ladet euch das Gerüst für die Simulation herunter. Die heruntergeladene Datei könnt ihr auf eurem iPad mit der App „Carnets“ öffnen und dann bearbeiten. Alle weiteren Erläuterungen etc. sind direkt in der Datei enthalten. Eine Anleitung zum Umgang mit der App „Carnets“ erhaltet ihr in Papierform oder hier.

Eure Simulation ist fertig und bereits an die Startgeschwindigkeit sowie Wurfweite und Wurfhöhe in eurem Experiment angepasst? Super, dann kommt jetzt nur noch ein kleines technisches Detail. Damit ihr gleich eure Wurfbewegung mit der Simulation vergleichen könnt, soll die Simulation als Video gespeichert werden. Fügt dafür den folgenden Code ganz nach unten in eure Simulation als neuen Block ein. Diesen Teil des Programms müsst ihr euch nicht genauer anschauen und auch nichts selber verändern.

# Hintergrund grün machen:
plt.rcParams['axes.facecolor'] = 'green'

frames = 1 / dt
metadata = dict(title='Video Wurf Simulation', artist='Wissenschaftler*in', comment='Movie support!')
moviewriter = HTMLWriter(fps=frames, metadata=metadata) 

# Plot vorbereiten:
string_title = "Bahnkurve eines Massepunktes auf der Erde mit vx0=" + str(v_x) + ", vy0=" + str(v_y)+ ", x0=" + str(s_x) + ", y0=" + str(s_y) + " und N=" + str(N) + ", dt=" + str(dt)
fig = plt.figure()
plt.xlim(0, (weite + 0.1*weite))
plt.ylim(0, (hoehe + 0.1*hoehe))
l, = plt.plot([], [], 'b-o')
#m, = plt.plot([], [], 'k-o')
plt.title(string_title)
plt.plot(s_x_array, s_y_array, label="Simulation", color="b") # Kurve anzeigen
#plt.plot(s_x_array_L, s_y_array_L, label="Sim. mit Luft", color="black")
plt.legend()
plt.ylabel("Höhe / m")
plt.xlabel("Weite / m")

#hier kommt der bewegte Teil:
with moviewriter.saving(fig, "VideoSimulationWurf.html", dpi=100):
    for i in tqdm(range(N)):
        l.set_data(s_x_array[i], s_y_array[i]) # Simulation
        #m.set_data(s_x_array_L[i], s_y_array_L[i]) # verbesserte Simulation
        moviewriter.grab_frame()

Technischer Hinweis: Anaconda

Wenn ihr zu Hause an eurer Simulation arbeiten wollt, geht das auch ohne iPad. Ihr benötigt dafür einen Python Compiler und das Jupyter Notebook. Am einfachsten ist es, wenn ihr euch Anaconda herunterladet, denn dort ist beides direkt enthalten. Alle weiteren Informationen dazu findet ihr hier.


Hier geht es zurück zur Übersicht:


Feedback-Feld: Hier kannst du uns Hinweise oder ein Feedback zu dieser Seite oder der Aktivität dazu geben. Dies hilft uns bei der Weiterentwicklung dieser Lernumgebung. Klicke nach deiner Eingabe bitte auf „Absenden“, damit dein Feedback auch für uns gespeichert wird. Vielen Dank dir!