1.6   Numerische Lösungsmethoden und Fehleranalyse

Alle numerischen Berechnungen werden mit der Programmierplattform MATLAB durchgeführt. Alle MATLAB Skripte und Funktionen befinden sich im Hauptverzeichnis:

/Desktop/SW-Projekte/

Einfache Berechnungen in Abschnitt 1.1.4 und die Anwendungen in Abschnitt 1.2 und 1.4 werden mit dem Matlab Skript „./Basis_2Koerper/compute_astro_data.m“ berechnet. Astronomische Daten und Konstanten werden in der Funktion „./Astro_Data/get_astro_data.m“ bereitgestellt.

1.6.1   Direkte Berechnung der zeitabhängigen Bahn

Die direkte Berechnung des zeitlichen Verlaufs der Bahn, siehe Abschnitt 1.3, wird mit dem MATLAB Skript „./Basis_2Koerper/bahn_direkt.m“ und der MATLAB Funktion „./Basis_2Koerper/compute_r_phi_t.m“ durchgeführt. Im Skript werden Initialisierungswerte definiert und anschließend die Funktion „compute_r_phi_t()“ aufgerufen. Der Wert r(t) wird in der Unterfunktion „compute_rt()“ durch Nullstellensuche mit der MATLAB Funktion „fzero()“ durchgeführt. Die Berechnung von (1.10') wird in eine weitere Unterfunktion „comp_function()“ ausgelagert. Bei der Berechnung von (1.10') für t = 0 und t = T/2, d.h., r(0) = rp und r(T/2) = ra, können unter der ersten Wurzel, bedingt durch Rundungsfehler, negative Werte auftreten oder als Argumente der arcsin Funktion Werte ungleich 1 oder -1 auftreten. Folgen davon sind Fehler in der numerischen Nullstellenberechnung. Für t = 0 und t = T/2 sollten daher die exakten Werte von z für rp und ra verwendet werden.

1.6.2   Numerische Berechnung der Bewegungsgleichungen

Die numerische Berechnung der Bewegungsgleichungen, siehe Abschnitt 1.5.1, d.h. die numerische Lösung eines Systems von Differentialgleichungen (ODEs) wird mit MATLAB und den integrierten Lösungsmethoden („Solver“) durchgeführt. Als Solver wird ode45() benutzt, wobei zur Verringerung von Rundungsfehlern die Optionen „RelTol“ und „AbsTol“ auf 1e-13 und 1e-14 erhöht werden. Die Solver ode78() oder ode89() sind eventuell noch besser geeignet, konnten jedoch nicht getestet werden.

Die Berechnung wird mit dem MATLAB Skript „./Basis_2Koerper/bahn_ODE.m“ durchgeführt. Daraus wird die Funktion „./Basis_2Koerper/solve_r_phi_ODE_2obj.m“ zur Initialisierung des Solvers aufgerufen. Schließlich werden in „./Basis_2Koerper/ODE_r_phi_2obj.m“ die Bewegungsgleichungen definiert.

1.6.3   Vergleich der Berechnungsverfahren

Es werden die mit den Verfahren aus Abschnitt 1.6.1 und 1.6.2 berechneten Positionen der Erde zu festen Zeitpunkten verglichen. Zusätzlich wird untersucht, wie weit die berechneten Positionen von der in Abschnitt 1.2 definierten Ellipsenbahn abweichen. Hierzu werden 11 äquidistante Zeitpunkte im Intervall [0, T/2] definiert. Der berechnete maximale Abstand der mit den verschiedenen Verfahren berechneten Positionen ist kleiner als 2 cm. Dies ist insofern erstaunlich, da der mittlere Abstand der Erde von der Sonne ca. 150 Millionen km beträgt.

Zusätzlich wurden noch Langzeitmessungen mit dem Verfahren 1.6.2 durchführt. Nach 1000 Jahren unterscheidet sich die Position der Erde im Perihel im Vergleich zur Anfangsposition nur um ca. 10 m, siehe hierzu „./Basis_2Koerper/bahn_ODE_event.m“ und „./Basis_2Koerper/ solve_r_phi_ODE_2obj_event.m“.

Abschließend kann gesagt werden, dass die Verfahren zur Berechnung der Bewegungsgleichungen sehr genau sind und auch für sehr langfristige Bahnsimulationen (t > 100.000 Jahre) ohne größere Rundungsfehler eingesetzt werden können. Dies gilt insbesondere auch für Simulationen von n-Körper-Systemen (n>2).

 

top back next