Diese Seite bezieht sich auf die erste Auflage (2020) des Buches.   ➜   Zur aktuellen Auflage.

Programme

Alle Programme, die in diesem Buch besprochen werden, und die Programme zu den Musterlösungen der Übungsaufgaben können Sie auch als ein zip-Archiv herunterladen.

Download    Programm 4.2 Kinematik/schiefer_wurf_unschoen.py

"""Bahnkurve des schiefen Wurfs ohne Reibung.

Dieses Programm zeigt eine sehr ineffiziente Lösung des
Problems mithilfe zweier ineinander geschachtelter
for-Schleifen. """

import math
import numpy as np
import matplotlib.pyplot as plt

h = 10.0                       # Anfangshöhe [m]
v_ab = 5.0                     # Anfangsgeschwindigkeit [m/s]
alpha_deg = 25.0               # Abwurfwinkel [°]
g = 9.81                       # Schwerebeschleunigung [m/s²]

# Rechne den Winkel alpha in das Bogenmaß um.
alpha = math.radians(alpha_deg)

# Stelle den Anfangsort, die Anfangsgeschwindigkeit und die
# Beschleunigung als 1-dimensionale Arrays dar.
r0 = np.array([0, h])
v0 = np.array([v_ab * math.cos(alpha), v_ab * math.sin(alpha)])
a = np.array([0, -g])

# Berechne den Auftreffzeitpunkt auf dem Boden.
t_e = v0[1] / g + math.sqrt((v0[1] / g)**2 + 2 * r0[1] / g)

# Erzeuge ein 1000 x 1 - Array mit Zeitpunkten.
t = np.linspace(0, t_e, 1000)

# Berechne den Ortsvektor für alle Zeitpunkte im Array t.
r = np.empty((t.size, r0.size))
for i in range(t.size):
    for j in range(r0.size):
        r[i, j] = r0[j] + v0[j] * t[i] + 0.5 * a[j] * t[i]**2

# Erzeuge eine Figure und ein Axes-Objekt.
fig = plt.figure()
ax = fig.add_subplot(1, 1, 1)
ax.set_xlabel('x [m]')
ax.set_ylabel('y [m]')
ax.grid()

# Plotte die Bahnkurve.
ax.plot(r[:, 0], r[:, 1])

# Zeige die Grafik an.
plt.show()