Die Physik beim Schrägen Wurf ist eigentlich ganz einfach. Wenn die Luftreibung vernachlässigt wird, wirkt nach dem Abwurf nur eine einzige Kraft auf das Projektil: die senkrecht nach unten gerichtete Schwerkraft. Wir können die Vektoren der Beschleunigung und der Geschwindigkeit jeweils in eine vertikale (\(y\)-Achse) und eine horizontale (\(x\)-Achse) Komponente unterteilen. Dann ist die Beschleunigung in \(y\)-Richtung \(a_y = -g = -9.81 \, ms^{-2}\), die Beschleunigung in \(x\)-Richting ist Null: \(a_x = 0\). Das bedeutet, dass eine gleichmäßig beschleunigte Bewegung in (negativer) \(y\)-Richtung vorliegt, und dass eine geradlinig gleichmäßige Bewegung in \(x\)-Richtung stattfindet. Die Geschwindigkeit in negativer \(y\)-Richtung nimmt also ständig zu, währenddessen die Geschwindigkeit in \(x\)-Richtung stets konstant bleibt, bis das Projektil den Erdboden (\(y=0\)) erreicht.
Der schräge Wurf findet in der \(x\)-\(y\)-Ebene statt. Die Anfangshöhe (größer
Null z.B. beim Wurf von einem Dach oder von einer Anhöhe) wird mit \(y_0\) bezeichnet. (Meist wird \(y_0=0\) angenommen.) Der Wurf erfolgt mit
einer Anfangsgeschwindigkeit \(v_0\)
unter einem Winkel \(\alpha\) zur \(x\)-Achse. Die Wurfparabel erreicht ihre
größte Höhe beim \(x=x_{max}\), die
Wurfweite wird mit \(x_w\) bezeichnet.
Der Vektor der Anfangsgeschwindigkeit kann in die Komponenten \(v_x\) und \(v_y\) zerlegt werden:
Folgende Formeln werden aus oben stehender Grafik ersichtlich:
\[ \begin{align*} \sin{\alpha} &= \frac{v_{0y}}{v_{0}} & v_{0y} &= v_{0} \cdot \sin{\alpha} \\ \cos{\alpha} &= \frac{v_{0x}}{v_{0}} & v_{0x} &= v_{0} \cdot \cos{\alpha} \hspace{1cm} \text{(1)} \end{align*} \]
\[ \tan{\alpha} = \frac{v_{0y}}{v_{0x}} \]
Der Betrag der Geschwindigkeit ist
\[ v = \sqrt{ v_{0y}^2 + v_{0x}^2 } \] (Satz des Pythagoras)
Zeitliche Ableitungen werden mit einem Punkt über dem Formelzeichen dargestellt:
\[ \begin{align*} \dot{x} &= \frac{dx}{dt} = v_x & \dot{y} &= \frac{dy}{dt} = v_y \qquad \text{Geschwindigkeit} \\[8pt] \ddot{x} &= \frac{d^2x}{d^2t} = a_x & \ddot{y} &= \frac{d^2y}{d^2t} = a_y \qquad \text{Beschleunigung} \end{align*} \]
Nur zwei Formeln reichen aus, um die im Abschnitt Physikalische Grundlagen erwähnten Zusammenhänge zu modellieren:
\[ \begin{align*} a_y = \ddot{y} &= -g \qquad \text{Erdbeschleunigung in y-Richtung} \\ a_x = \ddot{x} &= 0 \qquad \quad \text{keine horizontale Beschleunigung} \hspace{1cm} \text{(2)} \end{align*} \]
Beide Gleichungen werden nach der Zeit integriert:
\[ \begin{align*} \dot{y} &= -g \cdot t + v_{0y} \qquad \text{vertikale Geschwindigkeit} \\ \dot{x} &= v_{0x} \qquad \qquad \qquad \text{horizontale Geschwindigkeit} \hspace{1cm} \text{(3)} \end{align*} \]
Es sind hier \(v_{0y}\) und \(v_{0x}\) die Integrationskonstanten. Wir sehen, dass für \(t=0\) in der oberen Gleichung wieder \(v_y = v_{0y}\) folgt, also die korrekte Anfangsbedingung.
Nochmalige Integration ergibt die Beziehungen für \(x\) und \(y\):
\[ \begin{align*} y &= -\frac{g}{2} t^2 + v_{0y} \cdot t + y_0 \\ x &= v_{0x}\cdot t +x_0 \hspace{3cm} \text{(4)} \end{align*} \]
Die Integrationskonstante \(x_0\) ist der horizontal zurückgelegte Weg zur Zeit \(t=0\). Wir werden im Weiteren \(x_0=0\) setzen, da wir das Koordinatensystem beliebig positionieren können. .
Aus den letzten beiden Gleichungen (4) kann die Bahnkurve - also die Beziehung \(y(x)\) - berechnet werden, indem die Zeit eliminiert wird:
Aus der zweiten Gleichung folgt \(t = \frac{x}{v_{0x}}\). Dies in die erste Gleichung eingesetzt ergibt
\[ y = -\frac{g}{2} \frac{x^2}{v_{0x}^2} + v_{0y} \cdot \frac{x}{v_{0x}} + y_0 \hspace{1cm} \text{(5)} \] Dies ist im Prinzip schon die Bahnkurve. Es ist jedoch eleganter, die Bahnkurve mit Hilfe der Anfangsgeschwindigkeit \(v_0\) und des Abwurfwinkels \(\alpha\) auszudrücken. Wir verwenden dazu die im Abschnitt Grundlegende Beziehungen aufgelisteten Formeln \(v_{0x} = v_{0} \cdot \cos{\alpha}\) und \(\tan{\alpha} = \frac{v_{0y}}{v_{0x}}\) und bekommen:
\[ y = -\frac{g}{2} \frac{x^2}{v_{0}^2 \cos^2{\alpha}} + \tan{\alpha} \cdot x + y_0 \hspace{1cm} \text{(6)} \] Wir können nun in R eine Funktion schreiben, die die vertikale Koordinate \(y\) berechnet, wenn \(x\), \(v_0\) , \(\alpha\) und \(y_0\) gegeben sind:
hoehe <- function(x, v0, alpha, y0) {
g = 9.81
y = -g/2*x^2/v0^2/cos(alpha)^2 + tan(alpha)*x + y0
return(y)
}
pi # in R vordefiniert
## [1] 3.141593
y = hoehe(1, 5, pi/4, 0)
y
## [1] 0.6076
Wir setzen voraus, dass alle Größen in SI-Einheiten gegeben sind, also
Die Umrechnung von Grad in Radiant erfolgt mit \(rad = grad \cdot (\pi/180 )\).
Die Winkelfunktionen cos und tan in R
erwarten, dass Winkel als Bogenmaß
angegeben werden.
Die Funktion im obigen Beispiel berechnet die Höhe des Projektils an
der Stelle \(x=1\) \(m\) für eine Anfangsgeschwindigkeit von
\(v_0 = 5\) \(m/s\), einen Abwurfwinkel von \(\alpha = \pi/4\) und eine Anfangshöhe von
\(y_0=0\) \(m\). (Die Input-Parameter müssen in der
korrekten Reihenfolge eingegeben werden.)
Dies ist aber nur ein einziger Punkt. Wenn wir die Bahnkurve haben
wollen, müssen wir die Höhe für viele \(x\)-Werte berechnen:
x = seq(0, 1, 0.01)
x
## [1] 0.00 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10 0.11 0.12 0.13 0.14
## [16] 0.15 0.16 0.17 0.18 0.19 0.20 0.21 0.22 0.23 0.24 0.25 0.26 0.27 0.28 0.29
## [31] 0.30 0.31 0.32 0.33 0.34 0.35 0.36 0.37 0.38 0.39 0.40 0.41 0.42 0.43 0.44
## [46] 0.45 0.46 0.47 0.48 0.49 0.50 0.51 0.52 0.53 0.54 0.55 0.56 0.57 0.58 0.59
## [61] 0.60 0.61 0.62 0.63 0.64 0.65 0.66 0.67 0.68 0.69 0.70 0.71 0.72 0.73 0.74
## [76] 0.75 0.76 0.77 0.78 0.79 0.80 0.81 0.82 0.83 0.84 0.85 0.86 0.87 0.88 0.89
## [91] 0.90 0.91 0.92 0.93 0.94 0.95 0.96 0.97 0.98 0.99 1.00
y = hoehe(x, 5, pi/4, 0)
y
## [1] 0.00000000 0.00996076 0.01984304 0.02964684 0.03937216 0.04901900
## [7] 0.05858736 0.06807724 0.07748864 0.08682156 0.09607600 0.10525196
## [13] 0.11434944 0.12336844 0.13230896 0.14117100 0.14995456 0.15865964
## [19] 0.16728624 0.17583436 0.18430400 0.19269516 0.20100784 0.20924204
## [25] 0.21739776 0.22547500 0.23347376 0.24139404 0.24923584 0.25699916
## [31] 0.26468400 0.27229036 0.27981824 0.28726764 0.29463856 0.30193100
## [37] 0.30914496 0.31628044 0.32333744 0.33031596 0.33721600 0.34403756
## [43] 0.35078064 0.35744524 0.36403136 0.37053900 0.37696816 0.38331884
## [49] 0.38959104 0.39578476 0.40190000 0.40793676 0.41389504 0.41977484
## [55] 0.42557616 0.43129900 0.43694336 0.44250924 0.44799664 0.45340556
## [61] 0.45873600 0.46398796 0.46916144 0.47425644 0.47927296 0.48421100
## [67] 0.48907056 0.49385164 0.49855424 0.50317836 0.50772400 0.51219116
## [73] 0.51657984 0.52089004 0.52512176 0.52927500 0.53334976 0.53734604
## [79] 0.54126384 0.54510316 0.54886400 0.55254636 0.55615024 0.55967564
## [85] 0.56312256 0.56649100 0.56978096 0.57299244 0.57612544 0.57917996
## [91] 0.58215600 0.58505356 0.58787264 0.59061324 0.59327536 0.59585900
## [97] 0.59836416 0.60079084 0.60313904 0.60540876 0.60760000
Wir sehen hier, dass die Funktion hoehe
vektorisiert werden kann, d.h. bei Eingabe eines
Vektors \(x\) wird der Output für alle
Elemente dieses Vektors berechnet. Siehe dazu auch den entsprechenden Abschnitt
auf der R-Webseite.
Der Inputvektor wird mit Hilfe des seq-Kommandos
definiert.
Wir können nun einen Teil der Bahnkurve plotten:
plot(x,y)
Wir werden in Kürze die gesamte Bahnkurve bis zum Erreichen der gesamten Wurfweite plotten. Dazu werden wir die Wurfweite zunächst berechnen.
Der Wurf endet wenn \(y=0\). Wir setzen also in der ersten Gleichung von (4) \(y=0\) und lösen nach \(t\) auf, um die Dauer des Wurfes zu berechnen:
\[ -\frac{g}{2} t^2 + v_{0y} \cdot t + y_0 = 0 \hspace{1cm} \text{(7)} \] Die positive Lösung dieser quadratischen Gleichung lautet:
\[ t_w = \frac{v_{0y}}{g} + \sqrt{\frac{v_{0y}^2}{g^2}+ \frac{2 y_0}{g}} \hspace{1cm} \text{(8)} \] (Der 2. Summand ist größer als der 1.; daher nur diese Lösung!)
Wir können außerdem \(v_{0y}=v_{0} \cdot \sin{\alpha}\) aus Gleichung (1) benutzen und erhalten:
\[ t_w = \frac{v_{0} \cdot \sin{\alpha}}{g} + \sqrt{\frac{v_{0}^2 \cdot \sin^2{\alpha}}{g^2}+ \frac{2 y_0}{g}} \hspace{1cm} \text{(9)} \] Die Wurweite \(x_w\) ergibt sich nun aus dem 2. Teil der Gleichung (4) (mit \(t=t_w\) und \(x_0=0\)):
\[ x_w = v_{0x} \cdot t_w = v_{0} \cdot \cos{\alpha} \cdot t_w \hspace{3cm} (10) \] Dies stimmt mit der physikalischen Tatsache überein, dass sich das Projektil mit gleichförmig geradlinig in \(x\)-Richtung bewegt.
Alternativ kann man die Wurfweite auch direkt aus der Bahnkurve ausrechnen indem man in Gleichung (6) \(y=0\) setzt :
\[ -\frac{g}{2} \frac{x^2}{v_{0}^2 \cos^2{\alpha}} + \tan{\alpha} \cdot x + y_0 = 0 \]
Dies ist ebenfalls eine quadratische Gleichung mit der positiven Lösung
\[ x_w = \frac{v_0^2 \cdot \cos{\alpha} \cdot \sin{\alpha}}{g} + v_0 \cdot \cos{\alpha} \cdot \sqrt{ \frac{v_0^2 \cdot \sin^2{\alpha}}{g^2} +\frac{2 y_0}{g}} \hspace{1cm} (11) \] Gleichung (11) ist identisch mit Gleichung (10).
Für den Spezialfall \(y_0=0\) vereinfacht sich (11) wesentlich, es ist dann
\[ x_w = \frac{2 \cdot v_0^2 }{g} \cdot \cos{\alpha} \cdot \sin{\alpha} = \frac{v_0^2 }{g} \cdot \sin{2\alpha} \hspace{1cm} (12) \] wobei wir wieder \(2\cos{\alpha} \cdot \sin{\alpha} = \sin{2 \alpha}\) benutzt haben (siehe die trigonometrischen Formeln auf dieser Wikipedia-Seite.)
Wir können nun die Bahnkurve über die gesamte Länge der Parabel plotten. Außerdem hübschen wir den Plot etwas auf:
g = 9.81
alpha = pi/4
v0 = 5
y0 = 0
x_w = v0^2 * cos(alpha) * sin(alpha) / g + v0 * cos(alpha) * sqrt( v0^2 * sin(alpha)^2/g^2 + 2*y0/g )
x_w
## [1] 2.54842
x = seq(0, x_w, 0.01)
y = hoehe(x, 5, pi/4, 0)
plot(x,y, col = "blue", type = "l", main = "Bahnkurve", lwd = 2)
Eine Beschreibung der Parameter der plot-Funktion gibt es zum Beispiel hier.
Unter welchem Winkel muss man werfen, um die größtmögliche Weite zu erreichen? Um diese Frage zu beantworten, können wir Gleichung (11) als Funktion von \(\alpha\) auffassen, also \(x_w = f (\alpha)\). Um das \(\alpha\) zu finden, bei dem die Bahnkurve ein Maximum annimmt, müssen wir nun \(\frac{dx_w}{d\alpha}=0\) setzen. Die Ableitung ist etwas langwierig, hier nur das Ergebnis:
\[ \frac{dx_w}{d\alpha}=\frac{v_0^2}{g} \cdot \cos{2\alpha} + \frac{v_0^3}{2g^2} \cdot \cos{\alpha} \cdot \sin{2\alpha} \cdot \frac{1}{W} - v_0 \cdot \sin{\alpha} \cdot W \hspace{1cm} (13) \] mit der Abkürzung \(W=\sqrt{ \frac{v_0^2 \cdot \sin^2{\alpha}}{g^2} +\frac{2 y_0}{g}}\).
Alle Terme in dieser Formel haben die Einheit Meter (\(m\)).
Wer Formel (13) nachrechnen möchte, sollte die trigonometrischen Formeln im Abschnitt Doppelwinkelfunktionen auf dieser Website berücksichtigen.
Ein einfacheres Ergebnis erhalten wir, wenn \(y_0=0\) ist. Dann haben wir \(W=\frac{v_0 \cdot \sin{\alpha}}{g}\) und Gleichung (13) vereinfacht sich (nach länglichen Manipulationen) zu
\[ \frac{dx_w}{d\alpha}=\frac{2 \cdot v_0^2}{g} \cdot \left( \cos^2{\alpha} - \sin^2{\alpha} \right) \hspace{1cm} (14) \] Diese Ableitung wird Null, wenn \(\cos{\alpha} = \sin{\alpha}\), also für \(\alpha = \pi/4\). Dies ist also der optimale Abwurfwinkel für \(y_0=0\).
Die maximale Höhe kann z.B. aus der Bahngleichung (6) ermittelt werden. Wir suchen das Maximum der Kurve, müssen also \(\frac{dy}{dx}=0\) setzen. Aus (6) folgt:
\[ \frac{dy}{dx} = -\frac{g}{v_0^2 \cdot \cos^2{\alpha}} \cdot x + \tan{\alpha} = 0 \hspace{1cm} \text{(15)} \] Daraus ergibt sich
\[ x_{max} = \frac{v_0^2}{2g} \cdot \sin{2\alpha} \hspace{1cm} \text{(16)} \] Dies ist die horizontale Position, bei der die größte Höhe erreicht wird. Die maximale Höhe der Bahnkurve ist der dazugehörige \(y\)-Wert, der durch Einsetzen von \(x_{max}\) in die Bahnkurve (6) berechnet wird:
\[ y_{max} = \frac{v_0^2}{2g} \cdot \sin^2{\alpha} + y_0 \hspace{1cm} \text{(17)} \]
Die größte Wurfhöhe wird für \(\alpha = 90^o\) erreicht, also für einen Wurf senkrecht nach oben. Die Wurweite \(x_{max}\) ist dann natürlich Null, in Übereinstimmung mit Gleichung (16).
Die Steigzeit \(t_{max}\) ist die Dauer bis zum Erreichen der maximalen Höhe. Zur Berechnung kann der Zusammenhang \(x=v_{0x} \cdot t\) aus Gleichung (4) benutzt werden. Wir kennen aus Gleichung (16) bereits die \(x\)-Koordinate, bei der die maximale Höhe erreicht wird. Daher beträgt die Steigzeit
\[ t_{max} = \frac{v_0}{g} \cdot \sin{\alpha} \hspace{1cm} \text{(18)} \]
\[
\begin{align*}
y &= -\frac{g}{2} t^2 + v_0 \cdot \sin{\alpha} \cdot t + y_0 \\
x &= v_0 \cdot \cos{\alpha} \cdot t
\end{align*}
\]
\[ \begin{align*} v_y &= -g \cdot t + v_0 \cdot \sin{\alpha} \hspace{5.5cm} \text{vertikale Geschwindigkeit} \\ v_x &= v_0 \cdot \cos{\alpha} \hspace{7.2cm} \text{horizontale Geschwindigkeit} \\ v \; \; &= \sqrt{ \left( -g \cdot t + v_0 \cdot \sin{\alpha} \right)^2 + \left( v_0 \cdot \cos{\alpha} \right)^2 } \hspace{1.7cm} \text{totale Geschwindigkeit} \end{align*} \]
\[ y = -\frac{g}{2} \frac{x^2}{v_{0}^2 \cos^2{\alpha}} + \tan{\alpha} \cdot x + y_0 \]
\[ t_w = \frac{v_{0} \cdot \sin{\alpha}}{g} + \sqrt{\frac{v_{0}^2 \cdot \sin^2{\alpha}}{g^2}+ \frac{2 y_0}{g}} \]
\(\hspace{1cm}\) Für den Spezialfall \(y_0=0\) ergibt sich
\[ t_w = \frac{2 \cdot v_{0} \cdot \sin{\alpha}}{g} \]
\[ x_w = \frac{v_0^2 \cdot \cos{\alpha} \cdot \sin{\alpha}}{g} + v_0 \cdot \cos{\alpha} \cdot \sqrt{ \frac{v_0^2 \cdot \sin^2{\alpha}}{g^2} +\frac{2 y_0}{g}} \] \(\hspace{1cm}\) Für den Spezialfall \(y_0=0\) ergibt sich
\[ x_w = \frac{2 \cdot v_0^2 \cdot \cos{\alpha} \cdot \sin{\alpha}}{g} = \frac{v_0^2}{g} \cdot \sin{2 \alpha} \]
\(\hspace{1cm}\) Die maximale Höhe wird bei
\[ x_{max} = \frac{v_0^2}{2g} \cdot \sin{2\alpha} \]
\(\hspace{1cm}\) erreicht. Die Höhe beträgt an dieser Stelle
\[ y_{max} = \frac{v_0^2}{2g} \cdot \sin^2{\alpha} + y_0 \]
Wir können die Berechnung der wichtigsten Größen mit Hilfe eines R-Scripts durchführen:
## Projectile motion
## Uwe Menzel 2023
## Input
g = 9.81 # gravitational acceleration, 9.81 if we are on Earth (change for other planets)
alpha = pi/4 # initial launch angle
v0 = 5 # total initial velocity
y0 = 0 # initial height
## Function calculating vertical displacement
y_coord <- function(x, v0, alpha, y0, g) {
y = -g/2*x^2/v0^2/cos(alpha)^2 + tan(alpha)*x + y0
return(y)
}
## Function calculating velocity components over time
velocities <- function(t, v0, alpha, g) {
nr.points = 300 # change here
vx = v0 * cos(alpha)
vy = v0 * sin(alpha) - g*t
v = sqrt(vx^2 + vy^2)
# store in data frame
velo = data.frame(t = numeric(nr.points), vx = numeric(nr.points), vy = numeric(nr.points), v = numeric(nr.points))
velo$t = t
velo$vx = rep(vx, nr.points)
velo$vy = vy
velo$v = v
# plot
matplot(velo[,1], velo[,-1], xlab = "time", ylab = "velocities", type = "l", lwd = 2, col = c("green","blue","red"), lty = c(2,2,1))
legend("bottomleft", c("vx", "vy", "v"), col = c("green","blue","red"), lty = c(2,2,1), lwd = 2, cex = 0.8)
abline(h = 0, col = "darkgrey", lty = 2)
title("Velocities vs. time", font.main = 1)
txt = paste("TOF =", signif(t_w, 4), "sec.")
mtext(txt, side = 3, col = "blue", cex = 0.8)
return(velo)
}
## Time of flight
t_w = v0 * sin(alpha)/g + sqrt( v0^2 * sin(alpha)^2/g^2 + 2*y0/g)
## Maximum horizontal distance
x_w = v0^2 * cos(alpha) * sin(alpha) / g + v0 * cos(alpha) * sqrt( v0^2 * sin(alpha)^2/g^2 + 2*y0/g )
# distance of max height
x_max = v0^2/2/g*sin(2*alpha)
# max height
y_max = v0^2/2/g * sin(alpha)^2 + y0
## Trajectory
x = seq(0, x_w, length.out = 300)
y = y_coord(x, v0, alpha, y0, g)
plot(x,y, col = "blue", type = "l", main = "Trajectory", lwd = 2)
## Velocities
t = seq(0, t_w, length.out = 300)
vel <- velocities(t, v0, alpha, g)
head(vel)
## t vx vy v
## 1 0.000000000 3.535534 3.535534 5.000000
## 2 0.002410709 3.535534 3.511885 4.983306
## 3 0.004821418 3.535534 3.488236 4.966668
## 4 0.007232127 3.535534 3.464587 4.950087
## 5 0.009642836 3.535534 3.440938 4.933564
## 6 0.012053545 3.535534 3.417289 4.917099
## Create table containing trajectory parameters
param = c("g", "alpha", "v0", "y0", "t_w", "x_w", "x_max", "y_max")
val = c(g, alpha*180/pi, v0, y0, t_w, x_w, x_max, y_max) # show angle in degrees
result.frame = data.frame(parameter = param, value = val, stringsAsFactors = F)
result.frame
## parameter value
## 1 g 9.810000
## 2 alpha 45.000000
## 3 v0 5.000000
## 4 y0 0.000000
## 5 t_w 0.720802
## 6 x_w 2.548420
## 7 x_max 1.274210
## 8 y_max 0.637105