Zápočtový úkol 5

Zápočtový úkol 5#

Při splnění všech podúloh tohoto započtového úkolu bude počítáno jako splnění 2 započtových úloh! Pro splnění tohoto zápočtového úkolu (počítán jako 1 splněný úkol) stačí správně vyřešit jednu z podúloh.

Úkol - zápočet 5

Pomocí metody střelby řešte okrajovou úlohu střelby na cíl v homogenním gravitačním poli Země. Uvažujte tření dělové koule ve vzduchu a působení gravitace země ve tvaru:

\[ m \ddot{\vec{r}} = - m\vec{g} - \frac{1}{2} C \rho S \vec{v}^2, \]

kde \(\vec{v} = \dot{\vec{r}}\). Pro jednoduchost zvolte \(C = \rho = S = g = m = 1\).

Okrajové podmínky jsou následující:

\[ \vec{r}(0) = [x_0, y_0] = [a, 0], \quad \vec{r}(T) = [x_T, y_T] = [b, 0], \]

tedy v čase \(t=0\) se dělová koule nachází v poloze \([a, 0]\), v čase \(T\) dopadne po výstřelu zpět na zem v místě \([b, 0]\).

Tip

Předchozí úlohu je výhodné řešit v následujícím tvaru soustavy čtyř ODR (kde místo dvou složek rychlostí máme velikost rychlosti a úhel \(\theta\) aktuálního směru pohybu vůči ose \(x\)):

\[\begin{split} \begin{align} \dot{x} &= v \cos{\theta}, \quad \dot{v} = -\frac{1}{2} v^2 - g \sin{\theta}, \\ \dot{y} &= v \sin{\theta}, \quad \dot{\theta} = -\frac{g}{v} \cos{\theta}, \end{align} \end{split}\]

s okrajovými podmínkami:

\[ x(0) = a, \quad y(0) = 0, \quad x(T) = b, \quad y(T) = 0. \]

Implementujte metodu střelby pro předchozí úlohu (můžete se inspirovat cvičením) a využíjte ji v následujících podúlohách:

  1. Vyřešte úlohu pro následující parametry: \(a = 0, b = 2, T = 1\).

    • To odpovídá otázce: “Jaký má být úhel náklonu děla a síla výstřelu tak, aby koule zasáhla cíl za dobu \(T=1\)?”

    • V této podúloze bude funkce \(F(\beta)\) vektorem dvou funkcí! Hledáme kořeny soustavy dvou rovnic! (můžete využít například funkce scipy.optimize.newton())

  2. Řešte stejnou úlohu, ale tentokrát doba zasažení cíle může být libovolná a navíc máte podmínku \(v(0) = 2\).

    • Pokud nás nezajímá, kdy zasáhneme cíl, podmínka \(\vec{r}(T) = [x_T, y_T] = [b, 0]\) ve skutečnosti odpovídá jen jedné podmínce \(y(T) = 0\), kde čas \(T\) je daný vztahem \(x(T>0) = b\) (koule doletěla do vzdálenosti cíle). Tedy pro jednoznačnost potřebujeme další podmínku (počáteční rychlost).

    • Zde tedy nemáme přesně daný integrační interval \([0, T]\), musíme tedy v každém kroku kontrolovat zda \(x(t) \geq b\).

    • Odpovídá otázce: “Jaký má být úhel náklonu děla, abych při síle výstřelu \(v(0) = 2\) koule zasáhla cíl?”

  3. Najděte hodnotu \(\theta(0) = \theta_0\) tak, aby počáteční rychlost koule \(v(0) = v_0\) byla co nejmenší a cíl byl stále zasažen (v libovolném čase).

    • hledejte náklon děla v intervalu \(\theta(0) \in [0.01, \frac{\pi}{2}]\)

    • Uvědomte si, že řešením podúlohy 3 získáváte pomyslný vztah (funkci): \(v_0 \rightarrow \theta_0\) (\(G(v_0) = \theta_0\)). Tedy pro určitou počáteční rychlost dostaneme náklon děla \(\theta_0\) takový, že je zasažen cíl za určitý čas \(T=T(v_0)\) (ten závisí na volbě počáteční rychlosti).

    • Stačí formulovat funkci \(G^{-1}(\theta_0) = v_0\) analogicky dle podúlohy 3 a nalézt minimum (využijte vhodné knihovní funkce z modulu scipy.optimize).

Vždy vykreslete výsledné řešení na intervalu \([a, b]\) pro každou podúlohu.

## DOPLŇTE ##