Zápočtový úkol 10

Zápočtový úkol 10#

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 10

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:

mr¨=mg12CρSv2,

kde v=r˙. Pro jednoduchost zvolte C=ρ=S=g=m=1.

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

r(0)=[x0,y0]=[a,0],r(T)=[xT,yT]=[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 θ aktuálního směru pohybu vůči ose x):

x˙=vcosθ,v˙=12v2gsinθ,y˙=vsinθ,θ˙=gvcosθ,

s okrajovými podmínkami:

x(0)=a,y(0)=0,x(T)=b,y(T)=0.

Implementujte metodu střelby pro předchozí úlohu (můžete se inspirovat cvičením) a využijte 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(β) 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 r(T)=[xT,yT]=[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)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 θ(0)=θ0 tak, aby počáteční rychlost koule v(0)=v0 byla co nejmenší a cíl byl stále zasažen (v libovolném čase).

    • hledejte náklon děla v intervalu θ(0)[0.01,π2]

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

    • Stačí formulovat funkci G1(θ0)=v0 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 ##