lehrkraefte:snr:informatik:glf4-23:waermeleitung

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
lehrkraefte:snr:informatik:glf4-23:waermeleitung [2024/05/01 09:03]
Olaf Schnürer created
lehrkraefte:snr:informatik:glf4-23:waermeleitung [2024/05/15 16:52] (current)
Olaf Schnürer [Wärmeleitungsgleichung simulieren]
Line 1: Line 1:
 +~~NOTOC~~
 +
 +Falls numpy etc. auf Schulrechnern nicht verfügbar:
 +
 +https://trinket.io/embed/python3/a5bd54189b
 +
 ====== Wärmeleitungsgleichung simulieren ====== ====== Wärmeleitungsgleichung simulieren ======
  
 +Die Mathematik und Formeln für die Iteration sind hier noch nicht dokumentiert (bisher an Tafel erklärt).
 +Wärmeleitungsgleichung $u_{t}=\Delta u$.
 +
 +===== Numpy und Matplotlib: einige Befehle kennenlernen (und eventuell Bibliotheken installieren) =====
 +
 +<hidden Bitte Programm ausklappen>
 <code python beispiel-fuer-die-verwendung-von-numpy-und-matplotlib.py> <code python beispiel-fuer-die-verwendung-von-numpy-und-matplotlib.py>
 import numpy as np import numpy as np
Line 29: Line 41:
 plt.show() plt.show()
 </code> </code>
 +</hidden>
 +
 +
 +===== Wärmeausbreitung (1-dimensional) in einem Stab simulieren =====
 +
 +{{:lehrkraefte:snr:informatik:klasse-4:simulationen:stab-ort-zeit-diagramm.png?400|}}
 +<hidden Bitte Programm ausklappen>
  
 <code python waermeleitung-1d-ort-zeit-diagramm-vorlage.py> <code python waermeleitung-1d-ort-zeit-diagramm-vorlage.py>
Line 77: Line 96:
 plt.show() plt.show()
 </code> </code>
 +</hidden>
 +
 +===== Beispiel zum Erstellen einer animierten gif-Datei (= kleiner Film) =====
 +
 +<hidden Bitte Programm ausklappen>
 +<code python beispiel-fuer-2d-gif-animation.py>
 +import numpy as np
 +from matplotlib import pyplot as plt
 +from matplotlib import colormaps
 +import matplotlib.animation as animation
 +from matplotlib.animation import FuncAnimation
 +
 +# Grösse des quadratischen Feldes
 +n = 30
 +# Anzahl der Iterationen
 +iterationen = 40
 +
 +# Dreidimensionale Tabelle (Array), erste Koordinate Iterationsnummer (oft = Zeit), zweite Koordinate Zeile, dritte Koordinate Spalte.
 +u = np.zeros((iterationen + 1, n, n))
 +
 +# Temperaturverteilung am Anfang
 +u[0, 5, 9] = 100
 +u[0, 5, 10] = 100
 +u[0, 5, n - 10] = 100
 +u[0, 5, n - 9] = 100
 +
 +# Start der Simulation, i für Iterationsnummer, z für Zeilennummer, s für Spaltennummer
 +for i in range(1, iterationen + 1): 
 +    for z in range(1, n - 1):
 +        for s in range(1, n - 1):
 +            u[i, z, s] = (u[i - 1, z - 1, s - 1] + u[i - 1, z - 1, s + 1]) / 2
 +
 +def animiere(i):
 +    print(i)
 +    plt.clf()
 +    plt.title(f"Heatmap, Iteration = {i}")
 +    plt.xlabel("s")
 +    plt.ylabel("z")
 +    plt.pcolormesh(u[i, :, :], cmap=plt.cm.jet, vmin=0, vmax=100)
 +    plt.colorbar()
 +    # plt.show()
 +
 +anim = animation.FuncAnimation(plt.figure(), animiere, interval=1, frames=iterationen, repeat=False)
 +anim.save("ausbreitungsbeispiel.gif")
 +</code>
 +</hidden>
 +
 +===== Wärmeausbreitung 2-dimensional, etwa in einem Zimmer mit beheizten Wänden und offenem Fenster =====
 +
 +Zum Spass ist am Anfang noch eine Wärmeblase mitten im Raum...
 +
 +{{:lehrkraefte:snr:informatik:klasse-4:simulationen:waermeausbreitung-raum-mit-fenster.gif?400|}}
 +
 +<hidden Bitte Programm ausklappen>
  
 <code python waermeleitung-2d-gif-animation-vorlage.py> <code python waermeleitung-2d-gif-animation-vorlage.py>
Line 129: Line 202:
 anim.save("feld.gif") anim.save("feld.gif")
 </code> </code>
 +</hidden>
  
-<code python > 
-</code> 
  
  • lehrkraefte/snr/informatik/glf4-23/waermeleitung.1714547017.txt.gz
  • Last modified: 2024/05/01 09:03
  • by Olaf Schnürer