Sie sind auf Seite 1von 60

Numerische Methoden

und Simulation
Methoden zur numerischen Lösung gewöhnlicher
Differentialgleichungen (Teil 1)

Andreas Grüneis
Inhalt

1.Einführung Gitterverfahren
2.Verfahren für Differentialgleichungen 1. Ordnung
3.Beurteilung von Differenzenverfahren
4.Numerow-Verfahren
5.Split-Operator-Methode
6.Stabilitätsanalyse
7.Symplektische Integrationsverfahren

138.094 Numerische Methoden und Simulation


Einführung
• Beispiele:

@u 1 @u @2u @2u
= u =a 2 2
= 2⇢
@t ⌧ @t @x @x
Zerfallsgleichung Diffusionsgleichung Poissongleichung

@ @2A 2 @ 2
A @2x
i~ =H 2
=c = !2 x
@t @t @x2 @t2

Schrödingergleichung Wellengleichung Schwingungsgleichung

138.094 Numerische Methoden und Simulation


Einführung

Auxx + Buxy + Cuyy + F (x, y, u, ux , uy ) = 0

Klassi zierung:

2
B 4AC > 0 hyperbolisch
B2 4AC = 0 parabolisch
2
B 4AC < 0 elliptisch

138.094 Numerische Methoden und Simulation


fi
Einführung

Auxx + Buxy + Cuyy + F (x, y, u, ux , uy ) = 0

Klassi zierung: Beispiele:

@2A 2 @ 2
A
2 Wellengleichung =c
B 4AC > 0 hyperbolisch @t2 @x2
@u @2u
B2 4AC = 0 parabolisch Diffusionsgleichung @t
=a 2
@x
2 @2u @2u
B 4AC < 0 elliptisch Poissongleichung @x2
+ 2 =
@y
2⇢

138.094 Numerische Methoden und Simulation


fi
Einführung

Auxx + Buxy + Cuyy + F (x, y, u, ux , uy ) = 0

Klassi zierung: Beispiele:

@2A 2 @ 2
A
2 Wellengleichung =c
B 4AC > 0 hyperbolisch @t2 @x2
@u @2u
B2 4AC = 0 parabolisch Diffusionsgleichung @t
=a 2
@x
2 @2u @2u
B 4AC < 0 elliptisch Poissongleichung @x2
+ 2 =
@y
2⇢

Randbedingungen: Randwertprobleme und Anfangswertprobleme

138.094 Numerische Methoden und Simulation


fi
Einführung
• GDGL n-ter Ordnung -> n gekoppelte GDG erster Ordnung

@z1
= z2
@x
@z2
✓ ◆ = z3
n
@ y 2
@y @ y (n 1)
@ y @x
=f x, y, , 2 , ..., (n 1) !
@x n @x @x @x …
@zn
= f (x, z1 , ..., zn )
@x

@y @ (n 1) y
Wobei z1 = y, z2 = , ..., zn =
@x @x(n 1)

138.094 Numerische Methoden und Simulation


Einführung

• Diskretisierung
✓ ◆
@y @y
= f (x, y) ! = f (xn , y(xn ))
@x @x xn

xn heißt Stützstelle

xn = n x
x heißt Schrittweite
x1 x2 x3 x4 x5 x6 x1 x2 x3 x4 x5 x6

Äquidistante Gitter Angepasste Gitter

• Alle numerischen Verfahren zur Lösung von DG basieren auf langwelliger Näherung

138.094 Numerische Methoden und Simulation


Einführung
@y
Nach Integration von = f (x, y)
@x
Z xn+1 Z xn+1
@y
dx = f (x, y)dx Problem:
xn @x xn
Z xn+1 y(x) ist im Intervall (xn , xn+1 ]
nicht bekannt.
erhält man y(xn+1 ) = y(xn ) + f (x, y)dx
xn

Z xn+1
Beispiel: dy(x)
= y(x) f (x, y)dx
dx
xn
1 0

Exact
0.8 -0.2

0.6
f(x,y) -0.4
y(x)

0.4 -0.6

0.2 -0.8

-1
0
xn xn+1 xn+2 xn+3 xn+4 xn xn+1 xn+2 xn+3 xn+4

138.094 Numerische Methoden und Simulation


Einführung
Näherung zur Bestimmung von y(x) 1
X k
✓ k

(x xn ) d f (x, y)
im Intervall (xn , xn+1 ] f (x, y) =
k! dxk xn
k=0
Z xn+1
y(xn+1 ) = y(xn ) + f (x, y)dx
xn
Einsetzen der Reihenentwicklung und Integration nach x liefert
1
X k
✓ k 1

( x) d f (x, y)
y(xn+1 ) = y(xn ) +
k! dxk 1 xn
k=1

Ein numerisches Verfahren ist konsistent in p-ter Ordnung wenn alle Terme
bis ( x)p mit der exakten Reihenentwicklung übereinstimmen.
p
X k
✓ k 1

( x) d f (x, y)
y(xn+1 ) = y(xn ) +
k! dxk 1 xn
k=1
138.094 Numerische Methoden und Simulation
Einschrittverfahren
X1 k
✓ k 1 ◆
( x) d f (x, y)
y(xn+1 ) = y(xn ) +
k! dxk 1 xn
k=1
| {z }
= x (xn ,y(xn ); x)

(xn , y(xn ); x)
heißt Inkrementfunktion und ist charakteristisch für numerische
Näherung. Die Inkrementfunktion wird auch Schrittfunktion genannt. Ein
numerisches Verfahren ist konsistent in p-ter Ordnung wenn
y(x + Δx) − y(x) p
− Φ(x, y; Δx) = ((Δx) )
Δx p
Obige Bedingung ist gleichbedeutend damit, dass alle Terme bis ( x) mit
der exakten Reihenentwicklung übereinstimmen.
p
X k
✓ k 1 ◆
( x) d f (x, y)
y(xn+1 ) = y(xn ) +
k! dxk 1 xn
k=1
𝒪
138.094 Numerische Methoden und Simulation
Einschrittverfahren
p
X k
✓ k 1

( x) d f (x, y)
y(xn+1 ) = y(xn ) +
k! dxk 1 xn
k=1

Ordnung Ableitungen Verfahren

k=1 f Euler

df @f @f dy Modi ed Euler/
k=2 = + = fx + fy f Heun
dx @x @y dx
d2 f 2 2
k=3 2
= f xx + 2f xy f + f f
x y + f yy f + f yf RK3
dx

138.094 Numerische Methoden und Simulation


fi
Einschrittverfahren
Explizites Euler-Verfahren
y(xn+1 ) = y(xn ) + xf (xn , y(xn ))
1 0

Beispiel: 0.8
Exact
Euler Δx = 1 -0.2

0.6 -0.4

f(x,y)
y(x)

dy(x)
= y(x) 0.4 -0.6
dx
0.2 -0.8
=1
0 -1
xn xn+1 xn+2 xn+3 xn+4 xn xn+1 xn+2 xn+3 xn+4

1 0

Exact
0.8 Euler Δx = 0.5 -0.2

0.6 -0.4
f(x,y)
y(x)

0.4 -0.6

0.2 -0.8

0
x x x x x x x x x -1
x x x x x x x x x
n n+ n n n n n n n n n+ n+ n+ n+ n+ n+ n+ n+
1 +2 +3 +4 +5 +6 +7 +8 1 2 3 4 5 6 7 8

https://github.com/andreasgrueneis/NMS-Notebooks 138.094 Numerische Methoden und Simulation


Einschrittverfahren
Verfahren von Heun (Trapezregel)
y(xn+1 ) = y(xn ) + x (xn , y(xn ); x)
1
(xn , y(xn ); x) = [f (xn , y(xn )) + f (xn + x, y(xn ) + xf (xn , y(xn )))]
2

Entwicklung von (x, y; x) nach x zeigt, daß -0.2


Verfahren konsistent in zweiter Ordnung ist:
-0.4

f(x,y)
1 1
= f + (f + xfx + xfy f ) -0.6

2 2
-0.8
x
=f+ (fx + fy f ) -1
2 xn xn+1 xn+2 xn+3 xn+4

138.094 Numerische Methoden und Simulation


Einschrittverfahren
Modi ziertes Euler-Verfahren (Mittelpunktsregel)
y(xn+1 ) = y(xn ) + x (xn , y(xn ); x)
x x
(xn , y(xn ); x) = f (xn + , y(xn ) + f (xn , yn ))
2 2
0
Mod. Euler-Verfahren verwendet Hilfsschritt.
Verfahren mit Hilfsschritt werden auch als -0.2

Runge-Kutta-Verfahren bezeichnet. -0.4

f(x,y)
x
y(xn+ 12 ) = y(xn ) + f (xn , y(xn )) -0.6

2
-0.8
y(xn+1 ) = y(xn ) + xf (xn+ 12 , y(xn+ 12 ))
-1
xn xn+1 xn+2 xn+3 xn+4
Entwicklung von (x, y; x) nach x zeigt, daß
Verfahren konsistent in zweiter Ordnung ist.
x x x
=f+ fx + fy f = f + (fx + fy f )
2 2 2

138.094 Numerische Methoden und Simulation


fi
Einschrittverfahren
Runge-Kutta-Verfahren vierter Ordnung (RK4)
y(xn+1 ) = y(xn ) + x (xn , y(xn ); x)
1
(xn , y(xn ); x) = (k1 + 2k2 + 2k3 + k4 )
6
k1 = f (xn , y(xn ))
x x
k2 = f (xn + , y(xn ) + k1 )
2 2
x x
k3 = f (xn + , y(xn ) + k2 )
2 2
k4 = f (xn + x, y(xn ) + x k3 )
HilberTraum (https://commons.wikimedia.org/
wiki/File:Runge-Kutta_slopes.svg), https://
creativecommons.org/licenses/by-sa/4.0/
Entwicklung von (x, y; x) nach x zeigt, daß legalcode

Verfahren konsistent in vierter Ordnung ist.


dy x d2 y ( x)2 d3 y ( x)3 d4 y
= + 2
+ 3
+
dx 2 dx 6 dx 24 dx4

138.094 Numerische Methoden und Simulation


Mehrschrittverfahren
Leapfrog-Verfahren
y(xn+1 ) = y(xn 1) +2 x f (xn , y(xn ))

0
Nachteil:
Leapfrog benötigt Kenntnis über den -0.2

Funktionswert an zwei Stützstellen. Es ist -0.4

f(x,y)
daher nicht selbststartend. -0.6

Vorteil: -0.8

Zweite Ordnung mit einem Funktionsaufruf. x-1n-1 xn xn+1 xn+2 xn+3

Z xn+1
Vergleich mit y(xn+1 ) = y(xn 1) + f (x, y(x))dx
xn 1

zeigt, daß Leapfrog konsistent in zweiter Ordnung ist.

138.094 Numerische Methoden und Simulation


Implizites Euler-Verfahren
Implizites Euler-Verfahren

y(xn+1 ) = y(xn ) + xf (xn+1 , y(xn+1 ))

Nachteil: -0.2

Unbekannte kommt auf beiden Seiten der -0.4

f(x,y)
Gleichung vor. Für Systeme die nicht linear in -0.6

y(xn+1 ) sind, werden implizite Verfahren kaum -0.8

verwendet. -1
xn xn+1 xn+2 xn+3 xn+4

Implizites Euler-Verfahren ist nur von erster Ordnung.


f (xn + x, y(xn + x)) = f (xn , y(xn )) + x(fx + f fy )xn ...
y(xn+1 ) = y(xn ) + x(f (xn , y(xn )) + ( x)2 (fx + f fy )xn +...)
| {z }
( x)2
6/ 2

138.094 Numerische Methoden und Simulation


Implizites Verfahren
Implizites Verfahren (zweite Ordnung)
x
y(xn+1 ) = y(xn ) + [f (xn , y(xn )) + f (xn + x, y(xn+1 ))]
2
Verfahren von Heun ist Näherung zu 0

implizitem Verfahren zweiter Ordnung. -0.2

-0.4
Nachteil:

f(x,y)
-0.6
Unbekannte kommt auf beiden Seiten der
Gleichung vor. Für Systeme die nicht linear in -0.8

y(xn+1 ) sind, werden implizite Verfahren kaum -1


xn xn+1 xn+2 xn+3 xn+4

verwendet.

Vorteil:
Unbedingt stabil für Zerfallsgleichung sowie Oszillator.

138.094 Numerische Methoden und Simulation


Beurteilung von Differenzenverfahren
Genauigkeit
y(x + Δx) − y(x)
Konsistenz − Φ(x, y; Δx) = ((Δx) p) lokal
Δx

Konvergent lim (y(xn )


x!0
z(xn )) = O (( x)p ) für xn 2 [xa , xe ] global

y(xn+1 ) + ✏(xn+1 ) = T [y(xn ) + ✏(xn )] T ist belibiger Integrationsoperator


Stabilität ✏ ist Rundungsfehler
✏(xn+1 ) = G ✏(xn ) , |gi |  1 8i G ist Verstärkungsmatrix (lin. T )
gi ist Eigenwert von G
dy(x)
Beispiel (Euler-Verfahren):
dx
= y(x) |g| = |1 x|

Ef zienz
Rechenaufwand Speicheraufwand
i. Allg. dominiert durch Anzahl i. Allg. dominier t durch
der Funktionsaufrufe f (x, y) Anzahl der Schritte.

138.094 Numerische Methoden und Simulation


𝒪
fi
Fehlerabschätzung
Vergleich zwischen exakter und numerischer Lösung

y(xn+1) = y(xn) + ΔxΦ(xn, y(xn); h) Konsistenzordnung


138.094 Numerische Methoden und Simulation
Numerow-Verfahren
Numerow-Verfahren dient der Lösung von DG zweiter Ordnung:
2
d y(x) g(x), s(x) sind gegeben.
2
= g(x)y(x) + s(x)
dx
Beispiele: Poissongleichung, radiale Schrödingergleichung, ..

Summe der Taylor-Entwicklungen von y(xn + x) und y(xn x)


um xn und verwenden der De nitionen von
2
(4) d ( g(x)y(x) + s(x))
y 00 (x) und y (x) =
dx2
4
ergibt die Numerow-Formel (konvergent mit O ( x) ):
✓ 2
◆ ✓ ◆ ✓ 2

( x) 5 ( x) ( x)2
yn+1 1+ gn+1 = 2yn 1 ( x)2 gn yn 1 1+ gn 1 + (sn+1 + 10sn + sn 1)
12 12 12 12

138.094 Numerische Methoden und Simulation


fi
Split-Operator-Methode
SOP-Methode zur Lösung der zeitabhängigen SGL:
d ̂ ℏ2Δr
iℏ ψ(x, t) = Hψ(x, t) Ĥ = − + V(x) ist „lokal“ und zeitunabhängig.
dt 2m

̂
− ℏi HΔt ̂
− ℏi TΔt/2 ̂
− ℏi VΔt ̂
− ℏi TΔt/2
ψ(x, t + Δt) = e ψ(x, t) ≈ e e e ψ(x, t)
Zeitpropagation:
t1 = t0 + Δt : ψ (x, t ) ist gegeben. ψ̃ (k, t0) = ℱ[ψ (x, t0)]
0

ϕ(x, t0) = ℱ−1[ϕ̃(k, t0)] 2 Δt


− ℏi T ̂ Δt −i ℏk
ϕ̃(k, t0) = e 2 ψ̃ (k, t0) = e 2m 2 ψ̃ (k, t0)
i
Φ(x, t0) = e − ℏ V(x)Δt ϕ(x, t0) Φ̃(k, t0) = ℱ[Φ(x, t0)]

−1 2
ψ(x, t1) = ℱ [ψ̃(k, t1)] Ψ̃(k, t1) = e −i ℏk
2m Δt/2 Φ̃(k, t0)

t2 = t1 + Δt : ψ (x, t1) ist gegeben. …..

…..

https://github.com/andreasgrueneis/NMS-Notebooks 138.094 Numerische Methoden und Simulation


Euler-Verfahren für nichtlineare DGL
Modell mit drei gekoppelten DGn

dx
"chaos.dat" u 1:2:3
=a(y x)
50
45
40
35
dt
30
25
20 dy
=x(b z) y
15
10
5

-20
-15 25 30
dt
-10 15 20
-5
0
5
10 -10 -5 0
5 10
dz
15
20 -25
-20-15
=xy cz
dt

https://github.com/andreasgrueneis/NMS-Notebooks

138.094 Numerische Methoden und Simulation


Anwendung: Bewegungsgleichung

~r
Sun Earth
F~

• Bewegungsgleichung im Gravitationsfeld der Sonne in zwei Dimensionen


• Punktförmige Massen der Sonne (Ms) und Erde (me)
• Gravitationskonstante G
• Position der Sonne ist festgehalten (Ms >> me)
• Position der Erde ~r(t) ist zeitabhängig (Anfangswertproblem)

d2~r F~ (~r(t)) F~ = G ~r
M s me
2
= |~r|3
dt me
138.094 Numerische Methoden und Simulation
Anwendung: Bewegungsgleichung
Anleitung zur Aufgabenstellung:

• Schreiben Sie die Differentialgleichung in ein System von


~r Differentialgleichungen erster Ordnung um.
Sun
F~
d2~r F~ (~r(t)) M s me
= F~ = G ~r
dt 2 me |~r|3

✓ ◆ ✓ ◆
M s me ~r˙ (t) ~v (t)
F~ = G ~r =
|~r|3 ~v˙ (t) F~ (t)/me

138.094 Numerische Methoden und Simulation


Anwendung: Bewegungsgleichung
Anleitung zur Aufgabenstellung:

• Arbeiten Sie in geeigneten Einheiten. Wechseln Sie von


~r SI (kg, m, s) nach Erdmassen, AU (astronomical units)
Sun und Tagen.
F~
re = 1.4959787 ⇥ 1011 m
Ms = 1.989 ⇥ 1030 kg
SI me = 5.972 ⇥ 1024 kg G = 6.67408 ⇥ 10 11
m 3

kg · s2

Ms = re = 1 AU
Problemspezi sche Einheiten re 3
me =1 G=
me · Days2

138.094 Numerische Methoden und Simulation


fi
Anwendung: Bewegungsgleichung
Anleitung zur Aufgabenstellung:

~r • Schreiben Sie ein Programm, dass das System


Sun
F~ gekoppelter Differentialgleichungen mit Hilfe des
expliziten Euler-Verfahrens erster Ordnung integriert.

Differentialgleichung zweiter Ordnung -> Zwei gekoppelte DG erster Ordnung

✓ ◆ ✓ ◆
M s me ~r˙ (t) ~v (t)
F~ = G ~r =
|~r|3 ~v˙ (t) F~ (t)/me
Z tn+1
Integration dt liefert Schrittgleichung für ~
r(tn+1 ) und ~v (tn+1 ).
tn

138.094 Numerische Methoden und Simulation


Anwendung: Bewegungsgleichung
Anleitung zur Aufgabenstellung:

~r • Schreiben Sie ein Programm, dass das System


Sun
F~ gekoppelter Differentialgleichungen mit Hilfe des
expliziten Euler-Verfahrens erster Ordnung integriert.

Explizites Euler-Verfahren gibt folgende Schrittgleichung:


~r(tn+1 ) = ~r(tn ) + ...
~v (tn+1 ) = ~v (tn ) + ...

138.094 Numerische Methoden und Simulation


Anwendung: Bewegungsgleichung
Anleitung zur Aufgabenstellung:

~r • Schreiben Sie ein Programm, dass das System


Sun
F~ gekoppelter Differentialgleichungen mit Hilfe des
expliziten Euler-Verfahrens erster Ordnung integriert.

Verwenden Sie folgende Anfangswerte für ~r und ~v .


✓ ◆ ✓ ◆
1 0
~r(0) = ~v (0) =
0 0.017326
Einheiten sind in AU bzw. AU/Days .

138.094 Numerische Methoden und Simulation


Anwendung: Bewegungsgleichung
Anleitung zur Aufgabenstellung:
• Verwenden Sie das Euler-Verfahren um die Bewegungsgleichung über
einen Zeitraum von 365 Tagen zu integrieren und erzeugen Sie eine
Gra k des Orbits mit gnuplot. Verwenden Sie dazu unterschiedliche
Zeitschritte mit t = 1 Day sowie t = 0.01 Day .

138.094 Numerische Methoden und Simulation


fi
Anwendung: Bewegungsgleichung
Anleitung zur Aufgabenstellung:
• Ve r w e n d e n S i e d a s R u n g e - K u t t a - Ve r f a h re n ( R K 4 ) u m d i e
Bewegungsgleichung über einen Zeitraum von 365 Tagen zu integrieren
und erzeugen Sie erneut eine Gra k des Orbits mit gnuplot. Verwenden
Sie dazu wieder Zeitschritte mit t = 1 Day sowie t = 0.01 Day .

Runge-Kutta-Verfahren vierter Ordnung (RK4)


y(xn+1 ) = y(xn ) + x (xn , y(xn ); x)
1
(xn , y(xn ); x) = (k1 + 2k2 + 2k3 + k4 )
6
k1 = f (xn , y(xn ))
x x
k2 = f (xn + , y(xn ) + k1 )
2 2
x x
k3 = f (xn + , y(xn ) + k2 )
2 2
k4 = f (xn + x, y(xn ) + x k3 )

138.094 Numerische Methoden und Simulation


fi
Anwendung: Bewegungsgleichung
Anleitung zur Aufgabenstellung:
• Berechnen Sie die Gesamtenergie des Systems mit t = 0.01 Day als
Funktion der Zeit und erzeugen Sie eine Gra k mit gnuplot. Verwenden
Sie dazu wieder das Euler- und das RK4-Verfahren. Welche Verfahren
erhalten die Gesamtenergie?
2
me |~v (tn )| G Ms me
E(tn ) =
2 |~r(tn )|

138.094 Numerische Methoden und Simulation


fi
Anwendung: Bewegungsgleichung
Anleitung zur Aufgabenstellung:
• Ändern Sie den Anfangsvektor für die Geschwindigkeit so, daß Sie auf
den Hohmann-Transfer-orbit zwischen Erde und Mars gelangen. Nehmen
Sie dazu an, daß die Marsumlaufbahn in etwa kreisförmig mit einem
Radius von 1.5AU ist. Achten Sie auf die Konvergenz des Transfer-orbits
mit der Schrittweite.

138.094 Numerische Methoden und Simulation


Anwendung: Bewegungsgleichungen
Programmiertipps (C++):
• Verwenden
✓ ◆ Sie Vektoren
✓ ◆
rx vx // Define position, velocity and force Vectors/Arrays
~r = ~v = #include<Eigen/Dense>
ry vy …
VectorXd r(2);
VectorXd v(2);

• Verwenden Sie Funktionen um die Anfangswerte zu setzen und die Kräfte zu


berechnen.
✓ ◆ Das erleichtert die Implementierung.
Fx
F~ =
Fy
v=v+dt*force_sun(Me,k0_r)/Me;

//define function to compute force on mass in gravitational field of sun


VectorXd force_sun(double m,const VectorXd &r) {
VectorXd force(2);
force= … ;
return force;
}

138.094 Numerische Methoden und Simulation


Anwendung: Bewegungsgleichungen
Programmiertipps (C++):
• Verwenden Sie das bereitgestellte Skelett zur Implementierung in C++.
orbit.cxx

• Kompilieren mit Eigen.

g++ -Wall -I/opt/homebrew/Cellar/eigen/3.4.0_1/include/eigen3/ -o orbit.x orbit.cxx

• Erstellen der Gra k mit gnuplot


gnuplot> plot "EarthOrbit_Euler.dat" u 2:3, "EarthOrbit_RK4.dat" u 2:3

• Ausgabe der Gra k in ein png- le mit gnuplot


gnuplot> set term png
gnuplot> set output "Orbit.png"
gnuplot> replot

138.094 Numerische Methoden und Simulation


fi
fi
fi
Numerische Methoden
und Simulation
Methoden zur numerischen Lösung gewöhnlicher
Differentialgleichungen (Teil 2)

Andreas Grüneis
Inhalt

• Wiederholung
• Stabilitätsanalysen und Vergleich unterschiedlicher Verfahren
• Symplektische Integrationsmethoden

138.094 Numerische Methoden und Simulation


Wiederholung
• PDG N-ter Ordnung kann in System von N gekoppelten
Differentialgleichungen erster Ordnung umgewandelt werden.
• Differentialgleichung erster Ordnung wird mit
Integrationsverfahren näherungsweise gelöst.
Z xn+1 Z xn+1
• Schrittfunktion (xn , y(xn ); @yx) ist charakteristisch für
Einschrittverfahren. dx = f (x, y)dx
xn @x xn
Z xn+1
@z1
= z2 y(xn+1 ) = y(xn ) + f (x, y)dx
@x
xn
@z2
= z3
@x
X1 ✓ k 1 ◆
… y(xn+1 ) = y(xn ) +
( x) k
d f (x, y)
k! dxk 1 xn
@zn k=1
| {z }
= f (x, z1 , ..., zn )
@x = x (xn ,y(xn ); x)

138.094 Numerische Methoden und Simulation


Beurteilung von Differenzenverfahren
Genauigkeit
y(x + Δx) − y(x)
Konsistenz − Φ(x, y; Δx) = ((Δx) p) lokal
Δx

Konvergent lim (y(xn )


x!0
z(xn )) = O (( x)p ) für xn 2 [xa , xe ] global

y(xn+1 ) + ✏(xn+1 ) = T [y(xn ) + ✏(xn )] T ist belibiger Integrationsoperator


Stabilität ✏ ist Rundungsfehler
✏(xn+1 ) = G ✏(xn ) , |gi |  1 8i G ist Verstärkungsmatrix (lin. T )
gi ist Eigenwert von G
dy(x)
Beispiel (Euler-Verfahren):
dx
= y(x) |g| = |1 x|

Ef zienz
Rechenaufwand Speicheraufwand
i. Allg. dominiert durch Anzahl i. Allg. dominier t durch
der Funktionsaufrufe f (x, y) Anzahl der Schritte.

138.094 Numerische Methoden und Simulation


𝒪
fi
Stabilitätsanalyse
Zerfallsgleichung Exact
3 Euler (Δx=2.1)
dy(x) Euler (Δx=0.1)
= y(x) 2
dx
1

y(x)
0
Bei Instabilität werden Abweichungen von
der exakten Lösung verstärkt. -1
y(xn+1 ) + ✏(xn+1 ) = T [y(xn ) + ✏(xn )]
-2
Stabilität ist i. Allg. von Schrittweite abhängig. 0 5 10 15 20
x

Explizites Euler-Verfahren
y(xn+1 ) = y(xn ) + xf (xn , y(xn ))

• Integrationsverfahren haben eingeschränkte Stabilität


138.094 Numerische Methoden und Simulation
Stabilitätsanalyse
Zerfallsgleichung
dy(x)
= y(x)
dx
Explizites Euler-Verfahren (erster Ordnung)
y(xn+1 ) = y(xn ) x y(xn ) = (1 x ) y(xn )
| {z }
=g
Bedingt stabil wenn |g| = |1 x |1

Leapfrog-Verfahren (zweiter Ordnung)

y(xn+1 ) = y(xn 1) + 2 xf (xn , y(xn ))


p
Unbedingt instabil |g1/2 | = | x ± ( x)2 + 1| > 1

138.094 Numerische Methoden und Simulation


Stabilitätsanalyse
Zerfallsgleichung
dy(x) y(xn+1 ) + ✏(xn+1 ) = T [y(xn ) + ✏(xn )]
= y(x)
dx

Implizites Euler-Verfahren (erster Ordnung)

y(xn+1 ) = y(xn ) + xf (xn+1 , y(xn+1 ))


1
Unbedingt stabil, weil |g| = <1
1 + ( x)

138.094 Numerische Methoden und Simulation


Stabilitätsanalyse
Oszillator
✓ ◆ ✓ ◆✓ 2
◆ Aus den Eigenwerten der Verstärkungsmatrix
d q 0 1 m! q G läßt sich eine Aussage über die Stabilität
= p
dt p 1 0 m
des Verfahrens treffen.

Explizites Euler-Verfahren (erster Ordnung)


y(xn+1 ) = y(xn ) + xf (xn , y(xn ))
Unbedingt instabil ✓ ◆
1 ( t)/m 2 2 2
G= 2 ; |g1,2 | = 1 + ( t) ! > 1
( t)m! 1

Semi-implizites Euler-Verfahren (erster Ordnung)


✓ 2

Bedingt stabil G = 1 ( t)!2 ( t)/m
( t)m! 1

für passende Wahl von Δt und ω gilt | g1,2 | ≤ 1


https://github.com/andreasgrueneis/NMS-Notebooks 138.094 Numerische Methoden und Simulation
Stabilitätsanalyse
Oszillator
✓ ◆ ✓ ◆✓ 2

d q 0 1 m! q
= p
dt p 1 0 m

Implizites Euler-Verfahren (erster Ordnung)


y(xn+1 ) = y(xn ) + xf (xn+1 , y(xn+1 ))
Unbedingt stabil, weil
✓ ◆
1 1 ( t)/m 1
G= 2
|g1,2 | = <1
1 + ( t)2 ! 2 ( t)m! 2 1 ; 1 + (! t) 2

https://github.com/andreasgrueneis/NMS-Notebooks
138.094 Numerische Methoden und Simulation
Stabilitätsanalyse
Oszillator
✓ ◆ ✓ ◆✓ 2

d q 0 1 m! q
= p
dt p 1 0 m

Crank-Nicolson-Verfahren (zweite Ordnung)


Δx
y(xn+1) = y(xn) + (f(xn, y(xn)) + f(xn+1, y(xn+1)))
2
Unbedingt stabil, weil
( 2 )
2
ωΔt Δt
1−
G=
1 m
| g1,2 | = 1
1 − ( ωΔt
2 )
(Δt)2ω 2 2
1+ 4 −Δtmω 2 ;

https://github.com/andreasgrueneis/NMS-Notebooks 138.094 Numerische Methoden und Simulation


Stabilitätsanalyse
dy(x)
Verfahren Ordnung dx
= y(x)

Euler (explizit) ( x) x2


2
Leapfrog ( x) instabil

Euler (implizit) ( x) stabil

✓ ◆ ✓ ◆✓ ◆
d q 0 1 m! 2 q
Verfahren Ordnung dt p
=
1 0 p
m

Euler (explizit) ( x) instabil

Euler (semi-implizit) ( x) bedingt stabil

Euler (implizit) ( x) ! x
stabil 1
Crank-Nicolson (implizit) (Δx)2 stabil
138.094 Numerische Methoden und Simulation
Symplektische Verfahren
• Symplektische Verfahren eignen sich für Zeitentwicklung von Problemen aus der
Hamiltonmechanik (Molekulardynamik, Keplerproblem, …)

dp @H dq @H
= , = H(p, q) = T (p) + V (q)
dt @q dt @p
Entspricht System von Differentialgleichungen erster Ordnung:
✓ ◆ ✓ ◆ ! ✓ ◆ ✓ ◆
@H
d q(t) 0 1 @q q(t) q(0)
= @H = Â(t)
dt p(t) 1 0 @p
p(t) p(0)
| {z }
=J
• Symplektische Form muß erhalten
✓ bleiben,
◆ d.h. es gilt ✓ ◆
T q2 (0) q2 (0)
(q1 (0), p1 (0))Â (t)J Â(t) = (q1 (0), p1 (0))J
p2 (0) p2 (0)
Daraus ergibt sich folgende Bedingung für symplektisches Integrationverfahren.
|det(A(t))| = 1 Fläche bleibt erhalten (Liouville’s theorem)
138.094 Numerische Methoden und Simulation
Symplektische Verfahren
Harmonischer Oszillator
✓ ◆ ✓ ◆✓ ◆
d q 0 1 m! 2 q
= p
dt p 1 0 m

Euler-Verfahren (erster Ordnung)


✓ ◆ ✓ t
◆ ✓ ◆
qn+1 1 m
qn
=
pn+1 tm! 2 1 pn
| {z }
=A
2
Nicht symplektisch, weil det(A) = 1 + ( t !) 6= 1

138.094 Numerische Methoden und Simulation


Symplektische Verfahren
Harmonischer Oszillator
✓ ◆ ✓ ◆✓ ◆
d q 0 1 m! 2 q
= p
dt p 1 0 m

Semi-implizites Euler-Verfahren (erster Ordnung)


pn 2
qn+1 = qn + t , pn+1 = pn t m ! qn+1
m
✓ ◆ ✓ t
◆ ✓ ◆
qn+1 1 m qn
= 2 2 2
pn+1 t m ! 1 ( t) ! pn
| {z }
=A

Symplektisch, weil det(A) = 1

138.094 Numerische Methoden und Simulation


Symplektische Verfahren
Harmonischer Oszillator
✓ ◆ ✓ ◆✓ ◆
d q 0 1 m! 2 q
= p
dt p 1 0 m

Implizites Euler-Verfahren (erster Ordnung)


p n+1
pn+1 = pn t m ! qn+1 , qn+1 = qn + t m
2

✓ ◆ ✓ t
◆ ✓ ◆
qn+1 1 1 m
q n
= 2
pn+1 2
1 + ( t) ! 2 tm! 1 pn
| {z }
=A

Nicht symplektisch, weil det(A) ≠ 1

138.094 Numerische Methoden und Simulation


Symplektische Verfahren
Harmonischer Oszillator
✓ ◆ ✓ ◆✓ ◆
d q 0 1 m! 2 q
= p
dt p 1 0 m

Crank-Nicolson-Verfahren (zweite Ordnung) Δt


pn+1 = pn − Δtmω 2(qn+1 + q,n)/2 qn+1 = qn + (pn+1 + pn)/2
m

( 2 )
2
ωΔt Δt
1−
( n+1) (pn)
qn+1 1 m qn
p =
( 2 )
(Δt)2ω 2 2
1+ 4 −Δtmω 2 1−
ωΔt

=A
Symplektisch, weil det(A) = 1

138.094 Numerische Methoden und Simulation


Zusammenfassung
Explizite (Mehrschritt-)Verfahren:
• Einfache Implementierung
• Hohe Genauigkeit (bei hoher Ordnung) für kleine Integrationsbereiche
• Häu g eingeschränkte Stabilitätsbereiche
• Meist nicht symplektisch
Semi-implizite Verfahren:
• Guter Kompromiss zwischen expliziten und impliziten Verfahren

Implizite Verfahren:
• Exzellente Verfahren sofern Gleichungssystem einfach lösbar (linear in
Unbekannter) ist
• Genauigkeit für kurze Integrationsbereiche abhängig von Ordnung
• Häu g uneingeschränkte Stabilität
• Nicht notwendigerweise symplektisch

Optimale Methode abhängig von Differentialgleichung,


Fragestellung und Rechenressourcen!
138.094 Numerische Methoden und Simulation
fi
fi
Vertiefende Literatur

Ernst Hairer, Syvert P. Nørsett, Gerhard Wanne

138.094 Numerische Methoden und Simulation


Anwendung: Helium
• Schrödingergleichung für Elektron im Helium atom (Z=2)
✓ ◆
r2 Z
+ (r) (r) = " (r)
2 r
• Elektron-Elektron-Repulsion wird durch mittleres Feld genähert (Mean- eld)

r2 (r) = 4⇡⇢(r) mit ⇢(r) = | (r)|2

• Schrödinger- und Poisson-Gleichung koppeln aneinander ( (r) , (r) )

• Numerow-Verfahren zum Lösen der Schrödinger- und Poissongleichung

138.094 Numerische Methoden und Simulation

fi
Anwendung: Helium
• Schrödingergleichung für Elektron im Helium atom (Z=2)
✓ ◆
r2 Z
+ (r) (r) = " (r)
2 r

u(r) = r (r) (Transformation)

✓ 2

1 d Z
+ (r) u(r) = " u(r)
2 dr2 r

• Ähnliche Vereinfachung ergibt sich durch Transformation r⇢(r) in der


Poissongleichung
138.094 Numerische Methoden und Simulation
Anwendung: Numerow-Verfahren
Numerow-Verfahren dient der Lösung von DG zweiter Ordnung:
2
d y(x) g(x), s(x) sind gegeben.
2
= g(x)y(x) + s(x)
dx
Beispiele: Poissongleichung, radiale Schrödingergleichung, ..

Summe der Taylor-Entwicklungen von y(xn + x) und y(xn x)


um xn und verwenden der De nitionen von
2
(4) d ( g(x)y(x) + s(x))
y 00 (x) und y (x) =
dx2
4
ergibt die Numerow-Formel (konvergent mit O ( x) ):
✓ 2
◆ ✓ ◆ ✓ 2

( x) 5 ( x) ( x)2
yn+1 1+ gn+1 = 2yn 1 ( x)2 gn yn 1 1+ gn 1 + (sn+1 + 10sn + sn 1)
12 12 12 12

138.094 Numerische Methoden und Simulation


fi
Anwendung: Helium
• Selbstkonsistentes Feld ( SCF: Self-consistent eld)

Iteration 1 Numerow
✓ 2

r Z
(r) = 0 ,
2 r
+ (r) (r) = " (r) ! (r)
Numerow
⇢(r) = | (r)|2 , r 2
(r) = 4⇡⇢(r) ! (r)

Iteration 2 Numerow
✓ 2

r Z
2 r
+ (r) (r) = " (r) ! (r)
Numerow
r2 (r) = 4⇡⇢(r) ! (r)

Iteration … …
138.094 Numerische Methoden und Simulation
fi
Anwendung: Helium
• Schrödingergleichung für Elektron im Helium atom (Z=2)
✓ ◆
r2 Z
+ (r) (r) = " (r)
2 r
Numerow-Verfahren: Integration von innen nach außen
lim r (r) ⇡ r(1
Startwerte folgen aus r!0 rZ)
Schießverfahren: Bestimmung von ✏

• Elektron-Elektron-Repulsion wird durch mittleres Feld genährt (Mean- eld)

2 2
r (r) = 4⇡⇢(r) mit ⇢(r) = | (r)|
Numerow-Verfahren: Integration von außen nach innen
lim r (r) = 1
Startwerte folgen aus r!1

138.094 Numerische Methoden und Simulation

fi
Anwendung: Helium
Programmiertipps (C++):
• Verwenden Sie das bereitgestellte Skelett zur Implementierung in Fortran.
helium.cxx
• Kompilieren mit Modulen. Achten Sie auf die Reihenfolge der Dateien!

g++ -Wall -I/opt/homebrew/Cellar/eigen/3.4.0_1/include/eigen3/ -o helium.x


helium.cxx

• Vergleich: 6
"Hydrogen_orbital.dat" u 1:2
"Hydrogen_orbital_potential.dat" u 1:2
5

-1
0 1 2 3 4 5 6 7

138.094 Numerische Methoden und Simulation

Das könnte Ihnen auch gefallen