Studie van enkele families geavanceerde...

137
Faculteit Wetenschappen Vakgroep Toegepaste Wiskunde Studie van enkele families geavanceerde Runge-Kutta-methoden Lies Verleye Promotor : Prof. dr. M. Van Daele Masterproef ingediend tot het behalen van de academische graad van master in de wiskunde, afstudeerrichting toegepaste wiskunde Academiejaar 2009-2010

Transcript of Studie van enkele families geavanceerde...

Faculteit WetenschappenVakgroep Toegepaste Wiskunde

Studie van enkele familiesgeavanceerde

Runge-Kutta-methoden

Lies Verleye

Promotor : Prof. dr. M. Van Daele

Masterproef ingediend tot het behalen van de academische graad van master in dewiskunde, afstudeerrichting toegepaste wiskunde

Academiejaar 2009-2010

Voorwoord

Bij aanvang van dit werkstuk stond er me een jaar vol nieuwe inzichten en ontwikkelingente wachten. Deze masterproef omtrent numerieke methoden die hiervan het resultaat is,vormt een mooie afsluiting van vijf jaar studie van de mooie logica die wiskunde bezit.

Het afgelopen jaar liep niet altijd van een leien dakje. Ik wil dan ook van de gelegen-heid gebruik maken om mijn dank te betuigen aan de mensen die mij hierbij gesteundhebben. Eerst en vooral wil ik mijn familie, in het bijzonder mijn ouders, bedanken. Zijhebben mij gedurende heel mijn studie onvoorwaardelijk bijgestaan en de kans gegeven omop mijn manier een eigen plek in de samenleving te ontdekken. Vervolgens wil ik zeker ookmijn promotor prof. dr. Marnix Van Daele bedanken, waarop ik gedurende heel het jaarkon rekenen en die mij het vertrouwen gegeven heeft om dit werkstuk tot een goed eindete brengen. Ook dank ik prof. dr. Glad Deschrijver en prof. dr. Gerhard Wanner die mijvan nuttige informatie hebben voorzien. Als kers op de taart wil ik ook nog mijn vriendbedanken die mij mentaal gesteund heeft en mij de moed gegeven heeft om door te zetten.

De auteur geeft de toelating deze masterproef voor consultatie beschikbaar te stellen endelen van de masterproef te kopieren voor persoonlijk gebruik. Elk ander gebruik valt onderde beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichtingde bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze masterproef.

Juni 2010Lies Verleye

Inhoud

1 Inleiding 5

2 Runge-Kutta- en Collocatiemethoden 62.1 Runge-Kutta-methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1.1 Definitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62.2 Collocatiemethoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.2.1 Definitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.2 Orde van een collocatiemethode . . . . . . . . . . . . . . . . . . . . . 82.2.3 Voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2.4 Toepassing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Discontinue Collocatiemethoden 203.1 Definitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.2 Orde van een discontinue collocatiemethode . . . . . . . . . . . . . . . . . . 243.3 Voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.4 Toepassing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3.4.1 Vierde orde Lobatto IIIB-methode . . . . . . . . . . . . . . . . . . . 293.4.2 Zesde orde Lobatto IIIB-methode . . . . . . . . . . . . . . . . . . . . 31

4 Gepartitioneerde Runge-Kutta-methoden 324.1 Definitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.2.1 Symplectische Euler-methode . . . . . . . . . . . . . . . . . . . . . . 324.2.2 Methode van Stormer/Verlet . . . . . . . . . . . . . . . . . . . . . . . 33

4.3 Toepassingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.3.1 De slingerbeweging . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.3.2 Het Lotka-Volterra model . . . . . . . . . . . . . . . . . . . . . . . . 40

4.4 Ordevoorwaarden: Een schets . . . . . . . . . . . . . . . . . . . . . . . . . . 424.4.1 Manuele uitwerking . . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.4.2 Uitwerking met Maple . . . . . . . . . . . . . . . . . . . . . . . . . . 444.4.3 Conclusie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

4.5 Het paar Lobatto IIIA-IIIB . . . . . . . . . . . . . . . . . . . . . . . . . . . 474.5.1 Orde van het paar Lobatto IIIA-IIIB . . . . . . . . . . . . . . . . . . 484.5.2 Toepassing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

4.6 Nystrommethoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.6.1 Definitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 584.6.2 Voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604.6.3 Toepassing: de slingerbeweging herbekeken. . . . . . . . . . . . . . . 61

5 Toegevoegde methode 635.1 Definitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 635.2 Orde en foutconstante van de toegevoegde methode . . . . . . . . . . . . . . 64

5.2.1 Stelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645.2.2 Voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

INHOUD 3

6 Compositiemethoden 686.1 Definitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686.2 Orde van een compositiemethode . . . . . . . . . . . . . . . . . . . . . . . . 68

6.2.1 Stelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 686.2.2 Voorbeelden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

6.3 Toepassingen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746.3.1 Compositie met de trapeziumregel . . . . . . . . . . . . . . . . . . . . 746.3.2 Compositie met de vierde orde methode Lobatto IIIA . . . . . . . . . 82

6.4 Compositie met de methode van Stormer/Verlet . . . . . . . . . . . . . . . . 846.5 Stabiliteitsgebied van de compositiemethode van een symmetrische methode 896.6 Symmetrische versus niet-symmetrische numerieke methoden . . . . . . . . . 90

6.6.1 Compositie met de methode Lobatto III . . . . . . . . . . . . . . . . 916.6.2 Lobatto III versus Lobatto IIIA . . . . . . . . . . . . . . . . . . . . . 92

6.7 Compositie met even opsplitsing (s=even) . . . . . . . . . . . . . . . . . . . 936.7.1 De trapeziumregel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 936.7.2 De methode Lobatto IIIA . . . . . . . . . . . . . . . . . . . . . . . . 94

6.8 De waarden γi (i = 1, ..., 5) anders bekeken . . . . . . . . . . . . . . . . . . . 946.8.1 Optimalisatieprobleem . . . . . . . . . . . . . . . . . . . . . . . . . . 946.8.2 Voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

6.9 Compositie met de toegevoegde methode . . . . . . . . . . . . . . . . . . . . 966.9.1 Orde van een compositiemethode met de toegevoegde methode . . . . 976.9.2 Voorbeeld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986.9.3 Toepassing: de valbeweging . . . . . . . . . . . . . . . . . . . . . . . 98

7 Splittingmethoden 1047.1 De Lie-Trotter splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

7.1.1 Definitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1047.1.2 Orde van de Lie-Trotter splitting . . . . . . . . . . . . . . . . . . . . 106

7.2 De Strang splitting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087.2.1 Definitie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1087.2.2 Orde van de Strang splitting . . . . . . . . . . . . . . . . . . . . . . . 109

7.3 Toepassing: De slingerbeweging . . . . . . . . . . . . . . . . . . . . . . . . . 1107.3.1 De Lie-Trotter splitting versus de symplectische Euler-methode . . . 1117.3.2 De Strang splitting versus de methode van Stormer/Verlet . . . . . . 112

7.4 Toepassing: De harmonische oscillator . . . . . . . . . . . . . . . . . . . . . 1127.5 Splitting versus compositie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

7.5.1 Verband tussen splitting en compositie met de toegevoegde methode . 1167.5.2 Ordeverhoging door middel van splitting . . . . . . . . . . . . . . . . 1187.5.3 Toepassing: De harmonische oscillator . . . . . . . . . . . . . . . . . 118

8 Algemeen besluit 121

INHOUD 4

A Appendices 122A.1 Stelling van Rolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122A.2 Variation of constants formula . . . . . . . . . . . . . . . . . . . . . . . . . . 122A.3 Ordevoorwaarden gepartitioneerde Runge-Kutta-methoden . . . . . . . . . . 123A.4 Compositie: bepaling γ1, γ2 en γ3 . . . . . . . . . . . . . . . . . . . . . . . . 129A.5 Symmetrie van de compositiemethode met de trapeziumregel . . . . . . . . . 130A.6 Symmetrie bij compositie met de toegevoegde methode . . . . . . . . . . . . 132A.7 Oplossen van een optimalisatieprobleem met de Lagrange-multiplicator . . . 135

5

1 Inleiding

De wondere wereld van differentiaalvergelijkingen is al lang geen onbekend terrein meervoor de wetenschap. In verschillende takken worden deze vergelijkingen aangewend omfenomenen passend te modelleren en zo vraagstukken op te lossen. Omwille van het grotetoepassingsgebied dringt zich hiervoor een algemene oplossingsmethode op, maar niet elkedifferentiaalvergelijking is wiskundig oplosbaar. Hierdoor is de nood aan een numeriekeaanpak ontstaan om toch een goede benadering van de oplossing te verkrijgen.

Al geruime tijd voor het onstaan van de computer hielden beroemde wiskundigen zichbezig met de studie van numerieke methoden. Denk hierbij onder andere aan Carl Fried-rich Gauss (1777-1855), Isaac Newton (1643-1727), Carl David Tolme Runge (1856-1927),Wilhelm Martin Kutta (1867-1944), ... , die heel veel betekend hebben voor de numeriekewiskunde. Door veel rekenwerk met de hand te verrichten, slaagde men erin om de oplos-sing van een differentiaalvergelijking te benaderen. Toen de computer zijn intrede deed,ontstond er een duidelijke evolutie in de numerieke wiskunde. Zo kwam er aandacht voorde iets ingewikkeldere numerieke methoden en konden benaderingen nauwkeuriger gemaaktworden. Kortom er ontstond een mooie samensmelting tussen numerieke wiskunde en decomputer, iets wat ook in dit werk merkbaar zal zijn.

Er zijn verschillende klassen van numerieke methoden aanwendbaar, elk met specifieke ei-genschappen. Bij het numeriek oplossen van een probleem is het belangrijk om voor de pas-sende numerieke methode te kiezen die het gewenste resultaat levert. In de hierop volgendehoofdstukken worden eerst de veel gebruikte Runge-Kutta-methoden kort herhaald omdaarna een belangrijke subklasse van methoden, namelijk de collocatiemethoden, van ietsdichterbij te bekijken. Vervolgens worden de discontinue collocatiemethoden aangehaaldwaarvan ook enkele eigenschappen bewezen worden. Nadien wordt uitvoerig ingegaan opde gepartitioneerde Runge-Kutta-methoden en wordt het begrip toegevoegde methode nogeens aangehaald om uiteindelijk te komen tot een gedetailleerde bespreking van compositie-en splittingmethoden. Tal van eigenschappen en voorbeelden worden aangehaald om zo eenduidelijk beeld te krijgen van de bovenstaande vermelde methoden.

6

2 Runge-Kutta- en Collocatiemethoden

2.1 Runge-Kutta-methoden

2.1.1 Definitie

Zoals eerder vermeld, zijn Runge-Kutta-methoden een belangrijke klasse van methodenbinnen de numerieke wiskunde. Deze klasse van methoden werd al uitvoerig besprokenin de cursus ’Numerieke methoden voor stelsels differentiaalvergelijkingen’ (referentie [4]).Hieronder volgt een korte opfrissing van de definitie van een Runge-Kutta-methode.

2.1 Definitie. Een s-traps Runge-Kutta-methode voor het probleem

y = f(t, y), y(t0) = y0,

met f : R× Rl → Rl voldoende glad, is van de vorm

ki = f

(tn + cih, yn + h

s∑j=1

aijkj

), i = 1, ..., s,

yn+1 = yn + hs∑i=1

biki.

Een Runge-Kutta-methode wordt dus volledig bepaald door de coefficienten aij, bi en ci(i, j = 1, ..., s). Vandaar ook de volgende voorstelling voor de methode, algemeen bekendals de Butcher-tableau:

c1 a11 a12 · · · a1s

c2 a21 a22 · · · a2s...

......

...cs as1 as2 · · · ass

b1 b2 · · · bs

In het verdere verloop van dit werk zal dikwijls verondersteld worden dat

ci =s∑j=1

aij, i = 1, ..., s,

een voorwaarde die gekend is als de rijsom-voorwaarde.

Voor voorbeelden en eigenschappen omtrent Runge-Kutta-methoden wordt verwezen naarreferentie [4].

2.2 Collocatiemethoden

Collocatiemethoden zijn vaak gebruikte methoden in de numerieke wiskunde die een sub-klasse van de Runge-Kutta-methoden vormen.Beschouw opnieuw het volgende beginwaardeprobleem

y = f(t, y), y(t0) = y0, (1)

2.2 Collocatiemethoden 7

met f : R × Rl → Rl voldoende glad, dan bestaat een collocatiemethode erin om eenverzameling punten, de zogenaamde collocatiepunten, en een functie, de zogenaamde col-locatieveelterm, te kiezen zodanig dat die functie in de collocatiepunten zo goed mogelijkde onbekende functie y(t) benadert. Ook deze klasse van methoden kwam al aan bod inde cursus ’Numerieke methoden voor stelsels differentiaalvergelijkingen’ (referentie [4]). Indeze sectie wordt er iets dieper op ingegaan en worden enkele eigenschappen van dichterbijbestudeerd.

2.2.1 Definitie

Eerst wordt de definitie aangehaald van deze speciale Runge-Kutta-methoden.

2.2 Definitie. Zij c1, ..., cs s verschillende reele getallen (meestal geldt 0 ≤ ci ≤ 1). Decollocatieveelterm u(t) is een veelterm van de graad s waarvoor geldt

u(t0) = y0,

u(t0 + cih) = f(t0 + cih, u(t0 + cih)), i = 1, ..., s.

De numerieke oplossing van de collocatiemethode is dan gedefinieerd door y1 = u(t0 + h).

Zoals eerder vermeld, is de klasse van collocatiemethoden een subklasse van de Runge-Kutta-methoden. Dit is een gevolg van de onderstaande stelling die in detail bewezen wordtin de bovenvermelde cursus.

2.3 Stelling. De collocatiemethode uit definitie (2.2) is equivalent met een s-traps Runge-Kutta-methode met coefficienten

aij =

ˆ ci

0

lj(τ)dτ, bj =

ˆ 1

0

lj(τ)dτ, (2)

met lk(τ) de Lagrange veelterm, i.e.

lk(τ) =s∏

i=1,i 6=k

τ − cick − ci

.

Bewijs. zie cursus ’Numerieke methoden voor stelsels differentiaalvergelijkingen’ (referentie[4]).

De relaties (2) zijn equivalent met

C(q) :s∑j=1

aijck−1j =

ckik, k = 1, ..., q, i = 1, ..., s, (3)

B(p) :s∑j=1

bjck−1j =

1

k, k = 1, ..., p, (4)

met q = s en p = s.

2.2 Collocatiemethoden 8

2.2.2 Orde van een collocatiemethode

Wat natuurlijk een belangrijke rol speelt bij de keuze van de te gebruiken numerieke me-thode is de orde van een methode. Hoe hoger de orde, hoe beter de numerieke oplossingde exacte oplossing van de differentiaalvergelijking zal benaderen. Om vast te stellen welkeorde een collocatiemethode heeft, wordt er eerst een hulpstelling aangehaald die iets verteltover de mate waarin de collocatieveelterm u(t) de exacte oplossing benadert.

2.4 Hulpstelling. De collocatieveelterm u(t) is een benadering van de orde s van de exacteoplossing van (1) op het beschouwde interval, dit betekent

‖y(t)− u(t)‖ ≤ C1hs+1 voor t ∈ [t0, t0 + h] (5)

voor voldoende kleine h > 0.Meer nog geldt

‖y(k)(t)− u(k)(t)‖ ≤ C2hs+1−k voor t ∈ [t0, t0 + h], k = 0, ..., s (6)

voor voldoende kleine h > 0.

Bewijs. Stel u(t) de collocatieveelterm.De interpolatieformule van Lagrange geeft

u(t0 + τh) =s∑i=1

u(t0 + cih)li(τ)

en wegens definitie 2.2 is dit gelijk aan

u(t0 + τh) =s∑i=1

f(t0 + cih, u(t0 + cih))li(τ). (7)

Voor de exacte oplossing geldt

y(t0 + τh) =s∑i=1

f(t0 + cih, y(t0 + cih))li(τ) + hsE(τ, h), (8)

waarbij de laatste term de interpolatiefout is.Bovenstaande uitdrukkingen aftrekken, levert

y(t0 + τh)− u(t0 + τh) =s∑i=1

4fili(τ) + hsE(τ, h), (9)

waarbij 4fi = f(t0 + cih, y(t0 + cih))− f(t0 + cih, u(t0 + cih)) (zie figuur 1).Voor de interpolatiefout geldt

hsE(τ, h) =f (s)(ξ, y(ξ))

s!

s∏i=1

(t− ti)

=f (s)(ξ, y(ξ))

s!

s∏i=1

h(τ − ci)

=y(s+1)(ξ)

s!hs

s∏i=1

(τ − ci),

2.2 Collocatiemethoden 9

Figuur 1: Voorstelling van u(t0 + τh) en y(t0 + τh), waarbij 4fi = f(t0 + cih, y(t0 + cih))−f(t0 + cih, u(t0 + cih)) en hsE de interpolatiefout.

met ξ ∈ [t0, t0 + h] en waarbij de tweede gelijkheid geldt wegens t = t0 + τh en ti = t0 + cihmet 0 ≤ τ, ci ≤ 1. De factor hs kan weggedeeld worden zodat

‖E(τ, h)‖ =‖y(s+1)(ξ)‖

s!

∥∥∥∥∥s∏i=1

(τ − ci)

∥∥∥∥∥≤ ‖y(s+1)(ξ)‖

s!,

waarbij de ongelijkheid geldig is wegens ‖∏s

i=1(τ − ci)‖ ≤ 1 door 0 ≤ τ, ci ≤ 1.Er geldt dus

‖E(τ, h)‖ ≤ maxt∈[t0,t0+h]

‖y(s+1)(t)‖s!

,

m.a.w. de functie E(τ, h) is begrensd.

Uitdrukking (8) k − 1 keer afleiden, levert

hk−1y(k)(t0 + τh) =s∑i=1

f(t0 + cih, y(t0 + cih))l(k−1)i (τ) + hsE(k−1)(τ, h). (10)

De veeltermfunctie∑s

i=1 f(t0 + cih, y(t0 + cih)) l(k−1)i (τ) kan dus gezien worden als de inter-

polatieveelterm van hk−1y(k)(t0 +τh) in s−k+1 punten die liggen in het interval [t0, t0 +h].Dit kan eenvoudig aangetoond worden door de stelling van Rolle (zie Appendix A.1) te ge-bruiken1.Er geldt dus ook

‖E(k−1)(τ, h)‖ ≤ maxt∈[t0,t0+h]

‖y(s+1)(t)‖(s− k + 1)!

,

1Stel dat de interpolatiefout bij y gelijk aan nul is in s punten. Wegens de stelling van Rolle is er dantussen elke twee van die s punten een punt te vinden waarvoor geldt dat de afgeleide van de fout bij ygelijk aan nul is. Dit betekent dat de fout bij y(2) gelijk is aan nul in s − 1 punten, zodat uiteindelijk defout bij y(k) gelijk aan nul is in s− k+ 1 punten die nog steeds in het oorspronkelijke interval gelegen zijn.

2.2 Collocatiemethoden 10

m.a.w. ook de afgeleide functies van E(τ, h) zijn begrensd.

Uitdrukking (9) integreren naar de tijd over het interval [0, τ ], levert

1

h(y(t0 + τh)− u(t0 + τh))− 1

h(y(t0)− u(t0)) =

s∑i=1

4fiˆ τ

0

li(σ)dσ + hsˆ τ

0

E(σ, h)dσ,

waarbij 4fi = f(t0 + cih, y(t0 + cih))− f(t0 + cih, u(t0 + cih)). Wegens definitie 2.2 geldty0 = u(t0) zodat in de bovenstaande gelijkheid de term 1

h(y(t0)− u(t0)) wegvalt.

Linker- en rechterlid vermenigvuldigen met h en de Lipschitzcontinuıteit van f(t, y(t)) toe-passen, levert

‖y(t0 + τh)− u(t0 + τh)‖ ≤ hs∑i=1

‖4fi‖∥∥∥∥ˆ τ

0

li(σ)dσ

∥∥∥∥+ hs+1

∥∥∥∥ˆ τ

0

E(σ, h)dσ

∥∥∥∥≤ h

s∑i=1

L ‖y(t0 + cih)− u(t0 + cih)‖∥∥∥∥ˆ τ

0

li(σ)dσ

∥∥∥∥+hs+1

∥∥∥∥ˆ τ

0

E(σ, h)dσ

∥∥∥∥ .Stel nu

∑si=1

∥∥´ τ0li(σ)dσ

∥∥ = D1 en∥∥´ τ

0E(σ, h)dσ

∥∥ = C1 (dit laatste geldt wegens E(τ, h)begrensd), dan volgt dat

maxt∈[t0,t0+h]

‖y(t)− u(t)‖ ≤ hD1L maxt∈[t0,t0+h]

‖y(t)− u(t)‖+ C1hs+1,

zodat voor voldoende kleine h > 0 geldt

‖y(t)− u(t)‖ ≤ C1hs+1 voor t ∈ [t0, t0 + h],

wat precies uitdrukking (5) is die moest bewezen worden.

Om uitdrukking (6) aan te tonen, wordt opnieuw van de uitdrukking (9) vertrokken. Doordeze uitdrukking k − 1 keer af te leiden, wordt verkregen dat

hk−1(y(k)(t0 + τh)− u(k)(t0 + τh)

)=

s∑i=1

4fil(k−1)i (τ) + hsE(k−1)(τ, h).

Linker- en rechterlid met h1−k vermenigvuldigen en de Lipschitzcontinuıteit van f(t, y(t))toepassen, levert

‖y(k)(t0 + τh)− u(k)(t0 + τh)‖ ≤ h1−ks∑i=1

‖4fi‖∥∥∥l(k−1)i (τ)

∥∥∥+ hs+1−k ∥∥E(k−1)(τ, h)∥∥

≤ h1−ks∑i=1

L ‖y(t0 + cih)− u(t0 + cih)‖∥∥∥l(k−1)i (τ)

∥∥∥+hs+1−k ∥∥E(k−1)(τ, h)

∥∥ .

2.2 Collocatiemethoden 11

Stel nu∑s

i=1

∥∥∥l(k−1)i (τ)

∥∥∥ = D2 en∥∥E(k−1)(τ, h)

∥∥ = C2 (dit laatste geldt wegens E(k−1)(τ, h)

begrensd), dan volgt dat

maxt∈[t0,t0+h]

‖y(k)(t)− u(k)(t)‖ ≤ h1−kD2L maxt∈[t0,t0+h]

‖y(t)− u(t)‖+ C2hs+1−k

(5)

≤ h1−kD2LC1hs+1 + C2h

s+1−k

= D2LC1hs+2−k + C2h

s+1−k,

zodat voor voldoende kleine h > 0 geldt

‖y(k)(t)− u(k)(t)‖ ≤ C2hs+1−k voor t ∈ [t0, t0 + h],

wat precies uitdrukking (6) is die moest bewezen worden.

Aan de hand van bovenstaande bewezen hulpstelling, kan er een conclusie getrokkenworden over de orde van een collocatiemethode. Deze wordt in de zogenaamde ’Supercon-vergentiestelling’ bewezen.

2.5 Stelling (Superconvergentiestelling collocatiemethoden). Als aan de voorwaarde B(p)voldaan is voor een zekere p ≥ s, dan zal de collocatiemehode in kwestie van de orde p zijn.Dit betekent dat de collocatiemethode dezelfde orde heeft als de onderliggende kwadratuur-formule.

Bewijs. Stel u(t) de collocatieveelterm van de beschouwde collocatiemethode. Deze collo-catieveelterm kan gezien worden als de oplossing van een geperturbeerde differentiaalver-gelijking

u(t) = f(t, u(t)) + δ(t),

waarbij δ(t) de perturbatiefout is. Hiervan differentiaalvergelijking (1) aftrekken, levert

u(t)− y(t) = f(t, u(t))− f(t, y(t)) + δ(t), (11)

met

f(t, u(t)) = f(t, y(t) + u(t)− y(t))

= f(t, y(t)) + (u(t)− y(t))∂f

∂y

∣∣∣∣y=y(t)

+(u(t)− y(t))2

2!

∂2f

∂y2

∣∣∣∣y=y(t)

+O(‖u(t)− y(t)‖3)

= f(t, y(t)) + (u(t)− y(t))∂f

∂y

∣∣∣∣y=y(t)

+ r(t),

waarbij r(t) := (u(t)−y(t))2

2!∂2f∂y2

∣∣∣y=y(t)

+O(‖u(t)− y(t)‖3).

Door voorgaande uitdrukking in (11) te substitueren, volgt

u(t)− y(t) = f(t, y(t)) + (u(t)− y(t))∂f

∂y

∣∣∣∣y=y(t)

+ r(t)− f(t, y(t)) + δ(t)

= (u(t)− y(t))∂f

∂y(t, y(t)) + r(t) + δ(t).

2.2 Collocatiemethoden 12

De ’Variation of constants formula’ (zie appendix A.2) gebruiken met z(t) = u(t) − y(t),A(t) = ∂f

∂y(t, y(t)) en g(t) = r(t) + δ(t), levert

y1 − y(t1) = u(t0 + h)− y(t0 + h)

= R(t0 + h, t0)(u(t0)− y0) +

ˆ t0+h

t0

R(t0 + h, v) (δ(v) + r(v)) dv

=

ˆ t0+h

t0

R(t0 + h, v) (δ(v) + r(v)) dv,

waarbij gebruik gemaakt wordt van u(t1) = y1 en u(t0) = y0 (zie definitie 2.2).

(i) Eerst wordt de integraal ˆ t0+h

t0

R(t0 + h, v)r(v)dv

beschouwd. Wegens de definitie van r(t) geldt dat r(t) = O(‖u(t) − y(t)‖2). Uituitdrukking (5) van hulpstelling 2.4 volgt dus dat de functie r(t) zich gedraagt alsO((hs+1)2) = O(h2s+2) voor t ∈ [t0, t0 + h]. Er wordt geıntegreerd over een intervalmet lengte h waardoor gans de integraal zich gedraagt als

ˆ t0+h

t0

R(t0 + h, v)r(v)dv = O(h2s+3).

(ii) Vervolgens wordt de integraal

ˆ t0+h

t0

R(t0 + h, v)δ(v)dv

beschouwd. Op deze integraal de kwadratuurformule met gewichten bi toepassen,levert

ˆ t0+h

t0

R(t0 + h, v)δ(v)dv = hs∑i=1

biR(t0 + h, t0 + cih)δ(t0 + cih) + fout.

Bovendien geldt er dat u(t) de collocatiepolynoom is van de beschouwde collocatie-methode. Dit betekent dat (zie definitie 2.2)

u(t0 + cih) = f(t0 + cih, u(t0 + cih)), i = 1, ..., s,

m.a.w. de perturbatiefout δ verdwijnt in de collocatiepunten, dus δ(t0 + cih) = 0 voori = 1, ..., s. Er geldt dus

ˆ t0+h

t0

R(t0 + h, v)δ(v)dv = fout.

Doordat de kwadratuurvoorwaarde B(p) geldt, gedraagt de fout zich als O(hp+1).Deze is dus van de vorm

fout = C(R(t0 + h, ν)δ(ν))(p)hp+1.

2.2 Collocatiemethoden 13

Uit uidrukking (11) volgt

δ(t) = u(t)− y(t)− (f(t, u(t))− f(t, y(t))).

Door de Lipschitzcontinuıteit van f , geldt

‖δ(t)‖ ≤ ‖u(t)− y(t)‖+ ‖f(t, u(t))− f(t, y(t))‖≤ ‖u(t)− y(t)‖+ L‖u(t)− y(t)‖≤ C2h

s + LC1hs+1,

waarbij de laatste ongelijkheid volgt uit hulpstelling 2.4. Hieruit kan dus beslotenworden dat (R(t0 + h, ν)δ(ν))(p) begrensd is voor voldoende kleine h.Er geldt dus ˆ t0+h

t0

R(t0 + h, v)δ(v)dv = O(hp+1).

Uit (i) en (ii) volgt dat

y1 − y(t1) =

ˆ t0+h

t0

R(t0 + h, v) (δ(v) + r(v)) dv

= O(hp+1) +O(h2s+3). (12)

De hoogst mogelijke orde van een kwadratuurformule met s knooppunten is 2s, zodatp ≤ 2s. Er geldt dus

y1 − y(t1) = O(hp+1),

wat moest aangetoond worden.

Er werd aangetoond dat een collocatiemethode dezelfde orde heeft als de onderliggendekwadratuurformule. Het betreft een belangrijke stelling die jammer genoeg tot nu toe enkelvan toepassing is op de klasse van collocatiemethoden.

2.2.3 Voorbeeld

Een gekend voorbeeld van collocatiemethoden zijn de Lobatto-methoden Lobatto IIIA.De Lobatto-kwadratuurformule is van de vormˆ tn+1

tn

f(t)dt = h

s∑j=1

wj2f (tn + cj)−

h

2

s(s− 1)322s−1[(s− 2)!]4

(2s− 1)[(2s− 2)!]3f 2s−2(ζ),

met tn < ζ < tn+1, cj (1 ≤ j ≤ s) de nulpunten van de veelterm

ds−2

dxs−2

(xs−1 (x− 1)s−1) (13)

en

w1 =2

s(s− 1),

wj =2

s(s− 1)[Ps−1(2cj − 1)]2, 1 < j < s,

ws =2

s(s− 1).

2.2 Collocatiemethoden 14

Hierbij is Pn(t) de Gauss-Legendre-veelterm, gedefinieerd door

P0(t) = 1,

Pn(t) =(−1)n

2nn!

dn

dtn[(1− t2)n], n ≥ 1,

en voor de gewichten geldt er bj =wj

2. Wegens de superconvergentiestelling hebben Lobatto-

methoden de orde 2s − 2, want de onderliggende kwadratuurformule heeft deze orde. Ditis de hoogst mogelijke orde waarbij c1 = 0 en cs = 1.Voor s = 3 ziet de Butcher-tableau van de vierde orde collocatiemethode Lobatto IIIA erals volgt uit

0 0 0 0

12

524

13

−124

1 16

23

16

16

23

16

Dit valt gemakkelijk af te leiden uit bovenstaande formules, rekening houdend met deuitdrukking C(3) die geldt bij de collocatiemethode Lobatto IIIA voor het berekenen vande waarden aij (i, j = 1, 2, 3).

2.2.4 Toepassing

Dergelijke methoden kunnen ook opgesteld worden met het computerprogramma Maple omvervolgens toe te passen op een differentiaalvergelijking met bijhorende beginwaarde. Decomputer laat ons toe om dit op een efficiente, doeltreffende manier te doen, zonder al teveel rekenwerk te moeten verrichten. Hieronder wordt een toepassing aangehaald van devierde orde Lobatto IIIA-methode op een vooropgesteld beginwaardeprobleem.

Beschouw het beginwaardeprobleem

y = e2t + 2y − 2, y(0) = 1, (14)

waarvan de exacte oplossing gelijk is aan

y(t) = te2t + 1.

Nu kan de beschouwde Lobatto-methode in Maple gegenereerd worden om vervolgens debenadering van die methode van de exacte oplossing van ons probleem eens van dichterbijte bekijken en aan te tonen dat deze methode van de vierde orde is. De hieronder te vindenMaple-code haalt twee manieren aan om in Maple een collocatiemethode te genereren.De eerste manier steunt op de eerder geziene stelling 2.3 waarbij aan de hand van voorop-gestelde waarden van c1, c2 en c3 de coefficienten aij en bj (i, j = 1, 2, 3) berekend wordenvia de uitdrukkingen (2). De vooropgestelde waarden van c1, c2 en c3 zijn voor de Lobatto-methoden de nulpunten van de veelterm (13).

2.2 Collocatiemethoden 15

> lobatto:=(x,s)->if s>2 then

> diff(x^(s-1)*(1-x)^(s-1),x$s-2) else x*(x-1) fi:

> kleinerdan:=proc(x,y);

> if Re(evalf(x))<Re(evalf(y)) then RETURN(true) else RETURN(false) fi:

> end:

> sorteer := lst-> sort(lst,kleinerdan):

> s:=3:c:=array(sorteer([solve(lobatto(x,s))]));

> a:=array(1..s,1..s): b:=array(1..s):

> L:=proc (j,t)

> local i,expr;

> expr:=subs(u=c[j],product((t-c[i])/(u-c[i]),i=1..s)*(u-c[j])/(t-c[j])):

> RETURN (expr):

> end:

> a value:=(i,j)->simplify(integrate(L(j,t),t=0..c[i])):

> b value:=j->simplify(integrate(L(j,t),t=0..1)):

> for i from 1 to s do

> for j from 1 to s do a[i,j]:=a value(i,j) od:

> b[i] := b value(i):

> od:

> print(a,b,c); 0 0 0

524

13

−124

16

23

16

, [ 16

23

16

],[

0 12 1

]

Een tweede manier om een collocatiemethode te genereren in Maple is door de coefficientenaij en bj (i, j = 1, 2, 3) te berekenen aan de hand van de uitdrukkingen C(s) en B(s) (zie(3) en (4)).

> veronderstelling C:=proc(q,s)

> local j,lst,k,i,eq;

> lst:=;

> for k from 1 to q do

> for i from 1 to s do

> eq:=c[i]^k/k=sum(a[i,j]*c[j]^(k-1),j=1..s);

> lst:=lst union eq:

> od;

> od;

> RETURN(lst);

> end:

> veronderstelling B:=proc (p,s)

> local lst,k,i,eq;

> lst:=;

2.2 Collocatiemethoden 16

> for k from 1 to p do

> eq:=1/k=sum(b[i]*c[i]^(k-1),i=1..s);

> lst:=lst union eq:

> od;

> RETURN(lst);

> end:

> LobattoIIIA :=proc (s)

> global a,b,c;

> local opla,oplb,i,j,b waarden,a waarden,x;

> c:=array(sorteer([solve(lobatto(x,s))])):a:=array(1..s,1..s):b:=array(1..s):

> a waarden:=seq(seq(a[i,j],i=1..s),j=1..s):b waarden:=seq(b[i],i=1..s):

> oplb:=solve(veronderstelling B(s,s),b waarden):

> opla:=solve(veronderstelling C(s,s),a waarden):

> for i from 1 to s do

> b[i]:=expand(subs(oplb,b[i])):

> for j from 1 to s do a[i,j]:=expand(subs(opla,a[i,j])) od:

> od;

> RETURN(print(a,b,c));

> end:

> LobattoIIIA(3); 0 0 0

524

13

−124

16

23

16

, [ 16

23

16

],[

0 12 1

]

Om nu de orde van de 3-traps Lobatto IIIA-methode te bepalen, wordt een grafiek ge-construeerd die het verband weergeeft tussen de fout en de stapgrootte h voor een zekerewaarde van t. Op deze grafiek wordt de logaritme met grondtal 2 van de fout ten opzichtevan het tegenstelde van de logaritme met grondtal 2 van de stapgrootte h voorgesteld. Ergeldt namelijk dat de absolute waarde van de richtingscoefficient van de kleinste kwadra-ten benadering2 van de verkregen grafiek de orde van de gebruikte methode zal benaderen3.

Om een dergelijke grafiek te kunnen construeren, wordt de methode ’meth1’ gecreeerddie een impliciete Runge-Kutta-methode toepast. In de onderstaande code wordt iteratieftewerk gegaan om de waarden k1, k2 en k3 te bepalen. De iteratie gaat door totdat via demethode van Newton-Raphson bij benadering stabiele ki-waarden gevonden worden.

> meth1:=proc(f,h,t 0,y 0,k 0,A,B,C)

> local del,i,j,x,n;

> global K, y 1,J,F;

2Dit is de rechte die de verkregen grafiek het beste benadert.3De uitleg hiervoor is ook aan bod gekomen in de cursus ’Numerieke methoden voor stelsels differenti-

aalvergelijkingen’ (referentie [4]).

2.2 Collocatiemethoden 17

> K:=Matrix(3,1):

> for j from 1 to 3 do

> K[j,1]:=k 0:

> end do;

> x:=array(1..3):del:=Matrix(3,1,[1,1,1]);

> while (evalf(Norm(del)) > 10^(-6)) do

> J:=Jacobian([x[1]-f(t 0+C[1]*h,y 0+h*add(A[1,n]*x[n], n=1..3)),x[2]-f(t 0+C[2]*h,y 0+h*add(A[2,n]*x[n], n=1..3)),x[3]-f(t 0+C[3]*h,y 0+h*add(A[3,n]*x[n], n=1..3))],[x[1],x[2],x[3]]=[K[1,1],K[2,1],K[3,1]]):

> F:=Matrix(3,1,[K[1,1]-f(t 0+C[1]*h,y 0+h*add(A[1,n]*K[n,1], n=1..3)),K[2,1]-f(t 0+C[2]*h,y 0+h*add(A[2,n]*K[n,1], n=1..3)),K[3,1]-f(t 0+C[3]*h,y 0+h*add(A[3,n]*K[n,1], n=1..3))]):

> del:=evalf(LinearSolve(J,-F));K:=K+del:

> end do;

> y 1:=y 0+h*add(B[m]*K[m,1], m=1..3);

> return(y 1);

> end:

Via de onderstaande code wordt met de Lobatto IIIA-methode een benadering van y(t)in t = 1 berekend. Dit gebeurt voor respectievelijk de stapgroottes 1

2, 1

4, 1

8, 1

16, 1

32, 1

64. Voor

elk van deze stapgroottes wordt ook de absolute fout in t = 1 bepaald om aan de handdaarvan de nodige grafiek te construeren.

> f:=(t,y)-> exp(2*t)+2*y-2*1:yexact:=t->t*exp(2*t)+1:

> ynumC0:=array(1..6):ynum0:=array(0...64):ynum0[0]:=yexact(0):

> for j from 1 to 6 do

> t:=0:

> for i from 1 to 2^(j) do

> ynum0[i]:=meth1(f,(1/2)^(j),t,ynum0[i-1],1,a,b,c);

> t:=t+(1/2)^(j):

> end:

> ynumC0[j]:=ynum0[2^(j)];

> end:

> print(ynumC0);

[8.337090688, 8.385958277, 8.388864875, 8.389044181, 8.389055348, 8.389056039]

> FOUTC0:=array(1..6):

> for i from 1 to 6 do

> FOUTC0[i]:=abs(evalf(yexact(1))-ynumC0[i]);

> end:

> print(FOUTC0);

[0.051965411, 0.003097822, 0.000191224, 0.000011918, 0.751 10−6, 0.60 10−7]

> with(MTM):

> LOG2FOUTC0:=log2(FOUTC0):

2.2 Collocatiemethoden 18

> H:=array(1..6):

> for i from 1 to 6 do

> H[i]:=(1/2)^(i):

> end:

> LOG2H:=log2(H):

> PC0:=pointplot([seq([-LOG2H[m],LOG2FOUTC0[m]],m=1..6)],axes=boxed,style=line,colour="Olive",thickness=4):

> PC0bis:=pointplot([seq([-LOG2H[m],LOG2FOUTC0[m]],m=1..6)],axes=boxed,style=point,symbol=circle,symbolsize=30,colour="Olive",thickness=4):display(PC0,PC0bis);

Figuur 2: Verband tussen de fout en de stapgrootte h voor de methode Lobatto IIIA.

Zowel uit de geconstrueerde grafiek (zie figuur 2) als uit bovenstaande output kan af-geleid worden dat naarmate de stapgrootte h kleiner gekozen wordt, de fout in t = 1 ookkleiner wordt. Dit was te verwachten aangezien er nauwkeuriger te werk gegaan wordt bijhet kiezen van een kleinere stapgrootte.De verkregen grafiek is als het ware een rechte. Het berekenen van een kleinste kwadratenbenadering is hier dus eerder overbodig. Het is voldoende om twee willekeurige punten vande grafiek eruit te pikken en de verhouding van het verschil in y- en x-waarden te bepalenom een aardige benadering van de orde van de methode te verkrijgen4. Hiervoor kunnende waarden uit tabel 1 gebruikt worden.

Zo geldt er

r =

∣∣∣∣−12.35244878− (−8.334530035)

3− 2

∣∣∣∣ = |−4.017918745| = 4.017918745,

waaruit kan besloten worden dat de methode Lobatto IIIA van de vierde orde is.

4Bij de hierop volgende toepassingen wordt gewoon gesproken van de richtingscoefficient van de verkre-gen ’rechte’.

2.2 Collocatiemethoden 19

− log2(h) log2(fout)1 −4.2663045282 −8.3345300353 −12.352448784 −16.356498325 −20.344683766 −23.99046226

Tabel 1: Berekende koppels (x, y) met x = − log2(h) en y = log2(fout).

Dat de Lobatto IIIA-methode van de vierde orde is, kan ook geıllustreerd worden doorde Taylorontwikkeling van de fout in functie van een algemene stapsgrootte h van dich-terbij te bekijken. Welnu is de procedure ’meth1’ omwille van de iteratie niet toepasbaarindien er niet effectief een waarde voor h vooraf bepaald wordt. Als oplossing hiervoor kanonderstaande procedure ’meth2’ gebruikt worden om een impliciete Runge-Kutta-methodetoe te passen met algemene stapgrootte h wanneer de functie f lineair is in de variabele y.Dit laatste is het geval bij het beschouwde beginwaardeprobleem.

> meth2:=proc(f,h,t 0,y 0,A,B,C)

> local n,OPLK,i;

> global y 1,F,K;

> K:=array(1..3):

> OPLK:=solve({K[1]-f(t 0+C[1]*h,y 0+h*add(A[1,n]*K[n], n=1..3))=0,

> K[2]-f(t 0+C[2]*h,y 0+h*add(A[2,n]*K[n], n=1..3))=0,

> K[3]-f(t 0+C[3]*h,y 0+h*add(A[3,n]*K[n], n=1..3))=0},[K[1],K[2],K[3]]);> for i from 1 to 3 do

> K[i]:=rhs(OPLK[1,i]);

> end do:

> y 1:=y 0+h*add(B[m]*K[m], m=1..3); return(y 1);

> end:

Bovenstaande methode toepassen op het beginwaardeprobleem voor algemene h leverteen benadering van de functie y(t) op het tijdstip t = t0 + h = h. Dit en de Taylorontwik-keling bepalen van de fout, gebeurt via de onderstaande code.

> yn:=meth2(f,h,0,1,a,b,c);

yn :=1 + h

(16− 1

6−12eh − 5h+ 4heh + 2h2 + he2h

h2 − 3h+ 3+

16

4heh + h2 + 3e2h + h− 2he2h

h2 − 3h+ 3

)> taylor(yn-yexact(h),h,8);

− 112h5 − 17

90h6 − 253

1080h7 +O(h8)

Hiermee kan geıllustreerd worden dat de beschouwde collocatiemethode Lobatto IIIAinderdaad van de vierde orde is.

20

3 Discontinue Collocatiemethoden

In het vorige hoofdstuk is er een stelling aan bod gekomen die ons meer kon vertellen overde orde van een collocatiemethode. Welnu de klasse van collocatiemethoden bevat slechtseen kleine groep van Runge-Kutta-methoden, wat dus veel aan draagwijdte van de boven-staande stelling ontneemt. Het zou interessant zijn om deze stelling te kunnen uitbreidennaar een iets bredere klasse van methoden. Zo komt men via een lichte aanpassing van deidee achter collocatiemethoden bij de klasse van de discontinue collocatiemethoden.

3.1 Definitie

Een discontinue collocatiemethode wordt als volgt gedefinieerd.

3.1 Definitie. Zij c2, ..., cs−1 s − 2 verschillende reele getallen (meestal geldt 0 ≤ ci ≤ 1)en stel b1 en b2 twee willekeurige reele getallen. De corresponderende discontinue colloca-tiemethode is dan gedefinieerd via een veelterm van graad s− 2 die voldoet aan

u(t0) = y0 − hb1(u(t0)− f(t0, u(t0))),

u(t0 + cih) = f(t0 + cih, u(t0 + cih)), i = 2, ..., s− 1,

y1 = u(t1)− hbs(u(t1)− f(t1, u(t1))).

Figuur 3: Discontinue collocatiemethode.

Als de definitie eens van dichterbij bekeken wordt, zijn er duidelijk gelijkenissen merk-baar met de definitie van een collocatiemethode. Wat hier wel meteen in het oog springt,is de aanwezigheid van de twee correctietermen in de eerste en de derde formule, die nietterug te vinden zijn in definitie 2.2. Deze brengen de verschillen in rekening van de afgeleidevan de discontinue collocatieveelterm u(t) en de afgeleide van y(t) in de punten t = t0 ent = t1. Bij collocatiemethoden zijn deze verschillen allebei gelijk aan nul.

Ook de klasse van discontinue collocatiemethoden vormt een deelverzameling van de klassevan Runge-Kutta-methoden.

3.2 Stelling. De discontinue collocatiemethode gedefinieerd in definitie 3.1 is equivalentmet een s-traps Runge-Kutta-methode met coefficienten bepaald door

c1 = 0 en cs = 1,

3.1 Definitie 21

aij =

´ ci

0lj(t)dt− b1lj(0) 1 < j < s

b1 j = 10 j = s

en

bj =

ˆ 1

0

lj(t)dt− b1lj(0)− bslj(1) voor 1 < j < s

voor i = 1, ..., s. Deze coefficienten worden eenduidig bepaald door C(s − 2) en B(s − 2)waarbij C(q) en B(p) respectievelijk voorwaarden (3) en (4) zijn.

Bewijs. Stel ki := u(t0 + cih) voor i = 2, ..., s − 1. De interpolatieformule van Lagrangetoepassen, levert

u(t0 + τh) =s−1∑j=2

kjlj(τ), (15)

met lj(τ) een veelterm van graad s− 3.Door uitdrukking (15) te integreren over het interval [0, ci], wordt verkregen dat

u(t0 + cih)− u(t0)

h=

s−1∑j=2

kj

ˆ ci

0

lj(τ)dτ

⇔ u(t0 + cih) = u(t0) + hs−1∑j=2

kj

ˆ ci

0

lj(τ)dτ .

Wegens definitie 3.1 geldt dat

u(t0) = y0 − hb1(u(t0)− f(t0, u(t0)))

= y0 − hb1

(s−1∑j=2

kjlj(0)− k1

), (16)

waarbij k1 := f(t0, u(t0)). Deze uitdrukking substitueren in de bekomen uitdrukking vooru(t0 + cih), levert

u(t0 + cih) =

(y0 − hb1

(s−1∑j=2

kjlj(0)− k1

))+ h

s−1∑j=2

kj

ˆ ci

0

lj(τ)dτ

= y0 + hb1k1 + h

s−1∑j=2

kj

(ˆ ci

0

lj(τ)dτ − b1lj(0)

).

Als deze uitdrukking op zijn beurt ingevuld wordt in de tweede vergelijking van definitie3.1, wordt dit

ki = u(t0 + cih) = f

(t0 + cih, y0 + hb1k1 + h

s−1∑j=2

kj

(ˆ ci

0

lj(τ)dτ − b1lj(0)

)+ h 0 ks

)

3.1 Definitie 22

voor i = 2, ..., s−1. Dit komt overeen met de eerste formule uit definitie 2.1 van een s-trapsRunge-Kutta-methode met

aij =

´ ci

0lj(t)dt− b1lj(0) 1 < j < s

b1 j = 10 j = s

voor i = 1, ..., s.Vervolgens wordt aangetoond dat deze aij uniek bepaald zijn door de voorwaarde C(s−2).Er geldt

tr−1 =s−1∑j=2

lj(t)cr−1j r = 1, ..., s− 2 (17)

en dus i.h.b. voor t = 0

0 =s−1∑j=2

lj(0)cr−1j r = 1, ..., s− 2. (18)

Integratie over het interval [0, ci] van uitdrukking (17), levert

ˆ ci

0

tr−1dt =s−1∑j=2

ˆ ci

0

lj(t)dtcr−1j , r = 1, ..., s− 2, i = 1, ..., s.

Hieruit volgt

crir

=s−1∑j=2

ˆ ci

0

lj(t)dtcr−1j

(def aij)=

s−1∑j=2

(aij + b1lj(0))cr−1j

=s−1∑j=2

aijcr−1j + b1

s−1∑j=2

lj(0)cr−1j

(18)=

s−1∑j=2

aijcr−1j + 0

=s−1∑j=2

aijcr−1j + ai1c

r−11 + aisc

r−1s want c1 = 0 en ais = 0

=s∑j=1

aijcr−1j

voor r = 1, ..., s− 2 en i = 1, ..., s. Dit is precies de uitdrukking C(s− 2) (zie (3)).

3.1 Definitie 23

Om de formules voor bj te verkrijgen, wordt uitdrukking (15) geıntegreerd over het in-terval [0, 1]. Er geldt

u(t0 + h)− u(t0)

h=

s−1∑j=2

kj

ˆ 1

0

lj(τ)dτ

⇐⇒ u(t0 + h) = u(t0) + h

s−1∑j=2

kj

ˆ 1

0

lj(τ)dτ .

Wegens definitie 3.1 geldt dat

u(t0 + h) = u(t1)

= y1 + hbs (u(t1)− f(t1, u(t1)))

= y1 + hbs (u(t1)− ks) ,

waarbij ks := f(t1, u(t1)). Als de bovenstaande uitdrukkingen voor u(t0 +h) aan elkaar ge-lijkgesteld worden en de uitdrukking (16) voor u(t0) gesubstitueerd wordt, wordt verkregendat

y1 = −hbs (u(t1)− ks) + y0 + hb1k1 + hs−1∑j=2

kj

(ˆ 1

0

lj(τ)dτ − b1lj(0)

)

= −hbs

(s−1∑j=2

kjlj(1)− ks

)+ y0 + hb1k1 + h

s−1∑j=2

kj

(ˆ 1

0

lj(τ)dτ − b1lj(0)

)

= y0 + hb1k1 + hbsks + hs−1∑j=2

kj

(ˆ 1

0

lj(τ)dτ − b1lj(0)− bslj(1)

), (19)

waarbij in de voorlaatste gelijkheid gebruik gemaakt wordt van (15) met τ = 1.De bekomen uitdrukking komt overeen met de tweede formule uit definitie 2.1 van eens-traps Runge-Kutta-methode met

bj =

ˆ 1

0

lj(t)dt− b1lj(0)− bslj(1), 1 < j < s.

Vervolgens wordt aangetoond dat deze bj uniek bepaald zijn door de voorwaarde B(s−2)(zie (4)). Er geldt

tr−1 =s−1∑j=2

lj(t)cr−1j r = 1, ..., s− 2 (20)

en dus i.h.b. voor t = 0

0 =s−1∑j=2

lj(0)cr−1j r = 1, ..., s− 2 (21)

en voor t = 1

1 =s−1∑j=2

lj(1)cr−1j r = 1, ..., s− 2. (22)

3.2 Orde van een discontinue collocatiemethode 24

Integratie over het interval [0, 1] van uitdrukking (20), levert

ˆ 1

0

tr−1dt =s−1∑j=2

ˆ 1

0

lj(t)dtcr−1j r = 1, ..., s− 2.

Hieruit volgt

1

r=

s−1∑j=2

ˆ 1

0

lj(t)dtcr−1j

(def bj)=

s−1∑j=2

(bj + b1lj(0) + bslj(1))cr−1j

=s−1∑j=2

bjcr−1j + b1

s−1∑j=2

lj(0)cr−1j + bs

s−1∑j=2

lj(1)cr−1j

(21),(22)=

s−1∑j=2

bjcr−1j + 0 + bs

=s−1∑j=2

bjcr−1j + b1c1 + bscs want c1 = 0 en cs = 1

=s∑j=1

bjcr−1j

voor r = 1, ..., s− 2. Dit is precies de uitdrukking B(s− 2).

3.2 Orde van een discontinue collocatiemethode

Waar natuurlijk een grote interesse naar uit gaat, is de orde van een discontinue collocatie-methode. Zal voor deze bredere klasse van methoden ook gelden dat de orde dezelfde zalzijn als deze van de onderliggende kwadratuurformule? Hieronder komt een gelijkaardigehulpstelling aan bod als deze uit het vorige hoofdstuk die een aanzet geeft om de supercon-vergentiestelling uit te breiden tot de klasse van de discontinue collocatiemethoden.

3.3 Hulpstelling. De veelterm u(t) van de discontinu collocatiemethode uit definitie 3.1is een benadering van de orde s − 2 van de exacte oplossing van (1) op het beschouwdeinterval, dit betekent

‖y(t)− u(t)‖ ≤ C1hs−1 voor t ∈ [t0, t0 + h] (23)

voor voldoende kleine h > 0.Meer nog geldt

‖y(k)(t)− u(k)(t)‖ ≤ C2hs−1−k voor t ∈ [t0, t0 + h], k = 0, ..., s− 2 (24)

voor voldoende kleine h > 0.

3.2 Orde van een discontinue collocatiemethode 25

Bewijs. Het bewijs kent een gelijkaardige opbouw als dit van hulpstelling 2.4. Zo geeft deinterpolatieformule van Lagrange dat

u(t0 + τh) =s−1∑i=2

u(t0 + cih)li(τ)

en wegens definitie 3.1 is dit gelijk aan

u(t0 + τh) =s−1∑i=2

f(t0 + cih, u(t0 + cih))li(τ). (25)

Voor de exacte oplossing geldt

y(t0 + τh) =s−1∑i=2

f(t0 + cih, y(t0 + cih))li(τ) + hs−2E(τ, h), (26)

waarbij de laatste term de interpolatiefout is, die zich nu gedraagt als O(hs−2).Deze is van de vorm

hs−2E(τ, h) =f (s−2)(ξ, y(ξ))

(s− 2)!

s−1∏i=2

(t− ti)

=y(s−1)(ξ, y(ξ))

(s− 2)!hs−2

s−2∏i=2

(τ − ci)

met ξ ∈ [t0, t0 + h] en waarbij geldt t = t0 + τh en ti = t0 + cih met 0 < τ, ci < 1. Er geldtdus

‖E(τ, h)‖ ≤ maxt∈[t0,t0+h]

‖y(s−1)(t)‖(s− 2)!

.

Een gelijkaardige redenering als in hulpstelling 2.4, leidt tot

‖E(k−1)(τ, h)‖ ≤ maxt∈[t0,t0+h]

‖y(s−1)(t)‖(s− k − 1)!

.

Uitdrukkingen (25) en (26) van elkaar aftrekken en integreren naar de tijd over het interval[0, τ ], levert

1

h(y(t0 + τh)− u(t0 + τh))− 1

h(y(t0)− u(t0)) =

s−1∑i=2

4fiˆ τ

0

li(σ)dσ + hs−2

ˆ τ

0

E(σ, h)dσ,

waarbij 4fi = f(t0 + cih, y(t0 + cih))−f(t0 + cih, u(t0 + cih)). Wegens definitie 3.1 geldt nuniet noodzakelijk dat y0 = u(t0) zodat de term 1

h(y(t0) − u(t0)) niet zomaar wegvalt in de

bovenstaande uitdrukking. Dit in tegenstelling tot wat bij collocatiemethoden gebeurde.Linker-en rechterlid met h vermenigvuldigen en de uitdrukking voor u(t0) substiueren, levert

y(t0+τh)−u(t0+τh)−hb1(u(t0)−f(t0, u(t0))) = h

s−1∑i=2

4fiˆ τ

0

li(σ)dσ+hs−1

ˆ τ

0

E(σ, h)dσ.

3.2 Orde van een discontinue collocatiemethode 26

Door de Lipschitzcontinuıteit van f(t, y(t)) toe te passen, geldt er

‖y(t0 + τh)− u(t0 + τh)‖ ≤ hb1‖u(t0)− f(t0, u(t0))‖+ hs−1∑i=2

‖4fi‖∥∥∥∥ˆ τ

0

li(σ)dσ

∥∥∥∥+hs−1

∥∥∥∥ˆ τ

0

E(σ, h)dσ

∥∥∥∥≤ hb1‖u(t0)− f(t0, u(t0))‖+ h

s−1∑i=2

L ‖y(t0 + cih)−

u(t0 + cih)‖∥∥∥∥ˆ τ

0

li(σ)dσ

∥∥∥∥+ hs−1

∥∥∥∥ˆ τ

0

E(σ, h)dσ

∥∥∥∥ .Stel nu

∑s−1i=2

∥∥´ τ0li(σ)dσ

∥∥ = D1 en∥∥´ τ

0E(σ, h)dσ

∥∥ = C (dit laatste geldt wegensE(τ, h) begrensd), dan volgt dat

maxt∈[t0,t0+h]

‖y(t)− u(t)‖ ≤ hb1‖u(t0)− f(t0, u(t0))‖+ hD1L maxt∈[t0,t0+h]

‖y(t)− u(t)‖+ Chs−1.

Er geldt dat ‖u(t0) − f(t0, u(t0))‖ zich gedraagt als O(hs−2) wegens u(t) de veelterm vande discontinue collocatiemethode. Hieruit volgt dat

hb1‖u(t0)− f(t0, u(t0))‖ = O(hs−1),

zodat deze term kan opgenomen worden in de term Chs−1.Voor voldoende kleine h > 0 geldt dus dat

‖y(t)− u(t)‖ ≤ C1hs−1 voor t ∈ [t0, t0 + h],

wat precies uitdrukking (23) is die moest bewezen worden.

Om vervolgens uitdrukking (24) aan te tonen, wordt opnieuw vertrokken van (25) en (26).Deze uitdrukkingen van elkaar aftrekken en k − 1 keer afleiden, levert

hk−1(y(k)(t0 + τh)− u(k)(t0 + τh)

)=

s−1∑i=2

4fil(k−1)i (τ) + hs−2E(k−1)(τ, h).

Door een gelijkaardige werkwijze als in hulpstelling 2.4, wordt verkregen dat

‖y(k)(t)− u(k)(t)‖ ≤ C2hs−1−k voor t ∈ [t0, t0 + h], k = 0, ..., s− 2,

wat moest aangetoond worden.

Bovenstaande hulpstelling geeft aanleiding tot de volgende stelling.

3.4 Stelling (Superconvergentiestelling discontinue collocatiemethoden). Als aan de voor-waarde B(p) voldaan is voor een zekere p ≥ s, dan zal de discontinue collocatiemehode inkwestie van de orde p zijn. Dit betekent dat de discontinue collocatiemethode uit definitie3.1 dezelfde orde heeft als de onderliggende kwadratuurformule.

3.2 Orde van een discontinue collocatiemethode 27

Bewijs. Stel u(t) de veelterm van de beschouwde discontinue collocatiemethode. Net zoalsin superconvergentiestelling 2.5 kan deze veelterm gezien worden als de oplossing van eengeperturbeerde differentiaalvergelijking

u(t) = f(t, u(t)) + δ(t),

waarbij δ(t) de perturbatiefout is. Door hiervan opnieuw differentiaalvergelijking (1) af tetrekken en de bekomen uitdrukking voor f(t, u(t)) te substitueren, geldt er

u(t)− y(t) = (u(t)− y(t))∂f

∂y(t, y(t)) + r(t) + δ(t),

waarbij r(t) := (u(t)−y(t))2

2!∂2f∂y2

∣∣∣y=y(t)

+O(‖u(t)− y(t)‖3).

Vervolgens de ’Variation of constants formula’ (zie appendix A.2) gebruiken met z(t) =u(t)− y(t), A(t) = ∂f

∂y(t, y(t)) en g(t) = r(t) + δ(t), levert

u(t1)− y(t1) = u(t0 + h)− y(t0 + h)

= R(t0 + h, t0)(u(t0)− y0) +

ˆ t0+h

t0

R(t0 + h, v) (δ(v) + r(v)) dv.

Deze gelijkheid correspondeert met deze uit stelling 2.5 indien geldt dat u(t1) = y1 enu(t0) = y0, wat bij een discontinue collocatiemethode niet noodzakelijk het geval is (ziedefinitie 3.1).

(i) Gelijkaardig aan superconvergentiestelling 2.5 wordt eerst de integraal

ˆ t0+h

t0

R(t0 + h, v)r(v)dv

beschouwd. Wegens r(t) = O(‖u(t)− y(t)‖2) geldt door (23) uit hulpstelling 3.3 datde functie r(t) zich gedraagt als O((hs−1)2) = O(h2s−2) voor t ∈ [t0, t0 + h]. Er wordtgeıntegreerd over een interval met lengte h waardoor gans de integraal zich gedraagtals ˆ t0+h

t0

R(t0 + h, v)r(v)dv = O(h2s−1).

(ii) Vervolgens wordt de integraal

ˆ t0+h

t0

R(t0 + h, v)δ(v)dv

beschouwd. Op deze integraal de kwadratuurformule met gewichten bi toepassen,levert

ˆ t0+h

t0

R(t0 + h, v)δ(v)dv = h

s∑i=1

biR(t0 + h, t0 + cih)δ(t0 + cih) + fout.

3.2 Orde van een discontinue collocatiemethode 28

Bovendien geldt er dat u(t) de veelterm is van de beschouwde discontinue collocatie-methode. Dit betekent dat (zie definitie 3.1)

u(t0 + cih) = f(t0 + cih, u(t0 + cih)), i = 2, ..., s− 1,

m.a.w. de perturbatiefout δ verdwijnt voor i = 2, ..., s− 1. Wel moet nu nog rekeninggehouden worden met de termen voor i = 1 en i = s die niet noodzakelijk nul zijn.Er geldt dus

ˆ t0+h

t0

R(t0 + h, v)δ(v)dv = 0 + hb1R(t0 + h, t0 + c1h)δ(t0 + c1h)

+hbsR(t0 + h, t0 + csh)δ(t0 + csh) + fout.

Doordat de kwadratuurvoorwaarde B(p) geldt, gedraagt de fout zich als O(hp+1).

Uit (i) en (ii) volgt dat

u(t1)− y(t1) = R(t0 + h, t0)(u(t0)− y0) + hb1R(t0 + h, t0 + c1h)δ(t0 + c1h)

+hbsR(t0 + h, t0 + csh)δ(t0 + csh) +O(hp+1) +O(h2s−1)

= R(t0 + h, t0)(u(t0)− y0) + hb1R(t0 + h, t0)δ(t0)

+hbsR(t0 + h, t0 + h)δ(t0 + h) +O(hp+1) +O(h2s−1),

waarbij de laatste gelijkheid geldt door cs = 1 en c1 = 0. Wegens R(s, s) = I voors ∈ [t0, t0 + h] geldt dat R(t0 + h, t0 + h) = I zodat

u(t1)−y(t1)−hbsδ(t0 +h) = R(t0 +h, t0)(u(t0)−y0 +hb1δ(t0))+O(hp+1)+O(h2s−1). (27)

Wegens definitie 3.1 geldt

u(t0) = y0 − hb1(u(t0)− f(t0, u(t0)))

= y0 − hb1δ(t0),

u(t1) = y1 + hbs(u(t1)− f(t1, u(t1)))

= y1 + hbsδ(t1).

Dit invullen in uitdrukking (27), levert

y1 − y(t1) = O(hp+1) +O(h2s−1).

De hoogst mogelijke orde van een kwadratuurformule met s knooppunten waarbij c1 = 0en cs = 1 is 2s− 2, zodat p ≤ 2s− 2. Er geldt dus

y1 − y(t1) = O(hp+1),

wat moest aangetoond worden.

Er kan dus besloten worden dat een discontinue collocatiemethode dezelfde orde heeftals de onderliggende kwadratuurformule. De superconvergentiestelling kan dus uitgebreidworden tot deze bredere klasse van methoden, waardoor ze heel wat interessanter wordt.

3.3 Voorbeeld 29

3.3 Voorbeeld

Een voorbeeld van discontinue collocatiemethoden zijn de Lobatto IIIB-methoden.De Lobatto-kwadratuurformule, waarop ook deze methoden gebasseerd zijn, kwam al eer-der in sectie 2.2.3 aan bod. Aan de hand van de nulpunten c2, c3, ..., cs−1 en de reele getallenb1, bs uit de Lobatto kwadratuurformule kan de discontinue collocatiemethode Lobatto IIIBmet s trappen opgesteld worden. Wegens de uitgebreide superconvergentiestelling hebbendeze Lobatto-methoden ook de orde 2s− 2.

Wordt s = 3 gekozen, dan wordt de vierde orde Lobatto IIIB-methode verkregen. DeButcher-tableau van deze discontinue collocatiemethode heeft de vorm

0 16−1

60

12

16

13

0

1 16

56

0

16

23

16

.

Bij een s-traps Lobatto IIIB-methode geldt de kolomvereenvoudigende voorwaarde

D(s) :s∑i=1

bicq−1i aij =

bjq

(1− cqj), j = 1, 2, ..., s, q = 1, 2, ..., s.

De waarden aij (i, j = 1, ..., s) kunnen dus ook aan de hand van deze voorwaarde bepaaldworden.

3.4 Toepassing

Ook hier kan opnieuw Maple gehanteerd worden om de bovenstaande discontinue collo-catiemethoden toe te passen op een vooropgesteld beginwaardeprobleem. Opnieuw wordthet voorbeeld (14) aangehaald om te illustreren dat ook voor de klasse van discontinuecollocatiemethoden de superconvergentiestelling geldt.

3.4.1 Vierde orde Lobatto IIIB-methode

Opnieuw zijn er, gebasseerd op stelling 3.2, twee manieren om een discontinue collocatie-methode te genereren met Maple.De eerste manier van implementeren vertrek van de waarden van de nulpunten van de veel-term (13) en van de waarden b1 en b3. De code om deze eerste waarden te bepalen, kwamal bij het voorbeeld uit het vorige hoofdstuk aan bod. Om aij (i = 1, 2, 3) en b2 te bepalen,wordt gebruik gemaakt van de uitdrukkingen die bewezen werden in stelling 3.2.

> s:=3:c:=array(sorteer([solve(lobatto(x,s))])):

> a:=array(1..s,1..s):b:=array(1..s):

3.4 Toepassing 30

> b[1]:=1/6:b[s]:=1/6:

> for i from 1 to s do

> a[i,1]:=b[1]:a[i,s]:=0:

> end do:

> L:=proc (j,t)

> local i,expr;

> expr:=subs(u=c[j],product((t-c[i])/(u-c[i]),i=2..s-1) *(u-c[j])/(t-c[j])):

> RETURN (expr):

> end:

> int1:=(i,j)->simplify(integrate(L(j,t),t=0..c[i])):

> int2:=j->simplify(integrate(L(j,t),t=0..1)):

> for i from 1 to s do

> for j from 2 to s-1 do

> a[i,j]:=int1(i,j)-b[1]*L(j,0):b[j]:=int2(j)-b[1]*L(j,0)-b[s]*L(j,1):

> end do:

> end do:

> print(a,b,c); 16 − 1

6 0

16

13 0

16

56 0

, [ 16

23

16

],[

0 12 1

]

Een tweede manier om de vierde orde methode Lobatto IIIB te genereren met Maple isdoor gebruik te maken van het feit dat de uitdrukkingen C(s− 2) en B(s− 2) (zie (3) en(4)) gelden, wat bewezen werd in stelling 3.2. De implementatie van deze veronderstellingenkwam al in het vorige hoofdstuk aan bod bij het genereren van de vierde orde Lobatto IIIA-methode.

> LobattoIIIB :=proc (s,b 1,b s)

> global a,b,c;

> local opla,oplb,i,j,b waarden,a waarden,x;

> c:=array(sorteer([solve(lobatto(x,s))]));a:=array(1..s,1..s):

> for i from 1 to s do

> a[i,1]:=b 1:a[i,s]:=0:

> end do:

> b:=array(1..s):b[1]:=b 1:b[s]:=b s:

> a waarden:=seq(seq(a[i,j],i=1..s),j=2..s-1):b waarden:=seq(b[i],i=2..s-1):

> oplb:=solve(veronderstelling B(s-2,s),b waarden):

> opla:=solve(veronderstelling C(s-2,s),a waarden):

> for i from 1 to s do

> for j from 2 to s-1 do

> a[i,j]:=expand(subs(opla,a[i,j])):b[j]:=expand(subs(oplb,b[j])):

3.4 Toepassing 31

> end do:

> end do:

> RETURN(print(a,b,c));

> end:

> s:=3:LobattoIIIB(s,1/6,1/6);16 − 1

6 0

16

13 0

16

56 0

, [ 16

23

16

],[

0 12 1

]

Om de orde van de beschouwde discontinue collocatiemethode te illustreren, kan op-nieuw de procedure ’meth2’ gebruikt worden, die in sectie 2.2.4 toegelicht werd. Dezemethode toepassen op het beschouwde beginwaardeprobleem voor algemene h levert

> yn:=meth2(f,h,0,1,a,b,c);

yn := 1 + h

(−1

6heh + 2h− 3h2 − 3h+ 3

− 23−h− 3eh + heh

h2 − 3h+ 3+

16

5heh + h− 2h2eh + h2 + e2hh2 + 3e2h − 3e2hhh2 − 3h+ 3

)Ook hier wordt de functie ’taylor’ gebruikt om de orde van de fout te ontdekken.

> taylor(yn-yexact(h),h,8);

− 136h5 − 7

90h6 − 59

540h7 +O(h8)

Hiermee wordt geıllustreerd dat de beschouwde discontinue collocatiemethode LobattoIIIB met drie trappen inderdaad van de vierde orde is.

Net als in sectie 2.2.4 kan ook voor deze methode een grafiek bepaald worden die aan-toont dat de methode Lobatto IIIB van de vierde orde is.

3.4.2 Zesde orde Lobatto IIIB-methode

De zesde orde methode Lobatto IIIB (s = 4) kunnen we analoog als hierboven laten gene-reren door Maple. De te implementeren Maple-code met de verkregen coefficientenmatricesziet er als volgt uit

> s:=4:

> LobattoIIIB(s,1/12,1/12);

112 −

√5

24 −124 − 1

24 +√

524 0

112

√5

120 + 524

524 −

13√

5120 0

112

13√

5120 + 5

24524 −

√5

120 0

112 −

√5

24 + 1124

1124 +

√5

24 0

,[

112

512

512

112

],[

0 12 −

√5

1012 +

√5

10 1]

Op analoge manier als hierboven kan met Maple ook geıllustreerd worden dat dezemethode van orde zes is.

32

4 Gepartitioneerde Runge-Kutta-methoden

In de vorige hoofdstukken zijn enkele Runge-Kutta-methoden aan bod gekomen die heelhandig zijn voor gebruik. In dit hoofdstuk wordt er iets dieper ingegaan op de klasse vangepartitioneerde Runge-Kutta-methoden. Dit zijn methoden die als het ware een combi-natie zijn van twee verschillende Runge-Kutta-methoden. Door Runge-Kutta-methodendoordacht te combineren kunnen er methoden ontstaan met heel interessante eigenschap-pen.

4.1 Definitie

In dit hoofdstuk worden beginwaardeproblemen van de vorm{y = f(t, y, z) y(t0) = y0

z = g(t, y, z) z(t0) = z0(28)

beschouwd met f : R×Rl×Rm → Rl en g : R×Rl×Rm → Rm voldoende gladde functies.Het is toegelaten dat de veranderlijken y en z vectoren met een verschillende dimensie zijn.De idee bij een gepartitioneerde Runge-Kutta-methode is dat de veranderlijken door eenverschillende Runge-Kutta-methode benaderd worden.

4.1 Definitie. Zij aij, bi, ci en aij, bi, ci (i, j = 1, ..., s) de coefficienten van twee s-trapsRunge-Kutta-methoden. Een gepartitioneerde Runge-Kutta-methode voor de oplossing van(28) is dan van de vorm:

yn+1 = yn + hs∑i=1

biki,

zn+1 = zn + hs∑i=1

bili, (29)

ki = f

(tn + cih, yn + h

s∑j=1

aijkj, zn + h

s∑j=1

aijlj

),

li = g

(tn + cih, yn + h

s∑j=1

aijkj, zn + h

s∑j=1

aijlj

).

4.2 Voorbeelden

4.2.1 Symplectische Euler-methode

Een eerste voorbeeld van een gepartitioneerde Runge-Kutta-methode is de symplectischeEuler-methode. Deze methode, ook soms de gepartitioneerde Euler-methode genoemd, isvan de vorm {

yn+1 = yn + hf(tn+1, yn+1, zn)zn+1 = zn + hg(tn, yn+1, zn).

4.2 Voorbeelden 33

Bij de symplectische Euler-methode wordt op de y-variabele de impliciete Euler-methodetoegepast, terwijl op de z-variabele de expliciete Euler-methode wordt toegepast. De sym-plectische Euler-methode kan dus voorgesteld worden door de volgende twee Butcherta-bleaus, respectievelijk deze van de impliciete en expliciete Euler-methode.

1 11

0 01

De naam ’symplectische’ Euler-methode is afkomstig van een belangrijke kwalitatieve ei-genschap die deze methode bezit. De symplectische Euler-methode is namelijk oppervlak-tebehoudend. Dit betekent dat als vertrokken wordt van een verzameling beginwaarden(y0, z0) die een zekere vorm aannemen, dan zal bij elke stap de oppervlakte van deze vormbehouden blijven. Om dit wat te verduidelijk worden in de onderstaande figuren (zie fi-guur 4) enkele stappen weergegeven bij het numeriek benaderen van de oplossing van deharmonische oscillator (zie sectie 7.4 voor meer uitleg omtrent dit stelsel differentiaalverge-lijkingen) vertrekkende van zekere beginwaarden (y0, z0) die een cirkel vormen. Dit gebeurtrespectievelijk voor de Euler-methode, de achterwaartse Euler-methode en de symplectischeEuler-methode.

(a) Euler-methode (b) Achterwaartse Euler-methode (c) Symplectische Euler-methode

Figuur 4: Numerieke oplossingen voor de harmonische oscillator

Op de bovenstaande figuren is duidelijk een verschil merkbaar. De cirkel waarvan ver-trokken wordt, wordt bij de Euler-methode bij elke stap groter in oppervlakte, terwijl dezebij de achterwaartse Euler-methode dan weer kleiner wordt. Bij de symplectische Euler-methode daarentegen is de oppervlakte van de verkregen figuur bij elke stap gelijk aan dezevan de oorspronkelijke cirkel. Dit toont aan dat deze methode oppervlaktebehoudend endus symplectisch is. Aan de hand van twee niet-symplectische Runge-Kutta-methoden kandus wel een symplectische gepartitioneerde Runge-Kutta-methode geconstrueerd worden.Voor meer uitleg omtrent symplecticiteit wordt verwezen naar referentie [3].

4.2.2 Methode van Stormer/Verlet

Beschouw de tweede orde differentiaalvergelijking

y = g(t, y), (30)

4.2 Voorbeelden 34

waarbij de functie g niet afhangt van y. Door de tweede orde afgeleide te benaderen dooreen centrale differentie, wordt als discretisatie verkregen

yn+1 − 2yn + yn−1

h2= g(tn, yn)

⇔ yn+1 − 2yn + yn−1 = h2g(tn, yn). (31)

Deze tweestaps methode is beter gekend als de methode van Stormer/Verlet5. Net als desymplectische Euler-methode is ook deze methode symplectisch.

Stel nu y = z, dan kan de bovenstaande tweede orde differentiaalvergelijking (30) ge-schreven worden als {

y = zz = g(t, y).

Een discretisatie van de eerste differentiaalvergelijking ziet eruit als

yn+1 − yn−1

2h= zn, (32)

waarbij opnieuw gebruik gemaakt wordt van een centrale differentie. Door eliminatie vanyn−1 in discretisaties (31) en (32), geldt er

yn+1 − 2hzn = h2g(tn, yn)− yn+1 + 2yn

⇔ 2yn+1 = 2yn + 2hzn + h2g(tn, yn)

⇔ yn+1 = yn + hzn +h2

2g(tn, yn).

Door gebruik te maken van een voorwaartse differentie in zn, ziet een discretisatie van detweede differentiaalvergelijking eruit als

zn+1 − znh

= g(tn, yn).

Wordt bij deze differentiaalvergelijking een achterwaartse differentie gebruikt om te discre-tiseren in het punt zn+1, dan wordt verkregen dat

zn+1 − znh

= g(tn+1, yn+1).

De twee bovenstaande uitdrukkingen optellen, levert

2

(zn+1 − zn

h

)= g(tn, yn) + g(tn+1, yn+1)

⇔ zn+1 − zn =h

2(g(tn, yn) + g(tn+1, yn+1))

⇔ zn+1 = zn +h

2(g(tn, yn) + g(tn+1, yn+1)).

5Deze numerieke methode werd genoemd naar de Noorse wiskundige/fysicus Fredrik Carl MulertzStormer (1874 - 1957) en de Franse fysicus Loup Verlet (1931 - ). Ook spreekt men soms van de leap-frog methode. Ze kent niet alleen haar toepassing in de wiskunde, maar wordt ook vaak gebruikt in deastronomie en de moleculaire dynamica.

4.2 Voorbeelden 35

Er geldt dus {yn+1 = yn + hzn + h2

2g(tn, yn)

zn+1 = zn + h2(g(tn, yn) + g(tn+1, yn+1)).

De bovenstaande methode is een expliciete eenstapsmethode voor het beschouwde eersteorde stelsel. Dit is de eenstaps-formulering voor de methode van Stormer/Verlet.

De Stormer/Verlet-methode is een gepartitioneerde Runge-Kutta-methode samengestelddoor de Lobatto IIIA-methode en de Lobatto IIIB-methode van de tweede orde. Ze kandus voorgesteld worden door de Butchertableaus

0 0 0

1 12

12

12

12

0 12

0

1 12

0

12

12

respectievelijk deze van de Lobatto IIIA- en Lobatto IIIB-methode. Deze bewering wordthieronder aangetoond.Wordt de gepartitioneerde Runge-Kutta-methode beschouwd die opgebouwd is uit de bo-venstaande Runge-Kutta-methoden, dan geldt wegens definitie 4.1

yn+1 = yn +h

2(k1 + k2),

zn+1 = zn +h

2(l1 + l2),

met

k1 = f

(tn, yn, zn +

h

2l1

)= zn +

h

2l1,

k2 = f

(tn + h, yn +

h

2(k1 + k2), zn +

h

2l1

)= zn +

h

2l1,

l1 = g

(tn, yn, zn +

h

2l1

)= g (tn, yn) ,

l2 = g

(tn + h, yn +

h

2(k1 + k2), zn +

h

2l1

)= g

(tn + h, yn +

h

2(k1 + k2)

).

4.3 Toepassingen 36

Er geldt dus

yn+1 = yn +h

2

(zn +

h

2l1 + zn +

h

2l1

)= yn + hzn +

h2

2g (tn, yn) ,

zn+1 = zn +h

2

(g (tn, yn) + g

(tn + h, yn +

h

2(k1 + k2)

))= zn +

h

2(g (tn, yn) + g (tn+1, yn+1)) .

Kortom {yn+1 = yn + hzn + h2

2g (tn, yn)

zn+1 = zn + h2

(g (tn, yn) + g (tn+1, yn+1)) ,

wat precies de eenstaps-formulering voor de methode van Stormer/Verlet blijkt te zijn. Erkan dus besloten worden dat de methode van Stormer/Verlet een gepartitioneerde Runge-Kutta-methode is, gevormd door de twee bovenstaande Runge-Kutta-methoden LobattoIIIA en Lobatto IIIB.

4.3 Toepassingen

4.3.1 De slingerbeweging

Veel voorkomend in de fysica zijn zogenaamde Hamiltoniaanse systemen. Deze zijn van devorm {

q = ∂H∂p

(p, q)

p = −∂H∂q

(p, q),

waarbij de HamiltoniaanH(p, q) de totale energie voorstelt van het systeem, q = (q1, q2, ..., qd)de veralgemeende coordinaat en p = (p1, p2, ..., pd) het moment, met d het aantal vrijheids-graden van het systeem. Een voorbeeld van een Hamiltoniaans systeem met een vrijheids-graad is de hieronder besproken enkelvoudige slinger.

Figuur 5: De slingerbeweging

Beschouw een massa m opgehangen in een punt P aan een touw met lengte r (zie figuur5). De beweging van de massa in het verticaal vlak door het punt P wordt beschouwd

4.3 Toepassingen 37

waarbij enkel rekening gehouden wordt met de zwaartekracht die inwerkt op de massa. Hetzwaartepunt van de massa beweegt op een cirkel met middelpunt P en straal r. Stel θ,positief indien tegenwijzerzin, de hoek die het touw maakt met de verticale op tijdstip t.Voor de zwaartekracht geldt dat deze gelijk is aan mg en evenwijdig loopt met de verticale.De component rakend aan de baan die de massa volgt, is dan gelijk aan mg sin θ. Stel sde lengte van het pad afgelegd door de massa van A naar B, dan s = r θ en de versnellinglangs dit pad is

d2s

dt2= r

d2θ

dt2.

Er geldt dus

mrd2θ

dt2= −mg sin θ of r

d2θ

dt2= −g sin θ,

wat de bewegingsvergelijking van de slinger is.Voor de eenvoud wordt bij de wiskundige uitwerking gekozen voor m = g = r = 1. Geefnu de veranderlijke hoek θ de naam q en kies q = p dan wordt de bewegingsvergelijking{

q = pp = − sin q.

Er kan dus besloten worden dat het hier gaat over een Hamiltoniaans systeem met Hamil-toniaan

H(p, q) =1

2p2 − cos q.

Het bovenstaande systeem is niet exact oplosbaar naar de functies q(t) en p(t), maar welkan met Maple een numerieke waarde gevonden worden van deze functies voor een zekerewaarde van t die de exacte waarde heel goed benadert. Voor t = 0.5 en met beginvoor-waarden q(0) = 0.5 en p(0) = 0 ziet de Maple-code er als volgt uit.

> sys ode :=diff(q(t),t) = p(t),diff(p(t),t) = -sin(q(t));

sys ode :=d

dtq(t) = p(t),

d

dtp(t) = −sin(q(t))

> ics:=q(0)=0.5,p(0)=0:

> opl:=dsolve([sys ode, ics],numeric, abserr=1e-16, relerr=1e-16);

opl := proc(x rkf45)...endproc

> opl(0.5);

[t = 0.5, p(t) = −.230961842430647879, q(t) = .441166362220721753]

Maple is ook een handig instrument om een gepartitioneerde Runge-Kutta-methode toete passen. In deze sectie wordt eens van dichterbij bekeken hoe de Stormer/Verlet-methodetoegepast kan worden op de bewegingsvergelijking van een enkelvoudige slinger.Een eerste stap is natuurlijk om de Stormer/Verlet-methode te implementeren in Maple.In het vorige hoofdstuk werd al aangebracht uit welke twee Runge-Kutta-methoden dezemethode opgebouwd is, namelijk de tweede orde Lobatto IIIA- en Lobatto IIIB-methode.

4.3 Toepassingen 38

Gebruik makend van eerder geımplementeerde procedures om dergelijke Lobatto-methodente genereren, ziet de Maple-code er als volgt uit.

> s:=2:LobattoIIIA(s): 0 0

12

12

, [ 12

12

],[

0 1]

> A1:=evalm(a):B1:=evalm(b):C1:=evalm(c):

> LobattoIIIB(s,1/2,1/2); 12 0

12 0

, [ 12

12

],[

0 1]

> A2:=evalm(a):B2:=evalm(b):C2:=evalm(c):

De methode om een gepartitioneerde Runge-Kutta-methode als hierboven toe te passen,wordt als volgt in Maple geprogrammeerd.

> methGRK:=proc(f,g,h,t 0,y 0,z 0,kl 0,A,B,C,Aa,Bb,Cc)

> local del,i,j,x,n;

> global KL, y 1,z 1,J,F;

> KL:=Matrix(4,1):

> for j from 1 to 4 do

> KL[j,1]:=kl 0:

> end do;

> x:=array(1..4):del:=Matrix(4,1,[1,1,1,1]);

> while (evalf(Norm(del)) > 10^(-6)) do

> J:=Jacobian([x[1]-f(t 0+C[1]*h,y 0+h*add(A[1,n]*x[n], n=1..2),z 0+h*add(Aa[1,n]*x[n+2], n=1..2)), x[2]-f(t 0+C[2],y 0+h*add( A[2,n]*x[n], n=1..2),z 0+h*add(Aa[2,n]*x[n+2], n=1..2)), x[3]-g(t 0+Cc[1],y 0+h*add(A[1,n]*x[n], n=1..2),z 0+h*add(Aa[1,n]*x[n+2], n=1..2)),x[4]-g(t 0+Cc[2],y 0+h*add(A[2,n]*x[n], n=1..2),z 0+h*add(Aa[2,n]*x[n+2], n=1..2))],[x[1],x[2],x[3],x[4]]=[KL[1,1],KL[2,1],KL[3,1],KL[4,1]]):

> F:=Matrix(4,1,[KL[1,1]-f(t 0+C[1],y 0+h*add(A[1,n]*KL[n,1], n=1..2),z 0+h*add(Aa[1,n]*KL[n+2,1], n=1..2)), KL[2,1]-f(t 0+C[2],y 0+h*add(A[2,n]*KL[n,1], n=1..2),z 0 + h*add(Aa[2,n]*KL[n+2,1], n=1..2)), KL[3,1]-g(t 0+Cc[1],y 0+h*add(A[1,n]*KL[n,1], n=1..2),z 0+h*add(Aa[1,n]*KL[n+2,1], n=1..2)), KL[4,1]-g(t 0+Cc[2],y 0+h*add(A[2,n]*KL[n,1], n=1..2),z 0+h*add(Aa[2,n]*KL[n+2,1], n=1..2))]):

> del:=evalf(LinearSolve(J,-F));KL:=KL+del:

> end do;

> y 1:=y 0+h*add(B[m]*KL[m,1], m=1..2);

> z 1:=z 0+h*add(Bb[m]*KL[m+2,1], m=1..2);

> return(y 1,z 1);

> end:

4.3 Toepassingen 39

Hierbij is KL de kolomvector die de waarden ki en li voor i = 1, 2 bevat. De methode’methGRK’ kent een gelijkaardige opbouw als ’meth1’ voor het toepassen van een Runge-Kutta-methode. Opnieuw wordt met de methode van Newton-Raphson iteratief te werkgegaan om de waarden voor ki en li voor i = 1, 2 te bepalen. Deze methode kan alsvolgt toegepast worden op het beschouwde systeem van de enkelvoudige slinger om eenbenadering te construeren van p(t) en q(t) in bijvoorbeeld t = 0.5.

> f:=(t,y,z)->z:g:=(t,y,z)->-sin(y):

> methGRK(f,g,0.5,0,0.5,0,1,A1,B1,C1,A2,B2,C2);

.4400718077,−.2263574926

Bovenstaande methode geeft slechts een benadering van de functies voor een bepaaldewaarde van t, namelijk t0 +h. Welnu zou het interessant zijn om voor een aantal opeenvol-gende t-waarden een benadering te bepalen, zodat een idee verkregen wordt van het verloopvan de functies. Onderstaande methode zoekt aan de hand van een zekere gepartitioneerdeRunge-Kutta-methode een benadering voor p opeenvolgende waarden van t.

> MethGRKp:=proc(f,g,h,t 0,y 0,z 0,kl 0,A,B,C,Aa,Bb,Cc,p)

> local i,t;

> global ynum, znum;

> ynum:=array(0..p):znum:=array(0..p):

> ynum[0]:=y 0:znum[0]:=z 0:t:=t 0:

> for i from 1 to p do

> ynum[i]:=methGRK(f,g,h,t,ynum[i-1],znum[i-1],kl 0,A,B,C,Aa,Bb,Cc)[1];

> znum[i]:=methGRK(f,g,h,t,ynum[i-1],znum[i-1],kl 0,A,B,C,Aa,Bb,Cc)[2];

> t:=t+h:

> end do:

> RETURN(print(ynum),print(znum));

> end:

> MethGRKp(f,g,0.2,0,0.5,0,1,A1,B1,C1,A2,B2,C2,100);

Deze methode toepassen op het beginwaardeprobleem dat de slingerbeweging model-leert, levert twee array’s van 100 waarden. Deze waarden zijn benaderingen van de functiesq(t), de hoek die het touw vormt met de verticale, en p(t), de afgeleide van de hoek, vooropeenvolgende waarden van t. Deze benaderingen kunnen ook grafisch weergegeven wor-den. Het resultaat hiervan is figuur 6.

Er kan uit de figuur besloten worden dat de slinger een periodieke beweging maakt. Doorde afwezigheid van een afdempende kracht, maakt het touw telkens dezelfde uitwijking tenopzichte van de verticale. Deze uitwijking is bepaald door de startwaarde van de hoektussen het touw en de verticale.

4.3 Toepassingen 40

Figuur 6: Oplossing enkelvoudige slinger: verloop van q(t) en p(t)

4.3.2 Het Lotka-Volterra model

Als toepassing wordt ook het Lotka-Volterra model van dichterbij bekeken. Dit is eenpaar van niet-lineaire differentiaalvergelijkingen6 dat gebruikt wordt om de interactie tebeschrijven tussen twee groepen levende organismen, waarbij de ene groep bestaat uitprooien en de andere groep uit roofdieren. Het Lotka-Volterra model7 is van de vorm{

u = u(v − 2)v = v(1− u),

waarbij de functies u(t) en v(t) respectievelijk het aantal roofdieren en het aantal prooienvoorstellen op tijdstip t en de constanten 2 en 1 willekeurig gekozen zijn.

Dit stelsel differentiaalvergelijkingen is net zoals bij de slingerbeweging niet exact oplosbaar.Via Maple wordt hieronder een benadering gezocht door de symplectische Euler-methodelos te laten op het probleem. Deze gepartitioneerde Runge-Kutta-methode is al eerder aanbod gekomen en is opgebouwd uit de impliciete en expliciete Euler-methode.

Stel de 1 × 1-matrices A1, B1 en C1 de in Maple geımplementeerde coefficientenmatricesvan de impliciete Euler-methode en A2, B2 en C2 deze van de expliciete Euler-methode.De methode die in de vorige sectie aan bod kwam om een gepartitioneerde Runge-Kutta-methode toe te passen, heeft betrekking op een methode die opgebouwd is uit twee 2-trapsRunge-Kutta-methoden. Bij de symplectische Euler-methode is dit natuurlijk niet het ge-val, de impliciete en expliciete Euler-methode hebben slechts een trap. Er is dus een kleineaanpassing nodig in de Maple-code om een dergelijke methode te kunnen toepassen.

6Deze vergelijkingen worden de Lotka-Volterra-vergelijkingen of roofdier-prooi-vergelijkingen genoemd.7De Amerikaanse biofysicus Alfred Lotka en de Italiaanse wiskundige Vito Volterra stelden onafhankelijk

van elkaar het model respectievelijk in 1925 en 1926 voor.

4.3 Toepassingen 41

> methGRK:=proc(f,g,h,t 0,y 0,z 0,kl 0,A,B,C,Aa,Bb,Cc)

> local del,i,j,x,n;

> global KL, y 1,z 1,J,F;

> KL:=Matrix(2,1):

> for j from 1 to 2 do

> KL[j,1]:=kl 0:

> end do;

> x:=array(1..2):

> del:=Matrix(2,1,[1,1]);

> while (evalf(Norm(del)) > 10^(-6)) do

> J:=Jacobian([x[1]-f(t 0+C[1]*h,y 0+h*A[1]*x[1],z 0+h*Aa[1]*x[2]),x[2]-g(t 0+Cc[1]*h,y 0+h*A[1]*x[1], z 0+h*Aa[1]*x[2])],[x[1],x[2]]=[KL[1,1],KL[2,1]]):

> F:=Matrix(2,1,[KL[1,1]-f(t 0+C[1]*h,y 0+h*A[1]*KL[1,1],z 0+h*Aa[1]*KL[2,1]),KL[2,1]-g(t 0+Cc[1]*h,y 0+h*A[1]*KL[1,1],z 0+h*Aa[1]*KL[2,1])]):

> del:=evalf(LinearSolve(J,-F));KL:=KL+del:

> end do;

> y 1:=y 0+h*B[1]*KL[1,1];

> z 1:=z 0+h*Bb[1]*KL[2,1];

> return(y 1,z 1);

> end:

Ook op het model van Lotka-Volterra kan de methode ’MethGRKp’ toegepast wordendie voor een aantal opeenvolgende waarden van t een benadering bepaalt. Stel p = 100,dan gebeurt dit via de volgende Maple-code.

> f:=(t,u,v)->u*(v-2):g:=(t,u,v)->v*(1-u):

> MethGRKp(f,g,0.12,0,4,2,1/2,A1,B1,C1,A2,B2,C2,100):

Hier werd voor de stapgrootte h = 0.12 gekozen en op het begintijdstip t0 = 0 wordteen populatie van 4 roofdieren en 2 prooien verondersteld. Bij het uitvoeren van de boven-staande code, geeft Maple twee array’s van 100 waarden weer die een benadering zijn voorrespectievelijk u(t) en v(t) voor 100 opeenvolgende waarden van t. Om een duidelijk beeldte krijgen van het verloop van de functies u(t) en v(t), kunnen deze waarden door Mapleuitgezet worden op een grafiek. Zo wordt figuur 7 verkregen die het verloop schetst van defuncties u(t) en v(t).

Op figuur 7 is duidelijk het verloop af te lezen van de hoeveelheid roofdieren en prooi-en. Door de aanwezigheid van een meerderheid aan roofdieren, is meteen een sterke dalingmerkbaar in de grafiek van het aantal prooien. Hierdoor daalt op zijn beurt ook het aan-tal roofdieren, wat logisch is, want minder prooien betekent minder voedsel. Doordat hetaantal roofdieren daalt, hebben de prooien een grotere kans op overleven zodat het aantalprooien na een tijdje opnieuw enorm de hoogte ingaat. Hierdoor beschikken de roofdierendan weer over meer voedsel, zodat ook deze dieren in aantal stijgen. Deze cyclus blijft zichherhalen.

4.4 Ordevoorwaarden: Een schets 42

Figuur 7: Oplossing Lotka-Volterra-model: verloop van u(t) en v(t)

Ook kan in Maple een grafiek verkregen worden waarop u(t) en v(t) ten opzichte vanelkaar voorgesteld worden (zie figuur 8). Op deze figuur is ook duidelijk te zien dat het omeen periodiek fenomeen gaat. De kromme gevormd door de punten (u(t), v(t)) voor zekerewaarden van t is namelijk gesloten. Afhankelijk van de beginwaarden van de populatie, is erdus een periodiek verloop van de functies u(t) en v(t), respectievelijk het aantal roofdierenen het aantal prooien.

Figuur 8: Oplossing Lotka-Volterra-model: u ten opzichte van v

4.4 Ordevoorwaarden: Een schets

In de cursus ’Numerieke methoden voor stelsels differentiaalvergelijkingen’ (referentie [4])werd al uitvoerig ingegaan op de ordevoorwaarden voor een gewone Runge-Kutta-methode.

4.4 Ordevoorwaarden: Een schets 43

De definitie van een gepartitioneerde Runge-Kutta-methode 4.1 doet voor dergelijke me-thoden iets gelijkaardigs vermoeden.

4.4.1 Manuele uitwerking

In appendix A.3 worden de eerste, tweede en derde ordevoorwaarden voor een gepar-titioneerde Runge-Kutta-methode opgebouwd uit twee expliciete 3-traps Runge-Kutta-methoden, expliciet bepaald. Hieruit kunnen de ordevoorwaarden voor een algemene ge-partitioneerde Runge-Kutta-methode afgeleid worden. Het autonome systeem{

y = f(y, z)z = g(y, z)

(33)

wordt hierbij beschouwd.

• Voorwaarden voor eerste ordeDe voorwaarden opdat een gepartitioneerde Runge-Kutta-methode van de eerste ordezou zijn, zijn net de voorwaarden opdat de twee Runge-Kutta-methoden in kwestievan de eerste orde zouden zijn. De voorwaarden zijn namelijk

3∑i=1

bi = 1 en3∑i=1

bi = 1.

• Voorwaarden voor tweede ordeOpdat een gepartitioneerde Runge-Kutta-methode een methode van de tweede or-de zou zijn, moeten niet enkel de tweede ordevoorwaarden voor de Runge-Kutta-methoden afzonderlijk geldig zijn, maar ook moet gelden dat

3∑i,j=1

biaij =1

2en

3∑i,j=1

biaij =1

2.

Indien voor de twee Runge-Kutta-methoden dezelfde knooppunten gekozen worden,met andere woorden als geldt

ci = ci

en als aan de rijsom-voorwaarde voldaan is, dan zijn deze voorwaarden automatischgeldig. Er geldt dan namelijk dat ci =

∑3j=1 aij en ci =

∑3j=1 aij, zodat

3∑i,j=1

biaij =3∑i=1

bi

3∑j=1

aij =3∑i=1

bici =3∑i=1

bici =1

2,

3∑i,j=1

biaij =3∑i=1

bi

3∑j=1

aij =3∑i=1

bici =3∑i=1

bici =1

2,

waarbij de laatste gelijkheid telkens volgt uit de veronderstelling dat de Runge-Kutta-methoden waaruit de gepartitioneerde Runge-Kutta-methode is opgebouwd al van detweede orde zijn.

4.4 Ordevoorwaarden: Een schets 44

• Voorwaarden voor derde ordeDe voorwaarden opdat de gepartitioneerde Runge-Kutta-methode de derde orde zoubereiken, zijn al heel wat gecompliceerder. Aanvullend op de voorwaarden dat degebruikte Runge-Kutta-methoden van de derde orde zijn (en de voorwaarden vooreerste en tweede orde), zijn er maar liefst nog tien andere voorwaarden die moetenvoldaan zijn. Indien bovenop de rijsom-voorwaarde geldt dat ci = ci, worden debijkomende voorwaarden echter gereduceerd tot

3∑i,j=1

biaijcj =1

6en

3∑i,j=1

biaijcj =1

6.

Dit kan aan de hand van een analoge redenering als bij de voorwaarden voor tweedeorde aangetoond worden.

Zoals al vlug duidelijk werd bij de constructie van de voorwaarden voor het behalen vande derde orde, is het bepalen van de ordevoorwaarden geen lachertje. Daarom wordt in devolgende sectie aangetoond hoe handig gebruik gemaakt kan worden van het computerpro-gramma Maple.

4.4.2 Uitwerking met Maple

Met behulp van Maple zijn de geconstrueerde ordevoorwaarden uit appendix A.3 heel watefficienter te ontdekken. Vooraleerst wordt met onderstaande Maple-code een algemene 3-traps gepartitioneerde Runge-Kutta-methode geımplementeerd die opgebouwd is uit tweeexpliciete Runge-Kutta-methoden. Hierbij stellen A en B de coefficientenmatrices voor vande Runge-Kutta-methode die zal toegepast worden op de y-variable, terwijl de matrices Aaen Bb de coefficienten bevatten van deze die zal toegepast worden op de z-variabele.

> A:=Matrix(3,3,symbol=a):B:=Matrix(1,3,[b[1],b[2],b[3]]):

> Aa:=Matrix(3,3,symbol=aa):Bb:=Matrix(1,3,[bb[1],bb[2],bb[3]]):

> A(1,1):=0:A(1,2):=0:A(1,3):=0:A(2,2):=0:A(2,3):=0:A(3,3):=0:

> A; 0 0 0a2,1 0 0a3,1 a3,2 0

> Aa(1,1):=0:Aa(1,2):=0:Aa(1,3):=0:Aa(2,2):=0:Aa(2,3):=0:Aa(3,3):=0:

> Aa; 0 0 0aa2,1 0 0aa3,1 aa3,2 0

Opdat er een Taylorontwikkeling zou kunnen bepaald worden van de numerieke oplos-

sing via Maple, moeten natuurlijk ook de waarden ki en li voor i = 1, 2, 3 gedefinieerdworden.

4.4 Ordevoorwaarden: Een schets 45

> k(1):=f(y(t 0)+h*(A(1,1)*k(1)+A(1,2)*k(2)+A(1,3)*k(3)),z(t 0)+h*(Aa(1,1)*l(1)+Aa(1,2)*l(2)+Aa(1,3)*l(3)));

k(1) := f(y(t 0), z(t 0))

> k(2):=f(y(t 0)+h*(A(2,1)*k(1)+A(2,2)*k(2)+A(2,3)*k(3)),z(t 0)+h*(Aa(2,1)*l(1)+Aa(2,2)*l(2)+Aa(2,3)*l(3)));

k(2) := f(y(t 0) + ha2,1f(y(t 0), z(t 0)), z(t 0) + haa2,1g(y(t0), z(t0)))

> k(3):=f(y(t 0)+h*(A(3,1)*k(1)+A(3,2)*k(2)+A(3,3)*k(3)),z(t 0)+h*(Aa(3,1)*l(1)+Aa(3,2)*l(2)+Aa(3,3)*l(3)));

k(3) := f(y(t 0) + h(a3,1f(y(t 0), z(t 0)) + a3,2f(y(t 0) + ha2,1f(y(t 0), z(t 0)), z(t 0)+haa2,1g(y(t 0), z(t 0)))), z(t 0) + h(aa3,1g(y(t 0), z(t 0)) + aa3,2g(y(t 0)

+ha2,1f(y(t 0), z(t 0)), z(t 0) + haa2,1g(y(t 0), z(t 0)))))

> l(1):=g(y(t 0)+h*(A(1,1)*k(1)+A(1,2)*k(2)+A(1,3)*k(3)),z(t 0)+h*(Aa(1,1)*l(1)+Aa(1,2)*l(2)+Aa(1,3)*l(3)));

l(1) := g(y(t 0), z(t 0))

> l(2):=g(y(t 0)+h*(A(2,1)*k(1)+A(2,2)*k(2)+A(2,3)*k(3)),z(t 0)+h*(Aa(2,1)*l(1)+Aa(2,2)*l(2)+Aa(2,3)*l(3)));

l(2) := g(y(t 0) + ha2, 1f(y(t 0), z(t 0)), z(t 0) + haa2,1g(y(t 0), z(t 0)))

> l(3):=g(y(t 0)+h*(A(3,1)*k(1)+A(3,2)*k(2)+A(3,3)*k(3)),z(t 0)+h*(Aa(3,1)*l(1)+Aa(3,2)*l(2)+Aa(3,3)*l(3)));

l(3) := g(y(t 0) + h(a3,1f(y(t 0), z(t 0)) + a3,2f(y(t 0) + ha2,1f(y(t 0), z(t 0)), z(t 0)+haa2,1g(y(t 0), z(t 0)))), z(t 0) + h(aa3,1g(y(t 0), z(t 0)) + aa3,2g(y(t 0)

+ha2,1f(y(t 0), z(t 0)), z(t 0) + haa2,1g(y(t 0), z(t 0)))))

In bovenstaande Maple-output is duidelijk de vereenvoudiging merkbaar voor de waar-den van ki en li voor i = 1, 2, 3 doordat er een expliciete gepartitioneerde Runge-Kutta-methode beschouwd wordt.De constructie van een Taylorontwikkeling van de numerieke oplossing door Maple, ziet erals volgt uit.

> y 1:=y(t 0)+h*(B(1,1)*k(1)+B(1,2)*k(2)+B(1,3)*k(3));

> ty:=taylor(y 1,h,4);

> z 1:=z(t 0)+h*(Bb(1,1)*l(1)+Bb(1,2)*l(2)+Bb(1,3)*l(3));

> tz:=taylor(z 1,h,4);

Vervolgens worden twee functies gedefinieerd in Maple om op een efficiente manier decoefficient bij een zekere macht van h uit de taylorontwikkelingen voor y1 en z1 te kunnengenereren. Deze zullen goed van pas komen bij het vergelijken van de Taylorontwikkelingvan de numerieke en de exacte oplossing. Als illustratie wordt in de onderstaande code eensde coefficient gegenereerd bij de macht h1 uit de Taylorontwikkeling van y1.

> coefey:=i->coeff(ty,h^(i)):

> coefez:=i->coeff(tz,h^(i)):

4.4 Ordevoorwaarden: Een schets 46

> coefey(1);

b1f(y(t 0), z(t 0)) + b2f(y(t 0), z(t 0)) + b3f(y(t 0), z(t 0))

De Maple-code om de Taylorontwikkeling van de exacte oplossing y(t) te genereren, zieter als volgt uit.

> D(y):=t->f(y(t),z(t));D(z):=t->g(y(t),z(t));

> y(t 1):=taylor(y(t 0+h),h,4);z(t 1):=taylor(z(t 0+h),h,4);

Hierbij worden de eerste twee functies ingevoerd opdat de eerste afgeleiden van y en zin de Taylorontwikkeling zouden vervangen worden door respectievelijk de functies f en g.Analoog als bij de numerieke oplossing, worden er ook hier twee functies ingevoerd die decoefficient bij een zekere macht van h genereren.

> coefny:=i->coeff(y(t 1),h^(i)):coefnz:=i->coeff(z(t 1),h^(i)):

> coefny(1);

f(y(t 0), z(t 0))

Om tot de ordevoorwaarden te komen, worden nu de Taylorontwikkelingen van de exac-te en de numerieke oplossing met elkaar vergeleken. Opdat een methode een zekere ordep zou hebben, moet gelden dat de coefficienten in de taylorontwikkeling van de numeriekeen de exacte oplossing gelijk zijn tot en met deze bij hp. Met andere woorden de methodeis van de orde p als de laagst voorkomende macht van h in de fout p + 1 is en dus decoefficienten bij de lagere machten van h nul zijn. Deze coefficienten worden in de Maple-code die hieronder te vinden is van dichterbij bekeken. De functie ’collect’ wordt gebruiktom de gemeenschappelijke factoren af te zonderen om zo een duidelijker beeld te krijgenvan welke uitdrukkingen juist moeten gelden opdat de coefficient bij de macht van h inkwestie nul zou zijn.

Voorwaarden voor eerste orde

> collect(coefey(1)-coefny(1),[f(y(t 0),z(t 0)),g(y(t 0),z(t 0))],factor);

(b1 + b2 + b3 − 1)f(y(t 0), z(t 0))

> collect(coefez(1)-coefnz(1),[f(y(t 0),z(t 0)),g(y(t 0),z(t 0))],factor);

(bb1 + bb2 + bb3 − 1)g(y(t 0), z(t 0))

Voorwaarden voor tweede orde

> collect(coefey(2)-coefny(2),[D[1](f)(y(t 0),z(t 0)),D[2](f)(y(t 0),z(t 0))],factor);

12f(y(t 0), z(t 0))(2b2a2,1 − 1 + 2b3a3,1 + 2b3a3,2)D1(f)(y(t 0), z(t 0)) +

12g(y(t 0),

z(t 0))(2b3aa3,1 + 2b3aa3,2 − 1 + 2b2aa2,1)D2(f)(y(t 0), z(t 0))

> collect(coefez(2)-coefnz(2),[D[1](g)(y(t 0),z(t 0)),D[2](g)(y(t 0),z(t 0))],factor);

12f(y(t 0), z(t 0))(2bb2a2,1 − 1 + 2bb3a3,1 + 2bb3a3,2)D1(g)(y(t 0), z(t 0)) +

12g(y(t 0),

z(t 0))(2bb3aa3,1 + 2bb3aa3,2 − 1 + 2bb2aa2,1)D2(g)(y(t 0), z(t 0))

4.5 Het paar Lobatto IIIA-IIIB 47

Voorwaarden voor derde orde

> collect(coefey(3)-coefny(3),[D[1](g)(y(t 0),z(t 0)),D[1](f)(y(t 0),z(t 0)),D[1,1](f)(y(t 0),z(t 0)),D[1,2](f)(y(t 0),z(t 0)),D[2,2](f)(y(t 0),z(t 0))],factor);

16D2(f)(y(t 0), z(t 0))f(y(t 0), z(t 0))(−1 + 6b3aa3,2a2,1)D1(g)(y(t 0), z(t 0))

+16f(y(t 0), z(t 0))(6b3a3,2a2,1 − 1)D1(f)(y(t 0), z(t 0))2 + ...

> collect(coefez(3)-coefnz(3),[f(y(t 0),z(t 0)),g(y(t 0),z(t 0)),D[1](g)(y(t 0),z(t 0)),D[1](f)(y(t 0),z(t 0)),D[1,1](g)(y(t 0),z(t 0)),D[1,2](g)(y(t 0),z(t 0)),D[2,2](g)(y(t 0),z(t 0))],factor);(

12bb3aa

23,1 +

12bb3aa

23,2 + bb3aa3,1aa3,2 +

12bb2aa

22,1 −

16

)D2,2(g)(y(t 0), z(t 0))

g(y(t 0), z(t 0))2 +(bb2a2,1aa2,1 −

13

+ bb3a3,2aa3,1 + bb3a3,2aa3,2 + bb3a3,1aa3,1

+ bb3a3,1aa3,2

)D1,2(g)(y(t 0), z(t 0))f(y(t 0), z(t 0)) +

16D2(f)(y(t 0), z(t 0))

(−1 + 6bb3a3,2aa2,1)D1(g)(y(t 0), z(t 0)) + ...

Uit bovenstaande Maple-output kunnen de ordevoorwaarden voor eerste, tweede enderde orde voor een gepartitioneerde Runge-Kutta-methode gehaald worden. Dezelfde ge-lijkheden als in appendix A.3 worden verkregen door telkens in elke term de uitdrukkingwaarin de coefficienten van de methoden voorkomen gelijk aan nul te stellen, dan vallenrespectievelijk de termen met h1, h2 en h3 weg in de uitdrukking van de fout.

4.4.3 Conclusie

Uit zowel de manuele uitwerking als de uitwerking met Maple kan besloten worden dat hetafleiden van de ordevoorwaarden niet zo evident is. Het vele rekenwerk in de eerste sectiekan wel opgevangen worden door Maple, maar toch is het ook nog wat zoekwerk om deuitdrukkingen op deze manier te construeren. Hou er ook rekening mee dat hier gewerktwerd met een expliciete gepartitioneerde Runge-Kutta-methode om de algemene ordevoor-waarden af te leiden, wat bovenstaande berekeningen heel wat vereenvoudigt. Bovendienhadden de beschouwde Runge-Kutta-methoden slechts 3 trappen, wat ook de omvang vande berekeningen reduceert. Kortom de bovenstaande methode is niet praktisch om de ho-gere ordevoorwaarden te bepalen bij een algemene gepartitioneerde Runge-Kutta-methodemet s trappen. Hiervoor bestaat aan de hand van P-Series en bomen (cfr. Runge-Kutta-methoden) wel een efficiente manier, waar in dit werk niet dieper op ingegaan wordt. Voormeer informatie hieromtrent wordt verwezen naar referentie [3].

4.5 Het paar Lobatto IIIA-IIIB

Bij gepartitioneerde Runge-Kutta-methoden kunnen om het even welke Runge-Kutta-methodenmet een gelijk aantal trappen gecombineerd worden. Natuurlijk wordt niet met elke com-binatie de gewenste orde van benadering bereikt zodat niet elke vereniging van Runge-Kutta-methoden effectief is. Nu blijkt8 dit wel het geval te zijn voor de collocatiemethodenLobatto IIIA en de discontinue collocatiemethoden Lobatto IIIB, die al in vorige hoofd-stukken aan bod kwamen. Een gepartitioneerde Runge-Kutta-methode opgebouwd uit deze

8Sun (1993) en Jay (1996) deden deze ontdekking.

4.5 Het paar Lobatto IIIA-IIIB 48

twee soorten methoden wordt een Lobatto IIIA-IIIB-paar genoemd. Een dergelijke metho-de is net als de symplectische Euler-methode een symplectische methode.

Voor s = 2 is het Lobatto IIIA-IIIB-paar de methode van Stormer/Verlet die al eerderbesproken werd. Voor s = 3 zijn de coefficienten van het paar Lobatto IIIA-IIIB gegevendoor

0 0 0 0

12

524

13

−124

1 16

23

16

16

23

16

0 16

-16

0

12

16

13

0

1 16

56

0

16

23

16

waarbij de linkse Butchertableau de 3-traps methode Lobatto IIIA voorstelt en de recht-se de 3-traps methode Lobatto IIIB.

4.5.1 Orde van het paar Lobatto IIIA-IIIB

De onderstaande stelling vertelt iets meer over de orde van een Lobatto IIIA-IIIB-paar enwordt op een efficiente manier bewezen.

4.2 Stelling. De gepartitioneerde Runge-Kutta-methode gevormd door de s-traps methodenLobatto IIIA en Lobatto IIIB, is van de orde 2s− 2.

Bewijs. Nog steeds wordt het stelsel differentiaalvergelijkingen (28) beschouwd. Met demethode Lobatto IIIA wordt er een benadering gezocht voor de functie y(t), voor z(t)wordt de methode Lobatto IIIB gebruikt.Stel c1 = 0, c2, ..., cn−1, cs = 1 en b1, ..., bs de knooppunten en de gewichten van deLobatto-kwadratuurformule.

1. Stel u(t) de collocatiepolynoom van de methode Lobatto IIIA. Deze methode is eencontinue collocatiemethode, er geldt dus

u(t0) = y0

u(t0 + cih) = f(t0 + cih, u(t0 + cih), v(t0 + cih)), i = 1, ..., sy1 = u(t1).

2. Stel v(t) de collocatiepolynoom van de methode Lobatto IIIB. Deze methode is eendiscontinue collocatiemethode, er geldt dus

v(t0) = z0 − hb1(v(t0)− g(t0, u(t0), v(t0)))v(t0 + cih) = g(t0 + cih, u(t0 + cih), v(t0 + cih)), i = 2, ..., s− 1z1 = v(t1)− hbs(v(t1)− g(t1, u(t1), v(t1))).

4.5 Het paar Lobatto IIIA-IIIB 49

Uit 1. en 2. volgt dat de s-traps gepartitioneerde Runge-Kutta-methode gevormd doorhet paar Lobatto IIIA-IIIB, geınterpreteerd kan worden als de methode

u(t0) = y0,

v(t0) = z0 − hb1(v(t0)− g(t0, u(t0), v(t0))),

u(t0 + cih) = f(t0 + cih, u(t0 + cih), v(t0 + cih)), i = 1, ..., s,

v(t0 + cih) = g(t0 + cih, u(t0 + cih), v(t0 + cih)), i = 2, ..., s− 1,

y1 = u(t1),

z1 = v(t1)− hbs(v(t1)− g(t1, u(t1), v(t1))),

met u(t) en v(t) polynomen van respectievelijk graad s en s− 2.

Om te komen tot wat er moet bewezen worden, worden eerst afschattingen van ‖y(k)(t)−u(k)(t)‖ en ‖z(k)(t) − v(k)(t)‖ voor k = 0, ..., s bepaald, die in het verdere verloop van hetbewijs worden gebruikt.

(i) Afschatting voor ‖y(t)− u(t)‖:Om een afschatting te bepalen voor de hierboven gegeven norm, wordt analoog tewerkgegaan als in hulpstelling 2.4, nu rekening houdend met een bijkomende veranderlijkein de functie f .Vertrekkende van

u(t0 + τh) =s∑i=1

f(t0 + cih, u(t0 + cih), v(t0 + cih))li(τ) (34)

en

y(t0 + τh) =s∑i=1

f(t0 + cih, y(t0 + cih), z(t0 + cih))li(τ) + hsE(τ, h), (35)

worden de afschattingen

‖E(τ, h)‖ ≤ maxt∈[t0,t0+h]

‖y(s+1)(t)‖s!

en ‖E(k−1)(τ, h)‖ ≤ maxt∈[t0,t0+h]

‖y(s+1)(t)‖(s− k + 1)!

verkregen. De uitdrukkingen voor u(t0 + τh) en y(t0 + τh) van elkaar aftrekken enintegreren over het interval [0, τ ], levert

y(t0 + τh)− u(t0 + τh) = h

s∑i=1

4fiˆ τ

0

li(σ)dσ + hs+1

ˆ τ

0

E(σ, h)dσ,

met 4fi = f(t0 + cih, y(t0 + cih), z(t0 + cih)) − f(t0 + cih, u(t0 + cih), v(t0 + cih)).Hiervoor geldt

‖4fi‖ = ‖f(t0 + cih, y(t0 + cih), z(t0 + cih))− f(t0 + cih, y(t0 + cih), v(t0 + cih))

−f(t0 + cih, u(t0 + cih), v(t0 + cih)) + f(t0 + cih, y(t0 + cih), v(t0 + cih))‖≤ L1‖z(t0 + cih)− v(t0 + cih)‖+ L2‖y(t0 + cih)− u(t0 + cih)‖,

4.5 Het paar Lobatto IIIA-IIIB 50

waarbij gebruik gemaakt wordt van de Lipschitzcontinuıteit van f .Hieruit volgt dat

‖y(t0 + τh)− u(t0 + τh)‖ ≤ hs∑i=1

‖4fi‖∥∥∥∥ˆ τ

0

li(σ)dσ

∥∥∥∥+ hs+1

∥∥∥∥ˆ τ

0

E(σ, h)dσ

∥∥∥∥≤ h

s∑i=1

L1‖z(t0 + cih)− v(t0 + cih)‖∥∥∥∥ˆ τ

0

li(σ)dσ

∥∥∥∥+h

s∑i=1

L2‖y(t0 + cih)− u(t0 + cih)‖∥∥∥∥ˆ τ

0

li(σ)dσ

∥∥∥∥+hs+1

∥∥∥∥ˆ τ

0

E(σ, h)dσ

∥∥∥∥ .Stel nu

∑si=1

∥∥´ τ0li(σ)dσ

∥∥ = D1 en∥∥´ τ

0E(σ, h)dσ

∥∥ = C (dit laatste geldt wegensE(τ, h) begrensd), dan volgt dat

maxt∈[t0,t0+h]

‖y(t)− u(t)‖ ≤ hD1L1 maxt∈[t0,t0+h]

‖z(t)− v(t)‖+ hD1L2 maxt∈[t0,t0+h]

‖y(t)

−u(t)‖+ Chs+1,

zodat voor voldoende kleine h > 0 geldt

maxt∈[t0,t0+h]

‖y(t)− u(t)‖ ≤ hD1L1 maxt∈[t0,t0+h]

‖z(t)− v(t)‖+ Chs+1. (36)

(ii) Afschatting voor ‖z(t)− v(t)‖:Om nu een afschatting te bepalen voor de hierboven gegeven norm, wordt analoogtewerk gegaan als in hulpstelling 3.3.Vertrekkende van

v(t0 + τh) =s−1∑i=2

g(t0 + cih, u(t0 + cih), v(t0 + cih))li(τ) (37)

en

z(t0 + τh) =s−1∑i=2

g(t0 + cih, y(t0 + cih), z(t0 + cih))li(τ) + hs−2E(τ, h), (38)

worden nu de afschattingen

‖E(τ, h)‖ ≤ maxt∈[t0,t0+h]

‖z(s−1)(t)‖(s− 2)!

en ‖E(k−1)(τ, h)‖ ≤ maxt∈[t0,t0+h]

‖z(s−1)(t)‖(s− k − 1)!

verkregen. De uitdrukkingen voor v(t0 + τh) en z(t0 + τh) van elkaar aftrekken enintegreren over het interval [0, τ ], levert

z(t0 + τh)− v(t0 + τh)− (z(t0)− v(t0)) = h

s−1∑i=2

4giˆ τ

0

li(σ)dσ + hs−1

ˆ τ

0

E(σ, h)dσ,

4.5 Het paar Lobatto IIIA-IIIB 51

waarbij 4gi = g(t0 + cih, y(t0 + cih), z(t0 + cih))− g(t0 + cih, u(t0 + cih), v(t0 + cih)).Hiervoor geldt

‖4gi‖ = ‖g(t0 + cih, y(t0 + cih), z(t0 + cih))− g(t0 + cih, y(t0 + cih), v(t0 + cih))

−g(t0 + cih, u(t0 + cih), v(t0 + cih)) + g(t0 + cih, y(t0 + cih), v(t0 + cih))‖≤ L3‖z(t0 + cih)− v(t0 + cih)‖+ L4‖y(t0 + cih)− u(t0 + cih)‖,

waarbij gebruik gemaakt wordt van de Lipschitzcontinuıteit van g.Gebruik makend van de uitdrukking v(t0) = z0−hb1(v(t0)−g(t0, u(t0), v(t0))), wordtverkregen dat

‖z(t0 + τh)− v(t0 + τh)‖ ≤ hb1‖v(t0)− g(t0, u(t0), v(t0))‖+ h

s−1∑i=2

‖4gi‖∥∥∥∥ˆ τ

0

li(σ)dσ

∥∥∥∥+ hs−1

∥∥∥∥ˆ τ

0

E(σ, h)dσ

∥∥∥∥≤ hb1‖v(t0)− g(t0, u(t0), v(t0))‖

+hs−1∑i=2

L3 ‖z(t0 + cih)− v(t0 + cih)‖∥∥∥∥ˆ τ

0

li(σ)dσ

∥∥∥∥+h

s−1∑i=2

L4 ‖y(t0 + cih)− u(t0 + cih)‖∥∥∥∥ˆ τ

0

li(σ)dσ

∥∥∥∥+hs−1

∥∥∥∥ˆ τ

0

E(σ, h)dσ

∥∥∥∥ .Stel nu

∑s−1i=2

∥∥´ τ0li(σ)dσ

∥∥ = D2 en opnieuw∥∥´ τ

0E(σ, h)dσ

∥∥ = C (dit laatste geldtwegens E(τ, h) begrensd), dan volgt dat

maxt∈[t0,t0+h]

‖z(t)− v(t)‖ ≤ hb1‖v(t0)− g(t0, u(t0), v(t0))‖+ hD2L3 maxt∈[t0,t0+h]

‖z(t)

−v(t)‖+ hD2L4 maxt∈[t0,t0+h]

‖y(t)− u(t)‖+ Chs−1.

Er geldt dat ‖v(t0) − g(t0, u(t0), v(t0))‖ zich gedraagt als O(hs−2) wegens v(t) deveelterm van de discontinue collocatiemethode. Hieruit volgt dat

hb1‖v(t0)− g(t0, u(t0), v(t0))‖ = O(hs−1),

zodat deze term kan opgenomen worden in de term Chs−1.Voor voldoende kleine h > 0 geldt dus dat

maxt∈[t0,t0+h]

‖z(t)− v(t)‖ ≤ hD2L4 maxt∈[t0,t0+h]

‖y(t)− u(t)‖+ Chs−1. (39)

Uit (i) en (ii) volgt dat

maxt∈[t0,t0+h]

‖y(t)− u(t)‖(36)

≤ hD1L1 maxt∈[t0,t0+h]

‖z(t)− v(t)‖+ Chs+1

(39)

≤ hD1L1

(hD2L4 max

t∈[t0,t0+h]‖y(t)− u(t)‖+ Chs−1

)+ Chs+1

≤ h2D1D2L1L4 maxt∈[t0,t0+h]

‖y(t)− u(t)‖+D1L1Chs + Chs+1,

4.5 Het paar Lobatto IIIA-IIIB 52

zodat voor voldoende kleine h > 0 geldt

‖y(t)− u(t)‖ ≤ C1hs voor t ∈ [t0, t0 + h]. (40)

Ook volgt uit (i) en (ii) dat

maxt∈[t0,t0+h]

‖z(t)− v(t)‖(39)

≤ hD2L4 maxt∈[t0,t0+h]

‖u(t)− y(t)‖+ Chs−1

(40)

≤ hD2L4C1hs + Chs−1,

zodat voor voldoende kleine h > 0 geldt

‖z(t)− v(t)‖ ≤ C2hs−1 voor t ∈ [t0, t0 + h]. (41)

Om te komen tot een afschatting van ‖y(k)(t)− u(k)(t)‖ voor k = 0, ..., s wordt gebruikgemaakt van uitdrukkingen (34) en (35) uit (i). Deze gelijkheden van elkaar aftrekken enk − 1 keer afleiden, levert

hk−1(y(k)(t0 + τh)− u(k)(t0 + τh)

)=

s∑i=1

4fil(k−1)i (τ) + hsE(k−1)(τ, h).

Door linker- en rechterlid met h1−k te vermenigvuldigen en gebruik te maken van de Lip-schitzcontinuıteit van de functie f , geldt er

‖y(k)(t0 + τh)− u(k)(t0 + τh)‖ ≤ h1−ks∑i=1

‖4fi‖∥∥∥l(k−1)i (τ)

∥∥∥+ hs−k+1∥∥E(k−1)(τ, h)

∥∥≤ h1−k

s∑i=1

L1‖z(t0 + cih)− v(t0 + cih)‖∥∥∥l(k−1)i (τ)

∥∥∥+h1−k

s∑i=1

L2‖y(t0 + cih)− u(t0 + cih)‖∥∥∥l(k−1)i (τ)

∥∥∥+hs−k+1

∥∥E(k−1)(τ, h)∥∥ .

Door (40) en (41), geldt er

maxt∈[t0,t0+h]

‖y(k)(t)− u(k)(t)‖ ≤ h1−kL1DC2hs−1 + h1−kDL2C1h

s + Chs−k+1

≤ L1DC2hs−k +DL2C1h

s−k+1 + Chs−k+1,

waarbij D =∑s

i=1

∥∥∥l(k−1)i (τ)

∥∥∥ en C =∥∥E(k−1)(τ, h)

∥∥. Zo geldt voor voldoende kleine h > 0

dat‖y(k)(t)− u(k)(t)‖ ≤ Chs−k voor t ∈ [t0, t0 + h], k = 0, ..., s, (42)

zodat een afschatting gevonden is voor ‖y(k)(t)− u(k)(t)‖ voor k = 0, ..., s.

Om vervolgens te komen tot een afschatting van ‖z(k)(t)− v(k)(t)‖ wordt gebruik gemaakt

4.5 Het paar Lobatto IIIA-IIIB 53

van uitdrukkingen (37) en (38) uit (ii). Deze gelijkheden van elkaar aftrekken en k− 1 keerafleiden, levert

hk−1(z(k)(t0 + τh)− v(k)(t0 + τh)

)=

s−1∑i=2

4gil(k−1)i (τ) + hs−2E(k−1)(τ, h).

Door linker- en rechterlid met h1−k te vermenigvuldigen en gebruik te maken van de Lip-schitzcontinuıteit van de functie g, geldt er

‖z(k)(t0 + τh)− v(k)(t0 + τh)‖ ≤ h1−ks−1∑i=2

‖4gi‖∥∥∥l(k−1)i (τ)

∥∥∥+ hs−k−1∥∥E(k−1)(τ, h)

∥∥≤ h1−k

s−1∑i=2

L3‖z(t0 + cih)− v(t0 + cih)‖∥∥∥l(k−1)i (τ)

∥∥∥+h1−k

s−1∑i=2

L4‖y(t0 + cih)− u(t0 + cih)‖∥∥∥l(k−1)i (τ)

∥∥∥+hs−k−1

∥∥E(k−1)(τ, h)∥∥ .

Door gebruik te maken van (40) en (41), wordt verkregen dat

maxt∈[t0,t0+h]

‖z(k)(t)− v(k)(t)‖ ≤ h1−kL3DC1hs−1 + h1−kDL4C1h

s + Chs−k−1

≤ L3DC1hs−k +DL4C1h

s−k+1 + Chs−k−1,

waarbij D =∑s

i=1

∥∥∥l(k−1)i (τ)

∥∥∥ en C =∥∥E(k−1)(τ, h)

∥∥. Zo geldt voor voldoende kleine h > 0

dat‖z(k)(t)− v(k)(t)‖ ≤ Chs−k−1 voor t ∈ [t0, t0 + h], k = 0, ..., s, (43)

zodat een afschatting gevonden is voor ‖z(k)(t)− v(k)(t)‖ voor k = 0, ..., s.

Nu zal van deze bovenstaande afschattingen gebruik gemaakt worden om aan te tonen datde s-traps gepartitioneerde Runge-Kutta-methode gevormd door het paar Lobatto IIIA-IIIB van de orde 2s− 2 is, m.a.w. dat(

y1 − y(t1)z1 − z(t1)

)= O(h2s−1).

Om aan te tonen dat bovenstaande uitdrukking geldt, wordt er op een gelijkaardige ma-nier tewerk gegaan als in de superconvergentiestelling voor discontinue collocatiemethoden3.4.Nu wordt er wel vertrokken van de geperturbeerde differentiaalvergelijking(

u(t)v(t)

)=

(f(t, u(t), v(t))g(t, u(t), v(t))

)+ δ(t),

waarbij de vector

δ(t) =

(δ1(t)δ2(t)

)

4.5 Het paar Lobatto IIIA-IIIB 54

de perturbatiefout is. Hiervan de differentiaalvergelijking(y(t)z(t)

)=

(f(t, y(t), z(t))g(t, y(t), z(t))

)aftrekken, levert(

u(t)− y(t)v(t)− z(t)

)=

(f(t, u(t), v(t))g(t, u(t), v(t))

)−(f(t, y(t), z(t))g(t, y(t), z(t))

)+ δ(t),

met (f(t, u(t), v(t))g(t, u(t), v(t))

)=

(f(t, y(t), z(t))g(t, y(t), z(t))

)+

(∂f∂y

∂f∂z

∂g∂y

∂g∂z

)(u(t)− y(t)v(t)− z(t)

)+ r(t),

waarbij r(t) := O(‖u(t)− y(t)‖2, ‖v(t)− z(t)‖2, ‖u(t)− y(t)‖‖v(t)− z(t)‖).Deze uitdrukking substitueren in de voorgaande, levert(

u(t)− y(t)v(t)− z(t)

)=

(f(t, y(t), z(t))g(t, y(t), z(t))

)+

(∂f∂y

∂f∂z

∂g∂y

∂g∂z

)(u(t)− y(t)v(t)− z(t)

)+r(t)−

(f(t, y(t), z(t))g(t, y(t), z(t))

)+ δ(t)

=

(∂f∂y

∂f∂z

∂g∂y

∂g∂z

)(u(t)− y(t)v(t)− z(t)

)+ r(t) + δ(t).

De ’Variation of constants formula’ (zie appendix A.2) gebruiken met

z(t) =

(u(t)− y(t)v(t)− z(t)

), A(t) =

(∂f∂y

∂f∂z

∂g∂y

∂g∂z

)en g(t) = r(t) + δ(t),

levert dan(u(t1)− y(t1)v(t1)− z(t1)

)=

(u(t0 + h)− y(t0 + h)v(t0 + h)− z(t0 + h)

)= R(t0 + h, t0)

(u(t0)− y0

v(t0)− z0

)+

ˆ t0+h

t0

R(t0 + h, v) (δ(v) + r(v)) dv.

(i) Gelijkaardig aan superconvergentiestelling 3.4 wordt eerst de integraalˆ t0+h

t0

R(t0 + h, v)r(v)dv

beschouwd. Uit r(t) := O(‖u(t) − y(t)‖2, ‖v(t) − z(t)‖2, ‖u(t) − y(t)‖‖v(t) − z(t)‖)volgt wegens de voorgaande berekende afschattingen (42) en (43) dat de functie r(t)zich gedraagt als O((hs)2, (hs−1)2, hshs−1) = O(h2s, h2s−2, h2s−1) = O(h2s−2) voort ∈ [t0, t0 + h]. Er wordt geıntegreerd over een interval van lengte h waardoor gansde integraal zich gedraagt alsˆ t0+h

t0

R(t0 + h, v)r(v)dv = O(h2s−1).

4.5 Het paar Lobatto IIIA-IIIB 55

(ii) Vervolgens wordt de integraalˆ t0+h

t0

R(t0 + h, v)δ(v)dv

beschouwd. Op deze integraal de kwadratuurformule met gewichten bi toepassen,levert ˆ t0+h

t0

R(t0 + h, v)δ(v)dv = h

s∑i=1

biR(t0 + h, t0 + cih)δ(t0 + cih) + fout.

Bovendien geldt er dat u(t) en v(t) de veeltermen zijn van respectievelijk de methodenLobatto IIIA en Lobatto IIIB. Dit betekent dat (zie 1. en 2.)

u(t0 + cih) = f(t0 + cih, u(t0 + cih), v(t0 + cih)), i = 1, ..., s

env(t0 + cih) = g(t0 + cih, u(t0 + cih), v(t0 + cih)), i = 2, ..., s− 1,

dus dat(u(t0 + cih)v(t0 + cih)

)=

(f(t0 + cih, u(t0 + cih), v(t0 + cih))g(t0 + cih, u(t0 + cih), v(t0 + cih))

), i = 2, ..., s− 1,

m.a.w. de perturbatiefout δ verdwijnt voor i = 2, ..., s − 1. Ook is δ1 = 0 voor i = 1en i = s, maar er moet wel nog rekening gehouden worden met het feit dat δ2 nietnoodzakelijk nul is voor deze waarden van i. Er geldt dus

ˆ t0+h

t0

R(t0 + h, v)δ(v)dv = 0 + hb1R(t0 + h, t0 + c1h)δ(t0 + c1h)

+hbsR(t0 + h, t0 + csh)δ(t0 + csh) + fout.

Doordat gewerkt wordt met de methoden Lobatto IIIA en IIIB is de onderliggendekwadratuurformule van de orde 2s − 2, zodat geldt dat de fout zich gedraagt alsO(h(2s−2)+1) = O(h(2s−1)).

Uit (i) en (ii) volgt dat(u(t1)− y(t1)v(t1)− z(t1)

)= R(t0 + h, t0)

(u(t0)− y0

v(t0)− z0

)+ hb1R(t0 + h, t0 + c1h)δ(t0 + c1h)

+hbsR(t0 + h, t0 + csh)δ(t0 + csh) +O(h2s−1)

= R(t0 + h, t0)

(u(t0)− y0

v(t0)− z0

)+ hb1R(t0 + h, t0)δ(t0)

+hbsR(t0 + h, t0 + h)δ(t0 + h) +O(h2s−1),

waarbij de laatste gelijkheid geldt door c1 = 0 en cs = 1. Wegens R(s, s) = I voors ∈ [t0, t0 + h] geldt dat R(t0 + h, t0 + h) = I zodat(

u(t1)− y(t1)v(t1)− z(t1)

)− hbsδ(t0 + h) = R(t0 + h, t0)

((u(t0)− y0

v(t0)− z0

)+ hb1δ(t0)

)+O(h2s−1).

(44)

4.5 Het paar Lobatto IIIA-IIIB 56

Wegens 1. en 2. geldt(u(t0)v(t0)

)=

(y0

z0

)− hb1

(0

v(t0)− g(t0, u(t0), v(t0))

)=

(y0

z0

)− hb1δ(t0),(

u(t1)v(t1)

)=

(y1

z1

)+ hbs

(0

v(t1)− g(t1, u(t1), v(t1))

)=

(y1

z1

)+ hbsδ(t1).

Dit invullen in uitdrukking (44), levert(y1 − y(t1)z1 − z(t1)

)= O(h2s−1),

wat moest bewezen worden.

Er kan dus besloten worden dat de s-traps gepartitioneerde Runge-Kutta-methode gevormddoor het paar Lobatta IIIA-IIIB van de orde 2s− 2 is.

Uit bovenstaande stelling kan dus besloten worden dat het paar Lobatto IIIA-IIIB eengoede benadering kan geven van de exacte oplossing van een beginwaardeprobleem. DeRunge-Kutta-methoden Lobatto IIIA en Lobatto IIIB blijken dus een gouden combinatiete zijn.

4.3 Gevolg. Zoals eerder vermeld, is de methode van Stormer/Verlet een gepartitioneerdeRunge-Kutta-methode gevormd door het 2-traps Lobatto IIIA-IIIB-paar. Uit bovenstaandestelling volgt dus dat deze methode van de tweede orde is.

4.5.2 Toepassing

Om bovenstaande stelling te illustreren, wordt het volgende voorbeeld van een stelsel dif-ferentiaalvergelijkingen aangegrepen:{

y = 3z + 2y + t− 2 y(0) = 1z = z − 6y − 2t+ 5 z(0) = 1.

De exacte oplossing van bovenstaande beginwaardeprobleem, kan via onderstaande codegemakkelijk aan de hand van Maple gevonden worden.

> sys ode:=diff(y(t),t)=3*z(t)+2*y(t)+t-2,diff(z(t),t)=z(t)-6*y(t)-2*t+5:

> ics:=y(0)=1,z(0)=1:

> OPLYZ:=dsolve([sys ode, ics]);

OPLYZ :=

{y(t) =

249728400

e(3t2 ) sin

(√71t2

)√

71 +61400

e(3t2 ) cos

(√71t2

)+

339400− 7t

20,

4.5 Het paar Lobatto IIIA-IIIB 57

z(t) = − 56914200

e(3t2 ) sin

(√71t2

)√

71 +203200

e(3t2 ) cos

(√71t2

)− 3

200− t

10

}> yexact:=unapply(rhs(OPLYZ[1]),t):zexact:=unapply(rhs(OPLYZ[2]),t):

Met behulp van de functies ’yexact’ en ’zexact’ wordt de exacte oplossing in functie vande veranderlijke t gedefinieerd.

Om het paar Lobatto IIIA-IIIB met s = 3 toe te passen op het bovenstaande probleem,moeten de nodige Runge-Kutta-methoden natuurlijk geımplementeerd worden in Maple.De code die in Maple nodig is om de procedures ’LobattoIIIA’ en ’LobattoIIIB’ te de-finieren, kwam al in hoofdstukken 2 en 3 aan bod. Stel de matrices A1, B1 en C1 decoefficientenmatrices van de 3-traps collocatiemethode Lobatto IIIA en de matrices A2, B2en C2 deze van de 3-traps discontinue collocatiemethode Lobatto IIIB.

Net als bij het toepassen van een gewone Runge-Kutta-methode, kan ook hier een procedu-re ontwikkeld worden die de mogelijkheid biedt om een benadering van de exacte oplossingweer te geven in functie van de stapgrootte h. Deze methode is slechts toepasbaar wanneerhet op te lossen stelsel lineair is in de veranderlijken y en z.De onderstaande methode ’methGRK2’ is een methode om een gepartitioneerde Runge-Kutta-methode toe te passen wanneer het beschouwde probleem lineair is en er dus geeniteratie voor de waarden ki en li (i = 1, 2, 3) nodig is. Hierdoor is het niet nodig om dewaarde van h te specifieren zodat de benaderende oplossing kan gegeven wordt in functievan h.

> methGRK2:=proc(f,g,h,t 0,y 0,z 0,A,B,C,Aa,Bb,Cc)

> local i,OPLKL,n;

> global KL, y 1,z 1;

> KL:=array(1..6):

> OPLKL:=solve(KL[1]-f(t 0+C[1]*h,y 0+h*add(A[1,n]*KL[n], n=1..3),z 0+h*add(Aa[1,n]*KL[n+3], n=1..3))=0,KL[2]-f(t 0+C[2]*h,y 0+h*add(A[2,n]*KL[n], n=1..3),z 0+h*add(Aa[2,n]*KL[n+3], n=1..3))=0,KL[3]-f(t 0+C[3]*h,y 0+h*add(A[3,n]*KL[n], n=1..3),z 0+h*add(Aa[3,n]*KL[n+3],n=1..3))=0,KL[4]-g(t 0+Cc[1]*h,y 0+h*add(A[1,n]*KL[n], n=1..3),z 0+h*add(Aa[1,n]*KL[n+3], n=1..3))=0,KL[5]-g(t 0+Cc[2]*h,y 0+h*add(A[2,n]*KL[n], n=1..3),z 0+h*add(Aa[2,n]*KL[n+3],n=1..3))=0, KL[6]-g(t 0+Cc[3]*h,y 0+h*add(A[3,n]*KL[n], n=1..3),z 0+h*add(Aa[3,n]*KL[n+3], n=1..3))=0,[KL[1],KL[2],KL[3],KL[4],KL[5],KL[6]]);

> for i from 1 to 6 do

> KL[i]:=rhs(OPLKL[1,i]);

> end do:

> y 1:=y 0+h*add(B[m]*KL[m], m=1..3);

> z 1:=z 0+h*add(Bb[m]*KL[m+3], m=1..3);

> return(y 1,z 1);

> end:

De geımplementeerde procedure ’methGRK2’ toepassen op het beschouwde stelsel dif-ferentiaalvergelijkingen, levert een numerieke benadering van de functies y(t) en z(t) voor

4.6 Nystrommethoden 58

t = t0 + h = h. Deze benadering vergelijken met de exacte oplossing voor t = h van dezetwee functies, geeft een idee van de nauwkeurigheid van de benadering.

> ynum:=methGRK2(f,g,h,0,1,1,A1,B1,C1,A2,B2,C2)[1]:

> znum:=methGRK2(f,g,h,0,1,1,A1,B1,C1,A2,B2,C2)[2]:

> taylor(ynum-yexact(h),h,8);

−1031720

h5 − 19611440

h6 − 34165360480

h7 +O(h8)

> taylor(znum-zexact(h),h,8);

− 97720

h5 − 70071440

h6 − 51901160480

h7 +O(h8)

Uit bovenstaande Maple-output kan besloten worden dat zowel de benadering voor y(t)als voor z(t) in t = h van de vierde orde is. Hiermee is geıllustreerd dat de gepartitioneerdeRunge-Kutta-methode opgebouwd uit de 3-traps methodes Lobatto IIIA en IIIB, het zoge-naamde 3-traps Lobatto IIIA-IIIB-paar, van de orde vier is. Dit is net wat de bovenstaandestelling vertelt (2.s− 2 = 2.3− 2 = 4).

4.6 Nystrommethoden

4.6.1 Definitie

Beschouw de tweede orde differentiaalvergelijking met bijhorende beginvoorwaarden

y = g(t, y, y), y(t0) = y0, y(t0) = y0. (45)

Tal van fenomenen kunnen door een dergelijke differentiaalvergelijking gemodelleerd wor-den. Denk hierbij bijvoorbeeld aan de slingerbeweging, die door de tweede orde differenti-aalvergelijking

rd2θ

dt2= −g sin θ

gemodelleerd wordt. Als nu de variabele z = y geıntroduceerd wordt, is bovenstaand tweedeorde probleem (45) te schrijven als{

y = z y(t0) = y0

z = g(t, y, z) z(t0) = z0 = y0.

Er wordt een stelsel differentiaalvergelijkingen verkregen waarbij nu f(t, y, z) = z, wat vooreen grote vereenvoudiging zorgt bij het toepassen van een gepartitioneerde Runge-Kutta-methode op dit systeem. Een dergelijke methode toepassen op het probleem, levert wegensdefinitie 4.1

yn+1 = yn + h

s∑i=1

biki,

4.6 Nystrommethoden 59

zn+1 = zn + h

s∑i=1

bili,

ki = zn + h

s∑j=1

aijlj,

li = g

(tn + cih, yn + h

s∑j=1

aijkj, zn + h

s∑j=1

aijlj

).

De formule voor ki substitueren in deze van yn+1 en li, levert

yn+1 = yn + hs∑i=1

bi

(zn + h

s∑j=1

aijlj

),

zn+1 = zn + hs∑i=1

bili,

li = g

(tn + cih, yn + h

s∑j=1

aij

(zn + h

s∑k=1

ajklk

), zn + h

s∑j=1

aijlj

).

Onderstel nu dat voor de Runge-Kutta-methode met coefficientenmatrices A, B en C deordevoorwaarde voor de eerste orde en de rijsomvoorwaarde geldt. Dit betekent dat

s∑i=1

bi = 1 en ci =s∑j=1

aij.

Definieer ook de ’nieuwe’ coefficienten aij en bi als

aij =s∑

k=1

aikakj en bi =s∑

k=1

bkaki,

en stel ci = ci, dan geldt

yn+1 = yn + hzn

s∑i=1

bi + h2

s∑j=1

s∑i=1

biaijlj

= yn + hzn + h2

s∑j=1

bjlj,

zn+1 = zn + h

s∑i=1

bili,

li = g

(tn + cih, yn + h

s∑j=1

aijzn + h2

s∑k=1

s∑j=1

aij ajklk, zn + h

s∑j=1

aijlj

)

= g

(tn + cih, yn + hcizn + h2

s∑k=1

aiklk, zn + hs∑j=1

aijlj

).

4.6 Nystrommethoden 60

De lopende indices anders benoemen en rekening houden met zn = yn levert de volgendedefinitie.

4.4 Definitie. Zij ci, bi, aij en bi, aij (i, j = 1, ..., s) reele coefficienten. Een Nystrommethodevoor de oplossing van de tweede orde differentiaalvergelijking (45) wordt gegeven door

yn+1 = yn + hyn + h2

s∑i=1

bili,

yn+1 = yn + hs∑i=1

bili,

li = g

(tn + cih, yn + hciyn + h2

s∑j=1

aijlj, yn + h

s∑j=1

aijlj

).

Indien de functie g onafhankelijk is van de veranderlijke y is het niet nodig om decoefficienten aij voor i, j = 1, ..., s te specifieren, want in dat geval doet de derde verander-lijke in de definitie van li (i = 1, ..., s) er niet toe.

4.6.2 Voorbeeld

De methode van Stormer/Verlet is een voorbeeld van een Nystrommethode voor het pro-bleem

y = g(t, y), y(t0) = y0, y(t0) = y0,

waarbij de functie g onafhankelijk is van y. Deze gepartitioneerde Runge-Kutta-methodewordt zoals eerder aangetoond voorgesteld door

0 0 0

1 12

12

12

12

0 12

0

1 12

0

12

12

Voor deze 2-traps methode geldt dus dat c1 = 0, c2 = 1, b1 = b2 = 12

en

a11 =2∑

k=1

a1kak1 = a11a11 + a12a21 = 0.1

2+ 0.

1

2= 0,

a12 =2∑

k=1

a1kak2 = a11a12 + a12a22 = 0.0 + 0.0 = 0,

a21 =2∑

k=1

a2kak1 = a21a11 + a22a21 =1

2.1

2+

1

2.1

2=

1

2,

4.6 Nystrommethoden 61

a22 =2∑

k=1

a2kak2 = a21a12 + a22a22 =1

2.0 + 0.0 = 0,

b1 =2∑

k=1

bkak1 = b1a11 + b2a21 =1

2.1

2+

1

2.1

2=

1

2,

b2 =2∑

k=1

bkak2 = b1a12 + b2a22 =1

2.0 +

1

2.0 = 0.

Door deze waarden te substitueren in definitie 4.4 kan besloten worden dat de methode vanStomer/Verlet voor bovenstaand probleem overeenkomt met de Nystrommethode

yn+1 = yn + hyn +h2

2l1,

yn+1 = yn +h

2(l1 + l2) ,

l1 = g (tn, yn) ,

l2 = g

(tn+1, yn + hyn +

h2

2l1

),

wat overeenkomt met

yn+1 = yn + hyn +h2

2g (tn, yn) ,

yn+1 = yn +h

2(g (tn, yn) + g (tn+1, yn+1)) ,

wat precies de eenstaps-formulering voor de methode van Stormer/Verlet is.

4.6.3 Toepassing: de slingerbeweging herbekeken.

De bewegingsvergelijking van een enkelvoudige slinger, zoals eerder beschouwd met vereen-voudigende veronderstelling g = r = 1, is

d2θ

dt2= − sin θ,

waarbij θ de hoek is die het touw maakt met de verticale op tijdstip t (zie sectie 4.3.1).Deze differentiaalvergelijking is duidelijk van de vorm

y = g(t, y), (46)

met g(t, y) = − sin y. Aangezien de methode van Stormer/Verlet een ’speciale’ gepar-titioneerde Runge-Kutta-methode, namelijk een Nystrommethode, is, bestaat er een ietseenvoudigere procedure om deze methode met behulp van Maple toe te passen op het bo-venstaande probleem. Onderstaande methode ’MethNys’ past een Nystrommethode toe op(46).

> MethNys:=proc(g,h,t 0,y 0,ydot 0,l 0,A,B,Bb,Cc)

4.6 Nystrommethoden 62

> local del,i,j,x,n;

> global L, y 1,ydot 1,J,F;

> L:=Matrix(2,1):

> for j from 1 to 2 do

> L[j,1]:=l 0:

> end do;

> x:=array(1..2):del:=Matrix(2,1,[1,1]);

> while (evalf(Norm(del)) > 10^(-6)) do

> J:=Jacobian([x[1]-g(t 0+Cc[1]*h,y 0+Cc[1]*h*ydot 0+h^2*add(A[1,n]*x[n], n=1..2)),x[2]-g(t 0+Cc[2]*h,y 0+Cc[2]*h*ydot 0+h^2*add(A[2,n]*x[n], n=1..2))],[x[1],x[2]]=[L[1,1],L[2,1]]):

> F:=Matrix(2,1,[L[1,1]-g(t 0+Cc[1]*h,y 0+Cc[1]*h*ydot 0+h^2*add(A[1,n]*L[n,1], n=1..2)),L[2,1]-g(t 0+Cc[2]*h,y 0+Cc[2]*h*ydot 0+h^2*add(A[2,n]*L[n,1], n=1..2))]):

> del:=evalf(LinearSolve(J,-F));L:=L+del:

> end do;

> y 1:=y 0+h*ydot 0+h^2*add(B[m]*L[m,1], m=1..2);

> ydot 1:=ydot 0+h*add(Bb[m]*L[m,1], m=1..2);

> return(y 1,ydot 1);

> end:

Door onderstaande code in Maple te implementeren, wordt een benadering verkregenvan de hoek θ en θ op tijdstip t = 0.5 met dezelfde beginwaarden als in sectie 4.3.1.

> g:=(t,y)->-sin(y):

> MethNys(g,0.5,0,0.5,0,1,A1,B1,B2,C2);

0.4400718077,−0.2263574926

Hierbij bevatten de matrices A1, B1, B2, C2 respectievelijk de coefficienten aij, bi, bien ci met i, j = 1, 2 van de methode van Stormer/Verlet. De benaderende waarden dieverkregen worden, zijn dezelfde als deze verkregen in sectie 4.3.1.

63

5 Toegevoegde methode

5.1 Definitie

In deze sectie wordt de autonome differentiaalvergelijking

y = f(y), y(t0) = y0 (47)

beschouwd. Definieer de afbeelding ϕt die met een zekere waarde y0 de waarde y(t) vande oplossing laat overeenstemmen met beginwaarde y(0) = y0. Deze afbeelding is dusgedefinieerd door

ϕt(y0) = y(t) als y(0) = y0.

Deze afbeelding voldoet aan ϕ−1−t = ϕt. Dit is echter niet altijd het geval voor de afbeelding

Φh van een numerieke methode. Over het algemeen moet er een andere methode toegepastworden met stap −h om vanuit yn+1 terug in het oorspronkelijke punt yn te komen. Ditlaatste geeft aanleiding tot de definitie van toegevoegde methode.

5.1 Definitie. De toegevoegde methode Φ∗h van een methode Φh is de inverse afbeeldingvan de originele methode met stap −h, m.a.w.

Φ∗h = Φ−1−h.

Een numerieke methode waarvoor geldt

Φ∗h = Φh,

wordt symmetrisch genoemd.

Zo is bijvoorbeeld de impliciete (achterwaartse) Euler-methode de toegevoegde methodevan de expliciete Euler-methode.

5.2 Opmerking. Voor een algemene Runge-Kutta-methode met Butchertableau

c1 a11 a12 · · · a1s

c2 a21 a22 · · · a2s...

......

...cs as1 as2 · · · ass

b1 b2 · · · bs

is de Butchertableau van de toegevoegde methode van de vorm

1− cs bs − ass bs−1 − as s−1 · · · b1 − as11− cs−1 bs − as−1 s bs−1 − as−1 s−1 · · · b1 − as−1 1

......

......

1− c1 bs − a1s bs−1 − a1 s−1 · · · b1 − a11

bs bs−1 · · · b1

Dit werd aangetoond in referentie [4].

5.2 Orde en foutconstante van de toegevoegde methode 64

5.2 Orde en foutconstante van de toegevoegde methode

Waar een ruime interesse naar uit gaat, is natuurlijk het verband tussen de orde van eennumerieke methode en de orde van haar toegevoegde methode. Daarmee samenhangend iser de vraag of er tevens een verband bestaat tussen de foutconstanten van beide metho-den. In dit hoofdstuk wordt dieper ingegaan op deze aspecten en worden de vaststellingengeıllustreerd met een voorbeeld.

5.2.1 Stelling

Hier wordt een stelling aangehaald die iets meer vertelt over de orde en de foutconstantevan de toegevoegde methode van een zekere numerieke methode.

5.3 Stelling. Stel ϕt de exacte oplossing van (47) en stel Φh een een-staps methode vanorde p waarvoor geldt

Φh(y0)− ϕh(y0) = C(y0)hp+1 +O(hp+2). (48)

De toegevoegde methode Φ∗h heeft dan dezelfde orde p en er geldt

Φ∗h(y0)− ϕh(y0) = (−1)pC(y0)hp+1 +O(hp+2). (49)

Als de methode symmetrisch is, dan is de (maximale) orde even.

Bewijs. Stel dat vertrokken wordt van een beginwaarde y(t0) = y0 dan is de exacte oplossingop tijdstip t = t0 +h gelijk aan ϕh(y0). Voor de numerieke oplossing, berekend aan de handvan de toegevoegde methode van de numerieke methode waarvan vertrokken wordt, geldty1 = Φ∗h(y0). De fout van deze toegevoegde methode is dus gelijk aan Φ∗h(y0)−ϕh(y0) := e∗

(zie figuur 9).

Figuur 9: Methode versus toegevoegde methode.

Stel nu dat vertrokken wordt van de waarde ϕh(y0) = y(t1) en dat hierop Φ−h toege-past wordt. De bekomen fout in het punt t = t0 is hier Φ−h(ϕh(y0)) − y0 := −e. WegensΦ∗h = Φ−1

−h kan de fout −e als het ware gezien worden als een projectie van de fout e∗ doorΦ−h. Het minteken wijst op het feit dat de fouten een tegengesteld teken hebben (zie figuur9).

5.2 Orde en foutconstante van de toegevoegde methode 65

Wegens onderstelling (48) geldt

−e = C(ϕh(y0))(−h)p+1 +O(hp+2)

⇔ −e = (−1)p+1C(ϕh(y0))hp+1 +O(hp+2)

⇔ e = (−1)pC(ϕh(y0))hp+1 +O(hp+2).

Intuıtief is duidelijk dat geldt ϕh(y0) = y0 +O(h) en e = (I +O(h))e∗. Deze uitdrukkingenin bovenstaande gelijkheid substitueren, levert

e∗ = (−1)pC(y0)hp+1 +O(hp+2),

wat precies uitdrukking (49) is, die moest aangetoond worden.

Stel nu dat de beschouwde numerieke methode symmetrisch is, dit wil zeggen

Φ∗h(y0) = Φh(y0).

Uitdrukkingen (48) en (49) kunnen in dit geval dus aan elkaar gelijk gesteld worden zodat

C(y0)hp+1 = (−1)pC(y0)hp+1.

Deze gelijkheid kan enkel opgaan indien (−1)p = 1 of, met andere woorden, indien p evenis. Een symmetrische methode heeft dus altijd een even orde.

Er kan dus besloten worden dat een numerieke methode en haar toegevoegde methodedezelfde orde hebben. Indien deze orde even is, zijn zelfs de foutconstanten gelijk. Is ditniet het geval, dan zijn de foutconstanten tegengesteld aan elkaar.

5.2.2 Voorbeeld

Als voorbeeld wordt de expliciete Euler-methode aangehaald waarvan de toegevoegde me-thode de impliciete Euler-methode is. Via onderstaande code wordt eerst de explicieteEulermethode als lineaire meerstapsmethode ontwikkeld in Maple. Vervolgens worden deordevoorwaarden voor een lineaire meerstapsmethode nagegaan (zie referentie [4]) om uit-eindelijk de orde van de methode en de foutconstante weer te geven.

> k:=1:alpha:=array(0..k,[-1,1]):beta:=array(0..k,[1,0]):

> printf(‘methode:‘);

> sum(alpha[j]*y[n+j],’j’=0..k)=h*sum(beta[j]*f[n+j],’j’=0..k);

> orde:=0:continu:=true:

> expr:=sum(alpha[i]*i^(orde)/orde!,’i’=0..k):

> if(expr=0)

> then

> while continu do

> orde:=orde+1;

> expr:=sum(alpha[i]*i^orde/orde!-beta[i]*i^(orde-1)/(orde-1)!,’i’=0..k);

5.2 Orde en foutconstante van de toegevoegde methode 66

> if (expr<>0) then continu:=false; end if;

> od;

> end if;

> printf(‘de orde is %d\n‘,orde-1);> printf(‘de foutconstante is ‘);

> print(factor(expr));

methode:−yn + yn+1 = hfn

de orde is 1de foutconstante is

12

De toegevoegde methode van een lineaire k-stapsmethode wordt verkregen door de me-thode toe te passen met stap −h vanuit yn+k. Dit laatste betekent voor k = 1 dat in demethode yn+1 en yn door elkaar vervangen worden of anders uitgedrukt, dat de coefficientvan yn bij yn+1 komt te staan en omgekeerd. Onderstaande code geeft de uitdrukking vande toegevoegde methode en de bijhorende orde en foutconstante. Bij de uitdrukking voor decoefficienten van de toegevoegde methode wordt nog eens gedeeld door α0. Dit om bij yn+1

de coefficient 1 te krijgen zodat de toegevoegde methode in de standaardvorm weergegevenwordt.

> kt:=k:

> alphat:=array(0..kt,[alpha[1]/(alpha[0]),alpha[0]/(alpha[0])]):

> betat:=array(0..kt,[-beta[1]/(alpha[0]),-beta[0]/(alpha[0])]):

> printf(‘methode:‘);

> sum(alphat[j]*y[n+j],’j’=0..kt)=h*sum(betat[j]*f[n+j],’j’=0..kt);

> ordet:=0:continu:=true:

> expr:=sum(alphat[i]*i^(ordet)/ordet!,’i’=0..kt):

> if(expr=0)

> then

> while continu do

> ordet:=ordet+1;

> exprt:=sum(alphat[i]*i^ordet/ordet!-betat[i]*i^(ordet-1)/(ordet-1)!,’i’=0..kt);

> if (exprt<>0) then continu:=false; end if;

> od;

> end if;

> printf(‘de orde is %d\n‘,ordet-1);> printf(‘de foutconstante is ‘);

> print(factor(exprt));

methode:−yn + yn+1 = hfn+ 1

de orde is 1

5.2 Orde en foutconstante van de toegevoegde methode 67

de foutconstante is−12

De toegevoegde methode van de expliciete Euler-methode blijkt dus inderdaad de im-pliciete Euler-methode te zijn. Zoals in de bovenstaande stelling bewezen werd, heeft deimpliciete Euler-methode dezelfde orde als de expliciete Euler-methode, ze zijn namelijk vande eerste orde. Volgens de stelling hebben de foutconstanten eenzelfde absolute waarde,maar een tegengesteld teken, wat door Maple mooi geıllustreerd wordt.

68

6 Compositiemethoden

Compositie is een welgekend fenomeen binnen de numerieke wiskunde en wordt bij ver-schillende numerieke methoden gehanteerd. De idee die erachter zit, is om een numeriekemethode herhaaldelijk toe te passen met verschillende stapgroottes om zo het gewensteeffect te bereiken. Een methode die zo opgesteld wordt, wordt een compositiemethode9

genoemd. Het doel van een dergelijke methode is om de orde van de numerieke methodewaarvan vertrokken wordt, te verhogen, zonder dat gunstige eigenschappen teniet wordengedaan.

6.1 Definitie

Eerst wordt de definitie van de compositiemethode horende bij een zekere numerieke me-thode aangehaald om zo een duidelijke beeld te creeren van dit nieuwe begrip.

6.1 Definitie. Stel Φh een zekere methode en γ1, γ2, ..., γs (s > 1) reele getallen, danwordt de samenstelling van deze methode met stapgroottes γ1h, γ2h, ..., γsh, i.e.

Ψh = Φγsh ◦ ... ◦ Φγ2h ◦ Φγ1h, (50)

de compositiemethode corresponderend met Φh genoemd.

Uit de definitie blijkt meteen dat de compositiemethode horende bij een voorop gesteldenumerieke methode een samenstelling is van numerieke methodes. Deze zijn de oorspron-kelijke numerieke methode met telkens een verschillende stapgrootte γih (i = 1, ..., s).

Wat ook een vaak voorkomend fenomeen is bij compositie, is dat in plaats van telkensde numerieke methode zelf te gebruiken ook de toegevoegde methode aan bod komt in desamenstelling. Meer daarover in het hoofdstuk ’Compositie met de toegevoegde methode’.

6.2 Orde van een compositiemethode

6.2.1 Stelling

Het doel van het gebruik van de compositiemethode van een numerieke methode is omde effectiviteit van de numerieke methode in kwestie te vergroten. In onderstaande stel-ling wordt aangetoond dat aan de hand van compositie een methode van hogere orde kanverkregen worden.

6.2 Stelling. Stel Φh een een-staps methode van orde p. Als γ1, γ2, ..., γs (s > 1) voldoenaan

γ1 + γ2 + ...+ γs = 1, (51)

γp+11 + γp+1

2 + ...+ γp+1s = 0, (52)

dan is de compositiemethode (50) ten minste van de orde p+ 1.

9Compositiemethoden werden uitvoerig bestudeerd in de werken van Suzuki (1990), Yoshida (1990) enMcLachlan (1995).

6.2 Orde van een compositiemethode 69

Bewijs. Zonder de algemeenheid te schaden, wordt verondersteld dat s = 3.Er wordt vertrokken van een methode van orde p, zodat geldt

e1 = C(y0)γp+11 hp+1 +O(hp+2),

e2 = C(y1)γp+12 hp+1 +O(hp+2),

e3 = C(y2)γp+13 hp+1 +O(hp+2),

waarbij e1, e2 en e3 de fouten zijn bij het toepassen van de vooropgestelde numeriekemethode met respectievelijk stappen γ1h, γ2h en γ3h en beginwaarden y0, y1 en y2 (ziefiguur 10).

Figuur 10: Compositie met de methode Φh met stapgroottes γ1h, γ2h en γ3h.

Intuıtief is duidelijk dat geldt yi = y0 + O(h) voor i = 1, 2 en Ei = (I + O(h))ei voori = 1, 2, 3, zodat

ϕh(y0)−Ψh(y0)(51)= ϕ∑

i γih(y0)−Ψh(y0)

= E1 + E2 + E3

= C(y0)(γp+1

1 + γp+12 + γp+1

3

)hp+1 +O(hp+2)

(52)= O(hp+2),

waarbij de voorlaatste gelijkheid geldt door de uitdrukkingen voor yi voor i = 1, 2 tesubstitueren in de eerder gevonden uitdrukkingen voor e1, e2 en e3 en hierbij rekening tehouden met het verband tussen Ei en ei voor i = 1, 2, 3.Hieruit volgt dus dat de compositiemethode ten minste van de orde p+ 1 is.

Bovenstaande stelling toont dat er door compositie een nauwkeurigere numerieke me-thode kan verkregen worden dan deze waarvan vertrokken wordt. Compositie is dus eengouden middel in de numerieke wiskunde.

6.3 Opmerking. Merk op dat bovenstaand stelsel van vergelijkingen (51) en (52) geen reeleoplossingen kent voor γ1, γ2,..., γs als p oneven is. De enige oplossing waarvoor de laatstevergelijking in dat geval zou gelden is γ1 = γ2 = ... = γs = 0, wat voor een strijdigheid zorgtin de eerste vergelijking. Bovenstaande stelling is dus enkel van toepassing op numeriekemethoden met een even orde.

6.2 Orde van een compositiemethode 70

Ook geldt dat de kleinst mogelijke waarde van s waarvoor het bovenstaand stelsel eenoplossingen heeft s = 3 is. Stel s = 2 in vergelijkingen (51) en (52) dan wordt namelijkmeteen duidelijk dat het verkregen stelsel geen oplossing heeft.

6.2.2 Voorbeelden

• Stel s = 3, dan zijn de bovenstaande voorwaarden voor γ1, γ2 en γ3 opdat de com-positiemethode van een p-de orde numerieke methode ten minste van orde p+ 1 zouzijn, dat {

γ1 + γ2 + γ3 = 1

γp+11 + γp+1

2 + γp+13 = 0.

Het betreft hier een stelsel met twee vergelijkingen en drie onbekenden γ1, γ2 en γ3.Het is dus een stelsel met een vrijheidsgraad, wat toelaat om de symmetrievoorwaardeγ1 = γ3 op te leggen. De bovenstaande voorwaarden herleiden zich dan tot{

2γ1 + γ2 = 1

2γp+11 + γp+1

2 = 0.

Als oplossing voor γ1, γ2 en γ3 (zie appendix A.4) wordt verkregen

γ1 = γ3 =1

2− 21

p+1

, γ2 = − 21

p+1

2− 21

p+1

.

Stel nu dat een numerieke methode Φh van de tweede orde beschouwd wordt. Dan isde compositiemethode

Ψh = Φγ3h ◦ Φγ2h ◦ Φγ1h,

met

γ1 = γ3 =1

2− 3√

2= 1.3512071919596576340,

γ2 = −3√

2

2− 3√

2= −1.7024143839193152681,

volgens stelling 6.2 tenminste van de derde orde. Stel nu dat de beschouwde numeriekemethode op haar beurt symmetrisch is, dan is eveneens de compositiemethode wegenshaar constructie symmetrisch (zie A.5: voorbeeld trapeziumregel), zodat wegens stel-ling 5.3 deze methode van een even orde zal zijn. Hieruit volgt dat de bovenstaandecompositiemethode in dat geval van de vierde orde zal zijn. Aan de hand van com-positie is er dus een behoorlijke ordeverhoging verkregen, namelijk van tweede naarvierde orde.

Figuur 11 illustreert de idee die erachter zit: de stapgrootte h wordt opgesplitstin de stapgroottes γ1h, γ2h en γ3h, waarbij γ1, γ2 en γ3 aan de voorwaarden vanstelling 6.2 voldoen en bovenstaande waarden aannemen.

6.2 Orde van een compositiemethode 71

Figuur 11: Compositie: van tweede naar vierde orde.

Op de verkregen vierde orde compositiemethode Ψh kan nu opnieuw compositie toe-gepast worden om zo een methode van nog hogere orde te verkrijgen. De compositie-methode is dan

Ψ′h = Ψγ′3h◦Ψγ′2h

◦Ψγ′1h,

nu met

γ′1 = γ′3 =1

2− 5√

2= 1.1746717580893633845,

γ′2 = −5√

2

2− 5√

2= −1.3493435161787267690,

want nu wordt van een vierde orde methode (p = 4) vertrokken. Er geldt dus

Ψ′h = Ψγ′3h◦Ψγ′2h

◦Ψγ′1h

=(Φγ3(γ′3h) ◦ Φγ2(γ′3h) ◦ Φγ1(γ′3h)

)◦(Φγ3(γ′2h) ◦ Φγ2(γ′2h) ◦ Φγ1(γ′2h)

)◦(Φγ3(γ′1h) ◦ Φγ2(γ′1h) ◦ Φγ1(γ′1h)

)= Φγ3γ′3h

◦ Φγ2γ′3h◦ Φγ1γ′3h

◦ Φγ3γ′2h◦ Φγ2γ′2h

◦ Φγ1γ′2h◦ Φγ3γ′1h

◦Φγ2γ′1h◦ Φγ1γ′1h

. (53)

Volgens stelling 6.2 is deze methode ten minste van de orde vijf en wegens de sym-metrie van de methode is Ψ′h een compositiemethode van de zesde orde. Er vind dusopnieuw een ordeverhoging plaats, nu van orde vier naar orde zes.

Vertrekkende van de zesde orde methode Ψ′h kan opnieuw, gelijkaardig als hierbo-ven, een methode van hogere orde geconstrueerd worden, namelijk de achtste ordemethode

Ψ′′h = Ψ′γ′′3 h ◦Ψ′γ′′2 h ◦Ψ′γ′′1 h,

nu met

γ′′1 = γ′′3 =1

2− 7√

2= 1.1161829393253857911,

γ′′2 = −7√

2

2− 7√

2= −1.2323658786507715823.

Door de stapgrootte telkens op gepaste manier verder op te splitsen (zie figuur 12),kan dus de orde van de numerieke methode steeds verhoogd worden. Dit natuurlijkwel ten koste van het vele rekenwerk dat moet verricht worden.

6.2 Orde van een compositiemethode 72

Figuur 12: Compositie: van vierde naar zesde naar achtste orde.

• Stel s = 4, in dit geval zijn de bovenstaande voorwaarden voor γ1, γ2, γ3, γ4 opdat decompositiemethode van een p-de orde numerieke methode ten minste van orde p+ 1zou zijn, dat {

γ1 + γ2 + γ3 + γ4 = 1

γp+11 + γp+1

2 + γp+13 + γp+1

4 = 0.

Het betreft hier een stelsel van twee vergelijkingen, nu wel met vier onbekenden. Erzijn hier dus twee vrijheidsgraden, waardoor nog twee voorwaarden voor γ1, γ2, γ3,γ4 kunnen opgelegd worden. Stel eerst dat de voorwaarden

γ1 = γ4 en γ2 = γ3

worden opgelegd, dan wordt het stelsel{2γ1 + 2γ2 = 1

2γp+11 + 2γp+1

2 = 0,

wat te herleiden valt tot {γ1 + γ2 = 1

2

γ1 = −γ2.

Het stelsel bezit dus geen oplossing voor γ1 en γ2. De bovenstaande symmetrievoor-waarden kunnen dus niet opgelegd worden indien een oplossing wil verkregen worden.

Beschouw vervolgens de voorwaarden

γ1 = γ4 en γ1 = γ2,

zodat het stelsel wordt {3γ1 + γ3 = 1

3γp+11 + γp+1

3 = 0,

wat als oplossing

γ1 = γ2 = γ4 =1

3− 31

p+1

, γ3 = − 31

p+1

3− 31

p+1

(54)

heeft. Stel dat vertrokken wordt van een numerieke methode van de tweede orde danis wegens stelling 6.2 de compositiemethode

Ψh = Φγ4h ◦ Φγ3h ◦ Φγ2h ◦ Φγ1h

6.2 Orde van een compositiemethode 73

ten minste van de derde orde. Ook al is de oorspronkelijke numerieke methode sym-metrisch, de geconstrueerde compositiemethode is door de opgelegde voorwaardensowieso niet symmetrisch waardoor de orde niet hoger is dan drie. Er is dus slechtseen ordeverhoging van een orde verkregen. Met de geconstrueerde derde orde compo-sitiemethode kan het proces van ordeverhoging door compositie dus niet op de gezienemanier worden verdergezet (zie opmerking 6.3).

Bij nader onderzoek wordt al vlug duidelijk dat voor elke even waarde van s ergeen spectaculaire ordeverhoging kan verkregen worden. Bij compositie zal er dusvooral voor een oneven waarde van s gekozen worden, zodat symmetrievoorwaardenkunnen opgelegd worden. Op deze vaststelling wordt nog dieper ingegaan in de sectie’Compositie met even opsplitsing (s=even)’.

• Stel s = 5, in dit geval zijn de bovenstaande voorwaarden voor γ1, γ2, γ3, γ4 en γ5

opdat de compositiemethode van een p-de orde numerieke methode ten minste vanorde p+ 1 zou zijn, dat{

γ1 + γ2 + γ3 + γ4 + γ5 = 1

γp+11 + γp+1

2 + γp+13 + γp+1

4 + γp+15 = 0.

Het betreft hier opnieuw een stelsel van twee vergelijkingen, maar nu met vijf onbe-kenden. Er zijn dus drie vrijheidsgraden, zodat de voorwaarden

γ1 = γ5, γ2 = γ4 en γ1 = γ2

kunnen opgelegd worden. Het stelsel wordt in dit geval{4γ1 + γ3 = 1

4γp+11 + γp+1

3 = 0,

wat als oplossing

γ1 = γ2 = γ4 = γ5 =1

4− 41

p+1

, γ3 = − 41

p+1

4− 41

p+1

heeft. De stapgrootte wordt nu opgesplitst in vijf stapgroottes γ1h, γ2h, γ3h, γ4h enγ5h. Vertrekkende van een symmetrische tweede orde methode Φh is de compositie-methode

Ψh = Φγ5h ◦ Φγ4h ◦ Φγ3h ◦ Φγ2h ◦ Φγ1h

wegens stellingen 6.2 en 5.3 van de vierde orde. Analoog als bij s = 3 kan dit procesvan compositie ontelbaar aantal keer toegepast worden (zie figuur 13).

6.3 Toepassingen 74

Figuur 13: Compositie: van tweede naar vierde naar zesde naar achtste orde.

6.3 Toepassingen

6.3.1 Compositie met de trapeziumregel

De trapeziumregel is een numerieke methode die kan gebruikt worden om een benaderingte construeren van de oplossing van een standaard beginwaardeprobleem

y = f(t, y), y(t0) = y0. (55)

Ze is van de vorm

yn+1 = yn +h

2(f(tn, yn) + f(tn+1, yn+1)) .

Het is een numerieke methode van de tweede orde die daarenboven symmetrisch is. Wegensstelling 5.3 en 6.2 wordt door compositie met de trapeziumregel met juiste keuzes voor γi(i = 1, ..., s) een compositiemethode verkregen van de vierde orde. Daaruit kan vervolgensopnieuw via compositie een hogere orde methode geconstrueerd worden, namelijk een com-positiemethode van de zesde orde, enzoverder. Dit wordt in deze sectie geıllustreerd aan dehand van een voorbeeld.

Als voorbeeld wordt de differentiaalvergelijking beschouwd die de afkoeling van een ze-kere substantie modelleert. Wegens de wet van Newton in verband met afkoeling geldtdat de snelheid waarmee een substantie afkoelt, evenredig is met het verschil tussen detemperatuur van de substantie en deze van de lucht. Stel dat de temperatuur van de lucht30◦ bedraagt en dat de substantie bij t = 0 een temperatuur van 100◦ heeft, dan wordt hetbeginwaardeprobleem

y = −1

2(y − 30), y(0) = 100,

waarbij y(t) de temperatuur van de substantie weergeeft op tijdstip t en −12

de evenredig-heidsconstante is, die zo gekozen wordt. De exacte oplossing van dit probleem is

y(t) = 30 + 70e−t2 .

Bovenstaand beginwaardeprobleem implementeren in het computerprogramma Maple enhierop de trapeziumregel toepassen met staplengte h, gebeurt met de volgende code.

> f:=(t,y)->-0.5*(y-30):

> yexact:=t->30+70*exp(-1/2*t):y0:=yexact(0):yex:=yexact(h):

> M:=proc(t 1,t 2,y0)

6.3 Toepassingen 75

> local y,expr,sols;

> expr:=y-y0-((t 2-t 1)/2)*(f(t 1,y0)+f(t 2,y)):

> sols:=solve(expr,y);

> RETURN(sols);

> end:

> ynumh:=M(0,h,y0);

ynumh := −40 (−10 + h)4 + h

Hierbij is M een procedure om de trapeziumregel toe te passen met stap t2 − t1.De Taylorontwikkeling van de fout in functie van h, gegenereerd in Maple, ziet er als volgtuit.

> taylor(yex-ynumh,h,8);

0.7291666666666666667h3 − 0.36458333333333333333h4 + 0.11848958333333333333h5

−0.032660590277777777778h6 + 0.0084364149305555555556h7 +O(h8)

Bovenstaande output illustreert dat de trapeziumregel inderdaad van de tweede orde is.

Dit kan ook aangetoond worden door een grafiek zoals in sectie 2.2.4 te construeren diehet verband weergeeft tussen de fout en de stapgrootte h. Via onderstaande Maple-codewordt de fout van de trapeziumregel bekeken in t = 1 voor respectievelijk de stapgroottes12, 1

4, 1

8, 1

16, 1

32, 1

64. Voor elke stapgrootte wordt de benaderende waarde voor y(1), dit

is de temperatuur van de substantie op tijdstip 1, in de array ynumC0 opgeslagen zodatvoor elke h gemakkelijk een uitdrukking voor de fout kan bepaald worden die dan grafischvoorgesteld wordt (zie figuur 14).

> H:=array(1..6):

> for i from 1 to 6 do

> H[i]:=(1/2)^(i):

> end:

> with(MTM):LOG2H:=log2(H):

> ynumC0:=array(1..6):

> ynum0:=array(0...64):ynum0[0]:=yexact(0):

> for j from 1 to 6 do

> t:=0:

> for i from 1 to 2^(j) do

> ynum0[i]:=simplify(M(t,t+(1/2)^(j),ynum0[i-1]));

> t:=t+(1/2)^(j):

> end:

> ynumC0[j]:=ynum0[2^(j)];

> end:

> FOUTC0:=array(1..6);

> for i from 1 to 6 do

> FOUTC0[i]:=abs(evalf(yexact(1))-ynumC0[i]);

> end:

6.3 Toepassingen 76

> LOG2FOUTC0:=log2(FOUTC0);

> PC0:=pointplot([seq([-LOG2H[m],LOG2FOUTC0[m]],m=1..6)],axes=boxed,style=line,colour="DeepSkyBlue",thickness=4):

> PC0bis:=pointplot([seq([-LOG2H[m],LOG2FOUTC0[m]],m=1..6)],axes=boxed,style=point,symbol=circle,symbolsize=30,colour="DeepSkyBlue"):display(PC0,PC0bis);

Figuur 14: Verband tussen de fout en de stapgrootte h voor de trapeziumregel.

Via onderstaande Maple-code kan vlug aan de hand van de absolute waarde van derichtingscoefficient van de verkregen rechte, de orde van de methode bepaald worden.

> RICOC0:=(LOG2FOUTC0[3]-LOG2FOUTC0[2])/(-LOG2H[3]-(-LOG2H[2])):

> abs(RICOC0);

2.0021878985590125699

De orde van de trapeziumregel blijkt dus twee te zijn, wat al eerder besloten werd.

Om op bovenstaand beginwaardeprobleem de compositiemethode van de trapeziumregeltoe te passen met γi (i = 1, ..., s) zoals in stelling 6.2 en waarvoor de symmetrievoorwaardegeldt, wordt in Maple onderstaande procedure ontwikkeld.

> theorema:=proc(s,p)

> local G, expr, F;

> global gam, Fa;

> G:=array(1..s):

> if (s=3) then

> expr[1]:=sum(G[i],’i’=1..s)-1;expr[2]:=sum(G[i]^(p+1),’i’=1..s);

> expr[3]:=G[1]-G[s];

> else if (s=5) then

> expr[1]:=sum(G[i],’i’=1..s)-1;expr[2]:=sum(G[i]^(p+1),’i’=1..s);

> expr[3]:=G[1]-G[s];expr[4]:=G[2]-G[s-1];expr[5]:=G[2]-G[1];

> else

> expr[1]:=sum(G[i],’i’=1..s)-1;expr[2]:=sum(G[i]^(p+1),’i’=1..s);

> expr[3]:=G[1]-G[s];expr[4]:=G[2]-G[s-1];expr[5]:=G[3]-G[s-2];

6.3 Toepassingen 77

> expr[6]:=G[2]-G[1];expr[7]:=G[3]-G[2];

> end if;end if;

> F:=n->fsolve({seq(expr[i],i=1..n)},{seq(G[i],i=1..n)});> Fa:=F(s);

> gam:=array(0..s);

> assign(gam[0]=0,{seq(gam[i]=rhs(Fa[i]),i=1..s)});> RETURN (Fa);

> end:

De procedure ’theorema’ ontwikkelt, onder zekere symmetrievoorwaarden, voor s = 3,s = 5 of s = 7 en voor een zekere orde p van een numerieke methode, waarden voor γi(i = 1, ..., s) waarvoor de compositiemethode van de numerieke methode minstens orde p+1heeft.

De trapeziumregel is van de tweede orde (zoals hierboven aangetoond) en stel s = 3,dan kan als volgt bovenstaande procedure aangewend worden.

> theorema(3,2);

{G1 = 1.3512071919596576340, G2 = −1.7024143839193152681, G3 = 1.3512071919596576340}

> gama:=array(0..3):

> gama[0]:=0:gama[1]:=rhs(theorema(3,2)[1]):

> gama[2]:=rhs(theorema(3,2)[2]):gama[3]:=rhs(theorema(3,2)[3]):

De array ’gama’ wordt geconstrueerd om zo op een efficiente manier de compositieme-thode van de trapeziumregel met berekende waarden voor γ1, γ2 en γ3 te kunnen toepassen.

> s:=3:

> ynuma:=array(0..s):ynuma[0]:=yexact(0):

> t0:=0:

> for i from 1 to s do

> t1:=t0+gama[i]*h:

> ynuma[i]:=simplify(M(t0,t1,ynuma[i-1])):

> t0:=t1:

> end:

Gelijkaardig als voorheen wordt de Taylorontwikkeling van de fout berekend.

> taylor(yex-ynuma[s],h,8);

−0.2 10−17h+ 0.12 10−17h2 − 0.3 10−18h3 + 0.12 10−18h4 − 0.14468800586092680781h5

+0.072344002930463403894h6 − 0.048599510142099680516h7 +O(h8)

Bovenstaande Maple-output illustreert inderdaad dat de compositiemethode van de tra-peziumregel van de vierde orde is. De coefficienten bij de termen met h, h2, h3 en h4 kunnennamelijk verwaarloosd worden. Deze zijn niet precies nul wegens de talrijke afrondingenbij de berekeningen. Bij het toelaten van meer cijfers na de komma, kan namelijk meteenopgemerkt worden dat deze coefficienten in absolute waarde steeds kleiner worden.

6.3 Toepassingen 78

Gelijkaardig als bij de trapeziumregel kan ook de orde van de compositiemethode afgeleidworden door grafisch de fout ten opzichte van verschillende waarden van de stapgroote hvoor te stellen.

> ynumC1:=array(1..6):

> ynum1:=array(0...64*3):ynum1[0]:=yexact(0):

> for j from 1 to 6 do

> t:=0:

> for i from 1 to 2^(j)*3 do

> if (i mod 3 = 0) then

> k:=3;

> else k:= i mod 3;

> end if:

> ynum1[i]:=simplify(M(t,t+gama[k]*(1/2)^(j),ynum1[i-1]));

> t:=t+gama[k]*(1/2)^(j):

> end:

> ynumC1[j]:=ynum1[2^(j)*3];

> end:

> FOUTC1:=array(1..6);

> for i from 1 to 6 do

> FOUTC1[i]:=abs(evalf(yexact(1))-ynumC1[i]);

> end:

> LOG2FOUTC1:=log2(FOUTC1):

> PC1:=pointplot([seq([-LOG2H[m],LOG2FOUTC1[m]],m=1..6)],axes=boxed,style=line,colour="CornflowerBlue",linestyle=dash,thickness=4):

> PC1bis:=pointplot([seq([-LOG2H[m],LOG2FOUTC1[m]],m=1..6)],axes=boxed,style=point,symbol=circle,symbolsize=30,colour="CornflowerBlue"):display(PC1,PC1bis);

Figuur 15: Verband tussen de fout en de stapgrootte h voor de vierde orde compositieme-thode van de trapeziumregel met s = 3.

Er wordt opnieuw een grafiek verkregen (zie figuur 15) waarop kan afgelezen worden datde compositiemethode met stapgroottes γ1h, γ2h en γ3h van de trapeziumregel van de vierde

6.3 Toepassingen 79

orde is. De berekende absolute waarde van de richtingscoefficient is namelijk ongeveer 4.014.

Om vervolgens aan de hand van de compositiemethode van de trapeziumregel een me-thode van nog hogere orde te construeren, moeten de waarden γ′i (i = 1, 2, 3) bepaaldworden. Opnieuw wordt hiervoor de procedure ’theorema’ aangewend, nu wel met p = 4wat de orde is van de compositiemethode waarvan vertrokken wordt.

> theorema(3,4);

{G1 = 1.1746717580893633845, G2 = −1.3493435161787267690, G3 = 1.1746717580893633845}

> gamb:=array(0..3):gamb[0]:=0:gamb[1]:=rhs(theorema(3,4)[1]):

> gamb[2]:=rhs(theorema(3,4)[2]):gamb[3]:=rhs(theorema(3,4)[3]):

Via onderstaande code worden in Maple eerst de waarden γiγ′j (i, j = 1, 2, 3) bepaald

nodig om methode (53) toe te passen. Het toepassen van de aan de hand van compositiegeconstrueerde methode op het beschouwde voorbeeld over afkoeling van een substantie enhet genereren van de Taylorontwikkeling van de fout, gebeurt gelijkaardig als hierboven.

> gam2:=array(0..s*s):assign(gam2[0]=0);

> for i from 0 by s to s*s-s do

> for j from 1 to s do

> assign(gam2[j+i]=gamb[(i/s)+1]*gama[j]);

> end do;

> end do:

> ynumb:=array(0..s*s):ynumb[0]:=yexact(0):

> t0:=0:

> for i from 1 to s*s do

> t1:=t0+gam2[i]*h:

> ynumb[i]:=simplify(M(t0,t1,ynumb[i-1]));

> t0:=t1:

> end:

> taylor(yex-ynumb[s*s],h,8);

−0.14 10−16h+ 0.68 10−17h2 − 0.45 10−17h3 + 0.175 10−17h4 − 0.1203 10−17h5

+0.4454 10−18h6 + 0.060175466029566043778h7 +O(h8)

Bovenstaande output is een aanwijzing dat de geconstrueerde methode van de zesdeorde is, net wat uit stelling 6.2 volgt.Opnieuw is dit ook af te leiden uit de grafische voorstelling (zie figuur 16) van de fout tenopzichte van de stapgrootte h. Dit wordt via een gelijkaardige code10 als vorig bekomen.

10Nu worden wel de waarden uit de array gam2 gebruikt om de stapgrootte op te splitsen in plaats vande eerder berekende waarden γ1, γ2 en γ3. Ook wordt de waarde ’3’ in de Maple-code vervangen door dewaarde ’9’ daar er nu 3× 3 opsplitsingen zijn van de stapgrootte h.

6.3 Toepassingen 80

Figuur 16: Verband tussen de fout en de stapgrootte h voor de zesde orde compositieme-thode van de trapeziumregel met s = 3.

Als absolute waarde van de richtingscoefficient wordt in Maple ongeveer de waarde 6.038bekomen, wat inderdaad wijst op een methode van de zesde orde.

Dit proces kan ontelbaar aantal keer verdergezet worden. Als illustratie wordt hieron-der nog weergegeven dat de methode geconstrueerd aan de hand van compositie van debovenstaande zesde orde methode, van de achtste orde is.

> theorema(3,6);

{G1 = 1.1161829393253857911, G2 = −1.2323658786507715823, G3 = 1.1161829393253857911}

> gamc:=array(0..3):gamc[0]:=0:gamc[1]:=rhs(theorema(3,6)[1]):

> gamc[2]:=rhs(theorema(3,6)[2]):gamc[3]:=rhs(theorema(3,6)[3]):

> gam3:=array(0..s*s*s);

> assign(gam3[0]=0);

> for i from 0 by s*s to s*s*s-s*s do

> for j from 1 to s*s do

> assign(gam3[j+i]=gamc[i/(s*s)+1]*gam2[j]);

> end do;

> end do:

> ynumc:=array(0..s*s*s):ynumc[0]:=yexact(0):

> t0:=0:

> for i from 1 to s*s*s do

> t1:=t0+gam3[i]*h:

> ynumc[i]:=simplify(M(t0,t1,ynumc[i-1]));

> t0:=t1:

> end:

> taylor(yex-ynumc[s*s*s],h,12);

6.3 Toepassingen 81

−0.12 10−16h+ 0.63 10−17h2 − 0.55 10−17h3 + 0.2282 10−16h4 + 0.9632 10−17h5 + 0.29173 10−17h6

+0.9830908 10−16h7 − 0.1334549493 10−15h8 − 0.039743875328396902130h9

+0.019871937664198220548h10 − 0.49155893854875367395h11 +O(h12)

Dit kan ook weer grafisch11 weergegeven worden door figuur 17.

Figuur 17: Verband tussen de fout en de stapgrootte h voor de achtste orde compositieme-thode van de trapeziumregel met s = 3.

Via Maple wordt nu voor de absolute waarde van de richtingscoefficient van de rechteongeveer de waarde 8.076 verkregen. Dit wijst inderdaad op een methode van de orde acht.Er kan dus opnieuw een ordeverhoging van twee ordes waargenomen worden.

Samenvattend kunnen de geconstrueerde grafieken nog eens samen op een figuur geplaatstworden om zo een overzicht te creeren van de eigenschappen van de geconstrueerde com-positiemethoden (zie figuur 18).

Er valt meteen op dat naarmate de gekozen waarde van de stapgrootte h kleiner wordt(m.a.w. de waarde van − log2(h) groter wordt), de fout voor elke methode ook kleinerwordt. Door het zetten van kleinere stappen wordt er dus een nauwkeurigere methode ver-kregen, wat ook logisch lijkt. Wel kan het voorvallen dat de fout wegens te kleine waardevan h opnieuw groter wordt, wat dan te wijten is aan afrondingsfouten door de talrijkeberekeningen. Een dergelijk fenomeen komt bij dit voorbeeld niet voor doordat hier vol-doende digits beschouwd worden in Maple.Ook is van de grafiek meteen af te leiden dat de orde stijgt naarmate verder composi-tie wordt doorgevoerd (dit is te merken aan het sterker dalen van de rechten). Ook valtop dat de grafiek van de achtste orde compositiemethode lager gelegen is dan deze vande zesde orde compositiemethode, enzoverder. Dat wijst op het feit dat de absolute foutop de benadering voor de waarde y(1) kleiner wordt naarmate verder compositie gebruikt

11De gebruikte code hiervoor is gelijkaardig als vorig, maar nu worden de waarden uit de arrya gam3gebruikt om de stapgrootte op te splitsen en worden de waarden ’3’ en ’9’ nu vervangen door de waarde’27’ daar er nu 3× 3× 3 opsplitsingen zijn van de stapgrootte h.

6.3 Toepassingen 82

Figuur 18: Verband tussen de fout en de stapgrootte h voor de trapeziumregel en compo-sitiemethoden met s = 3.

wordt. Kortom er kan besloten worden dat compositie een heel goed instrument is binnende numerieke wiskunde om nauwkeurige methoden te construeren.

6.3.2 Compositie met de vierde orde methode Lobatto IIIA

Beschouw nu de vierde orde collocatiemethode Lobatto IIIA, de Butchertableau hiervan isvan de vorm (zie sectie 2.2)

0 0 0 0

12

524

13

−124

1 16

23

16

16

23

16

Deze methode is al in eerdere hoofdstukken aan bod gekomen, alsook de implementatieervan en de procedure ’meth2’ om deze methode toe te passen op een lineair beginwaarde-probleem van de vorm (55). In deze sectie wordt het willekeurige beginwaardeprobleem

y = −3y + t+ e−2t, y(0) = 1 (56)

beschouwd, met exacte oplossing

y(t) =t

3− 1

9+ e−2t +

1

9e−3t,

wat ook weer op een efficiente manier via Maple kan bepaald worden.De Taylorontwikkeling van de fout bij toepassing van de methode Lobatto IIIA met stap

6.3 Toepassingen 83

h wordt als volgt in Maple berekend met a, b en c de coefficientenmatrices van de LobattoIIIA-methode, yexact de exacte oplossing, y0 de waarde van de exacte oplossing voor t = 0en f zoals hierboven aangebracht.

> ynumh:=meth2(f,h,0,y0,a,b,c):

> yex:=yexact(h):

> taylor(yex-ynumh,h,8);

− 79720

h5 +211720

h6 − 38598640

h7 +O(h8)

Dit illustreert inderdaad dat van een vierde orde methode vertrokken wordt.

Niet enkel geldt dat de methode Lobatto IIIA van de vierde orde is, maar ook geldt datze symmetrisch is (zie opmerking 5.2). Wegens stellingen 6.2 en 5.3 geldt dat de composi-tiemethode met goede keuze van opsplitsing van h van de zesde orde zal zijn. Stel s = 5dan wordt hieronder aan de hand van het beschouwde beginwaardeprobleem geıllustreerddat er inderdaad een ordeverhoging van orde vier naar orde zes kan verkregen worden doorcompositie.

> theorema(5,4);

{G1 = 0.37306582773327282478, G2 = 0.37306582773327282478, G3 = −0.49226331093309129910,

G4 = 0.37306582773327282478, G5 = 0.37306582773327282478}

> gamb:=array(0..5):

> gamb[0]:=0:gamb[1]:=rhs(theorema(5,4)[1]):gamb[2]:=rhs(theorema(5,4)[2]):

> gamb[3]:=rhs(theorema(5,4)[3]):gamb[4]:=rhs(theorema(5,4)[4]):

> gamb[5]:=rhs(theorema(5,4)[5]):

> ynumb:=array(0..5):

> ynumb[0]:=y0:t:=0:

> for i from 1 to 5 do

> ynumb[i]:=simplify(meth2(f,gamb[i]*h,t,ynumb[i-1],a,b,c));

> t:=t+gamb[i]*h:

> end:

> taylor(yexact(h)-ynumb[5],h,10);

−0.2 10−18 − 0.8 10−18h+ 0.11740 10−15h2 − 0.37271 10−14h3 + 0.571037 10−13h4

−0.23641185 10−12h5 − 0.1105068315 10−10h6 + 0.000102494368455959104h7

−0.000286189740836307599h8 + 0.0003955569494047364079h9 +O(h10)

Gelijkaardig als in de vorige sectie kan met deze compositiemethode, door nogmaalscompositie toe te passen, een achtste orde methode verkregen worden, enzoverder.

6.4 Compositie met de methode van Stormer/Verlet 84

6.4 Compositie met de methode van Stormer/Verlet

De methode van Stormer/Verlet is de gepartitioneerde Runge-Kutta-methode van de vierdeorde voorgesteld door

0 0 0

1 12

12

12

12

0 12

0

1 12

0

12

12

de Butchertableaus van respectievelijk de vierde orde methoden Lobatto IIIA en LobattoIIIB. In sectie 4.3.1 is al aan bod gekomen hoe een dergelijke methode in Maple moetgeımplementeerd worden en ook werden al de methoden ’methGRK’ en ’MethGRKp’geıntroduceerd die een gepartitioneerde Runge-Kutta-methode toepassen, waarbij de laat-ste methode dit p keer doet.Als toepassing wordt hier opnieuw de enkelvoudige slingerbeweging beschouwd die vollediguitgewerkt werd in sectie 4.3.1. Het stelsel differentiaalvergelijkingen heeft de vorm{

q = pp = − sin q,

met q de veralgemeende coordinaat en p het moment. Ook werd in de vermelde sectie deexacte oplossing voor de functies q(t) en p(t) voor t = 0.5 bepaald. Analoog kan de exacteoplossing voor t = 1 gevonden worden van respectievelijk q(t) en p(t). Er geldt

q(1) = 0.27769877482366943413 en p(1) = −0.41013726418310237767.

Beschouw nu de compositiemethode

Ψh = Φγ2k+1h ◦ Φγ2kh ◦ ... ◦ Φγ2h ◦ Φγ1h

voor zekere k ∈ N, met Φh de Stormer/Verlet-methode en de symmetrievoorwaardenγ1 = ... = γk = γk+2 = ... = γ2k+1. Voor k = 0, 1, 2, 3 wordt nu telkens de fout beschouwdvan de bovenstaande compositiemethode op tijdstip t = 1 voor verschillende waarden van h.

k=0

Voor k = 0 wordt de bovenstaande compositiemethode gewoon de Stormer/Verlet-methode Φh. Nu wordt de fout van deze methode bekeken op het tijdstip t = 1 voorrespectievelijk de stapgroottes 1

2, 1

4, 1

8, 1

16, 1

32, 1

64, 1

128en 1

256. Voor elke stapgrootte wordt

aan de hand van de onderstaande Maple-code de benaderende waarden voor q(1) en p(1)respectievelijk in de array’s ynumK0 en znumK0 opgeslagen, om zo voor elke waarde vanh de fout te bepalen.

> ynumK0:=array(1..8):znumK0:=array(1..8):

> for i from 1 to 8 do

> MethGRKp(f,g,(1/2)^(i),0,0.5,0,1,A1,B1,C1,A2,B2,C2,2^(i)):

> ynumK0[i]:=ynum[2^(i)]:

6.4 Compositie met de methode van Stormer/Verlet 85

> znumK0[i]:=znum[2^(i)]:

> end:

> FOUTK0:=array(1..8):

> for i from 1 to 8 do

> FOUTK0[i]:=((yex-ynumK0[i])^2+(zex-znumK0[i])^2)^(1/2):

> end:

> print(FOUTK0);

[0.010531132154491194554, 0.0025878246083824465767, 0.00064421352735342534109,

0.00016088301972914005114, 0.000040210123719758178442, 0.000010051866735647133298,

0.25129251757983015803 10−5, 0.62822869977787252425 10−6]

Op het eerste zicht lijkt de fout te dalen bij kleinere waarden van h, wat te verwachtenwas. Om een beter beeld te krijgen van het verband tussen de fout en de waarde van h, kananaloog als bij compositie met de trapeziumregel via Maple de logaritme met grondtal 2van de fout grafisch weergegeven worden ten opzichte van het tegenstelde van de logaritmemet grondtal 2 van de stapgrootte h (zie figuur 19).

Figuur 19: Verband tussen de fout en de stapgrootte h voor k = 0.

Uit figuur 19 kan er besloten worden dat naarmate de stapgrootte h kleiner wordt(m.a.w. − log2 h groter wordt), de fout ook kleiner wordt. Ook de orde van de beschouwdemethode kan uit deze grafiek afgeleid worden. Bij het berekenen van de absolute waardevan de richtingscoefficient in Maple, wordt ongeveer de waarde 2.006 verkregen, wat nogmaar eens aantoont dat de methode van Stormer/Verlet van de tweede orde is.

k=1

Voor k = 1 wordt de compositiemethode

Ψh = Φγ3h ◦ Φγ2h ◦ Φγ1h

verkregen. Via onderstaande code worden voor verschillende stapgroottes de benaderendewaarden van de functies q(t) en p(t) in t = 1 berekend om vervolgens opnieuw de fout

6.4 Compositie met de methode van Stormer/Verlet 86

te bepalen voor elke stapgrootte en deze visueel voor te stellen (zie figuur 20). Hierbijis gama een array die de waarden voor γ1, γ2 en γ3 bevat die verkregen werden door demethode ’theorema’ toe te passen met s = 3 en p = 2 (= de orde van de methode vanStormer/Verlet). Deze waarden voldoen dus aan de voorwaarden van stelling 6.2.

> ynumK1:=array(1..8):znumK1:=array(1..8):

> ynum1:=array(0...256*3):ynum1[0]:=0.5:

> znum1:=array(0...256*3):znum1[0]:=0:

> for j from 1 to 8 do

> t:=0:

> for i from 1 to 2^(j)*3 do

> if (i mod 3 = 0) then

> k:=3;

> else k:= i mod 3;

> end if:

> ynum1[i]:=simplify(methGRK(f,g,gama[k]*(1/2)^(j),t,ynum1[i-1],znum1[i-1],1,A1,B1,C1,A2,B2,C2)[1]);

> znum1[i]:=simplify(methGRK(f,g,gama[k]*(1/2)^(j),t,ynum1[i-1],znum1[i-1],1,A1,B1,C1,A2,B2,C2)[2]);

> t:=t+gama[k]*(1/2)^(j):

> end:

> ynumK1[j]:=ynum1[2^(j)*3];

> znumK1[j]:=znum1[2^(j)*3];

> end:

> FOUTK1:=array(1..8);

> for i from 1 to 8 do

> FOUTK1[i]:=((yex-ynumK1[i])^2+(zex-znumK1[i])^2)^(1/2);

> end:

Figuur 20: Verband tussen de fout en de stapgrootte h voor k = 1.

6.4 Compositie met de methode van Stormer/Verlet 87

Wegens stellingen 6.2 en 5.3 is de compositiemethode met stapgroottes γ1h, γ2h en γ3hvan de Stormer/Verlet-methode12 een methode van orde vier. In Maple wordt voor de ab-solute waarde van de richtingscoefficient van de bovenstaande grafiek ongeveer de waarde4.013 verkregen, wat dit bevestigt.

k=2

Voor k = 2 wordt de compositiemethode

Ψh = Φγ5h ◦ Φγ4h ◦ Φγ3h ◦ Φγ2h ◦ Φγ1h

verkregen. De stapgrootte h wordt nu opgesplitst in vijf stukken γ1h, γ2h, γ3h, γ4h en γ5h.Via een gelijkaardige code13 als voor k = 1 wordt figuur 21 verkregen waarop de fout vanbovenstaande compositiemethode ten opzichte van de stapgrootte h weergegeven is.

Figuur 21: Verband tussen de fout en de stapgrootte h voor k = 2.

De via Maple verkregen absolute waarde van de richtingscoefficient is ongeveer 4.008.Dit bevestigt opnieuw wat uit stellingen 6.2 en 5.3 kan besloten worden, namelijk dat decompositiemethode met stapgroottes γ1h, γ2h, γ3h, γ4h en γ5h voor de juiste keuzes vanγ1, γ2, γ3, γ4 en γ5 van de vierde orde is.

k=3

Voor k = 3 wordt de compositiemethode

Ψh = Φγ7h ◦ Φγ6h ◦ Φγ5h ◦ Φγ4h ◦ Φγ3h ◦ Φγ2h ◦ Φγ1h

verkregen. Gelijkaardig als voor k = 1 en k = 2 wordt via Maple figuur 22 gegenereerd.De absolute waarde van de richtingscoefficient is nu ongeveer 4.007. Opnieuw wordt dusaangetoond dat de bovenstaande compositiemethode van de vierde orde is.

12Deze methode is van de tweede orde en wegens opgebouwd uit twee symmetrische methoden is dezeook symmetrisch.

13De waarde ’3’ wordt nu ’5’ wegens de opsplitsing van de stapgrootte in vijf stukken. Ook is de gebruiktearray voor de γ-waarden van de dimensie vijf. Deze waarden worden nu bepaald door de methode ’theorema’toe te passen met s = 5 en p = 2 (= de orde van de methode van Stormer/Verlet).

6.4 Compositie met de methode van Stormer/Verlet 88

Figuur 22: Verband tussen de fout en de stapgrootte h voor k = 3.

SAMENGEVAT

Door bovenstaande grafieken op eenzelfde figuur weer te geven, wordt een duidelijkbeeld gecreeerd van het verband tussen de beschouwde methoden.

Figuur 23: Verband tussen de fout en de stapgrootte h voor k = 0, 1, 2, 3.

Wat door figuur 23 meteen geıllustreerd wordt, is dat door compositie een nauwkeurige-re methode verkregen wordt dan de numerieke methode waarvan oorspronkelijk vertrokkenwordt, hier de methode van Stormer/Verlet14. De grafiek van de fout van deze numeriekemethode (in het punt t = 1) is namelijk boven de andere grafieken gelegen en deze is ookminder sterk dalend in vergelijking met de andere drie, wat dus wijst op een lagere orde.

14Dit is iets wat ook al meteen opviel bij het nader bestuderen van compositie met de trapeziumregel.

6.5 Stabiliteitsgebied van de compositiemethode van een symmetrische methode 89

Wanneer de drie grafieken van de compositiemethoden bekeken worden, valt meteen op datdeze evenwijdig lijken te zijn ten opzichte van elkaar. Dit laatste wijst op het feit dat decompositiemethoden van gelijk orde zijn, namelijk van de vierde orde. Er geldt ook dathoe groter de opsplitsing, hoe lager de grafiek gelegen is. Ook al zijn de gemaakte foutenbij de compositiemethoden van dezelfde grootteorde, de absolute waarde van de fout is duslichtjes kleiner bij een grotere versplintering van de stapgrootte h.

Kortom, ook uit deze toepassing blijkt dat compositie een heel handig instrument is. Hetis wel belangrijk om stil te staan bij de keuze van de waarde van de stapgrootte h en dekeuze van de opsplitsing van de stapgrootte (m.a.w. de keuze van s). Bij een kleine waardevan h en een grote waarde van s kan het namelijk zijn dat door de talrijke berekeningenafrondingsfouten de bovenhand halen. Dit is bij het beschouwde voorbeeld gelukkig nogniet het geval.

6.5 Stabiliteitsgebied van de compositiemethode van een symme-trische methode

Beschouw het scalair testprobleem

y = λy, y(0) = 1,

met λ ∈ C en Reλ < 0. Dit beginwaardeprobleem heeft als exacte oplossing y(t) = eλt

zodat wegens Reλ < 0 geldt dat

y(t)→ 0 als t→∞.

Als nu een algemene Runge-Kutta-methode toegepast wordt op bovenstaand beginwaar-deprobleem, dan zal steeds een eenstaps differentievergelijking bekomen worden van devorm

yn+1 = R(h)yn,

waarbij h = λh. De functie R(h) wordt de stabiliteitsfunctie van de gebruikte Runge-Kutta-methode genoemd. Er zal gelden dat

yn → 0 als n→∞

als en slechts als|R(h)| < 1.

Het stabilitietsgebied van de methode in kwestie is dan het gebied van het complexe h-vlakwaarvoor dit geldt15.

Beschouw nu een symmetrische methode Φh en een compositiemethode Ψh van deze me-thode van de vorm

Ψh = Φγ3h ◦ Φγ2h ◦ Φγ1h,

15Voor meer info omtrent stabiliteit zie referentie [4].

6.6 Symmetrische versus niet-symmetrische numerieke methoden 90

met γ1, γ2, γ3 ∈ R en γ1 + γ2 + γ3 = 1.Stel R(h) de stabiliteitsfunctie van de symmetrische methode waarvan vertrokken wordt.Deze levert een symmetrisch stabiliteitsgebied, want er geldt

yn+1 = R(h)yn

en wegens de symmetrie van de beschouwde methode ook

yn = R(−h)yn+1

zodatyn+1 = R(h)R(−h)yn+1

en dus

R(−h) =1

R(h).

Voor de bovenstaande compositiemethode geldt dan

yn+1 = R(γ3h)yn+γ1+γ2

= R(γ3h)R(γ2h)yn+γ1

= R(γ3h)R(γ2h)R(γ1h)yn,

zodat deze als stabiliteitsfunctie

R′(h) = R(γ3h)R(γ2h)R(γ1h)

heeft. Door de symmetrie van de methode waarvan vertrokken wordt en de vorm van destabiliteitsfunctie van de compositiemethode kan besloten worden dat de compositiemetho-de ook een symmetrisch stabiliteitsgebied zal bezitten, welke waarden van γi (i = 1, 2, 3)er ook gekozen worden. Stel γ1 6= γ3 dan is de verkregen compositiemethode niet symme-trisch (zie A.5: voorbeeld trapeziumregel), maar bovenstaande redenering duidt aan dathet stabiliteitsgebied dat wel is.

De symmetrie van het stabiliteitsgebied van een symmetrische methode wordt via com-positie dus behouden, ook als deze compositiemethode zelf niet symmetrisch is. Voorwillekeurige waarden van γi (i = 1, 2, 3) zal de geconstrueerde compositiemethode van eensymmetrische methode dus een symmetrisch stabiliteitsgebied bezitten.

6.6 Symmetrische versus niet-symmetrische numerieke metho-den

Tot nu toe werden er in dit hoofdstuk enkel symmetrische methoden (trapeziumregel, Lobat-to IIIA-methode, Stormer/Verlet-methode) beschouwd waarop compositie werd toegepast.Aangezien de numerieke methode waarvan vertrokken werd symmetrisch was en symme-trievoorwaarden werden opgelegd voor γi (i = 1, ..., s en s oneven), was ook telkens degeconstrueerde compositiemethode symmetrisch. Wegens stelling 5.3 had via compositie indit geval telkens een ordeverhoging van twee ordes plaats.

6.6 Symmetrische versus niet-symmetrische numerieke methoden 91

6.6.1 Compositie met de methode Lobatto III

Beschouwd nu de vierde orde16 methode Lobatto III. Net als de methoden Lobatto IIIAen Lobatto IIIB behoort deze methode tot de klasse van de Lobatto-methoden binnen deRunge-Kutta-methoden. De Butchertableau van deze methode is van de vorm

0 0 0 0

12

14

14

0

1 0 1 0

16

23

16

De toegevoegde methode van deze methode is (zie opmerking 5.2)

0 16−1

316

12

16

512

− 112

1 16

23

16

16

23

16

genaamd de Lobatto IIIC-methode. De methode Lobatto III is dus duidelijk niet symme-trisch.

Beschouw als voorbeeld het beginwaardeprobleem

y = e3t + y − t, y(0) = 1,

met exacte oplossing

y(t) =1

2e3t + t+ 1− 1

2et.

Definieer nu in Maple aan de hand van bovenstaande gegevens de functies f en yexact ende waarde y0. Stel aa, bb en cc de in Maple geımplementeerde coefficientenmatrices van demethode Lobatto III en gam de driedimensionale array die de waarden bevat van γ1, γ2

en γ3 die verkregen worden door de methode ’theorema’ toe te passen met s = 3 en p = 4(= de orde van de methode Lobatto III). Gelijkaardig als bij compositie met de methodeLobatto IIIA kan de compositiemethode van de Lobatto III-methode met stapgroottes γ1h,γ2h en γ3h op het beschouwde voorbeeld toegepast worden. Volgende Taylorontwikkelingvan de fout wordt in Maple verkregen.

> ynumb:=array(0..3):ynumb[0]:=y0:t:=0:

16Dit kan op een gelijkaardige manier als bij de methoden Lobatto IIIA en IIIB via Maple geıllustreerdworden.

6.6 Symmetrische versus niet-symmetrische numerieke methoden 92

> for i from 1 to 3 do

> ynumb[i]:=simplify(meth2(f,gam[i]*h,t,ynumb[i-1],aa,bb,cc));

> t:=t+gam[i]*h:

> end;

> taylor(yexact(h)-ynumb[3],h,8);

−0.10 10−18h− 0.2 10−18h2 − 0.3 10−18h3 − 0.533 10−18h4 − 0.7667 10−18h5

+0.12740764392874540840h6 + 0.27285263938334051867h7 +O(h8)

Bovenstaande output illustreert dat de geconstrueerde compositiemethode van de me-thode Lobatto III van de vijfde orde is. Wegens het niet-symmetrisch zijn van de beschouw-de numerieke methode is er door compositie toe te passen slechts een ordeverhoging vaneen orde verkregen.

6.6.2 Lobatto III versus Lobatto IIIA

Analoog aan vorig kan ook grafisch een uidrukking voor de fout van de benaderende waardevoor y(t) op tijdstip t = 1 van zowel de methode Lobatto III als zijn compositiemethodemet stapgroottes γ1h, γ2h en γ3h ten opzichte van de stapgrootte h weergegeven worden.Dit kan eveneens voor de symmetrische methode Lobatto IIIA en zijn compositiemethodemet dergelijke stapgroottes. Als resultaat wordt figuur 24 verkregen.

Figuur 24: Verband tussen de fout en de stapgrootte h van de methoden Lobatto III enLobatto IIIA en hun compositiemethoden met stapgroottes γ1h, γ2h en γ3h.

Via Maple wordt voor de absolute waarden van de richtingscoefficienten van de grafiekenvoor respectievelijk de methoden Lobatto IIIA en Lobatto III verkregen

r1 = 4.006029528674457392 en r2 = 3.888920712658076900,

en voor hun compositiemethoden

rc1 = 6.007506361849353800 en rc2 = 5.0369961941358042160.

6.7 Compositie met even opsplitsing (s=even) 93

De met Maple bepaalde eerste twee waarden tonen aan dat de methoden Lobatto IIIen Lobatto IIIA beiden van de vierde orde zijn. Dat deze methoden eenzelfde orde hebben,was al in een oogopslag af te leiden uit de figuur doordat de grafieken zo goed als evenwijdigzijn. De laatste twee waarden vertellen iets meer over de orde van de compositiemethodenmet stapgroottes γ1h, γ2h en γ3h van beide methoden. Er kan uit afgeleid worden dat decompositiemethode met de Lobatto IIIA-methode van de zesde orde is, terwijl deze met deLobatto III-methode slechts van de vijfde orde is, wat ook in de vorige sectie geıllustreerdwerd.

Compositie op de bovenstaande manier blijkt dus een groter positief effect te hebben bijsymmetrische methoden. Er wordt in dit geval namelijk een methode geconstrueerd waar-van de orde twee ordes hoger is als de methode waarvan vertrokken wordt, terwijl dit voorniet-symmetrische methoden slecht een orde is.

6.7 Compositie met even opsplitsing (s=even)

Eerder werd al aangebracht dat de keuze voor een even waarde van s bij constructie vaneen compositiemethode niet echt het gehoopte resultaat levert. Ook al is de methodewaarop compositie wordt toegepast symmetrisch, de compositiemethode kan in dit gevalop geen enkele manier symmetrisch geconstrueerd worden met γi (i = 1, ..., s) die aan devoorwaarden van stelling 6.2 voldoen. Hierdoor kan slechts een ordeverhoging van een ordeverkregen worden. Dit wordt in deze sectie aan de hand van voorbeeld (56) voor tweeverschillende numerieke methoden die al eerder aan bod kwamen, geıllustreerd.

6.7.1 De trapeziumregel

In het hoofdstuk ’Compositie met de trapeziumregel’ is deze methode al uitvoerig aan bodgekomen, waaronder ook de procedure ’M’ om in Maple deze methode toe te passen opeen beginwaardeprobleem. Ook is al de procedure ’theorema’ aan bod gekomen. Dezeprocedure kan op een efficiente manier aangepast worden om zo in Maple een methode teverkrijgen die voor een zekere waarde van p voor s = 4 de waarden γ1, γ2, γ3 en γ4 uit (54)genereert. De waarde p is voor de trapeziumregel gelijk aan 2, want deze is van de tweedeorde.

> theorema even:=proc(p)

> local G, expr, F;

> global gam, Fa;

> G:=array(1..4):

> expr[1]:=sum(G[i],’i’=1..4)-1;expr[2]:=sum(G[i]^(p+1),’i’=1..4);

> expr[3]:=G[1]-G[4];expr[4]:=G[1]-G[2];

> F:=n->fsolve({seq(expr[i],i=1..n)},{seq(G[i],i=1..n)});> Fa:=F(4);

> gam:=array(0..4);

> assign(gam[0]=0,{seq(gam[i]=rhs(Fa[i]),i=1..4)});> RETURN (Fa);

> end:

6.8 De waarden γi (i = 1, ..., 5) anders bekeken 94

> theorema even(2);

{G1 = 0.64195135558225538590, G2 = 0.64195135558225538590,G4 = −0.92585406674676615769, G4 = 0.64195135558225538590}

> gam:=array(0..4):

> gam[0]:=0:gam[1]:=rhs(theorema even(2)[1]):gam[2]:=rhs(theorema even(2)[2]):

> gam[3]:=rhs(theorema even(2)[3]):gam[3]:=rhs(theorema even(2)[4]):

De compositiemethode van de trapeziumregel toepassen gebeurt analoog als bij s = 3.De Taylorontwikkeling van de fout ziet er als volgt uit.

> taylor(yex-ynum[4],h,8);

−0.0881830480413177007h4 − 0.18996350623967644027h5 + 0.67297676108260983265h6

−1.7320168075329804966h7 +O(h8)

Bovenstaande output illustreert dus dat de geconstrueerde compositiemethode van de(symmetrische) trapeziumregel slechts van de derde orde is.

6.7.2 De methode Lobatto IIIA

Ook de vierde orde methode Lobatto IIIA is al uitvoerig aan bod gekomen. Bovenstaandemethode ’theorema even’ toepassen met p = 4 en de tayloronwikkeling van de fout bepalenvan de geconstrueerde compositiemethode bij toepassing op het vooropgestelde probleem(dit gebeurt analoog als voorheen), levert de volgende ouput.

> taylor(yex-ynum[4],h,8);

−0.1 10−19 − 0.37 10−17h+ 0.12400 10−15h2 − 0.189400 10−14h3 + 0.1853963 10−13h4

−0.14565230 10−12h5 − 0.00217350093742541887h6 + 0.003688800513755054611h7 +O(h8)

Hiermee wordt aangetoond dat de geconstrueerde compositiemethode slechts van devijfde orde is.

Kortom is het bij het aanwenden van een symmetrische methode voor compositie aan teraden om een oneven aantal opsplitsingen te kiezen voor de stapgrootte h. Zo kan symme-trie opgelegd worden voor de compositiemethode, zodat deze een orde heeft die twee ordeshoger is dan de numerieke methode waarvan vertrokken wordt in plaats van slechts een.

6.8 De waarden γi (i = 1, ..., 5) anders bekeken

6.8.1 Optimalisatieprobleem

Om een compositiemethode te construeren die minstens een orde hoger is als de numeriekemethode van zekere orde p waarvan vertrokken wordt, werd in de voorgaande secties eendoordachte opsplitsing van de stapgrootte gekozen. Bij de opsplitsing van de stapgrootte hin vijf stukken γ1h, γ2h, γ3h, γ4h en γ5h werden de waarden voor γi (i = 1, ..., 5) zo gekozendat deze zeker voldeden aan de voorwaarden uit stelling 6.2. Enkel rekening houdend met

6.8 De waarden γi (i = 1, ..., 5) anders bekeken 95

deze voorwaarden, waren er heel wat mogelijke oplossingen waardoor er nog drie extravoorwaarden konden opgelegd worden. Uiteindelijk werden de waarden γ1, γ2, γ3, γ4 en γ5

zodanig gekozen, dat ze voldeden aanγ1 + γ2 + γ3 + γ4 + γ5 = 1

γp+11 + γp+1

2 + γp+13 + γp+1

4 + γp+15 = 0

γ1 = γ5

γ2 = γ4

γ1 = γ2.

Welnu kan aangetoond worden dat deze γi-waarden (i = 1, ..., 5) een oplossing zijn van hetoptimalisatieprobleem

minimaliseer |γ51 + γ5

2 + γ53 + γ5

4 + γ55 |

met γ1 + γ2 + γ3 + γ4 + γ5 = 1

γp+11 + γp+1

2 + γp+13 + γp+1

4 + γp+15 = 0

γ1 = γ5

γ2 = γ4,

of korter

minimaliseer |2γ51 + 2γ5

2 + γ53 |

met 2γ1 + 2γ2 + γ3 = 1

2γp+11 + 2γp+1

2 + γp+13 = 0.

6.8.2 Voorbeeld

Stel nu bijvoorbeeld dat vertrokken wordt van een numerieke methode van de tweede orde(m.a.w. p = 2), dan kan in Maple op een efficiente manier geıllustreerd worden dat boven-staande bewering klopt.Het optimalisatieprobleem is in dit geval van de vorm

minimaliseer |2γ51 + 2γ5

2 + (1− 2γ1 − 2γ2)5|met 2γ3

1 + 2γ32 + (1− 2γ1 − 2γ2)3 = 0.

Aan de hand van de Lagrange multiplicator (zie appendix A.7), kan dit probleem gemak-kelijk opgelost worden.

Via onderstaande Maple-code worden eerst en vooral de te minimaliseren functie f(γ1, γ2)en de functie g(γ1, γ2) die de voorwaarde uitdrukt, gedefinieerd. Aan de hand van de-ze functies wordt de Lagrange-functie opgesteld om uiteindelijk de stationaire punten vandeze functie te bepalen.

> f:=(G1,G2)-> (2*G1^5+2*G2^5+(1-2*G1-2*G2)^5)^2:

> g:=(G1,G2)->2*G1^3+2*G2^3+(1-2*G1-2*G2)^3-0:

> F:=(G1,G2,L)->f(G1,G2)-L*g(G1,G2):

6.9 Compositie met de toegevoegde methode 96

> v1:=diff(F(G1,G2,L),G1)=0:v2:=diff(F(G1,G2,L),G2)=0:v3:=diff(F(G1,G2,L),L)=0;

> evalf(solve(v1,v2,v3,G1,G2,L));

{G1 = 0.4144907718, G2 = 0.4144907718, L = −0.1499216834}, {G1 = 1.453257384, G2 = −2.152638290,

L = 0.}, {G1 = 1.351207193, G2 = −1.702414384, L = −83.32222309}, {G1 = −2.800000000−2.000000000I,

G2 = 2.200000000 + 0.I, L = −180.0000000 + 0.I}, {G1 = −0.− 2.000000000I,G2 = −0.+ .3333333333I,

L = −0.− 33.33333333I}, {G1 = 1.407317884, G2 = −1.610976825, L = −78.39851264}

Als de methode ’theorema’ aangewend wordt voor s = 5 en p = 2 dan worden de waardenG1 = G2 = G4 = G5 = 0.4144907718 en G3 = −0.6579630872 verkregen. Uit bovenstaandeoutput kan er opgemerkt worden dat G1 = G2 = 0.4144907718 een mogelijke oplossingis van het beschouwde optimalisatieprobleem. Aan de nodige voorwaarde is dus duidelijkvoldaan, enkel de voldoende voorwaarde moet nog nagegaan worden. Opdat G1 = G2 =0.4144907718 een minimum zou zijn van de beschouwde functie f , moet de determinant vande gerande Hessiaan in dat punt negatief zijn. Aan de hand van Maple wordt als gerandeHessiaan in het punt (0.4144907718, 0.4144907718,−0.1499216834) verkregen

H :=

6.330683006 6.008697848 1.5666769466.008697848 6.330683006 1.5666769461.566676946 1.566676946 0

.De determinant van deze matrix is −1.580610113. Er kan dus besloten worden dat de extravooropgestelde voorwaarde γ1 = γ2 een oplossing weergeeft die de functie |2γ5

1 + 2γ52 + γ5

3 |minimaliseert.

6.9 Compositie met de toegevoegde methode

Een vaak voorkomend fenomeen bij compositie is dat niet enkel de beschouwde numeriekemethode gebruikt wordt om een nieuwe methode te construeren, maar ook haar toegevoeg-de methode. Ook deze manier van compositie kan een gunstig resultaat opleveren wat deorde betreft van de ontstane compositiemethode.

Stel Φh een zekere methode en Φ∗h de corresponderende toegevoegde methode. Stel α1,α2, ..., αs en β1, β2, ..., βs (s ≥ 1) reele getallen, dan kan de algemene compositiemethode

Ψh = Φαsh ◦ Φ∗βsh ◦ ... ◦ Φα2h ◦ Φ∗β2h◦ Φα1h ◦ Φ∗β1h

(57)

beschouwd worden. Deze compositiemethode is opgebouwd uit samenstellingen van afwis-selend de numerieke methode waarvan vertroken wordt en haar toegevoegde methode metstapgroottes α1h, α2h, ..., αsh en β1h, β2h, ..., βsh.

6.9 Compositie met de toegevoegde methode 97

6.9.1 Orde van een compositiemethode met de toegevoegde methode

Er bestaat een gelijkaardige stelling als stelling 6.2 die iets meer vertelt over de orde vaneen compositiemethode met een numerieke methode en haar toegevoegde.

6.4 Stelling. Stel Φh een een-staps methode van orde p en Φ∗h haar toegevoegde methode.Als α1, α2, ..., αs en β1, β2, ..., βs (s ≥ 1) voldoen aan

β1 + α1 + β2 + α2 + ...+ βs + αs = 1, (58)

(−1)pβp+11 + αp+1

1 + (−1)pβp+12 + αp+1

2 + ...+ (−1)pβp+1s + αp+1

s = 0, (59)

dan is de compositiemethode (57) ten minste van de orde p+ 1.

Bewijs. Het bewijs is gelijkaardig aan dat van stelling 6.2. Zonder de algemeenheid teschaden, wordt hier verondersteld dat s = 2.Er wordt vertrokken van een methode van orde p. Wegens stelling 5.3 is ook de toegevoegdemethode van deze orde en geldt er

e′1 = (−1)pC(y0).βp+11 hp+1 +O(hp+2),

e1 = C(y1)αp+11 hp+1 +O(hp+2),

e′2 = (−1)pC(y2).βp+12 hp+1 +O(hp+2),

e2 = C(y3)αp+12 hp+1 +O(hp+2),

waarbij e′1, e′2 de fouten zijn bij het toepassen van de toegevoegde methode van de vooropge-stelde numerieke methode met stappen β1h en β2h en beginwaarden y0 en y2 en waarbij e1,e2 de fouten zijn bij het toepassen van de vooropgestelde numerieke methode met stappenα1h en α2h en beginwaarden y1 en y3.

Wegens yi = y0 + O(h) voor i = 1, 2, 3, E ′i = (I + O(h))e′i en Ei = (I + O(h))ei voori = 1, 2, geldt

ϕh(y0)−Ψh(y0)(58)= ϕ∑

i βih+αih(y0)−Ψh(y0)

= E ′1 + E1 + E ′2 + E2

= C(y0)((−1)pβp+1

1 + αp+11 + (−1)pβp+1

2 + αp+12

)hp+1 +O(hp+2)

(59)= O(hp+2),

waarbij de voorlaatste gelijkheid geldt door de uitdrukkingen voor yi voor i = 1, 2, 3 tesubstitueren in de eerder gevonden uitdrukkingen voor e′1, e1 en e′2, e2 en hierbij rekeningte houden met het verband tussen Ei en ei, E

′i en e′i voor i = 1, 2.

Hieruit volgt dus dat de beschouwde compositiemethode ten minste van orde p+ 1 is.

Ook bij compositie met de toegevoegde methode kan er dus een aardige ordeverhogingverkregen worden.

6.5 Opmerking. Merk op dat bovenstaand stelsel van vergelijkingen (58) en (59) nu weleen oplossing heeft voor α1, α2, ..., αs en β1, β2, ..., βs als p oneven is. Zo kan nu ookvertrokken worden van een methode van oneven orde om een hogere orde methode teconstrueren.

6.9 Compositie met de toegevoegde methode 98

6.9.2 Voorbeeld

Stel s = 1 en Φh een numerieke methode van de eerste orde (m.a.w. p = 1) met toegevoegdemethode Φ∗h, dan worden de voorwaarden uit stelling 6.4{

β1 + α1 = 1−β2

1 + α21 = 0.

Dit stelsel heeft als oplossing

β1 = α1 =1

2.

Uit stelling 6.4 volgt dan dat de symmetrische17 compositiemethode

Ψh = Φh2◦ Φ∗h

2

(60)

ten minste van de tweede orde zal zijn.

6.6 Opmerking. Stel s = 1 en p even, dan heeft het stelsel van voorwaarden uit stelling6.4 geen oplossing.

6.9.3 Toepassing: de valbeweging

Om stelling 6.4 omtrent compositie met de toegevoegde methode te illustreren, wordt de dif-ferentiaalvergelijking die een enkelvoudige valbeweging modelleert van dichterbij bekeken.

Figuur 25: De valbeweging.

Stel een massa m maakt vanuit rust een valbeweging waarbij er een weerstand heerstdie evenredig is met de snelheid v(t) van de massa (zie figuur 25). Stel k de evenre-digheidsconstante en de x-as naar beneden gericht, dan is door de wet van Newton dedifferentiaalvergelijking die dit fenomeen modelleert van de vorm

v = − kmv + g, v(0) = 0.

17Voor elke methode Φh en haar toegevoegde methode Φ∗h geldt dat de methode Ψ(σ)h = Φσh ◦Φ∗σh (met

σ een reeel getal) symmetrisch is.

6.9 Compositie met de toegevoegde methode 99

Via Maple wordt als exacte oplossing van dit beginwaardeprobleem met k = m en g = 1verkregen

v(t) = 1− e(−t).

Aan de hand van dit beginwaardeprobleem wordt voor de expliciete Euler-methode en eenderde orde Runge-Kutta-methode de stelling omtrent compositie met de toegevoegde me-thode geıllustreerd.

De Eulermethode

De expliciete Euler-methode en haar toegevoegde methode, de impliciete Euler-methode,zijn al eerder aan bod gekomen in dit werk. Ze zijn respectievelijk van de vorm

yn+1 = yn + hf (tn, yn)

enyn+1 = yn + hf (tn+1, yn+1) .

Ook werd in het hoofdstuk ’Toegevoegde methode’ geıllustreerd dat beide methoden vande eerste orde zijn. Deze eerste orde methoden toepassen via Maple, kan via de volgendeprocedures, respectievelijk voor de expliciete en impliciete Euler-methode.

> MEu:=proc(t 0,h,y0)

> local y,expr,sols;

> expr:=y-y0-h*f(t 0,y0):

> sols:=solve(expr,y);

> RETURN(sols);

> end:

> MAchEu:=proc(t 1,h,y0)

> local y,expr,sols;

> expr:=y-y0-h*f(t 1,y):

> sols:=solve(expr,y);

> RETURN(sols);

> end:

Wegens stelling 6.4 kan aan de hand van deze twee methoden een compositiemethodeontwikkeld worden die ten minste van de orde twee zal zijn. Om deze methode te construe-ren zijn waarden voor α1, α2, ..., αs en β1, β2, ..., βs nodig die voldoen aan de voorwaarden(58) en (59) voor p = 1 (= de orde van de expliciete en impliciete Euler-methode). Viaonderstaande procedure ’theorematoeg’ kunnen dergelijke waarden voor s = 1 en s = 2 envoor zekere waarden van p ontwikkeld worden18. In deze toepassing wordt s = 1 gekozen.

> theorematoeg:=proc(s,p)

> local A, expr, F, B;

18Voor s = 2 worden in de procedure ’theoremtoeg’ nog twee extra voorwaarden voor α1, α2, β1 en β2

opgelegd. Deze voorwaarden zorgen ervoor dat een symmetrische compositiemethode verkregen wordt. Zeleveren echter geen unieke oplossing. Om toch een oplossing voor α1, α2, β1 en β2 te verkrijgen die geente grote waarden aanneemt, wordt bij het commando ’fsolve’ het interval voor de waarden α1 en β1 kleingekozen.

6.9 Compositie met de toegevoegde methode 100

> global alpha, beta, Fa;

> A:=array(1..s):B:=array(1..s):

> if (s=1) then

> expr[1]:=sum(A[i]+B[i],’i’=1..s)-1;

> expr[2]:=sum((-1)^p*B[i]^(p+1)+A[i]^(p+1),’i’=1..s);

> else expr[1]:=sum(A[i]+B[i],’i’=1..s)-1;

> expr[2]:=sum((-1)^p*B[i]^(p+1)+A[i]^(p+1),’i’=1..s);

> expr[3]:=A[1]=B[s];expr[4]:=A[s]=B[1];

> end if:

> F:=n->fsolve({seq(expr[i],i=1..2*s)},{seq(A[i],i=1..n),seq(B[i],i=1..n)},{A[1]=-2..2,B[1]=-2..2 });

> Fa:=F(s);

> alpha:=array(0..s);beta:=array(0..s);

> assign(alpha[0]=0,{seq(alpha[i]=rhs(Fa[i]),i=1..s)});> assign(beta[0]=0,{seq(beta[i]=rhs(Fa[i+s]),i=1..s)});> RETURN (Fa);

> end:

> theorematoeg(1,1);

{A1 = 0.5000000000, B1 = 0.5000000000}

Met onderstaande Maple-code wordt op het beschouwde beginwaardeprobleem van devalbeweging de compositiemethode (60) met Φh de expliciete en Φ∗h de impliciete Euler-methode toegepast en dit voor algemene stapgrootte h. Op analoge manier als voorheenwordt de Taylorontwikkeling van de fout bepaald in functie van de stapgrootte h.

> s:=1:vnuma:=array(0..2*s):vnuma[0]:=vexact(0):

> for i from 1 to 2*s do

> if type(i,odd) then

> vnuma[i]:=MAchEu(sum(alpha[k]*h,’k’=0..(i-1)/2)+sum(beta[k]*h,’k’=0..(i+1)/2),beta[(i+1)/2]*h,vnuma[i-1]);

> else

> vnuma[i]:=MEu(sum(alpha[k]*h,’k’=0..i/2-1)+sum(beta[k]*h,’k’=0..i/2),alpha[i/2]*h, vnuma[i-1]);

> end if;

> end do;

> vnuma[2*s];

2h2 + h

> taylor(vnuma[2*s]-vexact(h),h);

0.0833333333h3 − 0.08333333333h4 + 0.05416666667h5 +O(h6)

Bovenstaande output illustreert dus dat de beschouwde compositiemethode (die sym-metrisch is) van de tweede orde is, wat een orde hoger is dan de methoden (de expliciete

6.9 Compositie met de toegevoegde methode 101

en impliciete Euler-methode) waarvan vertrokken is.Beschouw vervolgens de middelpuntregel

yn+1 = yn + hf

(tn + tn+1

2,yn + yn+1

2

).

Onderstaande Maple-code past deze methode toe op het beschouwde beginwaardeprobleem.

> M:=proc(t 1,t 2,y0)

> local y,expr,sols;

> expr:=y-y0-(t 2-t 1)*f((t 1+t 2)/2,(y0+y)/2):

> sols:=solve(expr,y);

> RETURN(sols);

> end:

> vnumb:=M(0,h,0);

vnumb :=2h

2 + h

Hiermee is geıllustreerd dat de compositiemethode

Ψh = Φh2◦ Φ∗h

2

met Φh en Φ∗h respectievelijk de expliciete en impliciete Euler-methode, precies de symme-trische impliciete middelpuntregel is.

Een Runge-Kutta-methode van de derde orde

Beschouw de twee-traps Runge-Kutta-methode

13

13

0

1 1 0

34

14

Stel A, B en C de geımplementeerde coefficientenmatrices in Maple. Via de eerder gezienemethode ’meth2’ kan op een efficiente manier aan de hand van het beginwaardeprobleem datde valbeweging modelleert, geıllustreerd worden dat de beschouwde Runge-Kutta-methodevan de derde orde is.

> vnum:=meth2(f,h,0,0,A,B,C):taylor(vexact(h)-vnum,h);

172h4 − 11

1080h5 +O(h6)

6.9 Compositie met de toegevoegde methode 102

De toegevoegde methode van deze derde orde methode is dan van de vorm (zie opmer-king 5.2)

13

13

0

1 1 0

34

14

Noem hiervan de geımplementeerde coefficientenmatrices At, Bt en Ct. Wegens stelling 5.3is deze methode ook van de derde orde en is de foutconstante tegengesteld aan deze van deoorspronkelijke methode. Dit valt ook gemakkelijk te verifieren via Maple.

> vnumt:=meth2(f,h,0,0,At,Bt,Ct):taylor(vexact(h)-vnumt,h);

− 172h4 +

191080

h5 +O(h6)

Stel nu s = 2 in de uitdrukking (57), zodat de symmetrische (zie appendix A.6) com-positiemethode

Ψh = Φα2h ◦ Φ∗β2h◦ Φα1h ◦ Φ∗β1h

,

met Φh en Φ∗h respectievelijk de bovenstaande derde orde Runge-Kutta-methode en haartoegevoegde methode, beschouwd wordt. Waarden voor α1, α2, β1 en β2 die voldoen aande voorwaarden uit stelling 6.4 kunnen via de methode ’theorematoeg’ efficient berekendworden.

> theorematoeg(2,3);

{A1 = −0.17227962698033259527, A2 = 0.67227962698033259527, B1 = 0.67227962698033259527,

B2 = −0.17227962698033259527}

Bovenstaande compositiemethode toepassen op het beschouwde beginwaardeprobleem,kan via Maple op de volgende manier.

> s:=2:vnuma:=array(0..2*s):vnuma[0]:=vexact(0):

> for i from 1 to 2*s do

> if type(i,odd) then

> vnuma[i]:=meth2(f,beta[(i+1)/2]*h,sum(alpha[k]*h,’k’=0..(i-1)/2)+sum(beta[k]*h,’k’=0..(i-1)/2),vnuma[i-1],At,Bt,Ct);

> else

> vnuma[i]:=meth2(f,alpha[i/2]*h,sum(alpha[k]*h,’k’=0..i/2-1)+sum(beta[k]*h,’k’=0..i/2),vnuma[i-1],A,B,C);

> end if;

> end do:

> taylor(vnuma[2*s]-vexact(h),h,8);

−0.9 10−19h3 + 0.272 10−18h4 − 0.0010160983805702437301h5 + 0.0010160983805702438138h6

−0.00052629166796669838748h7 +O(h8)

6.9 Compositie met de toegevoegde methode 103

Er wordt dus geıllustreerd dat de geconstrueerde compositiemethode van de vierde ordeis. Ze is dus van een orde hoger dan de methode waarvan vertrokken wordt, dit is preciesstelling 6.4.

6.7 Opmerking. Al eerder werd opgemerkt dat voor s = 1 en p even geen oplossingkon gevonden worden van het stelsel met vergelijkingen (58) en (59). Stel nu s = 2. Degeıntroduceerde procedure ’theorematoeg’ brengt hierbij de twee symmetrievoorwaarden

α1 = β2 en α2 = β1

aan. Deze voorwaarden laten echter geen oplossing toe voor p even. Indien voor een nume-rieke methode met orde p even een dergelijke compositiemethode wil opgebouwd worden,kunnen bijvoorbeeld de (niet-symmetrische) voorwaarden

α1 = β1 en β1 = β2

opgelegd worden. Deze laten wel een oplossing toe van het beschouwde stelsel.Als nu van een symmetrische methode vertrokken wordt, wordt er via dergelijke com-positie met de toegevoegde methode (dus de symmetrische methode zelf), geen symme-trische methode bekomen, dit door de waarden van α1, α2, β1, β2 die zorgen voor eenniet-symmetrsiche samenstelling. Hierdoor wordt er dus geen ordeverhoging van twee or-des verkregen, maar slechts van een, wat echter bij de eerder geziene manier van compositiewel zeker het geval was. Compositie met de toegevoegde methode is dus vooral nuttig bijmethoden met een oneven orde, want hiervoor is de eerder geziene manier van compositieniet toepasbaar (zie opmerking 6.3).Merk hierbij ook op dat voor methoden met een oneven orde via de bovenstaande maniervan compositie telkens wel een symmetrische methode verkregen wordt (zie appendix A.6),iets wat een mooie meerwaarde geeft aan compositie met de toegevoegde methode.

104

7 Splittingmethoden

Een ander welbekend begrip binnen de numerieke wiskunde is splitting. De idee bij splittingis om het beginwaardeprobleem op te splitsen in een eindig aantal beginwaardeproblemenwaarvan de exacte oplossing efficient te berekenen valt. Op deze manier kunnen methodenmet voordelige eigenschappen geconstrueerd worden.

Beschouw het autonoom beginwaardeprobleem

y = f(y), y(t0) = y0, (61)

waarbij y : R→ Rn en f : Rn → Rn. Stel dat f additief kan opgesplitst worden als

f = f [1] + f [2] + ...+ f [N ]

en het beginwaardeprobleem dus kan geschreven worden in de vorm

y = f [1](y) + f [2](y) + ...+ f [N ](y), y(t0) = y0.

Bij splitting wordt dan de exact te berekenen oplossing ϕ[j]t (j = 1, ..., N) van elk stelsel

differentiaalvergelijkingeny = f [j](y) j = 1, ..., N

gebruikt om de numerieke methode

Φh = ϕ[1]a1h◦ ϕ[2]

a2h◦ ... ◦ ϕ[N ]

aNh, a1, ..., aN ∈ R,

te construeren. Een dergelijke methode wordt een splittingmethode genoemd.In dit hoofdstuk worden enkele voorbeelden van methoden die door middel van splittinggeconstrueerd worden, van dichterbij bekeken.

7.1 De Lie-Trotter splitting

7.1.1 Definitie

Beschouw het eerder vermelde beginwaardeprobleem (61). Stel dat het vectorveld kanopgesplitst worden als in figuur 26.

Figuur 26: Opsplitsing van het vectorveld.

Het beginwaardeprobleem kan dan geschreven worden in de vorm

y = f [1](y) + f [2](y), y(t0) = y0, (62)

7.1 De Lie-Trotter splitting 105

waarbij f [1](y) en f [2](y) geen componenten van y(t) gemeenschappelijk hebben.Beschouw vervolgens de stelsels van differentiaalvergelijkingen

y = f [1](y) (63)

eny = f [2](y). (64)

Stel dat deze nu, vertrekkend van een zekere beginwaarde, exact oplosbaar zijn. Dan kaneerst het beginwaardeprobleem

y = f [2](y), y(t0) = y0,

exact opgelost worden, zodat een zekere waarde y1/2 = ϕ[2]h (y0) verkregen wordt. Vervolgens

kan de exacte oplossing van het beginwaardeprobleem

y = f [1](y), y(t0) = y1/2,

gezocht worden, zodat een benaderende waarde y1 = ϕ[1]h (y1/2) verkregen wordt voor y(t)

op tijdstip t = t0 + h.

Figuur 27: Splittingmethode Φh.

De geconstrueerde numerieke methode (zie figuur 27) is dus van de vorm

Φh = ϕ[1]h ◦ ϕ

[2]h ,

waarbij ϕ[1]t en ϕ

[2]t de exacte oplossingen, vertrekkende van een zekere beginwaarde, voor-

stellen van respectievelijk stelsels (63) en (64).

Ook kan eerst het beginwaardeprobleem

y = f [1](y), y(t0) = y0,

exact opgelost worden, om vervolgens een oplossing te zoeken van het beginwaardeprobleem

y = f [2](y), y(t0) = y1/2,

zodat de numerieke methodeΦ∗h = ϕ

[2]h ◦ ϕ

[1]h

geconstrueerd wordt (zie figuur 28).

7.1 De Lie-Trotter splitting 106

Figuur 28: Splittingmethode Φ∗h.

De splittingmethoden Φh en Φ∗h zijn toegevoegde methoden. Ze worden de Lie-Trottersplitting genoemd.

7.1.2 Orde van de Lie-Trotter splitting

Er kan vastgesteld worden dat de numerieke methode

Φh = ϕ[1]h ◦ ϕ

[2]h (65)

van de eerste orde is. Wegens stelling 5.3 is dan ook de methode

Φ∗h = ϕ[2]h ◦ ϕ

[1]h (66)

van deze orde en hebben de foutconstanten een tegengesteld teken. Dit wordt door onder-staand eenvoudig voorbeeld geıllustreerd.

Beschouw het eenvoudig beginwaardeprobleem

y = 1 + t2 + 2t, y(0) = 3, (67)

met als exacte oplossing

y(t) =t3

3+ t2 + t+ 3.

Om een autonoom stelsel differentiaalvergelijkingen te verkrijgen, wordt de functie x(t) = tgeıntroduceerd. Dit levert {

x = 1y = 1 + x2 + 2x.

Dit stelsel kan bijvoorbeeld opgesplitst worden als

Y = F [1](Y ) + F [2](Y ),

met

Y =

[x(t)y(t)

], F [1](Y ) =

[10

]en F [2](Y ) =

[0

1 + x(t)2 + 2x(t)

].

Om de Lie-Trotter splitting toe te passen op het beschouwde voorbeeld worden achtereen-volgens de stelsels[

x(t)y(t)

]= F [1](Y ) =

[10

]en

[x(t)y(t)

]= F [2](Y ) =

[0

1 + x(t)2 + 2x(t)

]

7.1 De Lie-Trotter splitting 107

beschouwd. Om de methode (65) toe te passen, wordt eerst het tweede stelsel opgelost metbeginwaarden y(0) = 3 en x(0) = 0 om vervolgens de verkregen waarden met t = h alsbeginwaarden te gebruiken bij het oplossen van het eerste stelsel. Dit kan in Maple op eenheel efficiente manier.

> sys ode1a:=diff(x(t),t)=0,diff(y(t),t)=1+(x(t))^2+2*x(t):

> ics1a:=x(0)=0,y(0)=3:

> opl1a:=dsolve([sys ode1a, ics1a]);

opl1a := {x(t) = 0, y(t) = 3 + t}

> sys ode2a:=diff(x(t),t)=1,diff(y(t),t)=0:ics2a:=x(0)=0,y(0)=3+h:

> opl2a:=dsolve([sys ode2a, ics2a]);

opl2a := {x(t) = t, y(t) = 3 + h}

Merk op dat bij de tweede stap, bij het oplossen van het eerste stelsel, als begintijdstipopnieuw t = 0 gekozen wordt. Bij deze laatste stap wordt een stap gezet van de grootte hzodat de waarden y(h) en x(h) (met x(t) en y(t) de functies verkregen bij de laatste output)een benadering weergeven19 van de functies y(t) en x(t) voor t = h. Deze benadering isvoor de functie y gelijk aan 3 + h, zodat via Maple de Taylorontwikkeling van de fout vande vorm

1

3h3 + h2

is. De laagst voorkomende macht van h is 2 zodat op deze manier geıllustreerd wordt datde eerste numeriek methode Φh van de Lie-Trotter splitting (65) inderdaad van de eersteorde is.

Om de tweede methode Φ∗h van de Lie-Trotter splitting (66) toe te passen, moet ana-loog tewerk gegaan worden als voor de methode Φh. De twee beschouwde stelsels moetennu wel in omgekeerde volgorde opgelost worden.

> sys ode1b:= diff(x(t),t)=1,diff(y(t),t)=0:ics1b:=x(0)=0,y(0)=3:

> opl1b:=dsolve([sys ode1b, ics1b]);

opl1b := {x(t) = t, y(t) = 3}

> sys ode2b:=diff(x(t),t)=0,diff(y(t),t)=1+(x(t))^2+2*x(t):

> ics2b:=x(0)=h,y(0)=3:

> opl2b:=dsolve([sys ode2b, ics2b]);

opl2b := {x(t) = h, y(t) = h(h+ 2)t+ t+ 3}

De verkregen taylorontwikkeling van de fout is nu van de vorm

−2

3h3 − h2

19Het feit dat de laatste stap die gezet wordt van de grootte h is, wijst erop dat de verkregen functiesmoeten geevalueerd worden in t = h. Stel dat in de laatste stap een stapgrootte van bijvoorbeeld h

2 zougebruikt worden (zie Strang splitting), zouden de verkregen functies x(t) en y(t) moeten geevalueerd wordenin t = h

2 om een benadering te verkrijgen voor de exacte oplossingen x(t) en y(t) van het oorspronkelijkeprobleem voor t = h.

7.2 De Strang splitting 108

wat aantoont wat wegens stelling 5.3 te verwachten was. Ook de Lie-Trotter splittingme-thode Φ∗h is van de eerste orde en de foutconstante is tegengesteld aan deze van de eerderbeschouwde Lie-Trotter splittingmethode Φh.

7.2 De Strang splitting

7.2.1 Definitie

Bij Strang splitting wordt, net als bij de Lie-Trotter splitting, een opsplitsing van hetvectorveld als in figuur 26 beschouwd. Stel ϕ

[1]t en ϕ

[2]t de exacte oplossingen, vertrekkende

van een zekere beginwaarde, van respectievelijk stelsel (63) en (64), dan wordt de numeriekemethode

Φ[S]h = ϕ

[1]h2

◦ ϕ[2]h ◦ ϕ

[1]h2

de Strang splitting20 genoemd (zie figuur 29).

Figuur 29: De Strang splitting.

Stel dat in de bovenstaande samenstelling de component ϕ[2]h opgesplitst wordt als

ϕ[2]h = ϕ

[2]h2

◦ ϕ[2]h2

,

dan kan de Strang splitting geschreven worden als

Φ[S]h = ϕ

[1]h2

◦ ϕ[2]h ◦ ϕ

[1]h2

= ϕ[1]h2

◦ ϕ[2]h2

◦ ϕ[2]h2

◦ ϕ[1]h2

= Φh2◦ Φ∗h

2

. (68)

De Strang splitting is dus de compositie van de Lie-Trotter methode Φh en haar toege-voegde methode Φ∗h. Rekening houdend met wat in sectie ’Compositie met de toegevoegdemethode’ aan bod kwam, kan dus besloten worden dat deze methode symmetrisch is envan de tweede orde. Dit laatste geldt vermits de methode Φh van de eerste orde is. Datde Strang splitting van de tweede orde is, wordt in de volgende sectie aan de hand van eeneenvoudig voorbeeld geıllustreerd.

20Deze methode wordt ook soms de Marchuk splitting genoemd.

7.2 De Strang splitting 109

7.2.2 Orde van de Strang splitting

De Strang splitting is een splittingmethode van de tweede orde. Om dit aan te tonen,wordt opnieuw het beginwaardeprobleem (67) beschouwd. De implementatie in Maple omde Strang splitting toe te passen, is gelijkaardig aan deze voor de Lie-Trotter splitting. Nuzijn er wel drie componenten in de samenstelling en varieert de stapgrootte. De hulpfunctiesx1 0, y1 0, y2 0 en y2 0 die voorkomen in de onderstaande Maple-code zijn ingevoerd omop een efficiente manier telkens de beginvoorwaarden te kunnen construeren.

> sys ode1:=diff(x(t),t)=1,diff(y(t),t)=0:ics1:=x(0)=0,y(0)=3:

> opl1:=dsolve([sys ode1, ics1]);

opl1 := {x(t) = t, y(t) = 3}

> x1 0:=unapply(rhs(opl1[1]),t):y1 0:=unapply(rhs(opl1[2]),t):

> sys ode2:=diff(x(t),t)=0, diff(y(t),t)=1+(x(t))^2+2*x(t):

> ics2:=x(0)=x1 0(h/2),y(0)=y1 0(h/2):

> opl2:=dsolve([sys ode2, ics2]);

opl2 :=

{x(t) =

h

2, y(t) =

h(h2 + 2

)t

2+ t+ 3

}

> x2 0:=unapply(rhs(opl2[1]),t):y2 0:=unapply(rhs(opl2[2]),t):

> sys ode3:= diff(x(t),t)=1,diff(y(t),t)=0:ics3:=x(0)=x2 0(h),y(0)=y2 0(h):

> opl3:=dsolve([sys ode3, ics3]);

opl3 :={x(t) = t+

12h, y(t) =

14h3 + h2 + h+ 3

}> ynum2:=unapply(rhs(opl3[2]),t):

> ynum2(h/2);

14h3 + h2 + h+ 3

> yexact(h)-ynum2(h/2);

h3

12

Bovenstaande Maple-output illustreert dus dat de Strang splitting van de tweede ordeis. Merk op dat nu de bekomen uitdrukkingen voor x(t) en y(t) moeten geevalueerd wordenin t = h

2om algemeen een benadering te verkrijgen van de functies in t = h. Dit vermits de

laatst genomen stapgrootte h2

is, wat al eerder opgemerkt werd bij de Lie-Trotter splitting.

7.1 Opmerking. Het principe van splitting is dus dat een stelsel differentiaalvergelij-kingen opgesplitst wordt in een zeker aantal N stelsels, waarvan de exacte oplossing ϕ

[j]t

(j = 1, ..., N) dan gebruikt wordt om een zogenaamde splittingmethode op te stellen. Wel-nu het is niet altijd mogelijk om van elk beschouwd stelsel de exacte oplossing te bepalen.Het zou daarentegen wel zonde zijn om de exacte oplossing van de stelsels waarvan dezewel kan berekend worden, niet te gebruiken bij het zoeken naar een benadering van de

7.3 Toepassing: De slingerbeweging 110

oplossing van het oorspronkelijke stelsel. Om dit probleem op te lossen, kan er een nume-rieke methode toegepast worden op de stelsels waarvan de oplossing niet exact te bepalen is.

Beschouw nu de bovenstaand besproken Lie-Trotter en Strang splittingmethoden (hierbij is

N = 2). Stel nu dat enkel de exacte oplossing ϕ[1]h kan bepaald worden en dat op het tweede

stelsel een numerieke methode Φ[2]h toegepast wordt. De aan bod gekomen eigenschappen

omtrent de orde van deze splittingmethoden blijven gelden indien de gebruikte numeriekemethode Φ

[2]h van de eerste orde gekozen wordt21. De Lie-Trotter splittingmethoden en de

Strang splittingmethode nemen dan respectievelijk de vorm

Φh = ϕ[1]h ◦ Φ

[2]h , Φ∗h = Φ

[2]h ◦ ϕ

[1]h en Φ

[S]h = ϕ

[1]h2

◦ Φ[2]h ◦ ϕ

[1]h2

aan.

7.3 Toepassing: De slingerbeweging

Splittingmethoden worden in de numerieke wiskunde vaak toegepast op Hamiltoniaansesystemen waarvan de Hamiltoniaan H kan opgesplitst worden. Hiermee wordt bedoeld datH(p, q) kan geschreven worden als

H(p, q) = T (p) + U(q),

waarbij T en U respectievelijk enkel van p en q afhangen. Het Hamiltoniaans stelsel kandan geschreven worden als {

p = −∂U∂q

(q)

q = ∂T∂p

(p).

Hierop kan het principe van splitting toegepast worden door de opsplitsing van het be-schouwde stelsel in de stelsels{

p = 0q = ∂T

∂p(p)

en

{p = −∂U

∂q(q)

q = 0

Dit is van toepassing op het stelsel differentiaalvergelijkingen dat de slingerbewegingmodelleert. De Hamiltoniaan van dit stelsel is namelijk van de vorm (zie sectie 4.3.1)

H(p, q) =1

2p2 − cos q = T (p) + U(q)

met T (p) = 12p2 en U(q) = − cos q. Zo kan het stelsel dat de slingerbeweging modelleert{

p = − sin qq = p

opgesplits worden in de stelsels{p = 0q = p

en

{p = − sin qq = 0

om een splittingmethode erop los te laten.

21Zo kan bijvoorbeeld de eenvoudig Eulermethode aangewend worden.

7.3 Toepassing: De slingerbeweging 111

7.3.1 De Lie-Trotter splitting versus de symplectische Euler-methode

Eerst wordt eens de Lie-Trotter splitting toegepast op het beschouwde voorbeeld. Hierbijworden gelijkaardige beginvoorwaarden gebruikt als in sectie 4.3.1 en worden de benade-rende waarden berekend voor de functies q(t) en p(t) op tijdstip t = 0.5.

> sys ode1:=diff(p(t),t)=-sin(q(t)),diff(q(t),t)=0:ics1:=q(0)=0.5,p(0)=0:

> opl1:=dsolve([sys ode1, ics1]);

opl1 :={p(t) = − sin

(12

)t, q(t) =

12

}> p0 1:=unapply(rhs(opl1[1]),t):q0 1:=unapply(rhs(opl1[2]),t):

> sys ode2:=diff(p(t),t)=0,diff(q(t),t)=p(t)ics2:=p(0)=p0 1(h),q(0)=q0 1(h):

> opl2:=dsolve([sys ode2, ics2]);

opl2 :={p(t) = − sin

(12

)h, q(t) = − sin

(12

)ht+

12

}> pnum1:=unapply(rhs(opl2[1]),t,h):qnum1:=unapply(rhs(opl2[2]),t,h):

> evalf(pnum1(0.5,0.5));evalf(qnum1(0.5,0.5));

−0.23971276930.3801436154

Stel dat nu de symplectische Euler-methode beschouwd wordt (zie sectie 4.2.1). StelA1, B1, C1 en A2, B2, C2 de coefficientenmatrices van respectievelijk de impliciete en deexpliciete Euler-methode, die samen de symplectische Euler-methode vormen. Aan de handvan de eerder geımplementeerde procedure ’MethGRK’ (zie sectie 4.3.2) kan deze metho-de toegepast22 worden op het bovenstaande beginwaardeprobleem dat de slingerbewegingmodelleert.

> f:=(t,p,q)->-sin(q):g:=(t,p,q)->p:

> methGRK2(f,g,0.5,0,0,0.5,1/2,A1,B1,C1,A2,B2,C2);

−0.2397127693, 0.3801436154

Bovenstaande output komt precies overeen met de benaderende waarden die verkregenwerden door de Lie-Trotter splitting toe te passen op het beschouwde stelsel.

Stel dat ϕTt en ϕUt de exacte oplossingen voorstellen, horende bij een zekere beginwaarde,van respectievelijk het eerste en het tweede stelsel waarin het oorspronkelijke stelsel wordtopgesplitst. Door bovenstaand voorbeeld wordt er dan geıllustreerd dat de symplectischeEuler-methode bij toepassing op een Hamiltoniaans systeem, waarbij de Hamiltoniaan op-splitsbaar is, net de samenstelling ϕTh ◦ ϕUh is.

22Hierbij wordt de funcie p(t) beschouwd als de y-variabele en de functie q(t) als de z-variabele.

7.4 Toepassing: De harmonische oscillator 112

7.3.2 De Strang splitting versus de methode van Stormer/Verlet

Vervolgens wordt ook de Strang splitting eens van naderbij bekeken door toepassing op deenkelvoudige slinger. Het toepassen gebeurt in Maple met de volgende code die gelijkaardigis aan deze uit sectie 7.2.2, nu wel toegepast op het beschouwde beginwaardeprobleem.

> sys ode1:=diff(p(t),t)=-sin(q(t)),diff(q(t),t)=0:ics1:=q(0)=0.5,p(0)=0:

> opl1:=dsolve([sys ode1,ics1]):

> p0 1:=unapply(rhs(opl1[1]),t):q0 1:=unapply(rhs(opl1[2]),t):

> sys ode2:=diff(p(t),t)=0,diff(q(t),t)=p(t):ics2:=q(0)=q0 1(h/2),p(0)=p0 1(h/2):

> opl2:=dsolve([sys ode2,ics2]):

> p0 2:=unapply(rhs(opl2[1]),t):q0 2:=unapply(rhs(opl2[2]),t):

> sys ode3:=diff(p(t),t)=-sin(q(t)),diff(q(t),t)=0:ics3:=q(0)=q0 2(h),p(0)=p0 2(h):

> opl3:=dsolve([sys ode3,ics3]):

> pnum2:=unapply(rhs(opl3[1]),t,h):qnum2:=unapply(rhs(opl3[2]),t,h):

> h:=1/2:

> evalf(pnum2(h/2,h));evalf(qnum2(h/2,h));

−0.22635749260.4400718077

Voor t = 0.5 worden aan de hand van de Strang splitting de benaderende waarden−0.2263574926 en 0.4400718077 voor respectievelijk p(t) en q(t) gevonden. In sectie 4.3.1werd al de methode van Stormer/Verlet toegepast op de bewegingsvergelijking van de en-kelvoudige slinger, wat hetzelfde resultaat levert als hierboven. Dit illustreert dat de me-thode van Stormer/Verlet toegepast op een dergelijk probleem precies de Strang splittingϕUh

2

◦ ϕTh ◦ ϕUh2

is.

7.4 Toepassing: De harmonische oscillator

Beschouw een massa opgehangen aan een eendimensionale veer die aan een uiteinde ge-fixeerd is en waarvan de massa te verwaarlozen is (zie figuur 30). Dergelijk systeem wordteen harmonische oscillator genoemd.

Figuur 30: Harmonische oscillator.

7.4 Toepassing: De harmonische oscillator 113

Bij een eenvoudige harmonische oscillator, zoals in deze sectie beschouwd zal worden,is er geen wrijving en ook geen uitwendige kracht die inwerkt op de massa. De enigekrachten die dus moeten in acht genomen worden zijn de zwaartekracht en de kracht diede veer uitoefent op de massa. De eenvoudige harmonische oscillator is dus een probleemdat beschreven wordt door de differentiaalvergelijking

my + ky = 0,

met m de massa, k de veerconstante en y(t) de uitwijking van het systeem ten opzichtevan het evenwichtspunt op tijdstip t. Stel hierbij y = z, zodat bovenstaande tweede ordedifferentiaalvergelijking kan geschreven worden als het eerste orde stelsel{

y = zz = − k

my.

Neem hier de veerconstante k = 10 en de massa m = 12. Het beschouwde stelsel wordt dan{

y = zz = −20y.

Veronderstel hierbij de beginwaarden y(0) = 16

en z(0) = 12. De exacte oplossing y(t),

z(t) kan via Maple op een efficiente manier (analoog aan eerdere implementaties) bepaaldworden, deze is van de vorm

y(t) =1

20sin(

2√

5t)√

5 +1

6cos(

2√

5t),

z(t) = −2√

5

(− 1

20cos(

2√

5t)√

5 +1

6sin(

2√

5t))

.

Op bovenstaand beginwaardeprobleem van de harmonische oscillator wordt nu zowel de Lie-Trotter splitting als de Strang splitting losgelaten. Analoog als in eerdere secties wordt indeze sectie voor beide methoden grafisch een verband weergegeven tussen de fout op tijdstipt = 1 en de stapgrootte h. Respectievelijk worden de stapgroottes 1

2, 1

4, 1

8, 1

16, 1

32, 1

64, 1

128

en 1256

beschouwd. Voor elk van deze waarden wordt dan de benaderende waarde voorde functie y(t) die de uitwijking van het systeem ten opzichte van het evenwichtspunt optijdstip t weergeeft, bepaald om uiteindelijk de gemaakte fout te berekenen. De benaderendewaarden worden voor de Lie-Trotter splittingmethode aan de hand van de volgende Maple-code geconstrueerd.

> ynumLT:=array(1..8):znumLT:=array(1..8):

> ynumLT 0:=array(0...256*2):znumLT 0:=array(0...256*2):

> ynumLT 0[0]:=1/6:znumLT 0[0]:=1/2:

> for j from 1 to 8 do

> for i from 1 to 2^(j) do

> sys ode1a:=diff(y(k),k)=z(k),diff(z(k),k)=0:

> ics1a:=y(0)=ynumLT 0[i-1],z(0)=znumLT 0[i-1]:

> opl1a:=dsolve([sys ode1a, ics1a]):

7.4 Toepassing: De harmonische oscillator 114

> y0 1a:=unapply(rhs(opl1a[1]),k):z0 1a:=unapply(rhs(opl1a[2]),k):

> sys ode2a:=diff(y(k),k)=0,diff(z(k),k)=-20*y(k):

> ics2a:=y(0)=y0 1a((1/2)^(j)),z(0)=z0 1a((1/2)^(j)):

> opl2a:=dsolve([sys ode2a, ics2a]):

> y0 2a:=unapply(rhs(opl2a[1]),k):z0 2a:=unapply(rhs(opl2a[2]),k):

> ynumLT 0[i]:=y0 2a((1/2)^(j)):znumLT 0[i]:=z0 2a((1/2)^(j)):

> end:

> ynumLT[j]:=evalf(ynumLT 0[2^(j)]):

> end:

> print(ynumLT);

[−1.416666667,−0.2415364583,−0.1921192171,−0.1702548266,−0.1593716125,−0.1538539248,−0.1510645304,−0.1496607082]

Voor de harmonische oscillator geldt de exacte waarde y(1) = −0.1482502246. Ditbetekent dat de massa op tijdstip t = 1 op zo’n 0.14m onder het evenwichtspunt te vindenis. Er kan dus al vastgesteld worden dat hoe kleiner de stapgrootte gekozen wordt, hoe beterdie exacte waarde benaderd wordt. Voor de Strang splittingmethode wordt een gelijkaardigeMaple-code gehanteerd om de benaderende waarden voor de acht verschillende stapgroottesin t = 1 te bepalen.

> ynumS:=array(1..8):znumS:=array(1..8):

> ynumS 0:=array(0...256*3):znumS 0:=array(0...256*3):

> ynumS 0[0]:=1/6:znumS 0[0]:=1/2:

> for j from 1 to 8 do

> for i from 1 to 2^(j) do

> sys ode1b:=diff(y(k),k)=0,diff(z(k),k)=-20*y(k):

> ics1b:=y(0)=ynumS 0[i-1],z(0)=znumS 0[i-1]:

> opl1b:=dsolve([sys ode1b, ics1b]):

> y0 1b:=unapply(rhs(opl1b[1]),k):z0 1b:=unapply(rhs(opl1b[2]),k):

> sys ode2b:=diff(y(k),k)=z(k),diff(z(k),k)=0:

> ics2b:=y(0)=y0 1b(((1/2)^(j))/2),z(0)=z0 1b(((1/2)^(j))/2):

> opl2b:=dsolve([sys ode2b, ics2b]):

> y0 2b:=unapply(rhs(opl2b[1]),k):z0 2b:=unapply(rhs(opl2b[2]),k):

> sys ode3b:=diff(y(k),k)=0,diff(z(k),k)=-20*y(k):

> ics3b:=y(0)=y0 2b((1/2)^(j)),z(0)=z0 2b((1/2)^(j)):

> opl3b:=dsolve([sys ode3b, ics3b]):

> y0 3b:=unapply(rhs(opl3b[1]),k):z0 3b:=unapply(rhs(opl3b[2]),k):

> ynumS 0[i]:=y0 3b(((1/2)^(j))/2):znumS 0[i]:=z0 3b(((1/2)^(j))/2):

> end:

> ynumS[j]:=evalf(ynumS 0[2^(j)]):

> end:

> print(ynumS);

7.4 Toepassing: De harmonische oscillator 115

[−0.1666666667,−0.1292317708,−0.1443834639,−0.1473274973,−0.1480221542,−0.1481933682,−0.1482360205,−0.1482466741]

Er valt meteen op dat de Strang splittingmethode de exacte waarde iets beter lijkt tebenaderen. Dit was te verwachten aangezien deze methode van een orde hoger is als deLie-Trotter splittingmethode. Grafisch log2 van de fout ten opzichte van − log2 van destapgrootte van beide methoden voorstellen, levert figuur 31.

Figuur 31: Verband tussen de fout en de stapgrootte h bij de Lie-Trotter en Strang splitting

Iets wat meteen in het oog springt, is dat voor beide splittingmethoden de fout daaltvoor kleiner wordende waarden van de stapgrootte h. Dit was te verwachten en ook almerkbaar bij het bekijken van de twee geconstrueerde array’s ynumLT en ynumS. Ook ineerdere secties kon dit fenomeen al ettelijke malen vastgesteld worden.

Wat ook meteen opvalt is dat de grafiek van de Lie-Trotter splittingmethode hoger ge-legen is als deze van de Strang splittingmethode. Deze laatste methode levert dus voor elkestapgrootte een kleinere verschil tussen de benaderende waarde en de exacte waarde vany(t) op tijdstip t = 1. Bij het bepalen van de absolute waarde van de richtingscoefficientvan de verkregen rechten in het interval [2, 8] worden, respectievelijk voor de Lie-Trotteren Strang splittingmethode, de waarden

r1 = 0.995396296 en r2 = 2.067149239

verkregen. Deze waarden tonen aan dat de Lie-Trotter splittingmethode inderdaad van deeerste orde is en de Strang splittingmethode van de tweede orde. Dit werd ook al eerder indit hoofdstuk geıllustreerd. Kortom, er kan uit bovenstaande toepassing besloten wordendat de Strang splittingmethode een veel grotere nauwkeurigheid heeft in vergelijking met

7.5 Splitting versus compositie 116

de Lie-Trotter splittingmethode.

Op figuur 32 wordt het verloop weergegeven van de benaderde waarden van y(t) doorde Lie-Trotter en de Strang splittingmethode. De gekozen stapgrootte is hierbij h = 1

16.

De grafiek is een mooie weergave van de positie van de massa op een zeker tijdstip t be-naderd door de beschouwde splittingmethoden. Doordat enkel de kracht van de veer en dezwaartekracht een rol spelen bij de eenvoudige harmonische oscillator, wordt een periodiekebeweging verkregen. De massa bereikt telkens opnieuw dezelfde maximale afwijking tenopzichte van het evenwichtspunt.

Figuur 32: Verloop van de benaderende waarden van y(t) door de Lie-Trotter en Strangsplitting

7.5 Splitting versus compositie

7.5.1 Verband tussen splitting en compositie met de toegevoegde methode

Stel nu dat opnieuw van het algemeen beginwaardeprobleem (62) vertrokken wordt dat kan

opgesplitst worden in de stelsels (63) en (64). Noem opnieuw ϕ[1]t en ϕ

[2]t de oplossingen

van de twee stelsels in kwestie en beschouw de splittingmethode

Ψh = ϕ[2]bsh◦ ϕ[1]

ash◦ ϕ[2]

bs−1h◦ ... ◦ ϕ[1]

a2h◦ ϕ[2]

b1h◦ ϕ[1]

a1h,

met a1, a2, ..., as, b1, b2, ..., bs ∈ R.Stel nu

a1 = β1,

b1 = α1 + β1,

7.5 Splitting versus compositie 117

a2 = β2 + α1,

b2 = α2 + β2,... (69)

as−1 = βs−1 + αs−2,

bs−1 = αs−1 + βs−1,

as = βs + αs−1,

bs = βs,

met α1, α2, ..., αs−1, β1, β2, ..., βs ∈ R, dan kan Ψh geschreven worden in de vorm

Ψh = ϕ[2]bsh◦ ϕ[1]

ash◦ ϕ[2]

bs−1h◦ ... ◦ ϕ[1]

a2h◦ ϕ[2]

b1h◦ ϕ[1]

a1h

= ϕ[2]βsh◦ ϕ[1]

(βs+αs−1)h ◦ ϕ[2](αs−1+βs−1)h ◦ ... ◦ ϕ

[1](β2+α1)h ◦ ϕ

[2](α1+β1)h ◦ ϕ

[1]β1h

= ϕ[2]βsh◦ ϕ[1]

βsh◦ ϕ[1]

αs−1h◦ ϕ[2]

αs−1h◦ ϕ[2]

βs−1h◦ ... ◦ ϕ[1]

β2h◦ ϕ[1]

α1h◦ ϕ[2]

α1h◦ ϕ[2]

β1h◦ ϕ[1]

β1h

= Φ∗βsh ◦ Φαs−1h ◦ Φ∗βs−1h◦ ... ◦ Φ∗β2h

◦ Φα1h ◦ Φ∗β1h, (70)

waarbijΦh = ϕ

[1]h ◦ ϕ

[2]h

enΦ∗h = ϕ

[2]h ◦ ϕ

[1]h

de eerste orde Lie-Trotter-splittingmethoden zijn (zie figuur 33).

Figuur 33: Verband tussen splitting en compositie

Aan de hand van de reele waarden α1, α2, ..., αs−1, β1, β2, ..., βs kan de algemenesplittingmethode Ψh dus geschreven worden als de algemene compositiemethode van deLie-Trotter-splittingmethode Φh met haar toegevoegde Φ∗h met αs = 0 (zie (57)).

7.5 Splitting versus compositie 118

7.5.2 Ordeverhoging door middel van splitting

In sectie 6.9 is al uitvoerig het concept compositie met de toegevoegde methode aan bodgekomen. In stelling 6.4 werden de voorwaarden aangetoond voor α1, α2, ..., αs, β1, β2, ...,βs opdat de algemene compositiemethode met de toegevoegde methode (57) minimaal eenorde hoger is als de orde van de methode waarvan vertrokken wordt. Rekening houdendmet de bijkomende voorwaarde dat αs = 0 kunnen dergelijke waarden voor α1, α2, ..., αs−1,β1, β2, ..., βs op een simpele manier, net als in het vorige hoofdstuk, berekend worden. Doorde vooropgestelde verbanden (69) kunnen dus op een efficiente manier de overeenkomstigewaarden a1, a2, ..., as, b1, b2, ..., bs berekend worden zodat de methode

Ψh = ϕ[2]bsh◦ ϕ[1]

ash◦ ϕ[2]

bs−1h◦ ... ◦ ϕ[1]

a2h◦ ϕ[2]

b1h◦ ϕ[1]

a1h(71)

van de tweede orde zal zijn23.

7.5.3 Toepassing: De harmonische oscillator

Om het verband tussen splitting en compositie te illustreren, wordt opnieuw de harmoni-sche oscillator (zie sectie 7.4) van dichterbij bekeken die beschreven wordt door het stelseldifferentiaalvergelijkingen {

y = zz = −20y.

Hierbij worden opnieuw de beginwaarden y(0) = 16

en z(0) = 12

verondersteld. De exacteoplossing van dit probleem kwam al in sectie 7.4 aan bod. Aan de hand van dit voorbeeldzal in deze sectie geıllustreerd worden dat door een goede keuze van de waarden a1, a2, ...,as, b1, b2, ..., bs de splittingmethode (71) van de tweede orde zal zijn, dit voor s = 2. Ookwordt de overeenkomst met de compositiemethode (70) aangetoond.

Eerst worden de nodige waarden a1, a2, b1, b2 bepaald om een splittingmethode

Ψh = ϕ[2]b2h◦ ϕ[1]

a2h◦ ϕ[2]

b1h◦ ϕ[1]

a1h(72)

van hogere orde te creeen. Hiervoor worden de waarden α1, α2, β1, β2 berekend die een com-positiemethode van hogere orde opleveren. Dit gebeurt aan de hand van een gelijkaardigeprocedure als ’theorematoeg’ (zie sectie 6.9). Het enige wat hier anders is, is dat aanvul-lend op de voorwaarden uit stelling 6.4 nu de bijkomende voorwaarde α2 = 0 zeker moetopgelegd worden. Er is ook nog een tweede vrijheidsgraad die toelaat om de voorwaardeβ1 = β2 op te leggen24. De verkregen waarden zijn dan

α1 = 0.4142135624, α2 = 0, β1 = 0.2928932188, β2 = 0.2928932188.

Aan de hand van de vooropgestelde relaties (69) worden dan de volgende waarden voor a1,a2, b1, b2 verkregen.

23De numerieke methode waarvan vertrokken wordt is de Lie-Trotter-splittingmethode Φh die namelijkvan de eerste orde is.

24Hier kan bijvoorbeeld de voorwaarde α1 = β1 niet opgelegd worden, want deze voorwaarde levert voorα2 = 0 geen oplossing van het stelsel.

7.5 Splitting versus compositie 119

> a1:=beta[1];b1:=beta[1]+alpha[1];

> a2:=alpha[1]+beta[2];b2:=beta[2];

a1 := 0.2928932188b1 := 0.7071067812a2 := 0.7071067812b2 := 0.2928932188

De splittingmethode (72) wordt vervolgens aan de hand van volgende Maple-code ophet beschouwde beginwaardeprobleem toegepast.

> sys ode1:=diff(y(t),t)=0,diff(z(t),t)=-20*y(t):ics1:=y(0)=1/6,z(0)=1/2:

> opl1:=dsolve([sys ode1, ics1]):

> y0 1:=unapply(rhs(opl1[1]),t):z0 1:=unapply(rhs(opl1[2]),t):

> sys ode2:=diff(y(t),t)=z(t),diff(z(t),t)=0:ics2:=y(0)=y0 1(a1*h),z(0)=z0 1(a1*h):

> opl2:=dsolve([sys ode2, ics2]):

> y0 2:=unapply(rhs(opl2[1]),t):z0 2:=unapply(rhs(opl2[2]),t):

> sys ode3:=diff(y(t),t)=0,diff(z(t),t)=-20*y(t):ics3:=y(0)=y0 2(b1*h),z(0)=z0 2(b1*h):

> opl3:=dsolve([sys ode3, ics3]):

> y0 3:=unapply(rhs(opl3[1]),t):z0 3:=unapply(rhs(opl3[2]),t):

> sys ode4:=diff(y(t),t)=z(t),diff(z(t),t)=0:ics4:=y(0)=y0 3(a2*h),z(0)=z0 3(a2*h):

> opl4:=dsolve([sys ode4, ics4]):

> y0 4:=unapply(rhs(opl4[1]),t,h):z0 4:=unapply(rhs(opl4[2]),t,h):

> ynS:=evalf(collect(y0 4(b2*h,h),h));znS:=evalf(collect(z0 4(b2*h,h),h));

ynS := 0.1666666667 + 2.859547920h4 − 1.464466094h3 − 1.666666666h2 + 0.5000000000h

znS := 9.763107291h3 − 4.999999999h2 − 3.333333333h+ 0.5000000000

> taylor(yexact(h)-ynS,h);taylor(zexact(h)-znS,h);

−0.1 10−9 − 0.2 10−9h+ 0.4 10−9h2 − 0.202200572h3 − 0.81770144 10−1h4 + 1.666666666h5 +O(h6)

0.1 10−8h− 0.1 10−8h2 + 1.348003819h3 +253h4 − 11.11111111h5 +O(h6)

De laatste twee regels output geven weer dat de toegepaste splittingmethode (72) metgoed gekozen waarden van a1, a2, b1, b2 van de tweede orde blijkt te zijn.

Vervolgens wordt de toepassing van de compositiemethode

Ψh = Φα2h ◦ Φ∗β2h◦ Φα1h ◦ Φ∗β1h

bekeken, metΦh = ϕ

[1]h ◦ ϕ

[2]h en Φ∗h = ϕ

[2]h ◦ ϕ

[1]h .

De methoden Φh en Φ∗h kunnen voor het beschouwde beginwaardeprobleem van de harmo-nische oscillator aan de hand van onderstaande code in Maple geımplementeerd worden.Hierbij worden algemene startwaarden y0 en z0 en een algemene stapgrootte h beschouwd

7.5 Splitting versus compositie 120

om zo de methoden ynuma, znuma en ynumb, znumb te construeren die respectievelijk debenaderingen Φh en Φ∗h voor de beschouwde startwaarden genereren.

> sys ode1a :=diff(y(t),t)=z(t),diff(z(t),t)=0:ics1a:=y(0)=y0,z(0)=z0:

> opl1a:=dsolve([sys ode1a, ics1a]):

> y0 1a:=unapply(rhs(opl1a[1]),t):z0 1a:=unapply(rhs(opl1a[2]),t):

> sys ode2a:=diff(y(t),t)=0,diff(z(t),t)=-20*y(t):ics2a:=y(0)=y0 1a(h),z(0)=z0 1a(h):

> opl2a:=dsolve([sys ode2a, ics2a]):

> y0 2a:=unapply(rhs(opl2a[1]),t):z0 2a:=unapply(rhs(opl2a[2]),t):

> ynuma:=unapply(y0 2a(h),h,y0,z0);znuma:=unapply(z0 2a(h),h,y0,z0);

ynuma := (h, y0, z0)→ z0h+ y0znuma := (h, y0, z0)→ −20(z0h+ y0)h+ z0

> sys ode1b:=diff(y(t),t)=0,diff(z(t),t)=-20*y(t):ics1b:=y(0)=y0,z(0)=z0:

> opl1b:=dsolve([sys ode1b, ics1b]):

> y0 1b:=unapply(rhs(opl1b[1]),t):z0 1b:=unapply(rhs(opl1b[2]),t):

> sys ode2b:=diff(y(t),t)=z(t),diff(z(t),t)=0:ics2b:=y(0)=y0 1b(h),z(0)=z0 1b(h):

> opl2b:=dsolve([sys ode2b, ics2b]):

> y0 2b:=unapply(rhs(opl2b[1]),t):z0 2b:=unapply(rhs(opl2b[2]),t):

> ynumb:=unapply(y0 2b(h),h,y0,z0):znumb:=unapply(z0 2b(h),h,y0,z0):

ynumb := (h, y0, z0)→ (−20y0h+ z0)h+ y0znumb := (h, y0, z0)→ −20y0h+ z0

Stap per stap kan met de hieronder volgende code de benaderingen van de functies y(t)en z(t) voor t = h door compositiemethode Ψh = Φα2h ◦Φ∗β2h

◦Φα1h ◦Φ∗β1hbepaald worden.

Door het genereren van de taylorontwikkeling van de fout in functie van de stapgrootte h,wordt geıllustreerd dat de geconstrueerde compositiemethode van de tweede orde is.

> y1:=ynumb(beta[1]*h,1/6,1/2):z1:=znumb(beta[1]*h,1/6,1/2):

> y2:=ynuma(alpha[1]*h,y1,z1):z2:=znuma(alpha[1]*h,y1,z1):

> y3:=ynumb(beta[2]*h,y2,z2):z3:=znumb(beta[2]*h,y2,z2):

> ynC:=ynuma(alpha[2]*h,y3,z3):znC:=znuma(alpha[2]*h,y3,z3):

ynC := 0.1666666667 + 2.859547920h4 − 1.464466094h3 − 1.666666666h2 + .5000000000hznC := 0.5000000000 + 9.763107291h3 − 4.999999999h2 − 3.333333332h

> evalf(taylor(yexact(h)-ynC,h));evalf(taylor(zexact(h)-znC,h));

−0.1 10−8h2 − 0.202200573h3 − 0.81770142 10−1h4 + 1.666666667h5 +O(h6)

−0.4 10−9 + 0.4 10−9h+ 0.3 10−8h2 + 1.348003809h3 + 8.333333330h4 − 11.11111110h5 +O(h6)

In bovenstaande output wordt voor ynC en znC een gelijkaardige uitdrukking in functievan de stapgrootte h opgemerkt als voor respectievelijk ynS en znS. Stel bijvoorbeeldspecifiek h = 0.5, dan wordt verkregen dat

ynS = ynC = −0.0043365166 en znS = znC = −1.196278255.

Hiermee is geıllustreerd dat de splittingmethode (71) overeenkomt met de compositieme-thode (70) waarbij de relaties (69) gelden voor de optredende reele getallen a1, a2, ..., as,b1, b2, ..., bs en α1, α2, ..., αs−1, β1, β2, ..., βs.

121

8 Algemeen besluit

In deze masterproef werd er wat dieper ingegaan op een betrekkelijk brede, minder gekendeklasse van Runge-Kutta-methoden, namelijk de discontinue collocatiemethoden. Gebas-seerd op eerder verworven kennis omtrent collocatiemethoden, werd er nauwkeurig bewe-zen dat een dergelijke methode dezelfde orde heeft als de onderliggende kwadratuurformule.Een merkwaardige vaststelling die door enkele kleine toepassingen met behulp van ICT ookbevestigd werd.

Bij de studie van gepartitioneerde Runge-Kutta-methoden werd de effectiviteit van desymplectische Euler- en de Stormer/Verlet-methode aan de hand van voorbeelden (slinger-beweging, model van Lotka-Volterra) aangetoond. Er werd tot de praktische vaststellinggekomen dat de orde van een paar Lobatto IIIA-IIIB met s trappen 2s − 2 is. Uit de-ze algemene stelling kon besloten worden dat de Stormer/Verlet-methode een tweede ordesymplectische methode is. Doordat deze methode een Nystrommethode bleek te zijn, konde implementatie ook heel wat eenvoudiger in vergelijking met een algemene gepartitio-neerde Runge-Kutta-methode.

Een belangrijke conclusie uit deze masterproef is het grote belang van compositie en split-ting. Door het hanteren van dergelijke principes, is het mogelijk om vertrekkende van eenzekere methode een numerieke methode van hogere orde te verkrijgen. Al naargelang vanwelke methode er vertrokken wordt, kan deze ordeverhoging al dan niet onbeperkt toege-past worden zodat een heel nauwkeurige methode verkregen wordt. Vooral symmetrischemethoden bleken hierbij zeer doeltreffend. Bij het toepassen van dergelijke methoden moetwel aandacht geschonken worden aan de invloed van afrondingsfouten, want hoe meer com-positie of splitting toegepast wordt, hoe groter deze invloed kan worden.

Bij het schrijven van deze masterproef ontstonden er heel wat nieuwe inzichten in hetgebruik van numerieke methoden en de eigenschappen die ze bezitten. Iets wat nog in ver-dere studies dieper kan bestudeerd worden, zijn de ordevoorwaarden van gepartitioneerdeRunge-Kutta-, compositie- en splittingmethoden. Voor deze eerste klasse van methodenwerden de ordevoorwaarden vaag vermeld, maar een efficiente bepaling ervan kwam nietaan bod.

122

A Appendices

A.1 Stelling van Rolle

A.1 Stelling. Als een functie f voldoet aan de volgende voorwaarden:

• f is continu in het gesloten interval [a,b],

• f is differentieerbaar in het open interval ]a,b[,

• er geldt dat f(a) = f(b),

dan bestaat er een getal c gelegen in het interval [a, b] zodat de afgeleide van de functie fin het punt c gelijk is aan 0.

A.2 Variation of constants formula

A.2 Stelling. Voor een homogeen stelsel van lineaire differentiaalvergelijkingen

z(t) = A(t)z(t),

met beginvoorwaarde z(t0) = z0, kan de oplossing geschreven worden als

z(t) = R(t, t0)z0,

waarbij R(t, s) de resolvente wordt genoemd en waarvoor geldt

∂R(t, s)

∂t= A(t)R(t, s).

Aan de hand van deze functie kan de oplossing van het niet-homogeen probleem

z(t) = A(t)z(t) + g(t)

geschreven worden als

z(t) = R(t, t0)z0 +

ˆ t

t0

R(t, v)g(v)dv.

Deze formule wordt de Variation of constants formula genoemd.

A.3 Ordevoorwaarden gepartitioneerde Runge-Kutta-methoden 123

A.3 Ordevoorwaarden gepartitioneerde Runge-Kutta-methoden

Beschouw twee expliciete 3-traps Runge-Kutta-methoden

c1 0 0 0c2 a21 0 0c3 a31 a32 0

b1 b2 b3

c1 0 0 0c2 a21 0 0c3 a31 a32 0

b1 b2 b3

Beschouw de gepartitioneerde Runge-Kutta-methode samengesteld aan de hand van de tweealgemene bovenstaande methoden en bekijk het autonoom probleem{

y = f(y, z)z = g(y, z).

(73)

Hieronder worden respectievelijk de ontwikkeling van de exacte en de numerieke op-lossing bepaald om zo tot de ordevoorwaarden van een algemene gepartitioneerde Runge-Kutta-methode te komen.

Exacte oplossing

(i)

y(t1) = y(t0) + hy(t0) +h2

2!y(2)(t0) +

h3

3!y(3)(t0) +O(h4), (74)

waarbij geldt dat

y(t0) = f(y0, z0) = f,

y(2)(t0) = fyy + fz z

= fyf + fzg,

y(3)(t0) = fyyff + fyfyf + fyzfg + fyfzg + fzygf + fzgyf + fzzgg + fzgzg.

Bovenstaande uitdrukkingen invullen in (74) levert

y(t1) = y(t0) + hf +h2

2!(fyf + fzg) +

h3

3!(fyyff + fyfyf + fyzfg

+fyfzg + fzygf + fzgyf + fzzgg + fzgzg) +O(h4).

(ii)

z(t1) = z(t0) + hz(t0) +h2

2!z(2)(t0) +

h3

3!z(3)(t0) +O(h4), (75)

waarbij geldt dat

z(t0) = g(y0, z0) = g,

z(2)(t0) = gyy + gz z

= gyf + gzg,

y(3)(t0) = gyyff + gyfyf + gyzfg + gyfzg + gzygf + gzgyf + gzzgg + gzgzg.

A.3 Ordevoorwaarden gepartitioneerde Runge-Kutta-methoden 124

Bovenstaande uitdrukkingen invullen in (75) levert

z(t1) = z(t0) + hg +h2

2!(gyf + gzg) +

h3

3!(gyyff + gyfyf + gyzfg

+gyfzg + gzygf + gzgyf + gzzgg + gzgzg) +O(h4).

Numerieke oplossing

(i)y1 = y0 + h(b1k1 + b2k2 + b3k3), (76)

waarbij geldt

k1 = f,

k2 = f(y0 + ha21k1, z0 + ha21l1)

= f + ha21k1fy + ha21l1fz +(ha21k1)2

2!fyy + (ha21k1)(ha21l1)fyz

+(ha21l1)2

2!fzz +O(h3)

= f + ha21ffy + ha21gfz +(ha21f)2

2!fyy + (ha21f)(ha21g)fyz

+(ha21g)2

2!fzz +O(h3),

k3 = f(y0 + ha31k1 + ha32k2, z0 + ha31l1 + ha32l2)

= f + (ha31k1 + ha32k2)fy + (ha31l1 + ha32l2)fz +h2(a31k1 + a32k2)2

2!fyy

+h(a31k1 + a32k2)h(a31l1 + a32l2)fyz +h2(a31l1 + a32l2)2

2!fzz +O(h3)

= f + (ha31f + ha32

︷ ︸︸ ︷(f + ha21ffy + ha21gfz +O(h2)))fy

+(ha31g + ha32

︷ ︸︸ ︷(g + ha21fgy + ha21ggz +O(h2)))fz

+h2(a31f + a32

︷ ︸︸ ︷(f +O(h)))2

2!fyy

+h(a31f + a32

︷ ︸︸ ︷(f +O(h)))h(a31g + a32

︷ ︸︸ ︷(g +O(h)))fyz

+h2(a31g + a32

︷ ︸︸ ︷(g +O(h)))2

2!fzz +O(h3),

waarbij de uitdrukkingen voor l1 en l2 berekend worden in (ii) (zie verder). Boven-

A.3 Ordevoorwaarden gepartitioneerde Runge-Kutta-methoden 125

staande uitdrukkingen invullen in (76) en verder uitwerken, levert

y1 = y0 + hb1f + hb2f + h2b2a21ffy + h2b2a21gfz + h3b2a2

21f2

2!fyy

+h3b2a21a21fgfyz + h3b2a2

21g2

2!fzz + hb3f + h2b3a31ffy + h2b3a32ffy

+h3b3a32a21ffyfy + h3b3a32a21gfzfy + h2b3a31gfz + h2b3a32gfz

+h3b3a32a21fgyfz + h3b3a32a21ggzfz + h3b3a2

31f2

2!fyy + h3b3a31a32f

2fyy

+h3b3a2

32f2

2!fyy + h3b3

a231g

2

2!fzz + h3b3a31a32g

2fzz + h3b3a2

32g2

2!fzz

+h3b3a31a31fgfyz + h3b3a32a31fgfyz + h3b3a31a32fgfyz + h3b3a32a32fgfyz

+O(h4).

(ii)z1 = z0 + h(b1l1 + b2l2 + b3l3), (77)

waarbij geldt

l1 = g,

l2 = g(y0 + ha21k1, z0 + ha21l1)

= g + ha21k1gy + ha21l1gz +(ha21k1)2

2!gyy + (ha21k1)(ha21l1)gyz

+(ha21l1)2

2!gzz +O(h3)

= g + ha21fgy + ha21ggz +(ha21f)2

2!gyy + (ha21f)(ha21g)gyz

+(ha21g)2

2!gzz +O(h3),

l3 = g(y0 + ha31k1 + ha32k2, z0 + ha31l1 + ha32l2)

= g + (ha31k1 + ha32k2)gy + (ha31l1 + ha32l2)gz +h2(a31k1 + a32k2)2

2!gyy

+h(a31k1 + a32k2)h(a31l1 + a32l2)gyz +h2(a31l1 + a32l2)2

2!gzz +O(h3)

= g + (ha31f + ha32

︷ ︸︸ ︷(f + ha21ffy + ha21gfz +O(h2)))gy

+(ha31g + ha32

︷ ︸︸ ︷(g + ha21fgy + ha21ggz +O(h2)))gz

+h2(a31f + a32

︷ ︸︸ ︷(f +O(h)))2

2!gyy

+h(a31f + a32

︷ ︸︸ ︷(f +O(h)))h(a31g + a32

︷ ︸︸ ︷(g +O(h)))gyz

+h2(a31g + a32

︷ ︸︸ ︷(g +O(h)))2

2!gzz +O(h3).

A.3 Ordevoorwaarden gepartitioneerde Runge-Kutta-methoden 126

Bovenstaande uitdrukkingen invullen in (77) en verder uitwerken, levert

z1 = z0 + hb1g + hb2g + h2b2a21fgy + h2b2a21ggz + h3b2a2

21f2

2!gyy

+h3b2a21a21fggyz + h3b2a2

21g2

2!gzz + hb3g + h2b3a31fgy + h2b3a32fgy

+ + h3b3a32a21ffygy + h3b3a32a21gfzgy + h2b3a31ggz + h2b3a32ggz

+h3b3a32a21fgygz + h3b3a32a21ggzgz + h3b3a2

31f2

2gyy + h3b3a31a32f

2gyy

+h3b3a2

32f2

2gyy + h3b3

a231g

2

2gzz + h3b3a31a32g

2gzz + h3b3a2

32g2

2gzz

+h3b3a31a31fggyz + h3b3a32a31fggyz + h3b3a31a32fggyz + h3b3a32a32fggyz

+O(h4)

Numerieke versus exacte oplossing

• Als nu de ontwikkeling van de numerieke en de exacte oplossing van de functie y metelkaar vergeleken worden, wordt vastgesteld dat de coefficient bij h in y1−y(t0) gelijkaan nul is als en slechts als

3∑i=1

bi = 1.

Als de coeficient bij h in z1 − z(t0) bekeken wordt, dan is deze gelijk aan nul als enslechts als

3∑i=1

bi = 1.

Indien deze voorwaarden geldig zijn, is een gepartitioneerde Runge-Kutta-methodeminstens van de eerste orde.

• Opdat de coefficient bij h2 in y1 − y(t0) gelijk aan nul zou zijn, moet gelden dat

3∑i,j=1

biaij =1

2

en3∑

i,j=1

biaij =1

2.

In z1 − z(t0) is de coefficient bij h2 gelijk aan nul, als en slechts als

3∑i,j=1

biaij =1

2

A.3 Ordevoorwaarden gepartitioneerde Runge-Kutta-methoden 127

en3∑

i,j=1

biaij =1

2.

Indien deze voorwaarden, samen met de voorwaarden voor de eerste orde, geldig zijn,is een gepartitioneerde Runge-Kutta-methode minstens van de tweede orde.

• Opdat de coefficient bij h3 in y1 − y(t0) gelijk aan nul zou zijn, moet gelden dat

b2a2

21

2!+ b3a31a32 + b3

a232

2!+ b3

a231

2!=

1

2

3∑i,j,k=1

biaijaik =1

3!=

1

6,

b2a21a21 + b3a31a31 + b3a32a31 + b3a31a32 + b3a32a32 =3∑

i,j,k=1

biaijaik =2

3!=

1

3,

b2a2

21

2!+ b3

a231

2!+ b3a31a32 + b3

a232

2!=

1

2

3∑i,j,k=1

biaij aik =1

3!=

1

6,

b3a32a21 =3∑

i,j,k=1

biaijajk =1

3!=

1

6,

b3a32a21 =3∑

i,j,k=1

biaij ajk =1

3!=

1

6,

b3a32a21 =3∑

i,j,k=1

biaijajk =1

3!=

1

6,

b3a32a21 =3∑

i,j,k=1

biaij ajk =1

3!=

1

6.

In z1 − z(t0) is de coefficient bij h3 gelijk aan nul, als en slechts als

3∑i,j,k=1

biaijaik =1

3,

3∑i,j,k=1

biaijaik =1

3,

3∑i,j,k=1

biaij aik =1

3,

3∑i,j,k=1

biaijajk =1

6,

A.3 Ordevoorwaarden gepartitioneerde Runge-Kutta-methoden 128

3∑i,j,k=1

biaij ajk =1

6,

3∑i,j,k=1

biaijajk =1

6,

3∑i,j,k=1

biaij ajk =1

6.

Als verondersteld wordt dat ci =∑3

j=1 aij en ci =∑3

j=1 aij, dan worden deze voor-waarden

3∑i=1

bic2i =

1

3,

3∑i=1

bic2i =

1

3,

3∑i=1

bicici =1

3,

3∑i=1

bicici =1

3,

3∑i=1

bic2i =

1

3,

3∑i=1

bic2i =

1

3,

3∑i,j=1

biaijcj =1

6,

3∑i,j=1

biaijcj =1

6,

3∑i,j=1

biaij cj =1

6,

3∑i,j=1

biaij cj =1

6,

3∑i,j=1

biaijcj =1

6,

3∑i,j=1

biaijcj =1

6,

3∑i,j=1

biaij cj =1

6,

3∑i,j=1

biaij cj =1

6.

Indien alle bovenstaande voorwaarden, samen met de voorwaarden voor de eerste entweede orde, geldig zijn, is een gepartitioneerde Runge-Kutta-methode minstens vande derde orde.

A.4 Compositie: bepaling γ1, γ2 en γ3 129

A.4 Compositie: bepaling γ1, γ2 en γ3

Om het stelsel {2γ1 + γ2 = 1

2γp+11 + γp+1

2 = 0

op te lossen naar γ1 en γ2, wordt eerst de tweede vergelijking beschouwd. Er geldt

2γp+11 = −γp+1

2

⇔ γp+11 = −γ

p+12

2

⇔ γ1 =

(−γ

p+12

2

) 1p+1

.

Bovenstaande uitdrukking substitueren in de eerste vergelijking van het stelsel, levert

2

(−γ

p+12

2

) 1p+1

+ γ2 = 1

⇔ 2

((−1)

1p+1γ2

21

p+1

)+ γ2 = 1

⇔ 2

(−γ2

21

p+1

)+ γ2 = 1 (wegens p even)

⇔(−2

21

p+1

+ 1

)γ2 = 1

(−2 + 2

1p+1

21

p+1

)γ2 = 1

⇔ γ2 = − 21

p+1

2− 21

p+1

.

Door deze gevonden uitdrukking voor γ2 opnieuw te substitueren in de eerste vergelijkingvan het stelsel, wordt er verkregen dat

γ1 =1− γ2

2

=1 + 2

1p+1

2−21

p+1

2

=

2−21

p+1 +21

p+1

2−21

p+1

2

=1

2− 21

p+1

.

Rekening houdend met γ1 = γ3, geldt dus

γ1 = γ3 =1

2− 21

p+1

, γ2 = − 21

p+1

2− 21

p+1

.

A.5 Symmetrie van de compositiemethode met de trapeziumregel 130

A.5 Symmetrie van de compositiemethode met de trapeziumre-gel

Beschouw de trapeziumregel0 0 0

1 12

12

12

12

en de compositiemethode Ψh

Ψh = Φγ3h ◦ Φγ2h ◦ Φγ1h,

met Φh de trapeziumregel, γ1, γ2, γ3 ∈ R en γ1 +γ2 +γ3 = 1. In deze sectie wordt nagegaanof deze compositiemethode al dan niet symmetrisch is voor willekeurige waarden van γ1, γ2

en γ3.

Stel dat de bovenstaande compositiemethode wordt toegepast op het beginwaardeprobleem

y = f(t, y), y(t0) = y0,

dan wordt wegens definitie 2.1 verkregen dat

y(1)γ1h

= yn +γ1h

2

(k

(1)1 + k

(1)2

),

k(1)1 = f (tn, yn) ,

k(1)2 = f

(tn + γ1h, yn +

γ1h

2

(k

(1)1 + k

(1)2

)),

y(2)γ2h

= y(1)γ1h

+γ2h

2

(k

(2)1 + k

(2)2

),

k(2)1 = f

(tn + γ1h, y

(1)γ1h

),

k(2)2 = f

(tn + γ1h+ γ2h, y

(1)γ1h

+γ2h

2

(k

(2)1 + k

(2)2

)),

y(3)γ3h

= y(2)γ2h

+γ3h

2

(k

(3)1 + k

(3)2

),

k(3)1 = f

(tn + γ1h+ γ2h, y

(2)γ2h

),

k(3)2 = f

(tn + h, y

(2)γ2h

+γ3h

2

(k

(3)1 + k

(3)2

)).

A.5 Symmetrie van de compositiemethode met de trapeziumregel 131

Er geldt dus

yn+1 = y(3)γ3h

= y(2)γ2h

+γ3h

2

(k

(3)1 + k

(3)2

)=

︷ ︸︸ ︷y

(1)γ1h

+γ2h

2

(k

(2)1 + k

(2)2

)+γ3h

2

(k

(3)1 + k

(3)2

)=

︷ ︸︸ ︷yn +

γ1h

2

(k

(1)1 + k

(1)2

)+γ2h

2

(k

(2)1 + k

(2)2

)+γ3h

2

(k

(3)1 + k

(3)2

)= yn +

γ1h

2k1 +

(γ1h

2+γ2h

2

)k2 +

(γ2h

2+γ3h

2

)k3 +

γ3h

2k4,

(78)

met k1 := k(1)1 , k2 := k

(1)2 = k

(2)1 , k3 := k

(2)2 = k

(3)1 en k4 := k

(3)2 en waarvoor geldt

k1 = f(tn, yn),

k2 = f(tn + γ1h, yn +γ1h

2(k1 + k2) ,

k3 = f(tn + γ1h+ γ2h, yn +γ1h

2k1 +

(γ1h

2+γ2h

2

)k2 +

γ2h

2k3,

k4 = f(tn + h, yn +γ1h

2k1 +

(γ1h

2+γ2h

2

)k2 +

(γ2h

2+γ3h

2

)k3 +

γ3h

2k4.

(79)

De Butchertableau van de beschouwde compositiemethode is dus van de vorm

0 0 0 0 0

γ1γ1h2

γ1h2

0 0

γ1 + γ2γ1h2

γ1h2

+ γ2h2

γ2h2

0

1 γ1h2

γ1h2

+ γ2h2

γ2h2

+ γ3h2

γ3h2

γ1h2

γ1h2

+ γ2h2

γ2h2

+ γ3h2

γ3h2

Er valt meteen op dat de geconstrueerde compositiemethode niet noodzakelijk symmetrischis (zie opmerking 5.2). Zo geldt bijvoorbeeld dat b1 6= b4 als γ1 en γ3 verschillend geko-zen worden, waardoor de toegevoegde methode van de compositiemethode een verschillendecoefficientenmatrix van de bi-waarden zal hebben als de compositiemethode daar deze omge-wisseld zijn bij de toegevoegde methode. Worden echter de waarden γ1 en γ3 gelijk gekozendan kan meteen opgemerkt worden uit de tableau dat de geconstrueerde compositiemethodewel symmetrisch is.

A.6 Symmetrie bij compositie met de toegevoegde methode 132

A.6 Symmetrie bij compositie met de toegevoegde methode

Beschouw de volgende compositiemethode

Ψh = Φαh ◦ Φ∗βh ◦ Φβh ◦ Φ∗αh, (80)

met α en β willekeurige reele getallen waarvoor geldt 2α + 2β = 1 en Φh en Φ∗h respectie-velijk een numerieke methode en haar toegevoegde methode. In deze sectie zal aangetoondworden dat voor elke willekeurige methode Φh een dergelijke bovenstaande compositieme-thode symmetrisch zal zijn.

Stel Φh een zekere numerieke methode met Butchertableau

c1 a11

b1

De toegevoegde methode Φ∗h van bovenstaande Runge-Kutta-methode is dan van de vorm(zie opmerking 5.2)

1− c1 b1 − a11

b1

Zonder de algemeenheid te schaden, kan aan de hand van de beschouwde methoden aange-toond worden dat (80) een symmetrische methode is.

Stel dat de bovenstaande compositiemethode wordt toegepast op het beginwaardeprobleem

y = f(t, y), y(t0) = y0,

dan wordt wegens definitie 2.1 voor elke stap binnen de samenstelling (80) verkregen dat

y(1)αh = yn + αhb1k

(1)1 ,

k(1)1 = f

(tn + (1− c1)αh, yn + αh(b1 − a11)k

(1)1

),

y(2)βh = y

(1)αh + βhb1k

(2)1 ,

k(2)1 = f

(tn + αh+ c1βh, y

(1)αh + βha11k

(2)1

),

y(3)βh = y

(2)βh + βhb1k

(3)1 ,

k(3)1 = f

(tn + αh+ βh+ (1− c1)βh, y

(2)βh + βh(b1 − a11)k

(3)1

),

y(4)βh = y

(3)βh + αhb1k

(4)1 ,

k(4)1 = f

(tn + αh+ βh+ βh+ c1αh, y

(3)βh + αha11k

(4)1

).

A.6 Symmetrie bij compositie met de toegevoegde methode 133

Er geldt dus

yn+1 = y(4)βh

= y(3)βh + αhb1k

(4)1

=

︷ ︸︸ ︷y

(2)βh + βhb1k

(3)1 +αhb1k

(4)1

=

︷ ︸︸ ︷y

(1)αh + βhb1k

(2)1 +βhb1k

(3)1 + αhb1k

(4)1

=

︷ ︸︸ ︷yn + αhb1k

(1)1 +βhb1k

(2)1 + βhb1k

(3)1 + αhb1k

(4)1

= yn + h (αb1k1 + βb1k2 + βb1k3 + αb1k4) .

met k1 := k(1)1 , k2 := k

(2)1 , k3 := k

(3)1 en k4 := k

(4)1 en waarvoor geldt

k1 = f(tn + (1− c1)αh, yn + αh(b1 − a11)k

(1)1

),

k2 = f(tn + αh+ c1βh, yn + αhb1k1 + βha11k

(2)1

),

k3 = f (tn + αh+ βh+ (1− c1)βh, yn + αhb1k1 + βhb1k2 + βh(b1 − a11)k3) ,

k4 = f (tn + (α(1 + c1) + 2β)h, yn + αhb1k1 + βhb1k2 + βhb1k3 + αha11k4) .

De Butchertableau van de bovenstaande compositiemethode is dus van de vorm

α(1− c1) α(b1 − a11) 0 0 0α + c1β αb1 βa11 0 0

α + β + (1− c1)β αb1 βb1 β(b1 − a11) 0(1 + c1)α + 2β αb1 βb1 βb1 αa11

αb1 βb1 βb1 αb1

Noem A′, B′ en C ′ de coefficientenmatrices van deze methode. De coefficienten van detoegevoegde methode van deze Runge-Kutta-methode worden dan bepaald door (zie op-merking 5.2)

b∗1 = b′4 = αb1, b∗2 = b′3 = βb1,b∗3 = b′2 = βb1, b∗4 = b′1 = αb1,

enc∗1 = 1− c′4 = 1− (1 + c1)α− 2β = (2α + 2β)− α− c1α− 2β = α(1− c1),c∗2 = 1− c′3 = 1− α− β − (1− c1)β = α + β − β + c1β = α + c1β,c∗3 = 1− c′2 = 1− α− c1β = α + β + β − c1β = α + β + (1− c1)β,c∗4 = 1− c′1 = 1− α(1− c1) = 1− α + αc1 = α + 2β + αc1 = (1 + c1)α + 2β,

ena∗11 = b′4 − a′44 = αb1 − αa11 = α(b1 − a11),a∗12 = b′3 − a′43 = βb1 − βb1 = 0,a∗13 = b′2 − a′42 = βb1 − βb1 = 0,a∗14 = b′1 − a′41 = αb1 − αb1 = 0,a∗21 = b′4 − a′34 = αb1 − 0 = αb1,

A.6 Symmetrie bij compositie met de toegevoegde methode 134

a∗22 = b′3 − a′33 = βb1 − β(b1 − a11) = βa11,a∗23 = b′2 − a′32 = βb1 − βb1 = 0,a∗24 = b′1 − a′31 = αb1 − αb1 = 0,a∗31 = b′4 − a′24 = αb1 − 0 = αb1,a∗32 = b′3 − a′23 = βb1 − 0 = βb1,a∗33 = b′2 − a′22 = βb1 − βa11 = β(b1 − a11),a∗34 = b′1 − a′21 = αb1 − αb1 = 0,a∗41 = b′4 − a′14 = αb1 − 0 = αb1,a∗42 = b′3 − a′13 = βb1 − 0 = βb1,a∗43 = b′2 − a′12 = βb1 − 0 = βb1,a∗44 = b′1 − a′11 = αb1 − α(b1 − a11) = αa11.

De Butchertableau van de toegevoegde methode is dus van de vorm

α(1− c1) α(b1 − a11) 0 0 0α + c1β αb1 βa11 0 0

α + β + (1− c1)β αb1 βb1 β(b1 − a11) 0(1 + c1)α + 2β αb1 βb1 βb1 αa11

αb1 βb1 βb1 αb1

wat precies de numerieke methode zelf is. Er kan dus besloten worden dat een compositie-methode van de vorm (80) een symmetrische methode is voor elke willekeurige numeriekemethode Φh en haar toegevoegde methode Φ∗h.

A.7 Oplossen van een optimalisatieprobleem met de Lagrange-multiplicator 135

A.7 Oplossen van een optimalisatieprobleem met de Lagrange-multiplicator

Stel algemeen het optimalisatieprobleem

minimaliseer f(x, y)

met g(x, y) = 0.

Dit probleem oplossen aan de hand van de Lagrange-multiplicator houdt in dat er naastx en y een nieuwe variabele λ ingevoerd wordt. Hiermee wordt de functie (ook wel deLagrange-functie genoemd)

Λ(x, y, λ) = f(x, y)− λ g(x, y)

geconstrueerd. Voor een oplossing (x, y) van het oorspronkelijke probleem geldt dat er eenwaarde voor λ bestaat zodat het punt (x, y, λ) een stationair punt is van de functie Λ.Hiermee wordt bedoeld dat voor een oplossing van het optimalisatieprobleem geldt

∂Λ

∂x= 0,

∂Λ

∂y= 0,

∂Λ

∂λ= 0.

Dit is een nodige en geen voldoende voorwaarde opdat een oplossing van het optimalisatie-probleem verkregen wordt. Om te kunnen besluiten dat een oplossing (x0, y0, L0) van hetbovenstaande stelsel een minimum (x0, y0) geeft van de beschouwde functie f(x, y), moetde gerande Hessiaan van dichterbij bekeken worden. Dit is de matrix

H(x, y, L) =

∂2Λ∂x2

∂2Λ∂x∂y

∂2Λ∂x∂L

∂2Λ∂y∂x

∂2Λ∂y2

∂2Λ∂y∂L

∂2Λ∂L∂x

∂2Λ∂L∂y

∂2Λ∂L2

.Als de determinant van deze matrix in het punt (x0, y0, L0) strikt kleiner is dan nul, is hetpunt (x0, y0) een minimum van de functie f(x, y) onder de voorwaarde g(x, y) = 0. Indiende determinant van de gerande Hessiaan in dat punt strikt groter is dan nul, dan is hetpunt in kwestie een maximum van de functie f(x, y) onder de voorwaarde g(x, y) = 0.

Referenties

[1] F. Ayres Jr., Schaum’s outline of Theory and Problems of differential equa-tions, Uitgeverij Schaum Publishing co. (New York), 1952.

[2] W. E. Boyce, R. C. DiPrima (Rensselaer Polytechnic Institute), Elementarydifferential equations and Boundary Value Problems, Uitgeverij John Wiley& Sons, Inc (New York, London, Sydney, Toronto), 1965 (tweede editie).

[3] E. Hairer, C. Lubich, G. Wanner, Geometric Numerical Integration, Uitge-verij Springer, 2005 (tweede editie).

[4] M. Van Daele (Vakgroep Toegepaste Wiskunde en Informatica UniversiteitGent), Numerieke methoden voor stelsels differentiaalvergelijkingen, editie2007-2008.

[5] http://csd.k12.nh.us/conferences/projectsee/standards/standards912

[6] http://www.unizar.es/acz/05Publicaciones/Monografias/MonografiasPublicadas/Monografia25/149Higueras.pdf