1 Einführung 2 Das Keplersche Sonnensystem

Werbung
Einführung in die Numerik
Prof. Dr. M. J. Grote / Dr. M. Kray
Mathematik, FS 2014
Universität Basel
Projekt: Einführung in die Numerik
Dynamische Systeme und das Sonnensystem
1
Einführung
Differentialgleichungen, also Gleichungen, in der eine gesuchte Funktion und einige ihrer Ableitungen vorkommen, gehören zu den wichtigsten Mitteln, um Naturgesetze zu beschreiben. Da es
in vielen Fällen nicht möglich ist, eine exakte Lösung analytisch zu berechnen, sind effiziente und
möglichst genaue numerische Approximationen bei der Modellierung von Phänomenen aus Natur
und Technik von grosser Bedeutung.
In der folgenden Beschreibung leiten wir ein Differentialgleichungssystem für das Sonnensystem
mithilfe physikalischer Gesetze her und stellen einige numerische Verfahren vor. Im Anschluss
werden verschiedene Aufgaben gestellt, die zu bearbeiten sind.
2
Das Keplersche Sonnensystem
Wir betrachten einen Planeten auf seiner Umlaufbahn um die Sonne, dessen Bewegung durch die
Newtonschen Gesetze bestimmt ist:
m
wobei
t
V
m
M
R
~ur
~uθ
GM m
dV~
= −
~ur ,
dt
R2
Zeit (in Jahren),
Geschwindigkeit des Planeten (zeitabhängig, V (t)),
Gewicht des Planeten,
Gewicht der Sonne,
Absolute Entfernung zwischen Sonne und Planet,
Normierter Vektor der radialen Komponente,
Normierter Vektor der tangentialen Komponente.
Zur Vereinfachung betrachten wir dieses System in dimensionslosen Variablen, nehmen an, dass m
im Vergleich zu M vernachlässigbar ist, und setzen M = 1. Die Entfernung r(t) ist nun r := R/R0 ,
wobei R0 einen typischen Wert darstellt.
1
In Polarkoordinaten ist die Beschleunigung
dV~
dt
=
d (u~ur + v~uθ )
dt
d ṙ~ur + rθ̇~uθ
=
dt
= r̈~ur + ṙθ̇~uθ + ṙθ̇~uθ + rθ̈~uθ − rθ̇2~ur
2
= r̈ − rθ̇ ~ur + 2ṙθ̇ + rθ̈ ~uθ ,
und die Schwerkraft
1
F~ (r) = − 2 ~ur .
r
Dies führt auf das folgende dynamische System zweier Differentialgleichungen zweiter Ordnung:

 r̈ = rθ̇2 − 1 ,
(1)
r2
 rθ̈ = −2ṙθ̇.
Wir setzen nun u = ṙ und v = rθ̇, um ein dynamisches System erster Ordnung zu erhalten:

ṙ = u,





 θ̇ = v ,


r
2
1
v


− 2,
u̇
=


r
r



 v̇ = − vu .
r
(2)
Bemerkung: Die mechanische Energie ist konstant, da
Em (t) = Ec (t) + Ep (t)
1 2
1
1
1
=
(u + v 2 ) −
= (ṙ2 + (rθ̇)2 ) −
2
r
2
r
= konst.
(3)
Man kann also die Genauigkeit eines numerischen Verfahrens durch Berechnen der Energie überprüfen.
Für jede Umlaufbahn müssen die Anfangsposition (r0 , θ0 ) und die Anfangsgeschwindigkeit (u0 , v0 )
gegeben werden. Dabei werden u0 = θ0 = 0 gesetzt. Um noch r0 und v0 zu setzen, wählen wir das
Perihel (kleinste Entfernung zur Sonne) oder das Aphel (grösste Entfernung zur Sonne). Dort ist
die Kreisbahngeschwindigkeit v0 , also jene Geschwindigkeit, die einer geschlossenen Umlaufbahn
um die Sonne entspricht, durch folgende Formeln gegeben:


 r0 = P0 √
 r0 = A0 √
1
1 − e2
1
1 − e2
für das Perihel oder
für das Aphel.
 v0 = √
 v0 = √
a0 1 − e
a0 1 + e
2
Planet
Merkur
Venus
Erde
Mars
Jupiter
Saturn
Uranus
Neptun
Grosse Halbachse a0
0.3871
0.72333
1
1.52366
5.20336
9.53707
19.1913
30.0690
Perihel P0
Aphel A0
Exzentrizität e
0.30749951
0.46669835
0.205631
0.71843270
0.72823128
0.006773
0.9832899 1.0167103335
0.016710
1.38133346
1.66599116
0.093412
4.95
5.46
0.048393
9.02063224 10.05350840
0.054151
18.37551863 20.08330526
0.047168
29.76607095 30.44125206
0.008586
Tabelle 1: Daten der Planeten.
3
Numerische Verfahren
Wir betrachten ein Finite Differenzen Verfahren, das Ableitungen durch Differenzenquotienten
approximiert. Sei ∆t > 0 die Schrittweite des Verfahrens und
ẋn (t) '
xn+1 − xn
,
∆t
xn ' x(n∆t).
(4)
Wir wenden nun diese Diskretisierung auf das dynamische System zweier Differentialgleichungen
erster Ordnung
(
ẋ = f1 (x, y),
(5)
ẏ = f2 (x, y),
an:
 n+1
x
− xn


= f1 (xn , y n ),
∆t
(6)
n+1
− yn

n
n
 y
= f2 (x , y ).
∆t
Dieses Verfahren ist jedoch im Allgemeinen instabil. Stattdessen werden wir ein semi-implizites
Verfahren benutzen. Dazu verwenden wir in der 2. Gleichung von (6) nicht die alte Lösung xn
sondern die aktualisierte Lösung xn+1 ,
n+1
x
= xn + ∆t f1 (xn , y n ),
(7)
y n+1 = y n + ∆t f2 (xn+1 , y n ).
Bemerkung: Diese zwei Verfahren sind als Euler-Verfahren und Euler-Cromer-Verfahren bekannt.
Um das Problem vollständig zu definieren, müssen noch Anfangsbedingungen {x0 = x0 , y 0 = y0 }
definiert sein.
4
Aufgaben
Ziel ist die Lösungen der Sonnensystem-Gleichungen (2) mit verschiedenen Verfahren zu berechnen. Dabei betrachten wir die Umlaufbahn der Erde um die Sonne und nehmen an, dass die Sonne
im Zentrum (0, 0) liegt.
3
Aufgabe 1. Diskretisierung der Sonnensystem-Gleichungen
1. Diskretisiere (2) mit Finiten Differenzen und schreibe das Verfahren in der Form:
 n+1
n n
n n

 rn+1 = f1 (rn , θn , un , v n ),

θ
= f2 (r , θ , u , v ),
n+1
u
= f3 (rn , θn , un , v n ),


 n+1
v
= f4 (rn , θn , un , v n ),
wobei die Funktionen f1 , f2 , f3 und f4 noch definiert werden müssen.
2. Schreibe eine Matlab-Funktion function SonnenSystem(r0, theta0, u0, v0, T, dt),
um das obige Gleichungssystem numerisch zu lösen, wobei r0, theta0 die Anfangsposition,
u0, v0 die Anfangsgeschwindigkeiten, T die Zeit der Simulation und dt die Schrittweite
sind. Diese Funktion soll auch die Trajektorien (x(t), y(t)) und die Energie E(t) zeichnen.
Dazu benutze neue Variabeln x = r.*cos(theta); y = r.*sin(theta); und Formel (3)
für die Energie.
3. Vergleiche die Energie für T/(2*pi) = 10 und T/(2*pi) = 100 im Fall der Erde. Was
kannst Du über das Langzeitverhalten des Verfahrens sagen?
Aufgabe 2. Modifizierte Verfahren
1. Implementiere nun verschiedene modifizierte
Funktion, z.B.
 n+1
r
= f1 (rn , θn , un , v n )


 n+1
θ
= f2 (rn+1 , θn , un , v n )
oder
un+1 = f3 (rn+1 , θn+1 , un , v n )


 n+1
v
= f4 (rn+1 , θn+1 , un+1 , v n )
Verfahren wie in (7) in Deiner SonnenSystem n+1
u


 n+1
v
rn+1


 n+1
θ
=
=
=
=
f3 (rn , θn , un , v n )
f4 (rn , θn , un+1 , v n )
f1 (rn , θn , un+1 , v n+1 )
f2 (rn+1 , θn , un+1 , v n+1 )
usw...
Dabei ist die Reihenfolge der Gleichungen jetzt wichtig.
Aufgabe 3. Spline-Interpolation
Um Rechenzeit zu sparen, möchten wir weniger Schritte durchführen. Dazu verwenden wir dt=0.5
und die natürliche Spline-Interpolation, um zwei berechnete Punkte zu verbinden.
1. In Deiner SonnenSystem-Funktion seien t, x, und y die Zeit und die Koordinaten der Erde.
Füge nun eine neue Variable tt ein, welche die Zeit auf einem verfeinerten Gitter darstellt.
Dann berechne die Koordinaten xx und yy auf dem neuen feineren Gitter mit der SplineInterpolation.
2. Nutze den Befehl pause, um die Umlaufbahn der Erde als Film in Matlab zu visualisieren.
3. Wähle einen anderen Planeten aus der Tabelle 1 und berechne dessen Umlaufbahn mit
Deiner Matlab-Funktion.
Aufgabe 4. Der Bericht
Schreibe einen 3-5 seitigen Bericht, in dem Du Deine Resultate dokumentierst und erläuterst.
Hierfür findest Du eine LATEX-Vorlage auf der Webseite des Projekts. Das Abgabedatum ist der
16. Juni 2014. In der Woche der 23.-27. Juni musst Du einen Termin für eine Besprechung mit
M. Kray abmachen. (30 Min)
Allgemeine Informationen zum Projekt befinden sich unter dem Link “Projekt: Einführung in die
Numerik” auf der Webseite
http://math.unibas.ch/institut/personen/profil/profil/person/kray/
4
Herunterladen