Motivation¶
Um mit NumPy vertraut zu werden, wollen wir hier den Geschwindigkeitsverlauf eines Speed-Fallschirmspringers bestimmen. Der Fokus liegt hier nicht auf den physikalischen Zusammenhängen, sondern auf der Umsetzung der Berechnungen bzw. der verwendeten NumPy-Arrays als Datentypen.
Abb.: Speed Skydiver [Quelle]
Aufgabe¶
Berechne den Geschwindigkeitsverlauf eines Speed-Fallschirmspringers für ca. 30 s nach Absprung.
a) Freier Fall ohne Luftwiderstand¶
Um an deinem Wissen aus der Physik (Kinematik) anzuknüpfen, wollen wir zuerst annehmen, dass kein Luftwiderstand wirkt, d. h. der freie Fall ohne Luftwiderstand vorliegt. Dann wirkt lediglich die Gewichtskraft , wobei die Masse des Fallschirmspringers und die Erdbeschleunigung (= 9.81 ) ist. Gemäss dem 2. NEWTON’schen Gesetz ergibt sich in diesem Fall eine konstante Beschleunigung und es resultieren die Beziehungen, welche du aus der Physik (Kinematik) kennst.
Beschleunigung
Geschwindigkeit
import numpy as np
T = 30.0 # Zeitdauer [s]
dt = 0.01 # Zeitschrittweite [s]
g = 9.81 # Erdbeschl. [m/s^2]
t = np.arange(0, T, dt) # Zeitarray [s]
v_ideal = g * ta) Freier Fall mit Luftwiderstand¶
Wird der Luftwiderstand berücksichtigt, wirkt neben der Gewichtskraft zusätzlich eine Reibungskraft (Luftwiderstand), die entgegen der Bewegungsrichtung wirkt.

Abb.: Kräfte bei Fallschirmsprung
Die Reibungskraft ist abhängig von der Luftdichte , der Querschnittsfläche des fallenden Objektes , des Widerstandskoeffizienten (Drag) sowie des Quadrates der Geschwindigkeit .
Da die Reibungskraft (Luftwiderstand) mit zunehmender Geschwindigkeit ansteigt, ist die Beschleunigung nicht mehr konstant, sondern nimmt mit der Zeit ab, bis irgendwann ein Kräftegleichgewicht herrscht und die Beschleunigung auf 0 sinkt. Mit der resultierenden Kraft ergibt sich gemäss NEWTON:
Lösen wir die obigen Beziehungen nach der Beschleunigung auf und setzen entsprechend ein, so erhalten wir:
m = 85 # Gesamtgewicht Fallschirmspringer [kg]
rho_Luft = 1.2 # Dichte der Luft [kg/m^3]
A = 0.3 # Querschnittsfläche des Fallschirmspringers [m^2]
c_w = 0.295 # Widerstandsbeiwert [-]
k = 1/2 * rho_Luft * A * c_w
v_real = np.zeros_like(t)
a_real = np.zeros_like(t)
a_real[0] = g
for i in range(1,len(t)): # alternativ von 0 bis len(t)-1 und dann alle nachfolgenden Indices +1
a_real[i] = g - k/m * v_real[i-1]**2
v_real[i] = v_real[i-1] + a_real[i] * dt
# Das Verfahren wird explizites Euler-Verfahren (oder Euler-vorwärts-Verfahren) genannt.
# Dies ist ein Standardwerkzeug der numerischen Mathematik zum Lösen von Differentialgleichungen.c) Grafische Darstellung¶
Die Bibliothek für grafische Darstellungen (Matplotlib) werden wir in einem zukünftigen Unterrichtsblock genauer anschauen. Damit wir trotzdem eine Visualisierung der oben berechneten Geschwindigkeitsverläufe darstellen können, verwenden wir Matplotlib an dieser Stelle ohne näher darauf einzugehen
Aktiviere die Plot-Zeile im untenstehenden Codeabschnitt
Gehe jede Zeile durch und versuche diese nachzuvollziehen.
import matplotlib.pyplot as plt # Importieren der Plotting-Library
plt.figure(figsize=(12,5))
plt.plot(t, v_ideal * 3.6, 'b', label='ohne Luftwiderstand')
plt.plot(t, v_real * 3.6, 'r', label='mit Luftwiderstand')
plt.xlabel("Zeit t [s]")
plt.ylabel("Geschwindigkeit v [km/h]")
plt.title("Geschwindigkeitsverlauf")
plt.grid()
plt.legend()
plt.show()
plt.figure(figsize=(12,5))
plt.plot([0, T], [g, g], 'b', label='ohne Luftwiderstand')
plt.plot(t, a_real, 'r', label='mit Luftwiderstand')
plt.xlabel("Zeit t [s]")
plt.ylabel("Beschleungigung a [m/s^2]")
plt.title("Beschleunigungsverlauf")
plt.grid()
plt.legend()
plt.show()