Pytanie:
W jaki sposób komputery „rozwiązują” problem trzech ciał?
HeeysamH
2019-01-26 16:34:03 UTC
view on stackexchange narkive permalink

Przeprowadziłem trochę badań i dowiedziałem się, że komputery „rozwiązują” problem trzech ciał za pomocą „metod numerycznych dla zwykłych równań różniczkowych”, ale tak naprawdę nie mogę znaleźć niczego innego niż Wikipedia.Czy ktoś ma jakieś dobre źródła na ten temat, które nie są żadną Wikipedią?

Moje przemyślenia:
Obecnie korzystam z symulacji trzech ciał latających wokół siebie, używając prawa grawitacji Newtona, iw losowym momencie w symulacji wszystko idzie chaotycznie.Myślałem, że to jedyny sposób, aby to „rozwiązać”, ale jak działa ta metoda „Metody numeryczne zwykłych równań różniczkowych”?A co właściwie robi komputer?

Powiązany post OP: https://physics.stackexchange.com/q/456720/2451
Chcesz nauczyć się pisać własne oprogramowanie do symulacji grawitacji?Czy znasz dużo rachunku różniczkowego?
nie jest jasne, jak Twój symulator „rozwiązał to”.Zrobiłeś to?
Co to za tłuszcz „symulacyjny”, którego obecnie używasz?
Oprócz odpowiedzi, które wspominają o Verlecie, podejście obliczeniowe do precyzyjnej integracji problemu n-ciał jest opisane w artykule [High Precision Symplectic Integrators for the Solar System] (https://arxiv.org/abs/1208.0716).
3- (lub więcej) układy ciała mogą rzeczywiście ulec chaosowi.
Pięć odpowiedzi:
Anders Sandberg
2019-01-26 19:49:04 UTC
view on stackexchange narkive permalink

Analiza numeryczna jest używana do obliczania przybliżeń rzeczy: wartości funkcji w pewnym punkcie, w którym znajduje się pierwiastek równania, lub rozwiązań układu równań różniczkowych. Jest to rozległy i ważny temat, ponieważ w praktyce większość rzeczywistych problemów w matematyce, nauce i technologii nie będzie miała jednoznacznego rozwiązania w formie zamkniętej (a nawet jeśli tak, obliczenie przy użyciu nieskończona precyzja - w końcu komputery reprezentują liczby ze skończoną precyzją). Ogólnie rzecz biorąc, istnieją kompromisy między dokładnością a szybkością obliczeniową.

W przypadku problemu trzech ciał mamy trzy masy punktowe w lokalizacjach początkowych $ \ mathbf {x} _i (0) $ z prędkościami $ \ mathbf {v} _i (0) $ , które chcemy obliczyć na późniejsze czasy $ t $ . Matematycznie chcemy znaleźć rozwiązanie dla systemu $$ \ mathbf {x} '_ i (t) = \ mathbf {v} _i (t), $$ $$ \ mathbf {v} '_ i (t) = \ mathbf {f} _i (t) / m_i, $$ $$ \ mathbf {f} _i (t) = Gm_i \ sum_ {j \ neq i} \ frac {m_j (\ mathbf {x} _j- \ mathbf {x} _i)} {|| \ mathbf {x} _i - \ mathbf {x} _j || ^ 3}. $$

Oczywistą metodą jest myślenie „jeśli zrobimy mały krok naprzód $ h $ w czasie, możemy przybliżyć wszystko tak, aby było liniowe”, więc tworzymy formuła, w której obliczamy stan w czasie $ t + h $ ze stanu w czasie $ t $ ( i tak dalej dla $ t + 2h $ i dalej): $$ \ mathbf {x} _i (t + h) = \ mathbf {x} _i (t) + h \ mathbf {v} _i (t), $$ $$ \ mathbf {v} _i (t + h ) = \ mathbf {v} _i (t) + h \ mathbf {f} _i (t). $$ To się nazywa metoda Eulera. Jest prosty, ale bywa niedokładny; błąd na krok to $ \ approx O (h ^ 2) $ i mają tendencję do narastania. Jeśli spróbujesz rozwiązać problem z dwoma ciałami, okrążające masy będą wykonywać precesyjną orbitę rozety z powodu nagromadzenia się błędów, zwłaszcza gdy zbliżają się do siebie.

Istnieje menażeria metod numerycznego rozwiązywania równań różniczkowych. Można użyć metod wyższego rzędu, które próbkują funkcje w większej liczbie punktów, a tym samym lepiej je aproksymują. Istnieją metody niejawne, które zamiast próbować znaleźć stan w późniejszym czasie tylko w oparciu o stan bieżący, szukają samoistnego stanu późnego i pośredniego. Najpoważniejsze metody rozwiązywania problemów z ODE zmniejszają także wielkość kroku $ h $ , gdy siły rosną podczas bliskich starć, aby zapewnić akceptowalną dokładność. Jak powiedziałem, to duży temat.

Jednak w przypadku symulacji mechanicznych możesz w szczególności przyjrzeć się metodom zaprojektowanym w celu zachowania energii i innych zachowanych ilości ( metody symplektyczne - są to metody używane przez profesjonalistów do długoterminowych obliczeń orbity) . Być może najprostsza jest częściowo ukryta metoda Eulera. Istnieje również metoda Verleta i skokowa integracja. Podoba mi się półjawna metoda Eulera, ponieważ jest super prosta (ale będąc metodą pierwszego rzędu, nadal nie jest zbyt dokładna): $$ \ mathbf {v} _i (t + h) = \ mathbf {v} _i (t) + h \ mathbf {f} _i (t), $$ $$ \ mathbf {x} _i ( t + h) = \ mathbf {x} _i (t) + h \ mathbf {v} _i (t + h). $$ Czy widzisz różnicę? Najpierw obliczasz zaktualizowaną prędkość, a następnie używasz jej do aktualizacji pozycji - drobna sztuczka, ale nagle orbity 2-ciałowe zachowują się dobrze.

Problem trzech ciał jest chaotyczny w prawdziwym matematycznym sensie. Wiemy, że istnieją sytuacje, w których drobne różnice w warunkach początkowych są skalowane w górę do dowolnie dużych różnic w późniejszych pozycjach (nawet jeśli wykluczymy bardzo bliskie podania między masami). Tak więc nawet przy arbitralnie dużej precyzji liczbowej nastąpi moment, w którym nasze obliczone orbity będą całkowicie błędne. Ogólny „styl” trajektorii może nadal być poprawny, dlatego też można bawić się częściowo ukrytym Eulerem, o ile nie planuje się żadnej misji kosmicznej na podstawie wyników.

Dla większej dokładności oprócz zastosowania rozwiązania numerycznego, takiego jak RK4 (Runge Kutta 4), brany jest pod uwagę fakt, że całkowita energia układu (potencjalna i kinetyczna) jest stała, ale nie przypominam sobie zastosowanego procesu matematycznegoaby ograniczyć całkowitą energię do stałej wartości.Istnieją trudne przypadki, na przykład gdy jedno z ciał ma stosunkowo dużą orbitę, na przykład słońce, planeta i asteroida.
Warto również zwrócić uwagę, że komputery nie mogą operować na dowolnych liczbach rzeczywistych, a nawet rozwiązaniach wielomianów bez zwiększania danych dla użytych wartości.Dlatego nawet gdyby znaleziono idealne symboliczne rozwiązanie równania różniczkowego, nie bylibyśmy w stanie obliczyć żadnej wartości tej funkcji, gdyby była cokolwiek poza prostym równaniem liniowym.
O ile mi wiadomo, to, czy czas jest kwantyzowany, czy też nie, jest w fizyce kwestią otwartą.Jeśli czas jest kwantowany, czy to oznacza, że moglibyśmy wybrać wartość * h * równą najmniejszej możliwej jednostce czasu i otrzymać w pełni dokładne wyniki?
@JBentley nie z powodu precyzji zmiennoprzecinkowej, zobacz słynne [* Co każdy informatyk musi wiedzieć o arytmetyce zmiennoprzecinkowej *] (https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html).
@rcgldr Wierzę, że to, czego szukasz, nazywa się _symplektycznym integratorem_.Zobacz https://en.wikipedia.org/wiki/Symplectic_integrator
@KyleKanos To szczegół implementacji.Obliczenia można wykonywać bez używania liczb zmiennoprzecinkowych.Moje pytanie dotyczy fizyki i matematyki.
@JBentley pytanie dotyczy * implementacji numerycznej *, więc twoja uwaga wprowadza zamieszanie tutaj.Jego fizyka polega na tym, że jest to nierozwiązany problem (zobacz odpowiedź na powiązane pytanie https://physics.stackexchange.com/a/456722/25301), więc uważam, że czas dyskretny nie ma znaczenia.
Kyle Kanos
2019-01-26 20:09:18 UTC
view on stackexchange narkive permalink

„Rozwiązanie” problemu trzech ciał można zapisać jako parę równań różniczkowych, \ begin {align} \ vec {v} & = \ frac {\ mathrm d \ vec {x}} {\ mathrm dt} \\ \ vec {a} & = \ frac {\ mathrm d \ vec {v}} {\ mathrm dt} \ end {align} gdzie to drugie jest zwykle zapisywane w kategoriach siły, $ m \ vec {a} = \ vec {F} $ . Następnie używając definicji pochodnej, $$ \ frac {\ mathrm df} {\ mathrm dx} = \ lim_ {h \ to0} \ frac {f (x + h) -f (x)} {h}, $$ równania różniczkowe, od których zaczęliśmy, można zapisać jako równania różnicy skończonej , \ begin {align} \ vec x (t + \ mathrm dt) & \ simeq \ vec x (t) + \ vec v \, \ mathrm dt \\ \ vec v (t + \ mathrm dt) & \ simeq \ vec v (t) + \ vec a \, \ mathrm dt \ end {align} co jest wykonywane przy założeniu, że $ \ mathrm dt $ jest „tylko mały”, a nie nieskończenie mały.

To tych równań używa komputer do "rozwiązania" problemu trzech ciał: mając warunek początkowy dla każdego z ciał, komputer iteracyjnie przesuwa się naprzód w czasie, używając powyższych równań różnic skończonych gdzie siła jest $ n $ -body force.

Jak wspomniano w komentarzach, uproszczony model powyżej nosi nazwę integracja Eulera , która wcale nie jest dobrze dopasowana do tego problemu, ponieważ nie oszczędza energii. Lepszą opcją jest prędkość Verlet , która jest omawiana w innych postach na temat fizyki.SE (polecam ten mój post, ponieważ podaje przyzwoite, ale zwięzłe szczegóły implementacji).

Rozsądnie dostępny artykuł na temat problemu trzech ciał, obejmujący dyskusję na temat algorytmów numerycznych, to Musielak & Quarles (2014).Szersze omówienie bardziej przydatnych technik wyższego rzędu, zgodnie z sugestią homocomputeris, patrz Farrés et al (2012)

Verlet Velocity jest "dobry" tylko w porównaniu do Eulera.W przypadku rozwiązania układu słonecznego jest to raczej bezwartościowe.Dokładność szybko spada.Ludzie używają verletu, ponieważ (a) wykazuje pewną krótkoterminową dynamikę, (b) w pewnym sensie oszczędza ilości, które powinny być konserwowane, oraz (c) techniki wyższego rzędu używane do "rozwiązywania" układu słonecznego nie rozciągają się dobrzedo kilku tysięcy obiektów, nie mówiąc już o milionach obiektów.
@DavidHammen wszystkie bardzo dobre punkty.Zauważ, że powiedziałem tylko, że Verlet jest * lepszą * opcją w porównaniu z Euler, a nie, że jest * najlepsza * lub jakiekolwiek podobne porównanie.
@David Słuszna uwaga.Jednak łatwo jest zwiększyć kolejność Leapfrog (bliskiego rodzeństwa Verleta) poprzez współczynniki Yoshidy.IIRC, możesz nawet uczynić go adaptacyjnym, więc używa tylko tak wysokiego rzędu, jak jest to obecnie wymagane, ponieważ możesz dokonywać rekurencyjnej transformacji Yoshidy, ale jeszcze tego nie testowałem.
R. Romero
2019-01-31 22:17:28 UTC
view on stackexchange narkive permalink

Kilka lat temu stworzyłem model wewnętrznego układu słonecznego, słońca, księżyca Ziemi i planet od Merkurego do Marsa.

Użyłem wariantu Leapfrog Rk4 i uzyskałem przyzwoite wyniki, okresy orbitalne zgodne z początkowymi konfiguracjami, które pozostawały stabilne w czasie. Nawet niektóre złe rzeczy, które otrzymałem, sugerowały dobre praktyki liczbowe.

Inicjowałbym moje planety z początkowym pędem, ze słońcem mającym zerowy początkowy pęd. Pęd planet nie wyłączył się, więc nastąpił ten dziwny dryf sieci w mniej więcej prostym kierunku, którego zrozumienie zajęło trochę czasu.

Oprócz uporządkowania tego, jedną z ważnych funkcji, które uznałem za ważną, była kolejność wprowadzania zmian w pozycji i szybkości.

Nie chcesz iterować po swoich ciałach, obliczać siły wypadkowej w jednym przejściu ciało po ciele, a następnie stosować swoje dynamiczne zmiany ciało po ciele. W przeciwnym razie, powiedzmy, zaktualizuje pozycję Wenus, zachowując niezmienioną pozycję Marsa, podczas gdy Ty aktualizujesz pozycję Ziemi. Twoje kroki czasu tracą synchronizację.

Przechowuj gdzieś w pamięci nowe przemieszczenia i prędkości podczas iteracji po ciałach i dopiero po znalezieniu swojej dynamiki w obecnym tiku, przeprowadź i zastosuj swoje zmiany. Przepraszamy i gratulacje, jeśli złapałeś to za pierwszym razem. Trochę mnie to zaskoczyło.

Anders Gustafson
2019-02-01 08:27:25 UTC
view on stackexchange narkive permalink

Jednym ze sposobów symulacji trzech ciał jest użycie przyrostów czasu, w których udaje się, że każde ciało przyspiesza w stałym tempie przez krótki okres czasu. Zaczynasz od wektorów pozycji początkowej, wektorów prędkości i mas ciał, a następnie używasz ich do obliczenia wektora przyspieszenia każdego ciała. W fizyce newtonowskiej wektor przyspieszenia grawitacyjnego ciała A z ciała B jest określony przez równanie $$ \ vec {a_ {GA}} = - \ frac {G \ left (\ vec { A} - \ vec {B} \ right) M_B} {|| \ vec {A} - \ vec {B} || ^ 3} $$ z $ G $ to stała grawitacyjna, $ \ vec {A} $ to wektor położenia ciała A, $ \ vec {B} $ to wektor położenia ciała B, $ M_B $ to masa ciała B, a $ \ vec {a_ {GA}} $ to wektor przyspieszenia grawitacyjnego ciała A. Aby znaleźć całkowity wektor przyspieszenia grawitacyjnego ciała A, należy dodać każdy z wektorów przyspieszenia grawitacyjnego ciała A z każdego z pozostałych organów.

Wektory położenia i wektory prędkości można znaleźć na końcu kroku czasowego $ n $ , korzystając z ogólnych formuł $ $ \ vec {x_n} = \ frac {1} {2} \ vec {a_ {n-1}} s ^ 2 + \ vec {v_ {n-1}} s + \ vec {x_ {n-1}} $$ $$ \ vec {v_n} = \ vec {a_ {n-1}} s + \ vec {v_ {n-1}} $$ span > gdzie $ \ vec {a_ {n-1}} $ jest wektorem przyspieszenia dla kroku czasowego $ n-1 $ , $ \ vec {v_ {n-1}} $ to wektor prędkości dla kroku czasowego $ n -1 $ , $ \ vec {x_ {n-1}} $ to wektor pozycji $ n -1 $ , $ s $ to długość przyrostów kroku czasowego, $ \ vec {x_n} $ jest wektorem pozycji dla kroku czasowego $ n $ i $ \ vec {v_n} $ Zakres > będący wektorem prędkości dla kroku czasowego $ n $ . Na każdym kroku czasowym przeliczasz również wektory przyspieszenia, ponieważ nie są one stałe.

Ta metoda symulowania ciał $ n $ działa dla dowolnego prawa sił, co oznacza, że ​​możesz jej używać do symulowania $ n $ treści dla prawa siłowego $ F = f (r) $ , z $ f (r) $ to pewna funkcja odległości, chociaż w przypadku prawa siły $ F = f (r) $ równanie, które określiłem wcześniej dla obliczenia przyspieszenia treści A z ciała B staje się $$ \ vec {a_ {GA}} = - \ frac {\ vec {A} - \ vec {B}} {|| \ vec { A} - \ vec {B} ||} GM_Bf \ left (|| \ vec {A} - \ vec {B} || \ right) $$ ale inne formuły, o których wspomniałem, w tym część o dodawanie wektorów przyspieszenia pozostaje bez zmian.

Evgeniy Yakubovskiy
2019-01-30 15:50:17 UTC
view on stackexchange narkive permalink

Okazuje się, że znając trajektorie parami można wyznaczyć równanie ruchu ciał. Równania ruchu są zapisywane jako $$ \ frac {d ^ 2 \ vec r ^ k} {ds ^ 2} = - G \ sum_ {n = 1, n \ ne k} ^ N \ frac {m_n (\ vec r ^ k- \ vec r ^ n)} {| \ vec r ^ k- \ vec r ^ n | ^ 3} \ tag {1} $$ Rozwiązujemy pomocniczy problem parowania ciał o zredukowanej masie bezwładnościowej $$ \ frac {m_n m_k} {\ sum_ {k = 1} ^ N m_k} \ frac {d ^ 2 \ vec R ^ {kn}} {ds ^ 2} = -G \ frac {m_n m_k \ vec R ^ {kn}} {| \ vec R ^ {kn} | ^ 3} \ tag {2} $$ Równania te różnią się w różnych warunkach początkowych. Odejmij od równania (2) równanie (1), otrzymujemy $$ \ frac {d ^ 2 R_0 ^ k} {ds ^ 2} - \ frac {d ^ 2 r ^ k} {ds ^ 2} = G \ sum_ {n = 1, n \ ne k} ^ N \ frac {m_n (\ vec r ^ k- \ vec r ^ n)} {| \ vec r ^ k- \ vec r ^ n | ^ 3} - G \ sum_ {n = 1, n \ ne k} ^ N \ frac {m_n \ vec R ^ {kn}} {| \ vec R ^ {kn} | ^ 3} = 0, \ vec R ^ {kn} = \ vec r ^ k- \ vec r ^ n $$ Gdzie $ \ vec R_0 ^ k = \ sum_ {n = 1 n \ ne k} ^ N \ frac {m_n \ vec R ^ {kn}} {\ sum_ {p = 1 } ^ N m_p} $ Zdobądź wzór $$ \ frac {d ^ 2 \ vec R_0 ^ k} {ds ^ 2} = \ frac {d ^ 2 \ vec r ^ k} {ds ^ 2} $$ Całkując tę ​​równość, otrzymujemy równanie ruchu dla każdego z N ciał. $$ \ vec r_0 ^ k = \ frac {d \ vec r ^ k (0)} {ds} s + \ vec r ^ k (0) + \ vec R_0 ^ k ( s) - \ frac {d \ vec R ^ k (0)} {ds} s- \ vec R ^ k (0) = \ vec R_0 ^ k (s) $$ Ruch każdego ciała jest określany przez ruch środka bezwładności układu ciała pary. Warunki początkowe są określane na podstawie warunku $$ \ frac {d \ vec r ^ k (0)} {ds} s + \ vec r ^ k (0) = \ frac {d \ vec R ^ k (0)} {ds} s + \ vec R ^ k (0) \ tag {3} $$ Wybieramy układ współrzędnych $ \ sum_ {n = 1} ^ N m_n \ vec r ^ n (0) = 0, \ sum_ {n = 1} ^ N m_n \ frac { d \ vec r ^ n (0)} {ds} = 0 $ , a następnie warunek (3) jest spełniony identycznie. Otrzyma $ \ vec R ^ {kn} (0) = \ vec r ^ k (0) - \ vec r ^ n (0), \ frac {d \ vec R ^ {kn}} {ds} (0) = \ frac {d \ vec r ^ k} {ds} (0) - \ frac {d \ vec r ^ n} {ds} (0) $ energia pary trajektorii układu jest obliczana według wzoru $$ E_ {kn} = \ frac {m_k m_n} {\ sum_ {q = 1} ^ N m_q} (\ frac {d \ vec R ^ {kn}} {ds} (0)) ^ 2 / 2- \ frac {G m_k m_n} {| \ vec R ^ {kn} (0) |} + \ frac {M_ { kn} ^ 2 \ sum_ {q = 1} ^ N m_q} {2 m_k m_n | R ^ {kn} | ^ 2} = \ frac {m_k m_n} {\ sum_ {q = 1} ^ N m_q} (\ frac {d \ vec R ^ {kn}} {ds} (0)) ^ 2 / 2- \ frac {G m_k m_n} {| \ vec R ^ {kn} (0) |} + \ frac {m_k m_n } {2 \ sum_ {q = 1} ^ N m_q | R ^ {kn} (0) | ^ 2} (\ frac {d \ vec R ^ {kn}} {ds} (0) \ times \ vec R ^ {kn} (0)) ^ 2 $$ Moment impulsu jest określany przez iloczyn wektorowy wzoru $$ M_ {kn} = \ frac {m_k m_n } {\ sum_ {q = 1} ^ N m_q} \ frac {d \ vec R ^ {kn}} {ds} (0) \ times \ vec R ^ {kn} (0) $$ W tym przypadku skonstruowane rozwiązanie jest podstawiane do obliczonych trajektorii $ \ vec r_0 ^ k- \ vec r_0 ^ p $ planet i używane $ \ vec R ^ {kp} = r ^ kr ^ p $ , wtedy otrzymujemy $ \ vec R ^ {kp} = \ vec r_0 ^ k- \ vec r_0 ^ p $ . W rzeczy samej $$ r_0 ^ k-r_0 ^ p = \ sum_ {n = 1} ^ N \ frac {m_n \ vec R ^ {kn}} {\ sum_ {q = 1} ^ N m_q} - \ sum_ {n = 1} ^ N \ frac {m_n \ vec R ^ {pn}} {\ sum_ {q = 1} ^ N m_q} = \ sum_ {n = 1} ^ N \ frac { m_n (\ vec r ^ k- \ vec r ^ n)} {\ sum_ {q = 1} ^ N m_q} - \ sum_ {n = 1} ^ N \ frac {m_n (\ vec r ^ p- \ vec r ^ n)} {\ sum_ {q = 1} ^ N m_q} = \ vec r ^ k- \ vec r ^ p = R_ {kp} $$ Formuła uproszczona $$ \ vec r_0 ^ u = \ sum_ {n = 1} ^ N \ frac {m_n \ vec R ^ {un} (s)} {\ sum_ {q = 1} ^ N m_q | R ^ {un} (s) |} \ frac {p_ {un}} {1 + e_ {un} cos (\ varphi_ {un} - \ varphi_ {un0})} $$ Kąt jest obliczany według wzoru $ \ varphi_ {un} - \ varphi_ {un0} = \ int_0 ^ s \ frac {M_ {un}} {| \ vec R ^ {pn } (u) | ^ 2} du $ Wielkość $$ \ frac {R ^ {un} (\ varphi)} {| R ^ {un} (\ varphi) |} = \ frac {\ vec R ^ {un} (0)} {| \ vec R ^ {un} (0) |} cos \ varphi + \ frac {\ vec R ^ {un} (0) \ razy \ vec M_ {un}} {| \ vec R ^ {un} (0) \ times \ vec M_ {un} |} sin \ varphi $$ kąta $ \ varphi $ wspólna dla wszystkich trajektorii par odpowiada kierunkowi $ \ frac {R ^ {un} (\ varphi)} {| R ^ {un} (\ varphi) |} $ z pojedynczymi ortami $$ \ frac {\ vec R ^ {un} (0)} {| \ vec R ^ {un} ( 0) |}, \ frac {\ vec R ^ {un} (0) \ times \ vec M_ {un}} {| \ vec R ^ {un} (0) \ times \ vec M_ {un} |} $ $ . Mamy ostateczny wzór na trajektorię ciał $$ \ vec r_0 ^ u (\ varphi) = \ sum_ {n = 1} ^ N \ frac {m_n} {\ sum_ { q = 1} ^ N m_q} [\ frac {\ vec R ^ {un} (0)} {| \ vec R ^ {un} (0) |} cos \ varphi + \ frac {\ vec R ^ {un} (0) \ times \ vec M_ {nie}} {| \ vec R ^ {un} (0) \ times \ vec M_ {nie} |} sin \ varphi] \ frac {p_ {un}} {1 + e_ {un} cos \ varphi} $$ Ale z powodu braku nieskończonego rozwiązania nawet przez krótki czas konieczne jest założenie $$ | \ vec R ^ { un} (\ varphi) | = \ frac {p_ {un}} {1 + e_ {un} cos \ varphi} >0, e_ {un} <1 $$ To nakłada ograniczenie na wartość parametrów ; energia interakcji par musi być ujemna. W ten sposób wykluczone są ciała o małej masie, których wkład w energię układu nie jest znaczący. Zgodnie ze wzorem interakcji par, promień zmienia się zgodnie z prawem, patrz Landau Lifshits tom 1 $$ r = a (ecosh \ xi-1); t = \ sqrt {\ frac {a ^ 3} {G \ sum_ {q = 1} ^ N m_q}} ( esinh \ xi- \ xi), r \ ok c \ sqrt {\ frac {r_g} {a}} t $$ Po prostych przekształceniach ta formuła jest redukowana do $$ r = \ sqrt {V ^ 2 (0) + \ frac {(\ vec V (0) \ times \ vec R (0))) ^ 2} {R (0) ^ 2} - \ frac {2G \ sum_ {q = 1} ^ N m_q} {R (0)}} t $$ Ten liniowy wzrost promienia przesuwaśrodek ciężkości systemu.Cząstka poruszająca się w nieskończoność prowadzi do przenoszenia całego układu i przesuwania środka ciężkości.Druga prędkość kosmiczna odpowiada dodatniej wartości radicandy, czyli dodatniej energii układu.

Nie rozumiem, jak to odpowiada na zadane pytanie, które dotyczy całkowania numerycznego, ale Twoje odpowiedzi nie obejmują tego zagadnienia.
Pokazuję, że znając trajektorie parami nie ma potrzeby numerycznego całkowania układu równań, wystarczy posłużyć się dobrze znanymi wzorami trajektorii parami i podstawić je do wzoru
Nie rozumiem, jak to jest przydatne: chodzi właśnie o to, aby uzyskać trajektorie.
Formuła $ \ vec r_0 ^ k (s) = \ sum_ {n = 1} ^ N \ frac {m_n \ vec R ^ {kn} (s)} {\ sum_ {q = 1} ^ N m_q} $ definiujetrajektorie na sparowanych ścieżkach $ \ vec R ^ {kn} (s) $.
To pytanie było już edytowane 23 razy.Nie mogę sobie wyobrazić, że to, co dodajesz, przyczynia się do bardziej pozytywnej otrzymanej odpowiedzi (biorąc pod uwagę, że utknąłeś na poziomie -1 i nadal wydaje się, że nawet nie rozwiązujesz już liczbowego OP).Być może Twój czas byłby lepiej dostosowany do uproszczenia odpowiedzi, aby faktycznie odpowiedzieć na postawione pytanie (tj. Wskazać dane liczbowe), zamiast dodawać gorzej sformatowane równania?
Pytanie jest złożone i problematyczne, więc zmieniam opcje wiadomości.Dane liczbowe nie prowadzą do ulepszenia formuł i opisują tylko szczególny przypadek.
Nie wydaje mi się, żeby to było takie złożone pytanie: OP pyta dosłownie, jak komputer integruje równania ruchu.Twoja odpowiedź brzmi: „Oto zestaw równań z niewielką ilością tekstu, aby wskazać, jak to się ma do Twoich obaw!”Co jest prawdopodobnie dobrą odpowiedzią na inne pytanie, tylko nie na to.Skoncentruj się na pytaniu OP i spróbuj odpowiedzieć na to pytanie.
Ponadto, jeśli chcesz odpowiedzieć osobie, użyj „@username' (por. [Jak działają odpowiedzi na komentarze] (https://meta.stackexchange.com/q/43019/230312)).
„@Kyle Kanos” Niestety, udzielono już szczegółowej odpowiedzi na to pytanie, ale mogę ją jedynie uzupełnić własnym przesłaniem.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 4.0, w ramach której jest rozpowszechniana.
Loading...