Die numerische Analyse wird verwendet, um Annäherungen an Dinge zu berechnen: den Wert einer Funktion an einem bestimmten Punkt, an dem sich eine Wurzel einer Gleichung befindet, oder die Lösungen für einen Satz von Differentialgleichungen. Es ist ein großes und wichtiges Thema, da in der Praxis die meisten realen Probleme in Mathematik, Naturwissenschaften und Technik keine explizite geschlossene Lösung haben werden (und selbst wenn dies der Fall ist, ist es möglicherweise nicht möglich, damit zu rechnen unendliche Präzision - Computer repräsentieren schließlich Zahlen mit endlicher Präzision). Im Allgemeinen gibt es Kompromisse zwischen Genauigkeit und Rechengeschwindigkeit.
Für das Drei-Körper-Problem haben wir drei Punktmassen an Startpositionen $ \ mathbf {x} _i (0) $ span> mit Geschwindigkeiten $ \ mathbf {v} _i (0) $ span>, den wir für spätere Zeiten berechnen möchten $ t $ span>. Mathematisch wollen wir die Lösung für das System $$ \ mathbf {x} '_ i (t) = \ mathbf {v} _i (t), $$ span> $$ \ mathbf {v} '_ i (t) = \ mathbf {f} _i (t) / m_i, $$ span> $$ \ 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}. $$ span>
Die naheliegende Methode besteht darin, zu denken, "wenn wir einen winzigen Schritt $ h $ span> in der Zeit vorwärts gehen, können wir alles als linear approximieren", also machen wir a Formel, in der wir den Zustand zum Zeitpunkt $ t + h $ span> aus dem Zustand zum Zeitpunkt $ t $ span> berechnen ( und so weiter für $ t + 2h $ span> und weiter): $$ \ mathbf {x} _i (t + h) = \ mathbf {x} _i (t) + h \ mathbf {v} _i (t), $$ span> $$ \ mathbf {v} _i (t + h ) = \ mathbf {v} _i (t) + h \ mathbf {f} _i (t). $$ span> Dies wird als Eulers Methode bezeichnet. Es ist einfach, neigt aber dazu, ungenau zu sein; Der Fehler pro Schritt ist $ \ approx O (h ^ 2) $ span> und sie neigen dazu, sich aufzubauen. Wenn Sie es bei einem Zweikörperproblem versuchen, führen die umlaufenden Massen aufgrund des Fehleraufbaus eine vorlaufende Rosettenumlaufbahn durch, insbesondere wenn sie sich nahe kommen.
Es gibt eine Reihe von Methoden zum numerischen Lösen von ODEs. Man kann Methoden höherer Ordnung verwenden, die die Funktionen an mehr Punkten abtasten und sie daher besser approximieren. Es gibt implizite Methoden, die, anstatt zu einem späteren Zeitpunkt zu versuchen, einen Zustand nur auf der Grundlage des aktuellen Zustands zu finden, nach einem selbstkonsistenten späten und mittleren Zustand suchen. Die schwerwiegendsten Methoden zum Lösen von ODEs reduzieren auch die Schrittgröße $ h $ span>, wenn die Kräfte bei engen Begegnungen groß werden, um sicherzustellen, dass die Genauigkeit akzeptabel bleibt. Wie gesagt, das ist ein großes Thema.
Für mechanische Simulationen sollten Sie sich jedoch insbesondere Methoden ansehen, mit denen Energie und andere konservierte Mengen eingespart werden können ( symplektische Methoden - diese werden von Fachleuten für langfristige Umlaufbahnberechnungen verwendet). . Am einfachsten ist vielleicht die semi-implizite Euler-Methode. Es gibt auch die Verlet-Methode und die Sprungintegration. Ich mag die semi-implizite Euler-Methode, weil sie sehr einfach ist (aber als Methode erster Ordnung immer noch nicht besonders genau ist): $$ \ mathbf {v} _i (t + h) = \ mathbf {v} _i (t) + h \ mathbf {f} _i (t), $$ span> $$ \ mathbf {x} _i ( t + h) = \ mathbf {x} _i (t) + h \ mathbf {v} _i (t + h). $$ span> Sehen Sie den Unterschied? Sie berechnen zuerst die aktualisierte Geschwindigkeit und verwenden sie dann, um die Positionen zu aktualisieren - ein winziger Trick, aber plötzlich verhalten sich 2-Körper-Bahnen gut.
Das Drei-Körper-Problem ist im wahrsten Sinne des Wortes chaotisch. Wir wissen, dass es Situationen gibt, in denen winzige Unterschiede in den Anfangsbedingungen auf beliebig große Unterschiede in späteren Positionen skaliert werden (selbst wenn wir sehr enge Durchgänge zwischen Massen ausschließen). Selbst mit einer willkürlich feinen numerischen Genauigkeit wird es einen Zeitpunkt geben, an dem unsere berechneten Umlaufbahnen völlig falsch sind. Der allgemeine "Stil" der Flugbahn mag immer noch korrekt sein, weshalb es in Ordnung ist, mit semi-implizitem Euler herumzuspielen, solange man keine Weltraummission basierend auf den Ergebnissen plant.