Rzut ukośny

Wymagania:

  1. Teoria rzutu ukośnego w zakresie fizyki szkoły średniej, wzór na trajektorię ruchu.
  2. Podstawy Sage: wykresy/pęlta/lista

Rzut ukośny

Rozważmy ruch punktu materialnego pod wpływem przyciągania ziemskiego. Zgodnie z Drugą Zasadą Dynamiki Newtona ruch punktu materialnego pod wpływem siły \(\vec F\) jest opisywany przez:

\[m\,\vec a = \vec F\]

W tym przypadku mamy \(\vec F = m\vec g\), gdzie \(\vec g\) jest przyśpieszeniem ziemskim .

Aby wyliczyć tor ruchu możemy skorzystać ze wzorów na:

  • przyśpieszenie:\(\quad\, \vec a = \displaystyle \frac{\Delta \vec v}{\Delta t} = \displaystyle \frac{\vec v-\vec v_0}{\Delta t}\)
  • prędkość:\(\qquad\quad\: \vec v = \displaystyle\frac{ \Delta \vec r}{\Delta t} = \displaystyle\frac{\vec r-\vec r_0}{\Delta t}\)

Podstawowe równania ruchu:

\[\begin{split}\begin{cases} m \, \displaystyle \frac{\Delta \vec v}{\Delta t} &=& \vec F \\ \quad\displaystyle \frac{\Delta \vec r}{\Delta t} &=& \vec v\end{cases}\end{split}\]

Stan układu jest jednoznacznie zadany przez położenie i prędkość: \(\vec r_0,\vec v_0\) , w chwili początkowej \(t_0\). Aby obliczyć \(\vec r,\vec v\) po czasie \(\: \Delta t \;\) możemy skorzystać ze wzorów na prędkość i przyśpieszenie:

  • nowe położenie: \(\, \vec r = \vec r_0 + \vec v_0 \Delta t\)
  • nowa prędkość:\(\quad \vec v = \vec v_0 + \displaystyle \frac{\vec F}{m} \Delta t\)

Zakładamy, że ruch odbywa się w płaszczyźnie pionowej wyznaczonej przez wektory prędkości początkowej \(\;\vec v_0\;\) i przyśpieszenia ziemskiego \(\;\vec g\,\).

Niech \(\:x\:\) i \(\:y\;\) będą współrzędnymi wektora położenia \(\:\vec r\,\), \(\:\) a \(\ \: v_x\:\) i \(\;v_y\:\ - \ \) współrzędnymi wektora prędkości \(\;\vec v\;\) w układzie współrzędnych z poziomą osią \(Ox\) i pionową osią \(Oy\). Układ wielkości \(\,(x,\,y,\,v_x,\,v_y\,)\) jest matematyczną reprezentacją stanu cząstki.

Równania ruchu można teraz zapisać jako:

\[\begin{split}\begin{cases}\quad\;\displaystyle\frac{\Delta x}{\Delta t} &=& v_x\\\quad\;\displaystyle\frac{\Delta y}{\Delta t} &=& v_y \\\quad\;\displaystyle\frac{\Delta v_x}{\Delta t}&=& 0\\\quad\;\displaystyle\frac{\Delta v_y}{\Delta t} &=& -\:g\end{cases}\end{split}\]

Wprowadzając wartości początkowe \(\:x_0\:\) i \(\:y_0\:\) dla współrzędnych położenia oraz \(\:v_{x0}\:\) i \(\:v_{y0}\:\) dla współrzędnych prędkości, otrzymujemy:

\[\begin{split}\begin{cases}\quad x &=&x_0 \ +\ v_{x0}\:\Delta t\\ \quad y &=&y_0\ +\ v_{y0}\:\Delta t\\ \quad v_x &=&v_{x0}\ +\ 0\:\Delta t\\ \quad v_y &=&v_{y0}\ -\ g\:\Delta t \end{cases}\end{split}\]
x0,y0=0,0
vx0,vy0= 10,10
g=9.81
dt = 0.03
wykres = point( [(x0,y0)],pointsize=50,figsize=5,color='red')
for i in range(int(2.1/dt)):
     x1 = x0 + vx0*dt
     y1 = y0 + vy0*dt
     vx1  = vx0
     vy1  = vy0 - g*dt
     x0,y0,vx0,vy0 = x1,y1,vx1,vy1
     wykres = wykres +  point( [(x1,y1)],pointsize=20,figsize=6)
var('t')
wykres + parametric_plot((10*t,10*t-g*t^2/2),(t,0,2.1),color='red')
_images/cell_38_sage0.png

Rzut ukośny z wiatrem i oporem powietrza

Zmodyfikujmy powyższy kod tak by uwzględniał opór powietrza. Zakładamy najprostrzą postać - proporcjonalność siły oporu do prędkości.

\[\vec F_{o} = C_x \vec v\]

czyli:

\[\begin{split}Fx_{o} = C_x v_x \\ Fy_{o} = C_x v_y\end{split}\]

Jeżeli pocisk „odczuwa” powietrze, to może oznaczać że ruch będzie inny w obecności wiatru. Aby do modelu dodać wiatr należy w zależność oporu od prędkości zmienić na:

Dla dociekliwych

Matematycznie, jeśli wziąć granicę \(\Delta t \to 0\) to otrzymujemy równania różniczkowe:

\[\begin{split}\begin{cases}\displaystyle\frac{d x}{d t} &=& v_x\\\displaystyle\frac{d y}{d t} &=& v_y \\\displaystyle\frac{d v_x}{d t}&=& 0\\\displaystyle\frac{d v_y}{d t} &=&-g\end{cases}\end{split}\]

W powyższym układzie równań różniczkowych zwyczajnych szukanymi są funkcje:

\[x(t),\,y(t),\,v_x(t),\,v_y(t).\]

Do ich wyznaczenia potrzebne są

  • układ równań
  • jeden warunek początkowy określający prędkość i położenie punktu materialnego w chwili \(t_0\).

W systemie Sage istnieje narzędzie do rozwiązywania takich równań - desolve_odeint:

sage: var('x y vx vy')
sage: g=9.81
sage: sol=desolve_odeint(vector( [vx,vy,0,-g] ),[0,0,10,10],srange(0,2.1,0.1),[x,y,vx,vy])
sage: var('t')
sage: point( sol[:,0:2],color='brown',pointsize=50)+\
...    parametric_plot([10*t,10*t-g*t^2/2],(t,0,2.1))
_images/cell_19_sage0.png

Parabola bezpieczeństwa dla rodziny torów pocisków.

Rozważmy rodzinę torów pocisków wyrzucanych w płaszczyźnie pionowej \(Oxy\) z początku układu współrzędnych z taką samą prędkością początkową \(v_0\), ale pod różnymi kątami \(\alpha\) względem osi \(Ox\).

Chcemy wyznaczyć obszar bezpieczeństwa, do którego pociski nie docierają. Granicą tego obszaru okazuje się obwiednia rodziny torów. W uproszczeniu można ją określić jako krzywą, która jest styczna do każdego toru rodziny i przy tym składa się cała z tych punktów styczności.

Parametryczne równanie toru pocisku ma postać:

\[\begin{split}\begin{cases} x \;=\; (v_0 \cos \alpha)\ t \\ y \;=\; (v_0 \sin \alpha)\ t \,-\, \frac{g}{2} \ t^2 \,. \end{cases}\end{split}\]

Rugując czas \(t\), otrzymamy równanie toru w postaci jawnej:

\[\quad\displaystyle y \ =\ (\text{tg}\,\alpha) \ x \; -\; \frac{g}{2\,v_0^2\cos^2\alpha} \ x^2\,.\]

Przy oznaczeniach: \(\qquad p \ =\ \text{tg}\,\alpha\) - tangens kąta wyrzucenia,

\(\qquad\displaystyle h \ =\ \frac{v_0^2}{2g}\) - wysokość rzutu pionowego z prędkością początkową \(v_0\,,\)

równanie toru przyjmuje postać:

(1)\[\displaystyle y \; =\; p\, x \;-\;\frac{1+p^2}{4h} \ x^2\,.\]

Załóżmy, że krzywe pewnej rodziny zadane są równaniem uwikłanym \(F(x,y,p)\, =\, 0 \,,\) gdzie \(p\) jest parametrem charakteryzującym poszczególne krzywe. Jeżeli istnieje obwiednia tej rodziny, to jej równanie otrzymuje się przez wyrugowanie parametru \(p\) z układu równań (1) i (2).

(2)\[\begin{split}\begin{cases} F(x,y,p)=0 \\ F_p'(x,y,p)=0. \end{cases}\end{split}\]

Dla rodziny torów pocisków obwiednia (parabola bezpieczeństwa) dana jest równaniem:

(3)\[\displaystyle y = h - \frac{x^2}{4h}.\]

Literatura.

[1] Roman Leitner, Zarys matematyki wyższej, część I, WNT Warszawa (w niniejszym opracowaniu przyjęto oznaczenia z tego podręcznika)

[2] G.M. Fichtenholz, Rachunek różniczkowy i całkowy, tom I, PWN Warszawa

sage: # Obwiednia (parabola bezpieczeństwa) dla rodziny torów pocisków.
sage: var('x')
sage: L = [] # inicjacja listy torów i punktów styczności
sage: h = 10 # maksymalna wysokość osiągana przez pociski
sage: # Równanie i wykres obwiedni:
sage: over(x)  = h-x^2/(4*h)
sage: envelope = plot(over(x), (x, -20, +20), color='red', thickness=2)
sage: # Określenie i wypisanie zbioru wartości vals parametru p:
sage: plus = [0.25, 0.5, 0.75, 1.0, 1.5, 2.25, 3.0, 4.5, 7.5, 17.5]
sage: minus = [-p for p in plus[::-1]]
sage: vals = minus + plus
sage: print "Wartości parametru p:", map(lambda p: round(p,2), vals)
sage: for p in vals:
...       # Równanie i wykres toru dla parametru p:
...       throw(x) = p*x-(1+p^2)/(4*h)*x^2
...       plt = plot(throw(x), (x, -20, 20))
...
...       # Wyznaczenie punktu styczności Pt toru i obwiedni:
...       soln = solve(throw(x)==over(x), x)
...       xt = soln[0].rhs(); yt = over(xt)
...       Pt = point((xt,yt), color='blue', size=20, zorder=5)
...
...       # Dodanie wykresu toru i punktu styczności do listy:
...       L.append(plt + Pt)
...
sage: P0 = point((0,0), color='white', faceted=True, size=25, zorder=5)
sage: show(P0 + sum(L) + envelope, axes_labels=['x','y'], figsize=8,
...        ticks=[[-20,-10,10,20],[]], xmin=-20, xmax=+20, ymin=0.175)
Wartości parametru p: [-17.5, -7.5, -4.5, -3.0, -2.25, -1.5, -1.0, -0.75, -0.5, -0.25, 0.25, 0.5, 0.75, 1.0, 1.5, 2.25, 3.0, 4.5, 7.5, 17.5]
_images/cell_1_sage01.png

Równanie (3) można potraktować jako funkcję dwóch zmiennych i narysowań w układzie trojwymiarowym \((x,p,y)\). Inspekcja poniższego rysunku:

  1. Ilustruje poprawnośc warunku na obwiednię rodziny krzywych: ustawiając rysunek tak by os p była wzdłuż lini wzroku.
  2. Pokazuje kąt w którym mamy maksymalny zasięg.