Gelöste Aufgaben/T3BP

Aus numpedia
Zur Navigation springen Zur Suche springen


Aufgabenstellung

Sie untersuchen das „Three-Body-Problem“(vgl. Wikipedia) numerisch. Dabei sollen die Bahnen von drei Körper mit den Punktmassen m1, m2, m3 in Wechselwirkung miteinander berechnet werden.

"Die Drei Sonnen"

Gesucht ist die Lösung des Anfangswertproblems für verschiedene Anfangswerte (Orte und Geschwindigkeiten) und Massen mi der Körper.


Lösung mit Matlab®

Die Lösung mit Matlab erfordert keine großen algebraischen Vorbereitungen - für die wir Maxima einsetzten würden. Als äußere Kräfte treten nur die Feldkräfte der Gravitation zwischen den Körpern auf - die wir einfach einschreiben und in Matlab implementieren können.

Declarations

Wir implementieren die Lösung in Matlab. Dafür verwenden wir das script T3BP.m, das die Funktionen

  • preprocess.m,
  • solve.m und
  • postprocess.m

aufruft. Die Klasse

  • planets.m

verwenden wir nur, um die Systemparameter "sys" bequem ansprechen zu können.


T3BP
   |- preprocess
          |- class sys=planets(data)
   |- solve
   |- postprocess




Equilibrium Conditions

Die Gravitationskräfte zwischen den Körpern i und j erfassen wir mit

mit der Gravitationskonstanten

Fehler beim Parsen (Syntaxfehler): {\displaystyle G = 6.674 \cdot 10^{\displaystyle −11} \frac{\displaystyle m^3}{\displaystyle kg⋅s^2}} .

Dabei gehen die Wirkungslinien der Kräfte durch die Massenmittelpunkte der Körper, die Körper ziehen sich gegenseitig an. Damit ist

,

wobei der Einheitsvektor der Anziehungskraft - in diesem Fall von i nach j - ist.

Die Bewegungsgleichungen schreiben wir in Vektorschreibweise für Körper i als

.

Dabei ist z.B. i=1 und =2,3.

Die drei Bewegungsgleichungen in den drei räumlichen Koordinaten ui formulieren wir in dimensionslosen Koordinaten. Dafür brauchen wir drei unabhängige Referenzgrößen, hier wählen wir

Uns fehlt noch die Referent-Zeit T, die wir aus

erhalten.

Damit können wir schreiben:

Einsetzen und Kürzen liefert uns dann die dimensionslosen Bewegungsgleichungen

.

function dydt = t3bpdydt(t,y,sys)
% implementation of ode
% params hold system parameters
% get coordinates
for body = 1:3
    u(body,1:3) = transpose(y(3*(body-1)+1:3*body,1));
end

r = zeros(3,3,3);
e = zeros(3,3,3);

% compose vectors, unit vectors and distances
r(1,2,:) = u(2,:)-u(1,:); % this from m[1] to m[2]
   :
   :
   :
% mass 3
dydt(9+7:9+9,1)=sys.theta(1)/R(3,1)*e(3,1,:)+sys.theta(2)/R(3,2)*e(3,2,:);

%% velocities
dydt(1:9,1) = y(10:18,1);

%%
waitbar(t / sys.tEnd);

end




Solving

Text


1+1




Matlab©-files

Folder Structure

Die Datei-Struktur zeit das Skript T3BP.m. Classes und Functions sind in den jeweiligen Ordnern. Die Excel-Datei hält alle System-Parameter.

Den komplette Quellcode zu diesem Programm können Sie über dieses ZIP-File rechts herunterladen.

archive
download compressed archive →


Post-Processing

Text

Trajektoren der Körper
Bewegungsgrößen Σ Mi Ii,x
Animation der Bewegung

1+1








Links

  • ...

Literature

  • ...