To pytanie dotyczy bardziej numerycznego rozwiązania problemu.
W małym projekcie chciałem zasymulować ruch koorbalny Janusa i Epimetheusa. Jest to w zasadzie problem trzech ciał. Niech wybiorę Saturna, który ma być ustawiony na początku i być odpowiednio wektorami lokalizacji Janusa i Epimetheusa. Ponieważ efekt występuje, gdy Janus i Epimetheus są bardzo blisko siebie, wybrałem współrzędne względne dla lepszej rozdzielczości, tj i . Teraz otrzymuję następujące równania ruchu:
gdzie odpowiada masom księżyców, jest masą Saturna, a stałą grawitacyjną. Problem pojawia się, gdy próbuję rozwiązać to numerycznie. Należy sobie radzić z wartościami o zupełnie różnych wielkościach, tj. i . I , są regionami 0 do 150.000.
Szczerze mówiąc, nie jestem pewien, czy jest to forum dyskusyjne na temat takich problemów numerycznych.
Więcej informacji:
Kod jest napisany w Matlabie i do uzyskania wyniku używam standardowego solvera ODE. Jednak to się psuje, ponieważ wielkości kroku nie można zmniejszyć przy precyzji maszyny. (Uważam, że nie jest to zaskakujące, ponieważ trzeba poradzić sobie z już wspomnianymi rzędami wielkości).
Odpowiedzi:
Twoje obecne podejście rujnuje stabilność liczbową; w rzeczywistości prawdopodobnie stracisz w ten sposób rozdzielczość.
Przyjmij jako współrzędne dla każdego satelity jego zmienne Keplera i kąt płaszczyzny zawierającej pozycję satelity, prędkość i początek. Równania różniczkowe przy braku interakcji między satelitami są wtedy banalnie proste i tylko interakcja staje się nieco skomplikowana. Ponieważ interakcja jest niewielka, jeśli satelity są daleko, wynikowa dynamika powinna być stabilna numerycznie.
źródło
Zamiast używać „klasycznego” (sztywnego) solvera ODE, można użyć dedykowanych algorytmów do geometrycznej integracji numerycznej. Zobacz na przykład tę książkę i kody DNB, które można znaleźć na stronie internetowej Ernsta Hairera .
źródło
Co powiesz, jeśli masz trzy kroki w swojej symulacji:
Być może przy użyciu dokładniejszych czasów dla # 3.
Nie jestem pewien, czy to pomoże. Przypuszczam, że prawdziwym problemem jest to, że wielkość siły jest różna w przypadku Księżyc - Księżyc i Księżyc - Saturn, chyba że księżyce są blisko?
Alternatywnie:
Powodzenia!
źródło