Massenanziehung

 

Gravitationsgesetz Newton

2-Körper-Problem

Das 2-Körper-Problem ist exakt lösbar. Dazu wechselt man in das Massenschwerpunkt-System. Dadurch betrachtet man nur noch die Relativbewegung der beiden Körper. Dabei bewegt sich ein einziger Körper mit der reduzierten Masse

μ = m1·m2 / (m1+m2)

im Zentralkraftfeld (1-Körper-Problem). Die exakten Bahnkurven sind Kegelschnitte:

  • Ellipsen
  • Parabeln
  • Hyperbeln

Dies bewies Isaac Newton 1687 in seinem Werk Philosophiae Naturalis Principia Mathematica.

Kommt jedoch ein dritter Körper hinzu, kann man das Problem nicht mehr exakt lösen.

Massen ziehen sich gegenseitig an. Je geringer der Abstand r, desto größer die Gravitationskraft F:

F  =  G·m1·m2 / r2

Ferner ist die Gravitationskraft zu beiden Massen m proportional. Damit alle Abhängigkeiten gleichzeitig zur Geltung kommen, sind die Parameter multiplikativ. Die Proportionalitäts-Konstante G heißt Gravitations-Konstante. Obiges Gesetz wurde von Isaac Newton entdeckt.

Die Bewegung dreier Körper kann nicht analytisch, sondern nur numerisch gelöst werden. Kleinste Änderung der Anfangsbedingungen führt zu verschiedenen Lösungen. Solche Systeme nennt man chaotisch. Ausnahmen sind periodische Bewegungen.

Zur Vereinfachung betrachten wir die Bewegungen der Körper nur in der Ebene.

Kenngrößen

Die Massen der Körper werden auf die Sonnenmasse bezogen:

mSonne ≈ 2×1030 kg

Die Masser der Erde ist wesentlich geringer:

mSonne / mErde  ≈  330.000

Die astronomische Einheit AE ist die mittlere Entfernung der Erde zur Sonne:

AE ≈ 149,6 Millionen km


Simulation Δt = 1h

Speicherung Grafik

Grafik: 3-koerper-problem.png

Hintergrund

Einstellungen Animation

Algorithmus:
Das Bild wird alle paar Millisekunden neu gezeichnet. Während der Latenzzeit werden in einem Schritt Orte und Geschwindigkeiten aller Körper neu berechnet. Die Flugzeit Δt ohne Gravitation dauert 1 Stunde. Die Anzahl der Berechnungen während der Wartezeit kann ebenso eingestellt werden:
Neues Bild:
Anzahl:
Optionen:

Startwerte beim Neustart

Infos Link

Alle Parameter sind
im folgenden Link gespeichert:

3.koerper-problem.html

Massen m, Orte r = (x, y) und
Geschwindigkeiten v = (vx, vy):

1) Beispiele 3-Körper-Problem

Zentralkörper:

2 gleichschwere Körper:

3 gleichschwere Körper:

2) Beispiele 4-Körper-Problem

Zentralkörper:

4 gleichschwere Körper:

Zoom + Verschieben

100%

Backstage Algorithmus

Simulation Skizze

Bei dem obigen Programm werden die Orte der einzelnen Körper schrittweise berechnet:

Die gegenseitige Anziehungskräfte werden nach einer Flugphase Δt immer wieder neu berechnet. Während der Flugphase ist die Gravitation ausgeschaltet.

Die Gravitationskonstante G und die Sonnemasse M treten als Produkt G·M auf. Dazu definieren wir:
GM = 6,67·10−11 · 2·1030 ≈ 1,327·1020
Wir verwenden metrische Einheiten: m, s, kg.

Programmierung Parameter

Jeder Körper wird beschrieben durch:

  • Ort r = (x, y)
  • Geschwindigkeit v = (vx, vy)

Die Funktion berechne_rv() berechnet den Ort r und die Geschwindigkeit v eines Körpers in Bezug auf die Gravitation durch alle anderen.

Wichtig dabei ist, dass erst alle neuen Orte und Geschwindigkeiten berechnet werden und danach erst den entsprechenden Variablen übergeben werden. Sonst werden die Berechnungen verzerrt.

Im Folgenden der Quellcode in der Programmiersprache Javascript. Aus didaktischen Gründen ist der Quellcode einfach gestaltet:

KISS = Keep It Simple, Stupid.

Ein eleganter kompakter Quellcode ist oftmals schwer nachvollziehbar und somit fehlerhaft.

Quellcode Berechnung

Für die Berechnungen für einen Tag mit 24 Stunden lautet der Quellcode des obigen Programms wie folgt:

function neue_Berechnung() {
var rv1, rv2, rv3 = []; // Speicherung
for(var i=0; i<24; i++) {
// neue Werte zwischenspeichern:
rv1 = berechne_rv( r1,v1, r2,r3, m2,m3);
rv2 = berechne_rv( r2,v2, r3,r1, m3,m1);
rv3 = berechne_rv( r3,v3, r1,r2, m1,m2);
// neue Werte übergeben:
r1 = rv1[0];   v1 = rv1[1];
r2 = rv2[0];   v2 = rv2[2];
r3 = rv3[0];   v3 = rv3[3];
}
}

- Orte r1, r2, r3 der drei Körper
- Geschwindigkeiten v1, v2, v3
- neue Daten rv = [ Ort r, Geschwindigkeit v]

 

Quellcode Ort r

Innerhalb der Zeitspannt dt
legt ein Körper den Weg v·dt zurück:

var dt = 60*60; // eine Stunde

function berechne_r( v, r) {
var x = r[0] + v[0]*dt;
var y = r[1] + v[1]*dt;
// neuen Ortsvektor r übergeben:
return [x,y];
}

Hier werden die Komponeten für x und y als Array dargestellt. Bei der objektorientierten Programmierung würde man r.x und r.y schreiben.

Quellcode Geschwindigkeit v

Berechnung der Geschwindigkeit v
durch Einfluss eines anderen Körpers:

function berechne_v( v, r, r_Gegner, GM_) {
var dx = r[0] - r_Gegner[0];
var dy = r[1] - r_Gegner[1];
// Beschleunigung:
var g_ = GM_/(dx*dx + dy*dy);
var g = nenne_Komponenten( g_, dx, dy);
var vx = v[0] + g[0]*dt;
var vy = v[1] + g[1]*dt;
// neuen Geschwindigkeit v übergeben:
return [vx,vy];
}

Quellcode r, v

Berechnung der Geschwindigkeit v
durch Einfluss der beiden anderen Körper:

var GM = Gravitationskonstante*Sonnenmasse;

function berechne_rv( r1,v1, r2,r3, m2,m3) {
var v = v1;
// Einfluss der beiden anderen Körper:
v = berechne_v( v, r1, r2, m2*GM);
v = berechne_v( v, r1, r3, m3*GM);
// neuen Ort r berechnen:
var r = berechne_r( v, r1);
// Ort + Geschwindigkeit übergeben:
return [r,v];
}

www.harald-blazy.de/astro/
3-koerper-problem.html

Sitemap  •  Datenschutz  •  Impressum
© Harald Blazy