Pisząc poprzednią notkę posłużyłem się rysunkiem na którym kometa porusza się po hiperboli. Początkowo miałem sobie narysować tę krzywą niezależnie od równań ruchu (Newtona) – po prostu jakąś hiperbolę, ale komentarz Snafu, zachęcił mnie do przeprowadzenia obliczeń numerycznych. W dodatku w Excelu, choć podobno to nie najlepsze narzędzie do numeryki.
Równania Newtona są postaci:
gdzie i oznacza numer współrzędnej kartezjańskiej. Można je przepisać następująco:
fi to siła podzielona przez masę. No i najprościej jak się da, można to równanie „rozwiązać” tak:
Żeby przetestować sobie owo (prymitywne) rozwiązywanie, wziąłem na warsztat ruch oscylatora harmonicznego w jednym wymiarze. Tam siła jest prosta: proporcjonalna do wychylenia x, tyle, że znakiem przeciwnym, czyli f=–(stala)x. Nie będę zanudzał szczegółami technicznymi, co dokładnie wpisywałem w excelowych tabelkach, pokażę uzyskany wykres. Na osi poziomej mamy położenie x, na pionowej prędkość v:
Oj kiepsko to wygląda. Po wykonaniu całego „wahnięcia” widać wyraźnie, że na skutek błędów wynikających z zastosowanego algorytmu amplituda rośnie. Powyższy obrazek odpowiada podzieleniu okresu wahadła na ok. 150 odcinków czasowych – to mało – błędy są wyraźnie widoczne. Gdy zmniejszy się krok czasowy, rozwiązanie trochę słabiej się „rozjedzie”.
Ale we wspomnianym komentarzu Snafu powołuje się na metodę Verleta, która ma lepiej sobie radzić z równaniem Newtona. W Wikipedii przeczytałem jak ona wygląda, oto jedna (chyba najbardziej intuicyjna) z postaci algorytmu:
Teraz wahadło porusza się jak należy (przynajmniej na tzw. „oko”):
Zachęcony wynikiem zastosowałem powyższe wzory, dla ruchu w dwóch wymiarach, gdzie siła jest postaci:
No i tym sposobem uzyskałem ładniutką hiperbolę, która wykorzystałem w poprzedniej notce.
Jak widać, czasami zwykły Excel potrafi obliczyć to i owo :)
Inne tematy w dziale Technologie