Zadanie

Čajka je občas veľmi nervózna. Našťastie moderná terapeutická psychológia pozná všelijaké relaxačné cviky. Jedným z nich je vyhadzovanie plastelíny. Stačí zobrať poriadny kus plastelíny, vymodelovať z neho veľa rovnakých guľôčok s hmotnosťou \(m\) a vyhadzovať ich kolmo hore rýchlosťou \(v\). Čajka vyhodí do vzduchu kúsok plastelíny každých \(t\) sekúnd. Kvíka by zaujímalo, kedy sa celá gundža plastelíny, ktorú Čajka povyhadzovala do vzduchu, dotkne naraz zeme a koľko bude vtedy vážiť?

Pri riešení tejto úlohy neváhajte využiť počítač ;-)

Na riešenie tohoto problému môžeme zvoliť dva spôsoby, analytický (rovnice) alebo simuláciu. Na začiatok sa pozrime na to, ako by sa dal tento spletitý problém rozmotať na peknú sadu rovníc. Keď Čajka vyhodí do vzduchu niektorú z neskorších guličiek, daná gulička sa dokonale nepružne zrazí s gučou, ktorá už bola vo vzduchu a pridá sa ku nej. Vieme, že počas žiadnej zrážky sa nezmení poloha ani rýchlosť ťažiska tejto sústavy. Pod danou sústavou myslíme \(N\)-tú guličku (prvá gulička bola označená ako nultá) a guču zloženú z prvých \(N\) guličiek. Tým pádom sa táto novovzniknutá guča bude hýbať po trajektórii ich ťažiska, až kým nedôjde k ďalšej zrážke.

Ak si teda napíšeme polohu \(N\)-tej guličky v závislosti od času a polohu ťažiska guče, s ktorou sa zrazí, vieme určiť čas, kedy k tejto zrážke dôjde, teda kedy sa tieto dve polohy budú rovnať. Trajektóriu ktorejkoľvek guličky si vieme napísať ako \[ x_i = v(t-T_i) - \frac{1}{2} g (t - T_i)^2\text{,} \]

kde \(T_i\) je čas vyhodenia danej guličky a môžeme ho vyjadriť aj ako \(T_i = i \tau\), pričom \(\tau\) je doba medzi dvoma vyhodeniami. Teda si to vieme rozpísať ako \[ x_i = -v \tau i - \frac{1}{2} g \tau^2 i^2 + (v + g \tau i)t - \frac{1}{2} g t^2\text{,} \]

Čo sa týka ťažiska, to si vieme napísať ako1 \[ y_i = \sum_{j = 0}^{i} \frac{x_j}{i + 1} = \frac{1}{i + 1} \sum_{j = 0}^{i} -v \tau j - \frac{1}{2} g \tau^2 j^2 + (v + g \tau j)t - \frac{1}{2} g t^2\text{.} \]

Na vyriešenie tejto dlhej sumy ale vieme použiť známe výsledky. Napríklad vieme, že \[ \sum_{j = 0}^{i} j = \frac{i(i+1)}{2}\text{,} \] \[ \sum_{j = 0}^{i} j^2 = \frac{i(i+1)(2i+1)}{6}\text{.} \]

Keď si dosadíme tieto výrazy do rovnice pre polohu ťažiska, dostaneme \[ y_i = - \frac{v \tau i}{2} - \frac{g \tau^2 i(2i+1)}{12} + \left( v + \frac{g \tau i}{2}\right) t - \frac{1}{2} gt^2\text{.} \]

Pri výpočte polohy ťažiska sme ale použili trik, ktorý treba spomenúť. Pre zjednodušenie matematiky uvažujeme, akoby už všetky guličky, ktoré potrebujeme poznať, boli vo vzduchu od začiatku, avšak začínali niekde v negatívnej výške s veľkou rýchlosťou. A táto rýchlosť a výška sú presne také, aby sa v čase \(i \tau\) nachádzali vo výške \(0\) a mali rýchlosť práve \(v\). Ako sme povedali, v okamihu keď sa polohy guče a guličky rovnajú, dochádza ku zrážke, a teda si môžeme vyjadriť čas zrážky \((i+1)\)-tej guličky: \[ x_i = y_i\text{,} \] \[ -v \tau i - \frac{1}{2} g \tau^2 i^2 + (v + g \tau i)t - \frac{1}{2} g t^2 = - \frac{v \tau i}{2} - \frac{g \tau^2 i(2i+1)}{12} + \left( v + \frac{g \tau i}{2}\right) t - \frac{1}{2} gt^2\text{,} \] \[ t = \frac{v}{g} + \left( i - \frac{2i +1}{6} \right) \tau\text{.} \]

Tak sme teda zistili, kedy sa každá z guličiek zrazí s predchádzajúcimi. To síce nie je jedna z otázok, ale pomôže nám zistiť, koľko guličiek Čajka stihne vyhodiť predtým, než to celé dopadne na zem. Keď sa pozrieme na náš výpočet ťažiska a fakt, že sme uvažovali, že všetky guličky sú od začiatku letiace, zistíme, že nám vzniká podmienka, aby sa gulička stretla s gučou, keď už je nad zemou. Ináč povedané, zrážka sa nemohla stať, ak gulička ešte nebola vyhodená. Týmto si vieme zadefinovať podmienku: \[ t = \frac{v}{g} + \left( i - \frac{2i +1}{6} \right) < i \tau\text{,} \] \[ i < \frac{3v}{g \tau} - \frac{1}{2}\text{.} \]

Tak, a práve sme zistili koľko guličiek sa Čajke podarí vyhodiť. Aby sme našli čas, kedy táto guča dopadne, nám už len ostáva dosadiť tento nájdený počet späť do rovnice pre polohu ťažiska a zistiť kedy táto poloha bude rovná \(0\): \[ y_i = 0 \] \[ -\frac{v \tau i}{2} - \frac{g \tau^2 i(2i+1)}{12} + \left(v + \frac{g \tau i}{2}\right) t - \frac{1}{2} gt^2 = 0 \] \[ t = \frac{2v + g \tau i + \sqrt{\left(2v + g \tau i\right)^2 - 4 g \left (\frac{g \tau^2 i(2i+1)}{6} + v \tau i \right)}}{2g} \] \[ t = \frac{1 + i + \sqrt{\left(1 + i\right)^2 - \frac{2i(2i+1)}{3} - 2 i}}{2} \] \[ t = \frac{1 + i + \sqrt{1 + 2i + i^2 - \frac{4i^2 + 2i}{3} - 2 i}}{2} \]

Ako zaujímavosť pre čitateľa poznamenávame, že keď \(\tau \rightarrow 0\), tak \(t \rightarrow \frac{3v}{g}\). Toto je pekný výsledok, keďže je to presne o polovicu viac, ako by trvalo proste dopadnúť prvému kúsku. Druhý pekný špeciálny prípad je \(v = \frac{g \tau}{2}\). Vtedy prvá gulička dopadne akurát vtedy, keď Čajka vyhodí druhú.

Aby ste porozumeli numerickému spôsobu riešenia, pozrite si kód tu.

Grafický výstup numerickej simulácie. Jednotlivé čiary predstavujú dráhy guličiek. Hrubá modrá čiara je predĺžením dráhy guče po druhej zrážke, tenká modrá ukazuje výšku guče v závislosti od času.
Grafický výstup numerickej simulácie. Jednotlivé čiary predstavujú dráhy guličiek. Hrubá modrá čiara je predĺžením dráhy guče po druhej zrážke, tenká modrá ukazuje výšku guče v závislosti od času.

  1. Znak \(\sum\) tu značí sčítanie cez všetky výrazy rovnakého typu, ktoré sa vyskytujú za týmto znakom. Teda napríklad \(\sum_{i=0}^{n} i = 0 + 1 + 2 + ... + n\).

Diskusia

Tu môžte voľne diskutovať o riešení, deliť sa o svoje kusy kódu a podobne.

Pre pridávanie komentárov sa musíš prihlásiť.