Milyen függvény adja meg egy pattogó labda pillanatnyi magasságát? Létezik ilyen?
A legegyszerűbb példa: a labda h magasságból indul, 0 kezdősebességgel, szabadesés a földig, majd energiaveszteség nélkül visszapattanás h magasságig, és így tovább. Csak egy egyenes menti mozgás.
Elsőre naivan azt gondoltam, hogy a |cos(t)| alakja az, amire szükségem van, de már rájöttem, hogy a megtévesztő hasonlóság csak véletlen egybeesés.
Az első részen, ahogy #4 is írta, az y=h-g*t^2/2 függvény alapján mozog a labda, amíg el nem éri a földet, ez pontosan a t=gyök(2h/g) időpillanatban fogja megtenni.
A következő részen ugyanazt a parabolaívet fogja bejárni a labda, mint amit akkor látnánk, hogyha negatív irányba is kiterjesztenénk a függvény a t=-gyök(2h/g) időpillanatig, csak épp 2*gyök(2h/g)-vel el van tolva jobbra, tehát a következő rész így írható fel a következő földet érésig:
y = h-g*(t-2*gyök(2h/g))^2/2, ez a ]gyök(2h/g);3*gyök(2h/g)] intervallumon van értelmezve.
A következő rész újra el van tolva 2*gyök(2h/g)-vel jobbra, tehát:
y = h-g*(t-4*gyök(2h/g))^2/2, ez a ]3*gyök(2h/g);5*gyök(2h/g)] intervallumon van értelmezve.
Ez alapján általánosságban elmondhatjuk, hogy a labda helyzete így írható fel:
y = h-g*(t-(2n)*gyök(2h/g))^2/2, ez a ](2n-1)*gyök(2h/g);(2n+1)*gyök(2h/g)] intervallumon van értelmezve t-re, és t>=0 is kell, hogy teljesüljön.
A következő lépés az, hogy n hogyan iktatható ki, vagyis t szerint hogyan írható fel. Erre lehet, hogy többféle megoldás is van, a legegyszerűbb talán az, hogyha az egészrészfüggvényt valahogy becsempésszük a függvénybe. Azt vesszük észre, hogy n változása egy lineáris függvény mentén feleltethető meg, így annak elég csak az egészrészét vennünk, hogy mindig a megfelelő egész szám legyen n értéke. Ez a függvény a következő: n = alsóegészrész((t + gyök(2h/g))/(2*gyök(2h/g))). Hogy ez hogy jött ki, arra csak annyit tudok mondani, hogy középiskolás módon felírtam két pontra az egyenes egyenletét.
Tehát a függvény, ami leírja a labda helyzetét:
y = h-g*(t-(2*alsóegészrész((t + gyök(2h/g))/(2*gyök(2h/g))))*gyök(2h/g))^2/2
Vegyünk egy konkrét példát; legyen a magasság h=100 méter, g értékét pedig 10-nek vesszük, ekkor:
y = 100-10*(t-(2*egészrész((t + gyök(20))/(2*gyök(20))))*gyök(20))^2/2
GeoGebrába beírtam, nagyon szépen ábrázolta.
Amit be kell írni:
100-10*(x-(2*floor((x + sqrt(20))/(2*sqrt(20))))*sqrt(20))^2/2, ez mutatja meg a labda helyzetét 100 méter magasból dobva 10 m/s^2-es nehézségi gyorsulás mellett, hogyha a csillapításokat nem vesszük figyelembe.
Biztosan fel lehet szebben is írni, nekem most ez jutott eszembe.
Mivel a labda (jó közelítéssel) szabadeséssel megy, ezért nem cos, hanem parabola darabokból van összerakva a pálya!
A visszapattanás jó kérdés, az bonyolultabb.
Köszönöm a válaszokat!
#7 Eltaláltad, egy animáció programozásához kerestem a függvényt. A klasszikus példákban általában ciklusonként újraszámolják a pozíciót a sebességvektor alapján, de ez pontatlan, nagy sebességeknél a labda túlmehet a kép peremén, vagy hamarabb visszapattan, és aztán nem jut vissza az eredeti magasságba. Ennél precízebb megoldást akartam.
#4 Az, hogy írtad a parabolát, sokat segített, mára (tegnapra) sikerült önállóan megírni a függvényt.
Az #5 választ még nem tanulmányoztam mélyen, de a megoldásom eléggé más lett.
Az egyszerűség kedvéért a labda most legyen pontszerű, és induljon (t=0) a képernyő legmagasabb pontjáról, ahol x=0, a talaj pedig x_max (felülről lefelé nő, kicsit szokatlan, de ez van).
Ekkor a függvénynek y=t^2 alakúnak kell lennie.
El kell úgy tolni a függvénygörbét, hogy a bal oldala x_max magasságban metssze a függvénygörbét. A jobb oldalon ugyanez a pont 2*sqrt(x_max) távolságra van, és innentől kell ismétlődnie a függvénynek, tehát ennyi a periódus hossza (p-vel jelölöm).
A ciklikusságot modulo operátorral oldottam meg, így a formula eddig (t%p-p/2)^2
Viszont mivel a labdának x=0-ról kell indulnia, ezért még kell egy vízszintes eltolás p/2-vel, így a végső forma:
((t-p/2)%p-p/2)^2
Aztán ezt lehet cifrázni a gömb sugarával, tömeggel, g-vel, tetszőleges magassággal, és akkor némileg bonyolódik, de innentől már könnyű.
Mit szóltok ehhez a megoldáshoz?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!