In dieser Frage geht es mehr darum, wie ein Problem numerisch angegangen werden kann.
In einem kleinen Projekt wollte ich die Coorbitalbewegung von Janus und Epimetheus simulieren. Dies ist im Grunde ein Drei-Körper-Problem. Ich wähle Saturn als Fix am Ursprung, sei und r 2 die Ortsvektoren von Janus bzw. Epimetheus. Da der Effekt auftritt, wenn Janus und Epimetheus sehr nahe beieinander liegen, habe ich relative Koordinaten für eine bessere Auflösung ausgewählt, dh r = r 1 - r 2 und R = r 1 + r 2 . Jetzt bekomme ich folgende Bewegungsgleichungen:
wobei den Massen der Monde entspricht, die Masse des Saturn und die Gravitationskonstante ist. Das Problem entsteht, wenn ich versuche, dies numerisch zu lösen. Man muss sich mit Werten völlig unterschiedlicher Größen befassen, dh und . Und , liegen in den Bereichen von 0 bis 150.000.
Um ehrlich zu sein, bin ich mir nicht sicher, ob dies der Ort ist, an dem solche numerischen Probleme diskutiert werden können.
Mehr Informationen:
Code ist in Matlab geschrieben und ich verwende einen Standard-ODE-Solver, um das Ergebnis zu erhalten. Dies bricht jedoch zusammen, da die Schrittgröße unter Maschinengenauigkeit nicht reduziert werden kann. (Ich finde das nicht überraschend, weil man sich mit den bereits erwähnten Größenordnungen auseinandersetzen muss).
Antworten:
Ihr aktueller Ansatz ruiniert die numerische Stabilität. In der Tat verlieren Sie wahrscheinlich die Auflösung auf diese Weise.
Nehmen Sie als Koordinaten für jeden Satelliten seine Kepler-Variablen und den Winkel der Ebene, der die Position des Satelliten, die Geschwindigkeit und den Ursprung enthält. Die Differentialgleichungen ohne Wechselwirkung zwischen den Satelliten sind dann trivial einfach, und nur die Wechselwirkung wird etwas kompliziert. Da die Interaktion winzig ist, wenn die Satelliten weit entfernt sind, sollte die resultierende Dynamik numerisch stabil sein.
quelle
Anstatt einen "klassischen" (steifen) ODE-Löser zu verwenden, können Sie dedizierte Algorithmen für die geometrische numerische Integration verwenden. Siehe zum Beispiel dieses Buch und die BNE-Codes, die Sie auf der Website von Ernst Hairer finden .
quelle
Wie wäre es, wenn Ihre Simulation drei Schritte umfasst:
Möglicherweise mit feineren Zeitschritten für # 3.
Ich bin mir nicht sicher, ob dies helfen wird. Ich nehme an, das eigentliche Problem ist, dass die Stärke der Kraft im Fall Mond - Mond und Mond - Saturn unterschiedlich ist, außer wenn die Monde nahe sind.
Alternative:
Viel Glück!
quelle