Runge–Kutta Verfahren - M2/Allgemeines · Prof. Dr. Barbara Wohlmuth Lehrstuhl fu¨r Numerische...

24
Prof. Dr. Barbara Wohlmuth Lehrstuhl f¨ ur Numerische Mathematik Runge–Kutta Verfahren y i+1 = y i + (t i ,h i ,y i ), φ(t i ,h i ,y i )= s j =1 γ j k j , k j = f t i + α j h i ,y i + h i s l=1 β jl k l , j =1, 2,...,s wobei s ist die Stufe des Verfahrens. R–K Verfahren k¨onnen mit Hilfe des Butcherschemas charakterisiert werden: α 1 0 0 ... 0 α 2 β 21 0 ... 0 . . . . . . . . . . . . . . . α s β s1 β s2 ... 0 γ 1 γ 2 ... γ s α 1 β 11 β 12 ... β 1s α 2 β 21 β 22 ... β 2s . . . . . . . . . . . . . . . α s β s1 β s2 ... β ss γ 1 γ 2 ... γ s explizit implizit Bedingung f¨ ur die Konsistenz: s j =1 γ j =1 Invarianz gegen Autonomisierung: s j =1 β ij = α i . – Typeset by Foil T E X 1

Transcript of Runge–Kutta Verfahren - M2/Allgemeines · Prof. Dr. Barbara Wohlmuth Lehrstuhl fu¨r Numerische...

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Runge–Kutta Verfahren

yi+1 = yi + hφ(ti, hi, yi), φ(ti, hi, yi) =s∑

j=1

γjkj,

kj = f

(

ti + αjhi, yi + hi

s∑

l=1

βjlkl

)

, j = 1, 2, . . . , s

wobei s ist die Stufe des Verfahrens.R–K Verfahren konnen mit Hilfe des Butcherschemas charakterisiert werden:

α1 0 0 . . . 0α2 β21 0 . . . 0... ... ... . . . ...αs βs1 βs2 . . . 0

γ1 γ2 . . . γs

α1 β11 β12 . . . β1s

α2 β21 β22 . . . β2s... ... ... . . . ...αs βs1 βs2 . . . βss

γ1 γ2 . . . γsexplizit implizit

Bedingung fur die Konsistenz:∑s

j=1 γj = 1

Invarianz gegen Autonomisierung:∑s

j=1 βij = αi.

– Typeset by FoilTEX – 1

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Butcher-Schema: Ordnung Bedingungen

Ein RKV ist konsistent von der Ordnung p, falls

τ(t, h, y) = O(hp),

wobei τ(t,h,y) ist der Konsistenzfehler.

p = 1 :∑s

i=1 γi = 1

p = 2 :∑s

i=1 γi = 1,∑s

i=1 γiαi =12

p = 3 :∑s

i=1 γi = 1,∑s

i=1 γiαi =12,

∑s

i=1 γiα2i =

13,∑s

i=1

∑s

j=1 γiβijαj =16

p 1 2 3 4 5 6 7 ... 20

#Beding. 1 2 4 8 17 37 85 ... > 2× 107

– Typeset by FoilTEX – 2

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Butcher-Schema: Beispiele

Impliziter Euler

1 1

1

explizit RK4stufig, 4te Ordnung

0 0 0 0 012

12 0 0 0

12 0 1

2 0 0

1 0 0 1 016

26

26

16

implizit RK2stufig, 4te Ordnung

12–

√36

14

14–

√36

12+

√36

14+

√36

14

12

12

– Typeset by FoilTEX – 3

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Klassisches Runge–Kutta Verfahren (RK4)

yi+1 = yi + h∑s

j=1 γjkj, kj = f (ti + αjhi, yi + hi

∑s

l=1 βjlkl)

Butcherschema

0 0 0 0 012

12 0 0 0

12 0 1

2 0 0

1 0 0 1 016

26

26

16

Algorithmus

ti+1 = ti + hi

k1 = f(ti, yi)

k2 = f(ti +hi2 , yi +

hi2 k1)

k3 = f(ti +hi2 , yi +

hi2 k2)

k4 = f(ti + hi, yi + hi k3)

yi+1 = yi +hi6 (k1 + 2k2 + 2k3 + k4)

– Typeset by FoilTEX – 4

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Implizites Runge–Kutta Verfahren

yi+1 = yi + h∑s

j=1 γjkj, kj = f (ti + αjhi, yi + hi

∑s

l=1 βjlkl)

Beispiel: 2stufiges Verfahren

α1 β11 β12

α2 β21 β22

γ1 γ2

k1 = f(ti + α1hi, yi + hi(β11k1 + β12k2)

k2 = f(ti + α2hi, yi + hi(β21k1 + β22k2)︸ ︷︷ ︸

nicht-lineares Gleichungssytem

Innere Iteration:

(k(0)1 , . . . , k

(0)s ) %Startvektor

while m 6 mmax and norm(k(m+1)l

− k(m)l

) 6 TOL %Abbruchkriterium

for l = 1 : s

k(m+1)l

= f(

ti + αlhi, yi + hi

∑s

j=1βljk(m)j

)

bzw.

k(m+1)l

= f(

ti + αlhi, yi + hi

∑l−1j=1βljk

(m+1)j + h

∑s

j=lβljk(m)j

)

– Typeset by FoilTEX – 5

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Unterschiedliche implizite RK–Verfahren

y′ = ty2, y(0) = 1

0 0.2 0.4 0.6 0.8 1 1.2 1.41

2

3

4

5

6

7

8Implizite RK−Verfahren

Zeit t

y(t)

Ordnung 2Ordnung 4Ordnung 6

0 0.2 0.4 0.6 0.8 1 1.2 1.40

10

20

30

40

50

60Innere Iterationen

Zeit t

Anz

ahl d

er It

erat

ione

n

Ordnung 2Ordnung 4Ordnung 6

Beobachtung: Anzahl der inneren Iterationen hangt von der Ordnung ab.

– Typeset by FoilTEX – 6

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Anzahl der inneren Iterationen (implizit RK4)

Vanderpol–Oszillator

Abbruchkriterium: ‖km+1 − km‖ < 10e-12

0 10 20 30 40 50

−2

−1

0

1

2

3 h = 0.1

0 10 20 30 40 50

−2

−1

0

1

2

3 h = 0.076923

0 10 20 30 40 50

−2

−1

0

1

2

3 h = 0.0625

0 10 20 30 40 50

−2

−1

0

1

2

3 h = 0.052632

0 10 20 30 40 500

50

100

150

200

250Innere Iterationen

Zeit t

Anz

ahl d

er It

erat

ione

n

Beobachtung: Lokal stark unterschiedliche Anzahl von Iterationen.

– Typeset by FoilTEX – 7

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Innere Iterationen: Fixpunkt vs. Newton

Konvergenz der inneren Iterationen hangt von der Lipschitz–Konstante L undder Schrittweite h ab.

In der Praxis wird das Fixpunkt–Verfahren durch das Newton–Verfahren ersetzt:

k(m+1) = k(m) − (DF (k(m)))−1F (k(m))

0 20 405

100

200

Zeit

Inne

re It

erat

ione

n

h = 0.1

0 20 4005

10

20

30

40

Zeit

Inne

re It

erat

ione

n

h = 0.05

0 20 400

5

10

15

20

Zeit

Inne

re It

erat

ione

n

h = 0.025

0 20 400

5

10

15

Zeit

Inne

re It

erat

ione

n

h = 0.0125FixpunktNewton

– Typeset by FoilTEX – 8

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Kollokationsmethoden: Grundidee

Suche ein Polynom q ∈ Ps([ti, ti+1]), welches die DGL y′ = f(t, y) an denKollokationspunkten ti + αjh, j = 1 . . . s, 0 6 α1 < · · · < αs 6 1, exakt erfullt:

q(ti) = yi und q′(ti + αjh)∗= f (ti + αjh, q(ti + αjh)) ⇒ yi+1 := q(ti+1)

Seien Lj ∈ Ps−1([ti, ti+1]) die Lagrange–Int.Polynome (d.h. Lj(ti + αlh) = δjl),dann folgt fur θ ∈ [0, 1]: q′(ti+ θh) =

∑s

j=1 kjLj(ti+ θh), kj := q′(ti+αjh) und

q(ti + αjh) = yi +

∫ ti+αjh

ti

q′(t)dt = yi +

s∑

l=1

klh

∫ αj

0

Ll(t)dt

︸ ︷︷ ︸=:βjl

,

wobei Lj ∈ Ps−1([0, 1]) durch Lj(αl) = δjl definiert ist.

∗ ⇒

kj = f(

ti + αjh, yi + h∑s

l=1 βjlkl

)

yi+1 = q(ti + h) = yi +∑s

l=1 klh

∫ 1

0

Ll(t)dt

︸ ︷︷ ︸=:γl

.

– Typeset by FoilTEX – 9

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Kollokationsmethoden: Eigenschaften

• Die Kollokationsmethode mit den Kollokationspunkten ti + αjh, j = 1 . . . s istaquivalent zu einem Runge–Kutte–Verfahren, mit

βjl =

∫ αj

0

Ll(t)dt, γj =

∫ 1

0

Lj(t)dt.

• Das Verfahren ist konsistent.

• RKV mit Stufenzahl s > 5, die uber eine Kollokationsmethode definiert sind,sind implizit.

• Die maximale Ordnung eines durch Kollokation definierten RKV der Ordnungs ist gleich 2s.

• Fur alle Stufen s existiert genau ein implizites Verfahren der Ordnung 2s.

– Typeset by FoilTEX – 10

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Motivation fur adaptive Schrittweite

Ziel: Gegebene Genauigkeit mit moglichst minimalem Aufwand zu erreichen

Idee: Wahle lokal unterschiedliche Schrittweiten

Minimierungsproblem: Bestimme fur gegebene Anzahl der Schritte die Verteilungder Stutzstellen, so dass der Fehler minimal wird

Aber: Viel zu teuer

Ausweg: Bestimme die Schrittweite moglichst groß, so dass eine relative lokaleGenauigkeit erfullt ist

Umsetzung: Bestimme den Fehler durch Vergleich mit einer besseren Losung

• halbe Schrittweite

• hohere Ordnung

hneu =??

– Typeset by FoilTEX – 11

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Schrittweitensteuerung

In der Praxis:Sicherheitsfaktoren

αmin ∈ [0.2, 0.5], αmax ∈ [1.5, 2], β ∈ [0.8, 0.95]

Schatzung des lokalen Abbruchsfehlers

(i) Extrapolation: Vergleich h vs. h2 Auswertung

s(h) ≈ 1

2p − 1‖ yi+1︸︷︷︸

2×h2

− yi+1︸︷︷︸stand.

(ii) Eingebettete RK-Verfahren

s(h) ≈ ‖ yi+1︸︷︷︸

p

− yi+1︸︷︷︸

p

– Typeset by FoilTEX – 12

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Eingebettete RK: Bogacki–Shampine

Entspricht in Matlab dem Aufruf von ode23

012

12

34 0 3

4

1 29

13

49

p = 3 29

13

49

p = 2 724

14

13

18

k1 = f(ti, yi)

k2 = f(ti +12hi, yi +

12hik1)

k3 = f(ti +34hi, yi +

34hik2)

yi+1 = yi +29hik1 +

13hik2 +

49hik3

yi+1 = yi +724hik1 +

14hik2 +

13hik3 +

18hik4

First Same As Last

ki4 = f

(hi+1︷ ︸︸ ︷

ti + hi,

yi+1︷ ︸︸ ︷

yi + hi

(29k

i1 +

13k

i2 +

49k

i3

) )

= ki+11

• Die Methode hoherer Ordnung verwendet nicht den Koeffizienten k4!

• FSAL: ki4 wird fur die Auswertung von ki+11 benutzt ⇒ kleinerer Aufwand

– Typeset by FoilTEX – 13

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Eingebettete RK: Dormand–Prince DOPRI5(4)

Entspricht in Matlab dem Aufruf von ode45 (default ODE solver)

015

15

310

340

940

45

4445 −56

15329

89

193726561 −25360

2187644486561 −212

729

1 90173168 −355

33467325247

49176 − 5103

18656

1 35384 0 500

1113125192 −2187

67841184

p = 5 35384 0 500

1113125192 −2187

67841184 0

p = 4 517957600 0 7571

16695393640 − 92097

3392001872100

140

– Typeset by FoilTEX – 14

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Eingebettete RK: Dormand–Prince DOPRI8(7)

entnommen aus Prince, Dormand 1981

– Typeset by FoilTEX – 15

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Eingebettetes RK4(3)–Verfahren

y′ = −sgn(t)y, y(−1) = 1/e

−1 −0.5 0 0.5 10.2

0.4

0.6

0.8

1

t

y

exakte Loesung

−1 −0.5 0 0.5 110

−4

10−3

10−2

10−1

t

h

Knoten und lokale Schrittweite

TOL = 1e−5

Beobachtung: Algorithmus erkennt die Singularitat

– Typeset by FoilTEX – 16

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Eingebettetes RK4(3)–Verfahren

Vanderpol-Oszillator

TOL = 1e-1

0 10 20 30−3

−2

−1

0

1

2

3

t

x(t)

Lösung

0 5 10 15 20 25 30

10−4

10−3

10−2

10−1

100

th

Schrittweite

– Typeset by FoilTEX – 17

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Eingebettetes RK4(3)–VerfahrenRestringiertes Dreikorperproblem (1)

−1.5 −1 −0.5 0 0.5 1−1.5

−1

−0.5

0

0.5

1

1.5TOL=0.1−>#f=421

adaptiv RK4(3)

0 5 10 15

havg = 2.8 · 10−1

hmin= 3.0 · 10−5

hmax= 1.0 · 100

−1.5 −1 −0.5 0 0.5 1−1.5

−1

−0.5

0

0.5

1

1.5TOL=0.01−>#f=741

adaptiv RK4(3)

0 5 10 15

havg = 1.5 · 10−1

hmin= 1.7 · 10−5

hmax= 6.1 · 10−1

−1.5 −1 −0.5 0 0.5 1−1.5

−1

−0.5

0

0.5

1

1.5TOL=0.001−>#f=1809

adaptiv RK4(3)

0 5 10 15

havg = 6.5 · 10−2

hmin= 9.6 · 10−6

hmax= 3.3 · 10−1

– Typeset by FoilTEX – 18

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Eingebettetes RK4(3)–VerfahrenVanderpol–Oszillator

0 10 20 30 40 50−3

−2

−1

0

1

2

3TOL=10−>#f=2025

adaptiv RK4(3)

0 10 20 30 40 50

havg = 1.4 · 10−1

hmin= 7.1 · 10−7

hmax= 7.8 · 10−1

0 10 20 30 40 50−3

−2

−1

0

1

2

3TOL=1−>#f=2105

adaptiv RK4(3)

0 10 20 30 40 50

havg = 1.3 · 10−1

hmin= 4.5 · 10−7

hmax= 8.1 · 10−1

0 10 20 30 40 50−3

−2

−1

0

1

2

3TOL=0.1−>#f=2513

adaptiv RK4(3)

0 10 20 30 40 50

havg = 1.1 · 10−1

hmin= 2.8 · 10−7

hmax= 5.0 · 10−1

– Typeset by FoilTEX – 19

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Eingebettetes RK4(3)–VerfahrenHarmonischer Oszillator

0 0.5 1 1.5 2−0.05

0

0.05TOL=100−>#f=337

adaptiv RK4(3)

0 0.5 1 1.5 2

havg = 3.6 · 10−2

hmin= 1.7 · 10−3

hmax= 5.3 · 10−2

0 0.5 1 1.5 2−0.05

0

0.05TOL=10−>#f=477

adaptiv RK4(3)

0 0.5 1 1.5 2

havg = 2.4 · 10−2

hmin= 9.1 · 10−4

hmax= 2.7 · 10−2

0 0.5 1 1.5 2−0.05

0

0.05TOL=0.1−>#f=2357

adaptiv RK4(3)

0 0.5 1 1.5 2

havg = 5.3 · 10−3

hmin= 2.5 · 10−4

hmax= 6.7 · 10−3

– Typeset by FoilTEX – 20

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Runge–Kutta: aquidistant vs. adaptivbei ahnlicher Anzahl von Funktionsauswertungen

Restringiertes Dreikorperproblem

−40 −20 0 20 40 60−60

−40

−20

0

20

40

60#f = 1000

RK 4

−1.5 −1 −0.5 0 0.5 1−1.5

−1

−0.5

0

0.5

1

1.5#f = 741

adaptiv RK4(3)

Aquidistante Punkte Adaptive Punkte

– Typeset by FoilTEX – 21

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Runge–Kutta: aquidistant vs. adaptivbei ahnlicher Anzahl von Funktionsauswertungen

Restringiertes Dreikorperproblem

102

103

104

105

106

10−10

10−8

10−6

10−4

10−2

100

Feh

ler

adaptivaequidistant

Anzahl der Funktionsauswertungen

Standard RK4–Verfahren, eingebettetes RK4(3)–Verfahren

Fur einen Fehler in der Großenordnung von 1 km benotigt das aquidistante Verfahren RK4

mit 384000 Funktionsauswertungen uber 60mal mehr als das adaptive RK4(3) Verfahren (6261

Auswertungen).

– Typeset by FoilTEX – 22

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Fehlversuche: Einfluss des Faktors βVanderpol-Oszillator

TOL = 5 · 10−2, αmax = 2, αmin = 0.5

β = 0.85

0 5 10 15 20 25 30

10−4

10−3

10−2

10−1

100

t

h

Schrittweite

# Fehlversuche: 108# Schritte: 1149Aufwand: 1302

β = 0.9

0 5 10 15 20 25 30

10−4

10−3

10−2

10−1

100

t

h

Schrittweite

# Fehlversuche: 172# Schritte: 1095Aufwand: 1267

β = 0.95

0 5 10 15 20 25 30

10−4

10−3

10−2

10−1

100

t

h

Schrittweite

# Fehlversuche: 320# Schritte: 1012Aufwand: 1332

– Typeset by FoilTEX – 23

Prof. Dr. Barbara Wohlmuth

Lehrstuhl fur Numerische Mathematik

Fehlversuche: Einfluss der ToleranzVanderpol-Oszillator

β = 0.9, αmax = 2, αmin = 0.5

TOL = 5 · 10−1

0 5 10 15 20 25 30

10−4

10−3

10−2

10−1

100

t

h

Schrittweite

# Fehlversuche: 168# Schritte: 453Aufwand: 621

TOL = 5 · 10−2

0 5 10 15 20 25 30

10−4

10−3

10−2

10−1

100

t

h

Schrittweite

# Fehlversuche: 172# Schritte: 1095Aufwand: 1267

TOL = 5 · 10−3

0 5 10 15 20 25 30

10−4

10−3

10−2

10−1

100

t

h

Schrittweite

# Fehlversuche: 135# Schritte: 3112Aufwand: 3247

– Typeset by FoilTEX – 24