You are on page 1of 148

Numerieke Methoden voor

Dierentiaalvergelijkingen
C. Vuik, P. van Beek, F. Vermolen, J. van Kan
2004
Technische Universiteit Delft
Faculteit Elektrotechniek, Wiskunde en Informatica
Delft Institute of Applied Mathematics
Copyright 2004 by Delft Institute of Applied Mathematics, Delft, The Netherlands.
No part of this work may be reproduced, stored in a retrieval system, or transmitted, in any
form or by any means, electronic, mechanical, photocopying, recording, or otherwise, without
the prior written permission from Delft Institute of Applied Mathematics, Delft University
of Technology, The Netherlands.
Voorwoord
In dit college worden numerieke methoden besproken voor het oplossen van dierentiaalver-
gelijkingen. Aan de orde komen aspecten, die in praktische problemen een grote rol spelen. In
dit college beperken we ons tot gewone dierentiaalvergelijkingen, uitgezonderd het hoofdstuk
over de warmtevergelijking waarin een partiele dierentiaalvergelijking behandeld wordt. Een
aantal technieken zoals: interpolatie, numerieke integratie en het oplossen van niet-lineaire
vergelijkingen, kunnen ook buiten de context van dierentiaalvergelijkingen gebruikt worden.
Hoofdstukken, paragraven of opgaven met een

, vallen buiten het Delft Instellings Pakket.
Achtergrondinformatie is te vinden in:
Numerical Analysis (7
e
editie)
R.L. Burden, J.D. Faires
Brodes/Cole publishing company, Pacic Grove, 2001
Applied Numerical Analysis (6
e
editie)
C.F. Gerald, P.O. Wheatly
Addison Wesley, Reading, 1999
Afternotes on Numerical Analysis
G.W. Stewart
SIAM, Philadelphia, 1996
Inhoudsopgave
1 Inleiding 1
1.1 Enkele historische opmerkingen . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Wat is numerieke wiskunde? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 Waarom numerieke wiskunde? . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.4 Afrondfouten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.5 Het O-symbool van Landau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6 Herhaling begrippen uit de analyse . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.8 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2 Interpolatie 11
2.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Lineaire interpolatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3 Lagrange interpolatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.4 Interpolatie met functiewaarden en afgeleiden

. . . . . . . . . . . . . . . . . 16
2.4.1 Taylorpolynoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.2 Interpolatie in het algemeen . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.3 Hermite interpolatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Interpolatie met splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.6 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.7 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3 Numeriek dierentieren 25
3.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Eenvoudige dierentieformules voor de eerste afgeleide . . . . . . . . . . . . . 26
3.3 Algemene formules voor de eerste afgeleide . . . . . . . . . . . . . . . . . . . 30
3.4 Relatie tussen dierentieformules en interpolatie . . . . . . . . . . . . . . . . 31
3.5 Dierentieformules voor hogere afgeleiden . . . . . . . . . . . . . . . . . . . . 32
3.6 Richardsons extrapolatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.6.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.6.2 Schatting van de fout in de praktijk . . . . . . . . . . . . . . . . . . . 33
3.6.3 Nauwkeuriger formules via Richardsons extrapolatie

. . . . . . . . . 35
3.7 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.8 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
i
4 Niet-lineaire vergelijkingen 38
4.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2 Een eenvoudige nulpuntsmethode . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3 Vaste punt iteratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4 De Newton-Raphson methode . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.5 Stelsels niet-lineaire vergelijkingen . . . . . . . . . . . . . . . . . . . . . . . . 45
4.6 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.7 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5 Numerieke integratie 48
5.1 Introduktie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.2 Eenvoudige numerieke integratieformules . . . . . . . . . . . . . . . . . . . . . 48
5.3 Newton Cotes formules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.4 Gauss formules

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.5 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.6 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6 Numerieke tijdsintegratie voor beginwaarde problemen 62
6.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
6.2 Theorie van beginwaarde problemen . . . . . . . . . . . . . . . . . . . . . . . 62
6.3 Eenstaps methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.4 Foutvoortplanting bij de methode Euler Voorwaarts . . . . . . . . . . . . . . 72
6.5 Stability of initial-value problems . . . . . . . . . . . . . . . . . . . . . . . . . 76
6.6 Afbreekfout en consistentie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.7 Convergentie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
6.8 Globale afbreekfout en foutschattingen . . . . . . . . . . . . . . . . . . . . . . 86
6.9 Numerieke methoden voor stelsels dierentiaalvergelijkingen . . . . . . . . . . 91
6.10 Stabiliteit van numerieke methoden voor teststelsels . . . . . . . . . . . . . . 94
6.11 Stijve dierentiaalvergelijkingen . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.12 Meerstaps methoden

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.13 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.14 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
7 De eindige dierentie methode voor randwaarde problemen 112
7.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7.2 De eindige dierentie methode . . . . . . . . . . . . . . . . . . . . . . . . . . 113
7.3 Herhaling van enkele lineaire algebra begrippen . . . . . . . . . . . . . . . . . 114
7.4 Consistentie, stabiliteit en convergentie . . . . . . . . . . . . . . . . . . . . . . 115
7.5 De conditie van de discretisatie matrix . . . . . . . . . . . . . . . . . . . . . . 117
7.6 Neumann randvoorwaarde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.7 Het algemene probleem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
7.8 Niet-lineaire randwaarde problemen . . . . . . . . . . . . . . . . . . . . . . . 121
7.9 De convectie-diusie vergelijking . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.10 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.11 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
ii
8 De instationaire warmtevergelijking

126
8.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.2 Aeiding van de instationaire warmtevergelijking . . . . . . . . . . . . . . . . 126
8.3 De gediscretiseerde vergelijking . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.4 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
9 Optimization problems

131
9.1 Least squares for linear problems . . . . . . . . . . . . . . . . . . . . . . . . . 132
9.1.1 n linear equations with m unknowns (n > m) . . . . . . . . . . . . . . 133
9.1.2 Application to tting data on polynomials . . . . . . . . . . . . . . . . 135
9.2 Optimization of non linear problems . . . . . . . . . . . . . . . . . . . . . . . 135
9.2.1 Critical points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9.2.2 The method of steepest descent . . . . . . . . . . . . . . . . . . . . . . 138
9.2.3 Newtons method for optimization . . . . . . . . . . . . . . . . . . . . 139
iii
Hoofdstuk 1
Inleiding
1.1 Enkele historische opmerkingen
1
De moderne toegepaste wiskunde begint in de 17e en 18e eeuw met mensen als Stevin, Des-
cartes, Newton en Euler. Numerieke aspecten maakten op natuurlijke wijze deel uit van
de analyse; de term numerieke wiskunde was onbekend. Numerieke methoden bedacht door
Newton, Euler en later Gauss spelen ook vandaag nog een belangrijke rol.
In de 18e en 19e eeuw worden voor allerlei deelgebieden van de natuurkunde, zoals de me-
chanica en de stromingsleer, fundamentele wetten geformuleerd in de vorm van eenvoudig
ogende wiskundige vergelijkingen. Deze bleken echter, tot veler teleurstelling, alleen in heel
speciale gevallen analytisch te kunnen worden opgelost. De opkomende techniek ontwikkelt
zich dan ook goeddeels los van de wiskunde. De komst van de computer heeft hierin verande-
ring gebracht. Met gebruik van de computer is het mogelijk met gedetailleerde en realistische
wiskundige modellen en numerieke methoden nauwkeurige kwantitatieve informatie te verwer-
ven, betreende een veelheid van verschijnselen en processen in de natuur en in de techniek.
De toepassing van computers en numerieke methoden is algemeen geworden. Steekproeven
wijzen uit dat in ca. 70% van de artikelen in de vaktijdschriften van de ingenieurswetenschap-
pen wiskundige modellen en methoden worden gebruikt, die niet triviaal zijn.
Berekeningen zijn meestal goedkoper dan experimenten; verder kunnen experimenten on-
mogelijk of gevaarlijk zijn. Vaak kunnen experimenten alleen op verkleinde schaal worden
uitgevoerd, wat de resultaten minder betrouwbaar maakt.
1.2 Wat is numerieke wiskunde?
Numerieke wiskunde is de leer der methoden voor het getalmatig benaderen van oplossingen
van wiskundige vergelijkingen met eindige rekenprocessen. Of, nog korter: de leer der con-
structieve methoden in de wiskunde.
In grote delen van de wiskunde zijn de belangrijkste concepten die van afbeelding en ver-
zameling. Voor de numerieke wiskunde moet hieraan worden toegevoegd het concept van
1
voor meer informatie zie http://ta.twi.tudelft.nl/nw/users/vuik/wi211/wi211.html
1
berekenbaarheid. Berekenbaarheid houdt in dat het resultaat verkregen kan worden met een
eindig aantal operaties (zodat de rekentijd eindig is) op een eindige deelverzameling van de
rationele getallen (omdat het geheugen van de computer eindig is). In het algemeen zal het
resultaat een benadering zijn, omdat de meeste wiskundige vergelijkingen operatoren bevat-
ten, die op een oneindig voortlopend proces gebaseerd zijn, zoals integralen en afgeleiden,
en omdat de oplossingen functies zijn, waarvan het domein en bereik ook irrationele getallen
bevatten.
Omdat in het algemeen slechts benaderingen van oplossingen verkregen kunnen worden, kun-
nen in de numerieke wiskunde slechts die problemen zinvol behandeld worden, die bestand
zijn tegen kleine verstoringen, oftewel stabiel zijn. De vraag naar de stabiliteit heeft de nume-
rieke wiskunde gemeen met de klassieke wiskunde. Een belangrijk hulpmiddel bij de studie
van stabiliteit is de functionaalanalyse. Deze discipline speelt ook een belangrijke rol bij de
studie van de fout: het verschil tussen de numerieke benadering en de exacte oplossing.
De consequenties van het rekenen met een eindige deelverzameling van de rationele getallen,
zijn velerlei. Zo kan een computer bijvoorbeeld geen onderscheid maken tussen polynomen
van voldoend hoge graad. Zodoende kan men niet zonder meer vertrouwen op methoden die
gebaseerd zijn op de hoofdstelling van de algebra (namelijk, dat een n
e
graads polynoom pre-
cies n nulpunten heeft). De fouten die het gevolg zijn van het werken met een eindig aantal
cijfers heten afrondfouten. Aan afrondfouten zal in het vervolg van dit hoofdstuk nog enige
aandacht geschonken worden.
Een belangrijk aspect van de numerieke wiskunde is de nadruk op eciency. Een vergroting
van eciency, dat wil zeggen vermindering van het aantal benodigde operaties en/of het be-
nodigde geheugen, wordt elders in de wiskunde niet als een essentiele vooruitgang gezien, in
de numerieke wiskunde echter wel. Deze vooruitgang is van groot praktisch belang. Het einde
hiervan is nog lang niet in zicht. Hier liggen nog vele mogelijkheden voor creatieve geesten.
Verder zal nog veel overhoop gehaald worden door veranderingen in computerarchitectuur.
1.3 Waarom numerieke wiskunde?
Een groot voordeel van numerieke wiskunde is dat een numeriek antwoord verkregen kan
worden voor problemen, die geen analytische oplossing hebben. Neem bijvoorbeeld de
integraal

_
0
_
1 + cos
2
(x)dx ,
die de lengte geeft van een boog van de kromme gegeven door y = sinx. Er bestaat voor deze
integraal geen oplossing in gesloten vorm. Echter met een numerieke methode kan de integraal
eenvoudig bepaald worden. Een bijkomend voordeel is dat een numerieke methode alleen
gebruik maakt van functie-evaluaties en de operaties: optellen, aftrekken, vermenigvuldigen
en delen. Omdat deze operaties precies de functies zijn die een computer kan uitvoeren,
vormen numerieke wiskunde en computers een perfecte combinatie.
Een voordeel van een analytische methode is dat deze een oplossing geeft in termen van
2
wiskundige functies. Hieruit kan men inzicht verkrijgen in het gedrag en de eigenschappen
van de oplossing. Bij een numerieke oplossing is dit niet het geval. Aan de andere kant, er
wordt vaak gebruik gemaakt van een visualizatie om inzicht in het gedrag van de oplossing te
verkrijgen. Het maken van een graek met een numerieke methode is meestal ecienter dan
het evalueren van de analytische oplossing in een groot aantal punten.
1.4 Afrondfouten
Een computer werkt niet met oneindige precisie. Reele getallen worden in computers opge-
slagen als
0.d
1
d
2
...d
n

e
waarbij d
1
> 0 en 0 d
i
< . We noemen dit een oating point getal waarbij: de mantisse
is 0.d
1
d
2
...d
n
, de basis is en e (geheel getal) is de exponent. Vaak is = 2, n = 24 (enkele
precisie), zoals voor vele PCs. In dubbele precisie geldt n = 56. We zeggen dan dat de
machine rekent met n cijfers.
Laat voor x R gelden
0.d
1
...d
n

e
x < 0.d
1
d
2
...(d
n
+ 1)
e
waarbij we x gemakshalve positief veronderstellen. Afronding houdt in dat x vervangen
wordt door het dichtstbijzijnde oating point getal, dat we fl(x) zullen noemen. De hierdoor
veroorzaakte fout wordt afrondfout genoemd. Laten we schrijven
fl(x) = x(1 +). (1.1)
We noemen [fl(x) x[ = [x[ de absolute fout en
|fl(x)x|
|x|
= [[ de relatieve fout. Het
verschil tussen de oating point getallen waar x tussen ligt is
en
. Door afronden geldt
[fl(x) x[
1
2

en
, zodat voor de absolute fout geldt:
[x[
1
2

en
.
Aangezien [x[
e1
(omdat d
1
> 0) geldt voor de relatieve fout:
[[ eps (1.2)
met de relatieve precisie van de computer eps gedenieerd door
eps =
1
2

1n
. (1.3)
Met = 2 en n = 24 geldt dus eps

= 6 10
8
: er wordt met ongeveer 7 decimale cijfers
gerekend.
Figuur 1.1 toont de ligging van de oating point getallen 0.1d
2
d
3

e
; e = 1, 0, 1, 2 in het
binaire stelsel ( = 2). Deze oating point getallen liggen ongelijk verdeeld en er is een gat
3
bij 0. Als een rekenresultaat in dit gat terecht komt noemen we dit underow. De meeste ma-
chines geven een waarschuwing, vervangen het resultaat door 0 en gaan door. Als de absolute
waarde van een rekenresultaat te groot is, is er sprake van overow. De machine waarschuwt
en stopt.
Hoe voeren computers rekenkundige operaties uit met oating point getallen? Rekenproces-
1 2 3 4 1 2 3 4 0
Figuur 1.1: De ligging van 0.1d
2
d
3

e
, = 2, e = 1, 0, 1, 2.
soren zijn ingewikkeld. Meestal wordt het volgende model gebruikt ter benadering van de
werkelijkheid. Laat een rekenkundige operatie zijn (+, , of /), en laten x en y twee
oating point getallen zijn. Dan is de machine-uitkomst van de operatie:
z = fl(x y) (1.4)
met x y de exacte uitkomst. Deze is in het algemeen geen oating point getal, zodat er een
fout gemaakt wordt. Volgens (1.1) geldt
z = x y(1 +). (1.5)
voor een of andere die aan (1.2) voldoet.
Stel dat x en y geen oating point getallen zijn, maar benaderd worden met fl(x) en fl(y)
dus fl(x) = x(1 +
1
), fl(y) = y(1 +
2
), dan geldt voor de absolute fout van het berekende
antwoord:
[x y fl(fl(x) fl(y))[ [x y fl(x) fl(y)[ +[fl(x) fl(y) fl(fl(x) fl(y))[. (1.6)
We zien dat de fout de som is van de doorwerking van de afrondfouten (storingen) in de data
en de oating point fout die het verschil tussen een exacte bewerking en een oating point
bewerking uitmaakt.
We zullen eerst een aantal voorbeelden geven om te laten zien, hoe afrondfouten doorwerken.
Daarna zullen we de algemene rekenregels geven. In deze voorbeelden gebruiken we afkappen,
dat wil zeggen dat fl(x) alleen de signicante cijfers meegenomen worden.
Voorbeeld 1.4.1
We nemen x =
5
7
en y =
1
3
en gebruiken een denkbeeldige machine waarin gerekend wordt met
= 10, 5 cijfers en afkappen. In Tabel 1.1 staan de resultaten van verschillende berekeningen
toegepast op fl(x) = 0.71428 10
0
en fl(y) = 0.33333 10
0
. We zullen laten zien hoe de
tabel tot stand gekomen is. Na normalisatie vinden we voor de optelling:
fl(x) +fl(y) = (.71428 +.33333) 10
0
= 0.1047610000... 10
1
4
bewerking resultaat exacte waarde absolute fout relatieve fout
x +y 0.10476 10
1
22/21 0.190 10
4
0.182 10
4
x y 0.38095 10
0
8/21 0.238 10
5
0.625 10
5
x y 0.23809 10
0
5/21 0.523 10
5
0.220 10
4
x y 0.21428 10
1
15/7 0.571 10
4
0.267 10
4
Tabel 1.1: De absolute en relatieve fout voor verschillende berekeningen
Dit resultaat moet naar 5 cijfers worden afgekapt:
fl(fl(x) +fl(y)) = 0.10476 10
1
.
Exact hebben we x + y =
22
21
= 1.0476190518... De absolute fout is dus 1.0476190518...
0.10476 10
1
0.190 10
4
en de relatieve fout is
0.19010
4
22/21
0.182 10
4
.
De analyse van de fout bij de andere drie bewerkingen verloopt op nagenoeg dezelfde wijze.
Voorbeeld 1.4.2
In dit voorbeeld gebruiken we dezelfde getallen en dezelfde denkbeeldige machine als in het
voorgaande voorbeeld. Verder gebruiken we u = 0.714251, v = 98765.9 en w = 0.111111
10
4
, zodat fl(u) = 0.71425, fl(v) = 0.98765 10
5
en w = 0.11111 10
4
. Deze getallen
zijn zo gekozen om te laten zien welke problemen er op kunnen treden bij afrondfouten. In
Tabel 1.2 x y heeft x u een kleine absolute fout maar een grote relatieve fout. Als we dit
getal delen door een klein getal w of vermenigvuldigen met een groot getal v dan wordt de
absolute fout groter, terwijl de relatieve fout hetzelfde blijft. Het optellen van een groot getal
u en een klein getal v geeft een grote absolute fout, maar een kleine relatieve fout.
bewerking resultaat exacte waarde absolute fout relatieve fout
x u 0.30000 10
4
0.34714 10
4
0.471 10
5
0.136
(x u)/w 0.29629 10
1
0.34285 10
1
0.465 0.136
(x u) v 0.29629 10
1
0.34285 10
1
0.465 0.136
x +y 0.98765 10
5
0.98766 10
5
0.161 10
1
0.163 10
4
Tabel 1.2: De absolute en relatieve fout voor verschillende berekeningen
We laten nu zien, hoe de eerste rij tot stand gekomen is. Het exacte antwoord is u =
0.714251 en x u =
5
7
.714251 = 0.3471428571.... 10
4
, terwijl fl(u) = 0.71425 10
0
en
fl(x)fl(u) = 0.714280.71425 = 0.000030000010
0
. Normaliseren geeft fl(fl(x)fl(u)) =
0.3000010
4
. Hieruit volgt de absolute fout: (xu) fl(fl(x) fl(u)) = (.3471428571...
.30000) 10
4
0.471 10
5
. en de relatieve fout:
0.471...10
5
0.3471428...10
4
0.136.
Interessant om op te merken is dat de grote relatieve fout die hier ontstaat niets met de beper-
kingen van het oating point systeem te maken heeft (de aftrekking van fl(x) en fl(u) wordt
in dit geval namelijk foutloos uitgevoerd) maar uitsluitend een gevolg is van de onzekerheid in
de data doordat deze in het oating point systeem slechts door 5 signicante cijfers worden ge-
geven. De nullen die na normalisatie in het enkele lengte resultaat fl(fl(x)fl(u)) = 0.30000
overblijven hebben dientengevolge geen enkele betekenis: het cijfer 3 is het enige signicante;
5
de nullen die ingevuld worden zijn niet meer dan een formaliteit. Dit verschijnsel wordt cij-
ferverlies genoemd. Het verlies van signicante cijfers werkt sterk door in de relatieve fout,
omdat daar door het kleine resultaat gedeeld wordt.
Een grote relatieve fout heeft in de verdere loop van het proces vroeg of laat vervelende gevol-
gen, ook voor de absolute fout. Vermenigvuldigen we x u bijvoorbeeld met een groot getal
dan ontstaat naast een grote relatieve meteen een grote absolute fout. Als voorbeeld kijken
we naar de derde rij in de tabel. Het exacte antwoord is (x u) v = 3.4285594526000....
Bepalen van fl(fl(x) fl(u)) fl(v) geeft:
fl(fl(x) fl(u)) fl(v) = 0.3 10
4
0.98766 10
5
= 0.2962980000 10
1
.
Na afkappen geldt: fl(fl(fl(x) fl(u)) fl(v)) = 0.29630 10
1
. Hieruit volgt de absolute
fout: 3.4285594526000...... 0.2963010
1
0.465. en de relatieve fout:
0.465..
3.4285....
0.136. Stel
dat we nu bij (x u) v iets optellen, bv. y
2
=
1
9
(merk op dat y =
1
3
), dan verdwijnt deze
actie in de ruis van de grote absolute fout. Anders gezegd, het maakt voor de betrouwbaar-
heid van het resultaat niet uit of we de laatste bewerking achterwege zouden laten en aldus
het numerieke proces zouden wijzigen. Er is niet veel fantasie voor nodig om te concluderen
dat hier iets grondig mis is.
Vrijwel alle numerieke processen vertonen het verschijnsel van cijferverlies voor bepaalde
invoerdata; zulke data kun je slecht geconditioneerd noemen. Er bestaan ook numerieke pro-
cessen die dit soort verschijnselen voor alle mogelijke invoerdata vertonen; zulke processen
worden instabiel genoemd. Een van de doelstellingen van de numerieke analyse is zulke pro-
cessen te identiceren als onbruikbaar, of ze zodanig te verbeteren dat ze stabiel worden.
Rekenregels voor de doorwerking van fouten in een numeriek proces
Bij de analyse van een volledig numeriek proces moet bij elke volgende stap de in de voorgaan-
de stappen geaccumuleerde fout als storing op de oorspronkelijke data worden opgevat en zal,
naast de oating point bewerkingsfout, de doorwerking van deze storingen in het resultaat van
deze stap in beschouwing moeten worden genomen. Na een ink aantal stappen zal deze bron
van fouten meestal belangrijker worden dan de oating point fout (in voorgaand voorbeeld
van (x u) v zelfs al na 2 stappen!). In dat stadium zal de fout in een numeriek proces
voor een groot deel door pure voortplanting van geaccumuleerde fouten worden bepaald. De
regels voor de voortplanting van storingen zijn dezelfde als die voor meetfouten bij fysische
experimenten. Er zijn twee regels, een voor optellen en aftrekken en een voor vermenigvuldi-
gen en delen. De benaderingen van x en y worden x en y genoemd en de (absolute storingen)
x = x x, analoog y = y y
a) Optellen en aftrekken.
(x +y) ( x + y) = (x x) + (y y) = x + y, met andere woorden de absolute fout
in de som van twee gestoorde data is gelijk aan de som van de absolute storingen. Een
zelfde regel geldt voor verschillen: (x y) ( x y) = x y. Vaak wordt de regel in
de vorm van een afschatting gepresenteerd: [(x y) ( x y)[ [x[ +[y[.
b) Voor vermenigvuldigen en delen geldt deze regel niet (probeer hem maar af te leiden, dat
leidt tot niets). Wel is een overeenkomstige regel voor de relatieve fouten af te leiden,
6
als volgt. De relatieve storingen
x
en
y
zijn gedenieerd door x = x(1
x
), idem
voor y. Voor de relatieve fout in een product xy geldt nu:
xy x y
xy
=
xyx(1x)y(1y)
xy
=

x
+
y

x

y

x
+
y
, aangenomen dat
x
en
y
beiden veel kleiner dan 1 zijn. Dus:
de relatieve fout in een product van twee gestoorde getallen is ongeveer even groot als
de som van de twee afzonderlijke relatieve storingen. Voor deling is een zelfde uitspraak
te bewijzen. Als afschatting geformuleerd: [
xy x y
xy
[ [
x
[ +[
y
[.
Als we x met fl(x) identiceren en y met fl(y) dan kun je met deze twee simpele regels
allerlei verschijnselen bij oating point berekeningen bij benadering prima verklaren. Bij de
berekening van xu in Tabel 1.2 bijvoorbeeld wordt helemaal geen afrondfout gemaakt en is
de eerste regel dus exact van toepassing: de totale (absolute) fout is precies gelijk aan de som
van de (absolute) afrondfouten (resp. 0.571 10
5
en 0.100 19
5
) zoals eenvoudig is na te
gaan. In het geval van (x u) v uit Tabel 1.2 heeft x u een absolute fout van ongeveer
10
5
geaccumuleerd en een relatieve van 0.136. Dat is veel en veel groter dan de relatieve
oating point fout (maximaal
1
2
10
4
) en doorwerking bepaalt vrijwel de gehele fout: de
relatieve fout in (x u) v is dan volgens de foutregel voor producten gelijk aan de som van
de relatieve fouten in xu en v, dus aan 0.136 +10
5
= 0.136. De absolute fout volgt direct:
ongeveer 0.465.
1.5 Het O-symbool van Landau
Bij het analyseren van numerieke methoden is het onderzoeken van de fout belangrijk. Hierbij
is een indicatie van de orde van grootte belangrijker dan een nauwkeurige uitdrukking voor de
fout. Om schrijfwerk te besparen maken we gebruik van het (grote O) O-symbool van Landau.
Denitie 1.5.1 Gegeven de functies f en g dan geldt f(x) = O(g(x)) voor x 0, als er een
positieve r en M bestaat zodanig dat
[f(x)[ M[g(x)[ voor alle x [r, r] .
Bij het schatten van fouten maken we vaak gebruik van de volgende rekenregels:
Rekenregels
Als f(x) = O(x
p
) en g(x) = O(x
q
) als x 0, met p 0 en q 0 dan is
a) f(x) = O(x
s
) voor alle s met 0 s p.
b) f(x) +g(x) = O(x
min{p,q}
) voor alle , R.
c) f(x)g(x) = O(x
p+q
).
d)
f(x)
|x|
s
= O(x
ps
) als 0 s p.
7
1.6 Herhaling begrippen uit de analyse
In deze paragraaf zullen we een aantal stellingen samenvatten, die vaak gebruikt worden in
de numerieke analyse.
Stelling 1.6.1 (Tussenwaardestelling) Neem aan dat f C[a, b]. Als f(a) ,= f(b) en C
is een getal tussen f(a) en f(b), dan bestaat er een c (a, b) zodat f(c) = C.
Stelling 1.6.2 (Stelling van Rolle) Neem aan dat f C[a, b] en f is dierentieerbaar op
(a, b). Als f(a) = f(b), dan bestaat er een c (a, b) zodat f

(c) = 0.
Stelling 1.6.3 (Middelwaardestelling) Neem aan dat f C[a, b] en f is dierentieerbaar
op (a, b), dan bestaat er een c (a, b) zodat f

(c) =
f(b)f(a)
ba
.
Stelling 1.6.4 (Taylorpolynoom) Neem aan dat f : (a, b) R een (n + 1)-maal dieren-
tieerbare functie is. Dan geldt voor alle c en x (a, b) bestaat er een tussen c en x zo
dat
f(x) = P
n
(x) +R
n
(x),
waarbij het Taylorpolynoom P
n
(x) gegeven wordt door
P
n
(x) = f(c) + (x c)f

(c) +
(x c)
2
2!
f

(c) +. . . +
(x c)
n
n!
f
(n)
(c)
en de restterm R
n
(x) is:
R
n
(x) =
(x c)
n+1
(n + 1)!
f
(n+1)
().
Bewijs:
Neem c, x (a, b) met c ,= x en laat K gedenieerd zijn door:
f(x) = f(c) + (x c)f

(c) +
(x c)
2
2!
f

(c) +. . . +
(x c)
n
n!
f
(n)
(c) +K(x c)
n+1
. (1.7)
Beschouw de functie
F(t) = f(t) f(x) + (x t)f

(t) +
(x t)
2
2!
f

(t) +. . . +
(x t)
n
n!
f
(n)
(t) +K(x t)
n+1
.
Er geldt nu F(c) = 0 uit (1.7) en F(x) = 0. Volgens de stelling van Rolle bestaat er een
tussen c en x zo dat F

() = 0. Dit uitwerken geeft:


F

() = f

() +f

()(x ) f

() +
f

()
2!
(x )
2
f

()(x ) +
+ +
f
(n+1)
()
n!
(x )
n

f
(n)
()
(n 1)!
(x )
(n1)
K(n + 1)(x )
n
=
=
f
(n+1)
()
n!
(x )
n
K(n + 1)(x )
n
= 0.
Dus K =
f
(n+1)
()
(n+1)!
, waarmee de stelling bewezen is.
8
1.7 Samenvatting
In dit hoofdstuk zijn de volgende begrippen behandeld:
- numerieke wiskunde
- afrondfouten
- O-symbool van Landau
- herhaling analyse begrippen
9
1.8 Opgaven
1. Laat f(x) = x
3
. Bepaal het tweede orde Taylor polynoom voor het steunpunt x = 1.
Bepaal de waarde van dit polynoom in x = 0.5. Geef een schatting van de fout en
vergelijk dit met de echte fout.
2. Laat f(x) = e
x
. Geef het Taylor polynoom van de orde n en de restterm voor het
steunpunt x = 0. Hoe groot moet n zijn opdat de fout kleiner is dan 10
6
op het
interval [0,0.5]?
3. Het polynoom P
2
(x) = 1
1
2
x
2
wordt gebruikt om f(x) = cos(x) te benaderen op
[
1
2
,
1
2
]. Geef een bovengrens voor de fout in de benadering.
4. Neem x =
1
3
, y =
5
7
. We rekenen met 3 cijfers. Schrijf x en y als oating point getallen.
Bepaal voor = +, , , /, fl(fl(x) fl(y)), x y en de afrondfout.
10
Hoofdstuk 2
Interpolatie
2.1 Inleiding
De vraagstelling: het bepalen van tussenliggende waarden uit een beperkt aantal metingen, of
het voorspellen van waarden in punten die buiten het meetbereik liggen (extrapolatie) komt
in praktijk veel voor. Laten we als voorbeeld het aantal kippen beschouwen in de Nederland-
se pluimveehouderijen. In Tabel 2.1 staan de aantallen in miljoenen tussen 1970 en 1995.
jaar 1970 1975 1980 1985 1990 1995
aantal 53 68 82 92 94 92
Tabel 2.1: Het aantal kippen (in miljoenen) in Nederland (bron: NRC 09-12-1998)
We kunnen ons afvragen hoe deze getallen gebruikt kunnen worden om het aantal kippen te
schatten in de tussenliggende jaren bijvoorbeeld in 1992, of te voorspellen in het jaar 2000.
Een aantal interpolatie/extrapolatie methoden om dit te doen worden in dit hoofdstuk be-
sproken.
Ook bij visualizeren van beelden op een computerscherm kan veel geheugenruimte bespaard
worden als niet alle punten opgeslagen worden, maar alleen een beperkt aantal punten. Door
deze punten is dan een kromme gedenieerd waarmee een min of meer realistisch beeld op
het scherm weergegeven kan worden.
Als laatste toepassing het bepalen van goniometrische functies op een rekenmachine. Het
berekenen van een functiewaarde kost veel rekentijd. Een oplossing hiervoor: sla een aan-
tal functiewaarden op in het geheugen en bepaal op een goedkope manier de waarden in
tussenliggende punten uit de bekende functiewaarden.
2.2 Lineaire interpolatie
De eenvoudigste manier van interpoleren is de nulde graads interpolatie. Stel de waarde in een
bepaald punt is bekend. Dan kiezen we de waarden in de omgeving gelijk aan deze waarde.
Een bekend voorbeeld hiervan is de voorspelling dat het weer van morgen hetzelfde is als
vandaag. Deze voorspelling blijkt in 80% van de gevallen goed te zijn.
11
Een betere vorm van interpolatie is de rechte lijn tussen 2 punten (zie Figuur 2.1). Stel we
x
0
f(x
0
)
x
1
f(x
1
)
x
p(x)
f(x)
Figuur 2.1: Lineaire interpolatie.
weten de meetwaarden in de punten x
0
en x
1
: f(x
0
) en f(x
1
). Als we verder geen informatie
hebben ligt het voor de hand in het punt x

de waarde van de rechte lijn door de punten


(x
0
, f(x
0
)), (x
1
, f(x
1
)) te nemen. Het is eenvoudig in te zien dat de rechte lijn gegeven wordt
door:
p(x) = f(x
0
) +
x x
0
x
1
x
0
(f(x
1
) f(x
0
))
of
p(x) =
x x
1
x
0
x
1
f(x
0
) +
x x
0
x
1
x
0
f(x
1
) .
De functie p is een lineair interpolatiepolynoom die gelijk is aan f(x
0
) in x
0
en f(x
1
) in x
1
.
Een voor de hand liggende vraag is uiteraard: hoe groot is de fout bij lineaire interpolatie
Voorbeeld 2.2.1 (lineaire interpolatie)
Stel de waarde van de sinusfunctie is bekend
in 36

en 38

. De lineaire interpolatiebena-
dering in 37

is dan 0.601723. Het verschil


met de exacte waarde is slechts 0.9 10
4
.
sin
36

0.58778525
37

0.60181502
38

0.61566148
Tabel 2.2: De waarde van sin
en waar hangt die van af? Indien we weten dat de functie die we interpoleren tenminste 2
maal continu dierentieer is dan kunnen we een uitspraak over de fout maken. Merk op met
[a, b, x
0
] bedoelen we het gesloten interval opgespannen door de uitersten van a, b en x
0
.
12
Stelling 2.2.1 Laat x
0
en x
1
punten zijn in [a, b], x
0
,= x
1
en f C[a, b] C
2
(a, b). Dan
geldt voor het lineaire interpolatie polynoom p van f op de steunpunten x
0
, x
1
en voor elke
x [a, b] : er is een (x
0
, x
1
, x) zodat
f(x) p(x) =
1
2
(x x
0
)(x x
1
)f

() . (2.1)
Bewijs:
Als x = x
0
of x = x
1
, dan is f(x) p(x) = 0 en kan men willekeurig kiezen. Neem aan
x ,= x
0
en x ,= x
1
. Voor elke waarde van x is er een getal q zodat
f(x) p(x) = q(x x
0
)(x x
1
) .
Beschouw voor dit getal q de volgende functie
(t) = f(t) p(t) q(t x
0
)(t x
1
) .
Hiervoor geldt (x
0
) = (x
1
) = (x) = 0. Volgens de stelling van Rolle zijn er minstens twee
verschillende punten y en z in (x
0
, x
1
, x) zodat

(y) =

(z) = 0. Opnieuw volgens Rolle


is er ook een (y, z) en dus (x
0
, x
1
, x) zo dat

() = 0. Omdat

(t) = f

(t) 2q
betekent dit dat q =
1
2
f

().
Als x / [x
0
, x
1
] dan gebruiken we het interpolatiepolynoom om te extrapoleren. De fout
wordt dan nog steeds beschreven door (2.1).
Bij interpolatie volgt de bovengrens
[f(x) p(x)[
1
8
(x
1
x
0
)
2
max
[x
0
,x
1
]
[f

()[ .
In praktische toepassingen zijn de waarden f(x
0
) en f(x
1
) meestal door meting of berekening
verkregen. Deze waarden bevatten dus een fout. Neem aan dat de absolute fout hoogstens
is. Het verschil tussen het exacte polynoom p en verstoorde polynoom p wordt begrensd
door:
[p(x) p(x)[
[x
1
x[ +[x x
0
[
x
1
x
0
.
Bij interpolatie is deze fout altijd begrensd door . Bij extrapolatie kan de fout groter worden
dan . Stel x x
1
dan wordt de additionele onnauwkeurigheid begrensd door:
[p(x) p(x)[ (1 + 2
x x
1
x
1
x
0
) .
De totale fout is de som van de interpolatie/extrapolatie fout en de meetfout.
2.3 Lagrange interpolatie
Indien men meer gegevens dan 2 punten heeft, is het verstandig om ook van die extra punten
gebruik te maken. Een voor de hand liggende methode is een hogere graads interpolatie te
gebruiken. Omdat een polynoom van de graad n, n + 1 onafhankelijke parameters bevat zijn
dus n + 1 gegevens nodig.
13
Als generalisatie van lineaire interpolatie kan men de approximatie beschouwen van een functie
f door een hoogstens n-de graadspolynoom L
n
, zodanig dat de waarden van f en L
n
in een
gegeven n+1-tal verschillende punten x
0
, ..., x
n
aan elkaar gelijk zijn. Dit noemen we n-orde
Lagrange interpolatie.
Een polynoom L
n
dat aan deze eisen voldoet is gemakkelijk aan te geven in een vorm, die
een duidelijke generalisatie van (2.1) is:
L
n
(x) =
n

k=0
f(x
k
)L
kn
(x) ,
waarbij
L
kn
(x) =
(x x
0
)....(x x
k1
)(x x
k+1
)....(x x
n
)
(x
k
x
0
)....(x
k
x
k1
)(x
k
x
k+1
)....(x
k
x
n
)
.
Dat dit het goede polynoom is kunen we als volgt zien:
- elke L
kn
is een polynoom van de graad n,
- omdat L
kn
(x
j
) =
kj
geldt L
n
(x
k
) = f(x
k
), k 0, ..., n.
Het polynoom L
n
wordt het Lagrange interpolatiepolynoom genoemd. De polynomen L
kn
heten de Lagrange coecienten. Zij kunnen ook geschreven worden als:
L
kn
(x) =
(x)
(x x
k
)

(x
k
)
met (x) =
n

i=0
(x x
i
) .
Een generalisatie van Stelling 2.2.1 is nu:
Stelling 2.3.1 Laat x
0
, ..., x
n
verschillende punten zijn in [a, b]. Laat f C
n
[a, b] en f
(n+1)
bestaat op (a, b). Dan geldt voor het bijbehorende polynoom L
n
en voor elke x [a, b]: er is
een (x
0
, x
1
, ..., x
n
, x) zodat
f(x) L
n
(x) = (x x
0
)....(x x
n
)
f
n+1
()
n + 1!
.
Bewijs:
Het bewijs is geheel analoog aan dat van Stelling 2.2.1.
Als we Lagrange interpolatie gebruiken op tabelwaarden, dan krijgt men het beste resultaat
als de steunpunten zo gekozen worden dat x in het (of een) middelste interval ligt. Leg zelf
uit waarom.
Naast de interpolatiefout willen we weten welke extra fouten er kunnen optreden bij hogere
graads interpolatie als de functie (of tabel) waarden niet exact zijn. Neem aan dat de absolute
fout in de waarden hoogstens is. De fout in het verstoorde interpolatiepolynoom is dan
hoogstens
n

k=0
[L
kn
(x)[ .
Als de steunpunten equidistant zijn, x
k
= x
0
+ kh, dan neemt de waarde van
n

k=0
[L
kn
(x)[
langzaam toe als n groter wordt. In Tabel 2.3 worden een aantal bovengrenzen gegeven.
14
x [x
0
, x
1
] x [x
1
, x
2
] x [x
2
, x
3
] x [x
3
, x
4
] x [x
4
, x
5
]
n = 1 1
n = 2 1.25 1.25
n = 3 1.63 1.25 1.63
n = 4 2.3 1.4 1.4 2.3
n = 5 3.1 1.6 1.4 1.6 3.1
Tabel 2.3: Bovengrenzen voor
n

k=0
[L
kn
(x)[.
In het algemeen verwacht je dat de benaderingsfout afneemt als de graad van het polynoom
toeneemt. Dit is echter niet altijd het geval zoals het volgende voorbeeld laat zien.
Voorbeeld 2.3.1 (interpolatie)
Beschouw de functie
1
1+x
2
op het interval [5, 5]. Bij de interpolatie gebruiken we de punten
x
k
= 5 +
10k
n
, k = 0, ..., n. In Figuur 2.2 is de functie, het 6
e
en het 14
e
graads inter-
polatiepolynoom afgebeeld. Merk op dat op het interval [-4, 4] de benadering van het 14
e
graadspolynoom beter is dan die van het 6
e
graadspolynoom. Echter in de buurt van de
eindpunten vertoont het 14
e
graadspolynoom grote afwijkingen.
5 4 3 2 1 0 1 2 3 4 5
1
0
1
2
3
4
5
6
7
8
Figuur 2.2: Interpolatie van functie
1
1+x
2
() met een 6
e
graads Lagrange polynoom ( ) en
een 14
e
graad Lagrange polynoom ( ).
15
Voorbeeld 2.3.2 (extrapolatie)
Eenzelfde verschijnsel kan optreden bij extrapolatie. Beschouw de functie
1
x
. Het n-de graads
interpolatiepolynoom wordt bepaald op de steunpunten x
k
= 0.5 +
k
n
, k = 0, ..., n. Als we
de functie, het 6
e
en het 10
e
graads polynoom tekenen op het interval [0.5, 1.8] (Figuur 2.3),
dan zien we dat de polynomen niet te onderscheiden zijn van de functie op het interval [0.5,
1.5]. Echter bij extrapolatie (x 1.5) treden grote fouten op. Hierbij is opnieuw de fout het
grootst bij het 10-de graadspolynoom.
0.5 1 1.5 2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
2.2
2.4
Figuur 2.3: Extrapolatie van functie
1
x
() met een 6
e
graads Lagrange polynoom ( ) en
een 10
e
graads Lagrange polynoom ( ).
2.4 Interpolatie met functiewaarden en afgeleiden

2.4.1 Taylorpolynoom
Een bekende methode om een functie te benaderen met een polynoom is het Taylorpolynoom.
Als benaderingsmethode wordt deze techniek in de numerieke wiskunde niet zo vaak gebruikt.
Het Taylorpolynoom wordt wel veel gebruikt in de analyse van numerieke processen.
In veel gevallen wordt de benadering door het Taylorpolynoom beter als de graad van het poly-
noom toeneemt. Maar dit is niet altijd het geval. Dit laten we zien in het volgende voorbeeld:
Voorbeeld 2.4.1 (Taylorpolynoom)
16
De functie f(x) =
1
x
willen we in x = 3 benaderen met een Taylorpolynoom van de graad n
met het steunpunt x = 1. Voor de afgeleiden geldt: f
(k)
(x) = (1)
k
k!x
(k+1)
. Het n
e
graads
Taylorpolynoom wordt dan gegeven door:
p
n
(x) =
n

k=0
f
(k)
(1)(x 1)
k
/k! =
n

k=0
(1)
k
(x 1)
k
.
De waarden van p
n
(3) als benadering van f(3) =
1
3
staan in Tabel 2.4. Hieruit blijkt dat de
benadering onnauwkeuriger wordt als n toeneemt!
n 0 1 2 3 4 5 6 7
p
n
(3) 1 -1 3 -5 11 -21 43 -85
Tabel 2.4: De waarde van het Taylorpolynoom in het punt x = 3 voor toenemende graad (n).
2.4.2 Interpolatie in het algemeen
In het algemene geval zoeken we bij een functie f een polynoom, zodanig dat in een aantal
verschillende knooppunten x
0
, ..., x
n
niet alleen de waarden van f en p overeenstemmen, maar
ook de waarden van hun afgeleiden tot en met de orde m
i
.
In wiskundige termen: bij elke x
i
is een niet negatief getal m
i
gegeven. Veronderstel dat
f C
m
[a, b] met m = max
0in
m
i
. Dan is p het polynoom van de laagste graad zodanig dat
d
k
p
dx
k
(x
i
) =
d
k
f
dx
k
(x
i
) voor elke i = 0, 1, ..., n en k = 0, 1, ..., m
i
.
Opmerkingen
1. De graad van dit polynoom is hoogstens M =
n

i=0
m
i
+n.
2. Als n = 0 dan is p het Taylorpolynoom in x
0
van de graad m
0
.
3. Als m
i
= 0 dan is p het n
e
graads Lagrange polynoom van f op de punten x
0
, x
1
, ..., x
n
.
Als voorbeeld van algemene interpolatie beschouwen we in de volgende paragraaf de keuze
m
i
= 1. De resulterende polynomen worden Hermite polynomen genoemd.
2.4.3 Hermite interpolatie
Indien we van een functie niet alleen de functiewaarden in bepaalde punten kennen maar ook
de afgeleiden, dan kunnen we die gegevens gebruiken om een hogere graads benaderingspoly-
noom te kiezen.
Stel bijvoorbeeld van een functie zijn in 2 punten zowel de functiewaarden als de afgeleiden
17
bekend. Dan hebben we dus in feite 4 gegevens en kunnen een derde graads polynoom con-
strueren met behulp van deze gegevens.
Dus gegeven:
(x
0
, f(x
0
)) (x
1
, f(x
1
)) ,
(x
0
, f

(x
0
)) (x
1
, f

(x
1
)) .
Het derde graads polynoom p
3
moet voldoen aan de volgende eisen:
p
3
(x
i
) = f(x
i
) i = 0, 1 ,
p

3
(x
i
) = f

(x
i
) i = 0, 1 .
Naar analogie van de Lagrange interpolatiepolynomen is dit polynoom te schrijven als:
p
3
(x) =
1

i=0
[f(x
i
)H
i1
(x) +f

(x
i
)

H
i1
(x)] ,
met
H
i1
(x
j
) =
ij
,

H
i1
(x
j
) = 0 ,
H

i1
(x
j
) = 0 ,

H

i1
(x
j
) =
ij
.
Polynomen die behalve op functiewaarden ook gebaseerd zijn op gegeven afgeleiden staan
bekend onder de naam Hermite polynoom.
De algemene uitdrukking voor Hermite polynomen die functiewaarden en eerste afgeleiden
bevatten luidt:
H
2n+1
(x) =
n

j=0
f(x
j
)H
jn
(x) +
n

j=0
f

(x
j
)

H
jn
(x) ,
waarbij
H
jn
(x) = [1 2(x x
j
)L

jn
(x
j
)]L
2
jn
(x)
en

H
jn
(x) = (x x
j
)L
2
jn
(x) .
Dat dit het goede polynoom is kunnen we als volgt zien: H
jn
en

H
jn
zijn polynomen van de
graad 2n + 1. In steunpunt x
k
geldt H
jn
(x
k
) = 0 als k ,= j. Als k = j dan geldt:
H
jn
(x
j
) = (1 2(x
j
x
j
)L

jn
(x
j
)]L
2
kn
(x
j
) = 1 .
Omdat

H
jn
(x
k
) = 0 geldt dus H
2n+1
(x
j
) = f(x
j
).
Om te laten zien dat ook de afgeleiden overeenstemmen merken we op dat H

jn
gegeven wordt
door:
H

jn
(x) = 2L

jn
(x
j
)L
2
jn
(x) +
[1 2(x x
j
)L

jn
(x
j
)]2L
jn
(x)L

jn
(x) .
Door invullen is eenvoudig te controleren dat H

jn
(x
k
) = 0 voor k = 0, 1, ..., n. De afgeleide
van

H
jn
wordt gegeven door

H
jn
(x) = L
2
jn
(x) + 2(x x
j
)L
jn
(x)L

jn
(x) .
Hieruit volgt

H

jn
(x
k
) =
jk
zodat H

2n+1
(x
j
) = f

(x
j
).
18
Stelling 2.4.1 Als f C
2n+2
[a, b] dan geldt er is een (x
0
, ..., x
n
, x) zodat
f(x) H
2n+1
(x) =
(x x
0
)
2
....(x x
n
)
2
(2n + 2)!
f
(2n+2)
() .
Bewijs:
Het bewijs hiervan gaat analoog aan het bewijs van Stelling 2.2.1. De hulpfunctie wordt nu
als volgt gekozen:
(t) = f(t) H
2n+1
(t)
(t x
0
)
2
....(t x
n
)
2
(x x
0
)
2
....(x x
n
)
2
[f(x) H
2n+1
(x)] .
Er kan nu bewezen worden dat

(t), 2n + 2 verschillende nulpunten heeft in (x


0
, ..., x
n
, x).

We zullen aan de hand van twee voorbeelden duidelijk maken waarom soms voor Hermite
interpolatie gekozen wordt in plaats van Lagrange interpolatie.
Voorbeeld 2.4.2 (seismiek)
Bij het opsporen van olie wordt vaak gebruik gemaakt van seismische golven. Een eenvoudig
model voor golfvoortplanting wordt beschreven door het volgende stelsel dierentiaalverge-
lijkingen:
dx
dt
= c sin ,
dz
dt
= c cos ,
d
dt
=
dc
dz
sin .
De positie wordt aangegeven met (x, z) terwijl opgevat kan worden als de hoek, die het golf-
front maakt met de x-as. We veronderstellen dat de voortplantingssnelheid c alleen afhangt
van de vertikale positie en bekend is in een eindig aantal meetpunten. Bij het oplossen van dit
stelsel hebben we een benadering nodig van c(z) ook in de tussenliggende punten. Lineaire
interpolatie in elk interval heeft tot gevolg dat
dc
dz
niet bestaat in de steunpunten. Dit kan
grote fouten geven in de oplossing. Als zowel c als
dc
dz
bekend is in de meetpunten, dan kan
3
e
graads Hermite interpolatie gebruikt worden in elk interval. Hiervoor bestaat de eerste
afgeleide wel in alle punten.
Voorbeeld 2.4.3 (visualisatie)
Als we een guur willen tekenen bepaald door een eindig aantal punten, ontstaan er bij line-
aire interpolatie knikken in de graek bij de steunpunten. Dit geeft vaak een onrealistische
weergave. Een beter resultaat wordt verkregen met Hermite interpolatie.
Stel de graek van de functie f(x) =
1
1+x
3
, x [0, 4] wordt gebruikt om de helft van een
symmetrische heuvel te visualizeren. Om geheugen en rekentijd te sparen werken visualisa-
tie programmas vaak met eenvoudige bouwstenen. Stel dat 3
e
graads polynomen daartoe
behoren. In Figuur 2.4 is de graek benaderd met een aantal interpolatiepolynomen. De
resulterende guur bij lineaire interpolatie lijkt niet op een heuvel. Hermite interpolatie op
19
dezelfde steunpunten geeft een veel beter resultaat. De vergelijking lijkt niet eerlijk omdat bij
Hermite interpolatie 3
e
graads polynomen zijn gebruikt. Daarom is de functie ook benaderd
met 3
e
orde Lagrange interpolatie. Ook dit resultaat is onbruikbaar.
0 0.5 1 1.5 2 2.5 3 3.5 4
0
0.2
0.4
0.6
0.8
1
1.2
Figuur 2.4: Interpolatie van
1
1+x
3
. functie, lineaire interpolatie, Hermite
interpolatie, 3
e
orde Lagrange interpolatie.
2.5 Interpolatie met splines
In de voorgaande paragraven hebben we gezien dat het benaderen van een functie op een
interval tot problemen kan leiden. Het is vaak beter om het interval op te delen in deelinter-
vallen en op elk deelinterval een interpolatie polynoom te construeren. Een probleem hierbij is
dat de afgeleide vaak niet bestaat op de overgang van de deelintervallen. Hermite interpolatie
verhelpt dit probleem, echter hierbij moet de afgeleide bekend zijn. Bij gemeten grootheden
is de afgeleide in de knooppunten onbekend. Een oplossing hiervoor is het gebruikt van zo-
genaamde splines (uit te spreken op zijn Engels).
Een spline is een stuksgewijs polynoom, die glad aansluit in de knooppunten. Wij zullen
alleen splines van de eerste en derde orde beschouwen.
Denitie
Voor f C[a, b] is de interpolatie spline van graad 1 : s C[a, b] zodanig dat als a =
x
0
< x, ... < x
n
= b een partitie is van [a, b] dan is s lineair op elk deelinterval [x
i
, x
i+1
] en
s(x
i
) = f(x
i
).
Merk op dat een interpolerende spline van graad 1 niets anders is dan lineaire interpolatie op
20
elk deelinterval. Voor een spline van graad 3 komen wel nieuwe eigenschappen aan bod.
Een spline van graad 3 bestaat uit een stuksgewijs derde graads polynoom. In de knooppunt-
en is de waarde van de spline gelijk aan de gegeven functiewaarden en zijn de eerste en tweede
afgeleide continu. Dit wordt ook wel een cubische spline genoemd.
Denitie
Voor f C[a, b] heeft de interpolerende spline s van de graad 3 de volgende eigenschappen:
a. s is een derde graads polynoom s
j
op elk deelinterval [x
j
, x
j+1
],
b. s(x
j
) = f(x
j
),
c. s
j
(x
j+1
) = s
j+1
(x
j+1
),
s

j
(x
j+1
) = s

j+1
(x
j+1
),
s

j
(x
j+1
) = s

j+1
(x
j+1
),
d. s

0
(x
0
) = s

n1
(x
n
) = 0.
Merk op dat s C
2
[a, b]. Verder kunnen de voorwaarden in d vervangen worden door andere
(rand) voorwaarden.
We zullen nu laten zien hoe zon interpolerende spline bepaald kan worden. We schrijven s
j
als:
s
j
(x) = a
j
(x x
j
)
3
+b
j
(x x
j
)
2
+c
j
(x x
j
) +d
j
. (2.2)
Verder denieren we h
j
= x
j+1
x
j
, f
j
= f(x
j
) en G
j
= s

j
(x
j
). Uit b volgt d
j
= f
j
.
We gaan nu de verschillende voorwaarden uit c gebruiken.
s

j
(x
j+1
) = s

j+1
(x
j+1
)
Uit (2.2) volgt s

j
(x) = 6a
j
(x x
j
) + 2b
j
. Invullen geeft :
G
j
= 2b
j
voor x = x
j
en
G
j+1
= 6a
j
h
j
+ 2b
j
voor x = x
j+1
.
We kunnen nu a
j
en b
j
uitdrukken in de G
j
:
b
j
=
1
2
G
j
en a
j
=
1
6h
j
(G
j+1
G
j
) .
s
j
(x
j+1
) = s
j+1
(x
j+1
)
Hieruit volgt a
j
h
3
j
+b
j
h
2
j
+c
j
h
j
+d
j
= f
j+1
. Invullen van a
j
, b
j
en d
j
geeft voor c
j
de volgende
uitdrukking:
c
j
=
f
j+1
f
j
h
j
h
j
2G
j
+G
j+1
6
.
s

(x
j+1
) = s

j+1
(x
j+1
)
Dit geeft 3a
j
h
2
j
+ 2b
j
h
j
+c
j
= c
j+1
. Invullen geeft
1
2
h
j
(G
j+1
G
j
) +G
j
h
j
+
f
j+1
f
j
h
j
h
j
2G
j
+G
j+1
6
=
f
j+2
f
j+1
h
j+1
h
j+1
2G
j+1
+G
j+2
6
.
21
Vereenvoudiging geeft:
h
j
G
j
+ 2(h
j
+h
j+1
)G
j+1
+h
j+1
G
j+2
= 6(
f
j+2
f
j+1
h
j+1

f
j+1
f
j
h
j
) .
Deze relatie is geldig voor j = 0 tot j = n 2. Dit geeft n 1 vergelijkingen voor de n + 1
onbekenden G
0
, ..., G
n
. Uit d volgt G
0
= G
n
= 0. Het resulterende stelsel wordt dan:
_
_
_
_
_
2(h
0
+h
1
) h
1
h
1
2(h
1
+h
2
) h
2
.
.
.
.
.
.
.
.
.
h
n2
2(h
n2
+h
n1
)
_
_
_
_
_
_
_
_
_
_
G
1
G
2
.
.
.
G
n1
_
_
_
_
_
=
_
_
_
_
_
_
_
6(
f
2
f
1
h
1

f
1
f
0
h
0
)
.
.
.
.
.
.
.
.
.
_
_
_
_
_
_
_
Uit dit stelsel kan de waarde van G
j
berekend worden. Hiermee kunnen a
j
, b
j
en c
j
bepaald
worden.
Voorbeeld 2.5.1 (visualisatie)
We beschouwen hetzelfde voorbeeld als in de vorige paragraaf. In Figuur 2.5 is er een cubische
spline gebruikt waarbij het interval opgedeeld is in 6 deelintervallen. Merk op dat de kwaliteit
van de interpolatie beter is dan Hermite interpolatie. Een ander voordeel is dat enkel de
functiewaarden in de steunpunten al voldoende informatie geven. Het is niet nodig om de
afgeleide te weten in de steunpunten.
0 0.5 1 1.5 2 2.5 3 3.5 4
0
0.2
0.4
0.6
0.8
1
1.2
Figuur 2.5: Interpolatie van
1
1+x
3
: functie, - - spline van 3e orde
22
2.6 Samenvatting
In dit hoofdstuk zijn de volgende begrippen behandeld:
- lineaire interpolatie
- Lagrange interpolatie
- interpolatie met afgeleiden
- Taylor polynoom
- interpolatie in het algemeen
- Hermite interpolatie
- spline interpolatie.
23
2.7 Opgaven
1. Bepaal het tweede graads Lagrange polynoom van f(x) = 1/x gebruikmakend van de
steunpunten x
0
= 2, x
1
= 2.5 en x
2
= 4. Benader hiermee f(3).
2. Bepaal s(
1
2
), waarbij s de kubische spline is met steunpunten 0, 1 en 2 voor de functie
f(x) = x. Doe dit ook voor de functie f(x) = x
2
.
24
Hoofdstuk 3
Numeriek dierenti

eren
3.1 Inleiding
Het volgende citaat
1
bespreekt het verschijnsel muisarm of RSI (Repetitive Strain Injury):
RSI (Repetitive Strain Injury)
Door de opkomst van MS-Windows als besturingssysteem raken we steeds meer met de
muis vergroeid. Na een korte periode van gewenning raakt men al maar enthousiaster.
Handig hoor dat klikken, dubbelklikken en slepen. Na een aantal weken of tijdens
een intensieve cursus beginnen de problemen. In schouder, arm en pols begint het
te tintelen. In het begin gaat de pijn over na een nacht slapen, maar na een aantal
maanden helpt dat niet meer. De muisarm dient zich aan. Net als bij een tennisarm
ontstaan de problemen door overbelasting van spieren en pezen.
Waarom is de muis dan de boosdoener?
1. de muis ligt meestal niet goed op het bureau en gestrekt bedienen levert overbe-
lasting op,
2. verkeerd knijpen in de muis kost te veel kracht,
3. dubbelklikken en positioneren vereisen te veel coordinatie en kracht (slepen!) en
4. de meeste muizen zijn niet ergonomisch ontworpen.
Om een muisarm te voorkomen wordt er onderzoek gedaan aan de krachten, die optreden in
de gewrichten. Hiervoor wordt de positie van de muis gemeten als functie van de tijd. Om de
krachten te kunnen bepalen moeten de optredende snelheden en versnellingen bepaald worden.
Zoals bekend is de snelheid de eerste afgeleide van de verplaatsing naar de tijd en de versnelling
de tweede afgeleide. De vraag is: hoe kunnen we de afgeleide van een functie benaderen als
de functie slechts bekend is in een eindig aantal meetpunten. Bovendien bevatten de waarden
een meetfout. Het eect van de meetfouten op de benaderde snelheden en versnellingen is
van belang. In dit hoofdstuk zullen we aangeven hoe de afgeleiden numeriek bepaald kunnen
worden en wat het eect is van meetfouten.
1
http://www.muisarm.nl/
25
3.2 Eenvoudige dierentieformules voor de eerste afgeleide
Stel f is een continu dierentieerbare functie. De voorwaartse dierentie is gedenieerd door:
f(x +h) f(x)
h
, h > 0 ,
waarbij h de stapgrootte genoemd wordt. Per denitie geldt:
lim
h0
f(x +h) f(x)
h
= f

(x) ,
zodat de voorwaartse dierentie naar de afgeleide convergeert. De afbreekfout wordt gede-
nieerd door:
R
v
(h) = f

(x)
f(x +h) f(x)
h
.
Stelling 3.2.1 Als f C
2
[x, x +h] dan geldt R
v
(h) =
h
2
f

(), met tussen x en x +h.


Bewijs:
Het resultaat volgt eenvoudig uit een Taylorreeks van f(x +h) rond het punt x.
Voorbeeld 3.2.1 (voorwaartse dierentie)
We benaderen de afgeleide van de functie gegeven door f(x) = x
3
+ x
2
+ 2x in het punt
x = 1 met stapgrootte h = 0.5. In Figuur 3.1 zien we dat de benadering van de afgeleide nog
niet zo nauwkeurig is.
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
0.5
1
1.5
2
2.5
3
x x+h
Figuur 3.1: De benadering van de afgeleide (- - -) in x = 1 met een voorwaartse dierentie
( ).
26
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
0.5
1
1.5
2
2.5
3
x x+h xh
Figuur 3.2: De benadering van de afgeleide (- - -) in x = 1 met een centrale dierentie ( ).
Op dezelfde manier kan de achterwaartse dierentie gedenieerd worden:
f(x) f(x h)
h
, h > 0 .
Hiervoor geldt dat de afbreekfout gegeven wordt door R
a
(h) =
h
2
f

() met tussen x en
x h. De nauwkeurigheid is vergelijkbaar met de voorwaartse dierentie.
Merk op dat de fouten een verschillend teken hebben. Dit brengt ons op het idee om de
formules te middelen zodat de fouten tegen elkaar wegvallen (Waarom?). Het resultaat van
de middeling staat bekend als de centrale dierentie:
f(x +h) f(x h)
2h
.
In Figuur 3.2 zien we dat dit inderdaad een betere benadering geeft. Als de derde afgeleide
van f bestaat dan wordt de afbreekfout in de centrale dierentie:
R
2
(h) = f

(x)
f(x +h) f(x h)
2h
,
gegeven door
R
2
(h) =
h
2
6
f

() ,
met tussen xh en x+h. Om dit te bewijzen ontwikkelen we f in x in een Taylorpolynoom
met restterm en gebruiken we de tussenwaardestelling. Merk op dat de fout in de centrale
dierentie benadering veel sneller naar nul gaat als functie van h dan bij de voorwaartse
formule.
27
Voorbeeld 3.2.2 (afrondfouten)
We gaan de afgeleide van de functie e
x
benaderen in het punt x = 1. De afgeleide is gelijk
aan e = 2.71828.... We berekenen de afgeleide met de centrale dierentie formule en rekenen
met 6 cijfers. De gebruikte getallen staan in Tabel 3.1 en de benaderingen in Tabel 3.2. Voor
x exp(x)
0.8000 2.22554
0.9000 2.45960
0.9900 2.69123
0.9990 2.71556
0.9999 2.71801
1.0000 2.71828
1.0001 2.71855
1.0010 2.72100
1.0100 2.74560
1.1000 3.00416
1.2000 3.32011
Tabel 3.1: De gebruikte waarden
h benadering fout
0.2000 2.7364 -0.01814
0.1000 2.7228 -0.00451
0.0100 2.7185 -0.00021
0.0010 2.7200 -0.00171
0.0001 2.6999 0.01828
Tabel 3.2: De resultaten met de centrale dif-
ferentie formule
dalende h wordt de benadering eerst beter, maar daarna verslechtert hij. Deze verslechtering
wordt veroorzaakt door afrondfouten. We werken dit uit voor:

f(1.001)

f(0.999) = 2.72100 2.71556 = 0.00564 .
De functiewaarden zijn belast met afrondfouten. De absolute waarde van deze fouten is
hoogstens 5 10
6
. De relatieve fouten zijn dan hoogstens 5 10
6
/2.7 2 10
6
. Een
bovengrens voor de absolute fout in bovenstaand verschil is 10 10
6
, hetgeen een relatieve
fout in het verschil veroorzaakt van
10
5
/0.00564 2 10
3
.
Deze fout is 1000 maal zo groot als de maximale relatieve fout in de functiewaarden. Dit
eect wordt sterker naar mate h kleiner wordt.
Het bovenstaande voorbeeld laat zien dat de te bereiken nauwkeurigheid voor de bepaling van
de afgeleide met een dierentieformule begrensd is. We zullen dit voor de centrale dierentie
verder analyseren. Door het verkleinen van de stapgrotte h zal de fout R
2
(h) kleiner worden,
echter de bovengrens S
2
(h) van de fout tengevolge van afrondfouten zal toenemen. Er is dus
een optimale waarde van h waarbij de totale fout [R
2
(h)[ +S
2
(h) het kleinst is. Deze waarde
van h is onbekend maar men kan wel een benadering hiervoor vinden.
Stel dat de functiewaarden een afrondfout bevatten van hoogstens . Dit levert een bovengrens
voor de fout S
2
(h) =

h
(waarom?) in de numerieke benadering van f

(1). De totale fout


wordt dus gemajoreerd door de grootheid (h), die gegeven wordt door:
(h) =

h
+
h
2
6
m ,
28
waarbij m een bovengrens is voor [f

(x)[ op een voldoend grote omgeving van 1. De functie


heeft een minimum
3
_
9
8

2
m voor h
opt
=
3
_
3
m
(leid dit zelf af). Voor ons voorbeeld
staat (h), S
2
(h) en [R
2
(h)[ getekend in Figuur 3.3. Voor m = e volgt h
opt
= 0.017 en
(h
opt
) = 0.00043. Merk op dat de fout in de buurt van h
opt
niet veel varieert, zodat een
stapgrootte in de buurt van h
opt
tot een vergelijkbare nauwkeurigheid al leiden.
Opmerkingen
1. Als de benadering van de afgeleide niet nauwkeurig genoeg is dan zijn er twee mogelijke
aanpakken om dit te verbeteren:
- de afrond- of meetfout in de functiewaarden verkleinen,
- overgang op een hogere orde dierentieformule. In dit geval is de afbreekfout R(h)
vaak kleiner dan bij een lage orde formule voor grotere waarden van h. Voor grote
h neemt het eect van afrondfouten af.
2. Vaak worden dierentieformules gebruikt voor het oplossen van dierentiaalvergelijking-
en. In dit geval wil men niet de afgeleide nauwkeurig bepalen maar de oplossing. Het
gedrag ten opzichte van afrondfouten is dan meestal gunstiger.
3. Het eect van afrondfouten is het grootst als de fout in de functiewaarden groot is. Dit
is vaak het geval bij metingen zoals aan de muis. In het geval van een door de com-
puter gegenereerde tabel is de afrondfout meestal een stuk kleiner dan bij meetfouten.
Desalniettemin voor kleine h is hij altijd merkbaar.
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
0
1
2
3
4
5
6
x 10
3
Figuur 3.3: De graek van de totale fout (), de afbreekfout [R
2
(h)[() en de afrondfout
S
2
(h) (- - -).
29
3.3 Algemene formules voor de eerste afgeleide
De dierentieformules gegeven in de vorige paragraaf zijn op een ad-hoc manier gentroduceerd.
In een aantal toepassingen is het nodig om dierentieformules te gebruiken met een hogere
nauwkeurigheid (denk aan afrondfouten) of met roosterpunten, die niet equidistant verdeeld
zijn. In deze paragraaf zullen we een methode presenteren om dierentieformules af te leiden.
Stel er zijn n+1 verschillende roosterpunten x
0
, ..., x
n
gegeven. Gevraagd: bepaal de coecien-
ten
i
zodanig dat de orde (k) van de fout:
[f

(x) Q(h)[ = O(h


k
)
maximaal is. Hierbij wordt Q(h) gegeven door:
Q(h) =
n

i=0

i
f
i
, waarbij f
i
= f(x
i
) .
De aanpak gaat als volgt: ontwikkel elke f
i
in een Taylorpolynoom van voldoend hoge graad
met x als steunpunt. Bepaal
0
, ...,
n
zodanig dat de orde van de fout maximaal is. We
zullen twee voorbeelden uitwerken:
Centrale dierentie
In dit voorbeeld kiezen we x
1
= x h, x
0
= x en x
1
= x +h. Taylorontwikkeling geeft:
f(x +h) = f(x) +hf

(x) +
h
2
2
f

(x) +
h
3
3!
f

(x) +O(h
4
)
f(x) = f(x)
f(x h) = f(x) hf

(x) +
h
2
2
f

(x)
h
3
3!
f

(x) +O(h
4
)
De voorwaarden voor
1
,
0
en
1
zijn nu:
f(x) :
1
+
0
+
1
= 0 ,
f

(x) : h
1
+ h
1
= 1 ,
f

(x) : h
2

1
+ h
2

1
= 0 .
Oplossing van dit stelsel geeft
1
=
1
2h
,
0
= 0 en
1
=
1
2h
waarmee we de reeds bekende
formule:
Q(h) =
f(x +h) f(x h)
2h
verkrijgen. Merk op dat de fout bij deze formule O(h
2
) is.
Eenzijdige dierentieformule van de orde 2
Stel dat de afgeleide gewenst is aan de rand van je meetgebied. Bovendien is een orde 2 van de
afbreekfout gewenst. Kies x
0
= x, x
1
= x+h en x
2
= x+2h en bepaal de Taylorontwikkeling.
f(x) = f(x) ,
f(x +h) = f(x) +hf

(x) +
h
2
2
f

(x) +O(h
3
) ,
f(x + 2h) = f(x) + 2hf

(x) + 2h
2
f

(x) +O(h
3
) .
30
We verkrijgen nu de volgende voorwaarden:
f(x) :
0
+
1
+
2
= 0 ,
f

(x) : h
1
+ h
2
= 1 ,
f

(x) :
h
2
2

1
+ 2h
2

2
= 0 .
Oplossing van dit stelsel geeft
0
=
3
2h
,
1
=
2
h
en
2
=
1
2h
. De afbreekfout van de verkregen
eenzijdige dierentieformule
Q(h) =
3f(x) + 4f(x +h) f(x + 2h)
2h
(3.1)
is O(h
2
).
3.4 Relatie tussen dierentieformules en interpolatie
In paragraaf 3.3 hebben we een algemene manier besproken om dierentieformules af te leiden.
Echter een duidelijk nadeel is dat we een stelsel vergelijkingen moeten oplossen waarbij het
aantal onbekenden toeneemt naarmate de orde van nauwkeurigheid toeneemt.
In deze paragraaf zullen we een totaal andere aanpak volgen. In paragraaf functiewaarden
met steunpunten behandeld. Dit interpolatiepolynoom kan natuurlijk ook gezien worden als
een benadering van de oorspronkelijke functie. Het lijkt dus voor de hand te liggen, dat
de afgeleide van het interpolatiepolynoom ook een benadering vormt voor de afgeleide van
de functie. Vanuit deze redenering zullen we op een alternatieve wijze dierentieformules
aeiden.
We herhalen de formule voor Lagrange interpolatie. Veronderstel dat x
0
, x
1
, ..., x
n
verschillend
zijn en f C
n+1
[a, b]. Dan geldt:
f(x) =
n

k=0
f(x
k
)L
kn
(x) + (x x
0
)...(x x
n
)
f
n+1
((x))
(n + 1)!
,
waarbij (x) [a, b]. Dierentieren van deze uitdrukking geeft:
f

(x) =
n

k=0
f(x
k
)L

kn
(x) +
d
dx
[(x x
0
)...(x x
n
)]
f
n+1
((x))
(n + 1)!
+(x x
0
)...(x x
n
)
d
dx
f
n+1
((x))
(n + 1)!
De foutschatting is nu een gecompliceerde uitdrukking tenzij x gelijk genomen wordt aan een
van de steunpunten. Voor x = x
j
wordt de formule voor de afgeleide:
f

(x
j
) =
n

k=0
f(x
k
)L

kn
(x
j
) +
n

k=0
k=j
(x
j
x
k
)
f
n+1
((x))
(n + 1)!
.
Voorbeeld 3.4.1 (voorwaartse dierentie)
31
Voor n = 1, x = x
0
en x
1
= x
0
+h geldt:
L
01
(x) =
xx
1
x
0
x
1
, L

01
(x) =
1
h
,
L
11
(x) =
xx
0
x
1
x
0
, L

11
(x) =
1
h
.
De formule is dan: f

(x
0
) =
1
h
f(x
0
) +
1
h
f(x
0
+h) +
h
2
f

(). Dit is precies de formule voor


de voorwaartse dierentie.
3.5 Dierentieformules voor hogere afgeleiden
In de inleiding hebben we een voorbeeld gezien waarbij het bepalen van de snelheid en de
versnelling uit gemeten plaatswaarden nodig is. De versnelling is gelijk aan de tweede afgeleide
van de plaats naar de tijd.
Hogere afgeleiden kunnen benaderd worden op dezelfde manier als de methoden waarmee de
eerste afgeleide benaderd is. We beperken ons hier tot het bepalen van de tweede afgeleide
door herhaald toepassen van de formules voor de eerste afgeleide. Voor de numerieke bepaling
van de 2e afgeleide hebben we minimaal 3 punten nodig (waarom?). Stel we willen de 2e
afgeleide benaderen met 3 punten, die op een equidistante afstand liggen:
x - h x x + h
x - h
1
2
1
2
x + h
Het ligt voor de hand om de 2e afgeleide te benaderen door het verschil te nemen van de eerste
afgeleide in de punten x+h en xh. Echter bij toepassing van centrale dierenties betekent
dit, dat wij de functie ook in x + 2h en x 2h nodig hebben. We kunnen dit ondervangen
door de hulppunten x
1
2
h in te voeren. Centrale dierentie geeft:
f

(x +
1
2
h) f

(x
1
2
h)
h
als benadering van f

(x). Op de beide eerste orde afgeleiden passen we opnieuw een centrale


dierentie toe:
1
h
(
f(x +h) f(x)
h

f(x) f(x h)
h
) .
Vereenvoudiging van deze formule geeft:
Q(h) =
f(x +h) 2f(x) +f(x h)
h
2
.
Met behulp van Taylorpolynomen volgt voor de afbreekfout:
f

(x) Q(h) =
h
2
12
f
(4)
() .
Merk op dat het eect van afrondfouten nu nog ernstiger is. Een bovengrens voor de fout ten
gevolge van afrondfouten is:
S(h) =
4
h
2
.
32
Voor het oplossen van dierentiaalvergelijkingen is het soms nodig om een benadering te
vinden voor (pf

waarbij p een gegeven functie is. Analoog aan bovenstaande kunnen we


de volgende benadering van (pf

opschrijven:
(pf)

(x +
1
2
h) (pf)

(x
1
2
h)
h
.
Opnieuw toepassen van centrale dierenties geeft:
p(x +
1
2
h)(f(x +h) f(x)) p(x
1
2
h)(f(x) f(x h))
h
2
.
3.6 Richardsons extrapolatie
3.6.1 Inleiding
In paragraaf 3.2 is aangetoond dat de fout in de voorwaartse dierentiebenadering afhangt
van f

. Meestal is f

onbekend zodat de gegeven foutschatting onbruikbaar is in de praktijk.


Richardsons extrapolatie kan gebruikt worden om een schatting te geven van de gemaakte
fout. Daarnaast kan de extrapolatie gebruikt worden om met een lagere orde methode een
hogere nauwkeurigheid te halen. Deze extrapolatie kan gebruikt worden als de vorm van de
fout bekend is. Stel de formule N(h) is bedoeld om een onbekende waarde M te benaderen.
Neem aan dat de fout in deze benadering de vorm
M N(h) = K
1
h

1
+K
2
h

2
+.... (3.2)
heeft, waarbij K
i
IR ongelijk aan nul is en voor
i
IN geldt: 0
1
<
2
.....
In deze paragraaf zal Richardsons extrapolatie toegepast worden op dierentieformules, ech-
ter de methode kan ook voor andere benaderingsmethoden (interpolatie, numerieke integratie
etc) gebruikt worden, zolang de fout van de vorm (3.2) is.
Als voorbeeld van het gebruik van Richardsons extrapolatie zullen we in paragraaf 3.6.2 een
foutschatting geven als de
i
onbekend zijn. Daarna zullen we in paragraaf 3.6.3 laten zien
hoe we een hogere nauwkeurigheid kunnen verkrijgen als de
i
bekend zijn. Natuurlijk kan
in beide toepassingen Richardsons extrapolatie gebruikt worden zowel als de
i
bekend, of
als de
i
onbekend zijn.
3.6.2 Schatting van de fout in de praktijk
In de voorgaande paragraven is er vaak een uitdrukking gegeven voor de fout in de dierentie-
formules. Deze uitdrukking bevat vaak een hogere afgeleide van de functie. Echter als we de
eerste afgeleide niet weten, hoe zouden we dan een hogere afgeleide kunnen bepalen? Kortom
de gegeven schattingen zijn vaak theoretisch van belang, maar in de praktijk onbruikbaar.
We zullen daarom een bruikbare methode geven met behulp van Richardsons extrapolatie.
Voor h klein genoeg kunnen we (3.2) benaderen door
M N(h) = Kh

. (3.3)
33
Voor een gegeven h kunnen we N(h) uitrekenen zodat (3.3) nog 3 onbekenden bevat: M, K
en . Het idee is nu om N(h), N(
h
2
) en N(
h
4
) te bepalen. Dit geeft 3 vergelijkingen met 3
onbekenden:
M N(h) = Kh

,
M N(
h
2
) = K(
h
2
)

,
M N(
h
4
) = K(
h
4
)

(3.4)
Door de vergelijkingen van elkaar af te trekken houden we 2 onbekenden over:
N(
h
2
) N(h) = Kh

(1 (
1
2
)

) ,
N(
h
4
) N(
h
2
) = K(
h
2
)

(1 (
1
2
)

) . (3.5)
Het delen van deze uitdrukkingen geeft:
N(
h
2
) N(h)
N(
h
4
) N(
h
2
)
= 2

. (3.6)
Hieruit kan bepaald worden. Invullen van in (3.5) geeft een benadering voor K. Beide
constanten invullen in (3.4) geeft een schatting voor de fout M N(
h
4
).
Voorbeeld 3.6.1 (praktische foutschatting)
Stel we benaderen de afgeleide van e
x
in het
punt 1 met behulp van de voorwaartse dif-
ferentie. Het exacte antwoord is: M = e =
2.71828. De resultaten voor h = 0.1,
h
2
en
h
4
staan in Tabel 3.3.
h Q
h
0.1 2.8588
0.05 2.7874
0.025 2.7525
Tabel 3.3: De eerste orde afgeleide van e
x
met
de voorwaartse dierentie
Als we deze resultaten invullen in (3.6) dan krijgen we
2.7874 2.8588
2.7525 2.7874
= 2.0458 .
Zoals verwacht is de waarde van bijna gelijk aan 1. Hiermee kunnen we K bepalen uit
(3.5):
K =
2.7525 2.7874
0.05(1
1
2
)
= 1.3936 .
De foutschatting is nu K
h
4
= 0.0348 terwijl de echte fout gelijk is aan:
e N(
h
4
) = 0.0343 .
34
In dit voorbeeld is de foutschatting heel betrouwbaar.
Om een betere benadering te vinden zou de foutschatting opgeteld kunnen worden bij de
benadering:
N(
h
4
) +K
h
4
= 2.7177 .
Dit is inderdaad een hele goede benadering echter we kunnen hiervoor nu geen foutschatting
meer geven.
De vraag zou kunnen zijn: waarom gaan we in bovenstaand voorbeeld niet uit van = 1; dit
volgt immers uit de analyse? Inderdaad als de functie voldoende glad is dan geldt = 1 en zou
niet bepaald behoeven te worden. Echter in de praktijk hebben we vaak een ingewikkelder
situatie. De volgende complicaties kunnen zich voordoen:
- Het is onbekend of hogere afgeleiden bestaan en/of begrensd zijn.
- Het uiteindelijke antwoord is een combinatie van verschillende benaderingsmethoden.
De invloed van deze benaderingen op is niet altijd duidelijk.
- Tijdens het implementeren van het algoritme in een computerprogramma zijn fouten
gemaakt.
Ten gevolge van deze complicaties is het in de praktijk goed om te controleren of de berekende
overeenstemt met de die volgt uit de theorie.
3.6.3 Nauwkeuriger formules via Richardsons extrapolatie

In een aantal toepassingen zijn de waarde van
i
in (3.2) bekend. We kunnen Richardsons
extrapolatie dan gebruiken om nauwkeuriger formules te bepalen. Als voorbeeld zullen we de
voorwaartse dierentie beschouwen. De fout in de voorwaartse dierentieformule blijkt door
gebruik van hogere orde Taylorpolynomen geschreven te kunnen worden als:
f

(x) Q
v
(h) = K
1
h +K
2
h
2
+... . (3.7)
Als we de dierentie ook uitrekenen voor
h
2
dan geldt:
f

(x) Q
v
(
h
2
) = K
1
h
2
+K
2
(
h
2
)
2
+... . (3.8)
Als we nu (3.8) met 2 vermenigvuldigen en (3.7) hier van aftrekken dan geldt:
f

(x) (2Q
v
(
h
2
) Q
v
(h) =
1
2
K
2
h
2
+... .
Hieruit volgt dat de dierentieformule
2Q
v
(
h
2
) Q
v
(h) =
2f(x +
h
2
) f(x)
h
2

f(x +h) f(x)


h
=
3f(x) + 4f(x +
h
2
) f(x +h)
h
,
een afbreekfout O(h
2
) heeft. Deze formule is gelijk aan (3.1) met h/2 in plaats van h.
35
3.7 Samenvatting
In dit hoofdstuk zijn de volgende begrippen behandeld:
- dierentie methode voor de eerste afgeleide
- het eect van meetfouten
- dierentie methode voor hogere afgeleiden
- Richardsons extrapolatie
- foutschatting in de praktijk.
- verhogen nauwkeurigheid
36
3.8 Opgaven
1. Bewijs voor f C
3
[x h, x +h], dat de afbreekfout bij centrale dierenties O(h
2
) is.
2. Stel dat de positie van een schip bepaald kan worden met een meetfout van hoogstens
10 meter. Verder veronderstellen we dat de werkelijke plaats van het schip tijdens het
op gang komen geven wordt door de functie S(t) = 0.5at
2
, waarbij S in meters en
t in seconden uitgedrukt wordt. De snelheid wordt benaderd met een achterwaartse
dierentie met stapgrootte h. Geef de afbreekfout en de meetfout in deze formule.
Als a = 0.004 bepaal dan de waarde van h waarvoor de fout in de bepaalde snelheid
minimaal is. Hoe groot is de fout?
3. Gegeven f(x), f(x+h) en f(x+2h). Bepaal een formule om f

(x) te benaderen waarbij


de fout minimaal is.
4. Gegeven de functie f(x) = sinx, x [0, ]. Bepaal f

(1) met behulp van een centrale


dierentie voor h = 0.1. Geef een schatting van de fout via Richardson s foutschatting.
37
Hoofdstuk 4
Niet-lineaire vergelijkingen
4.1 Inleiding
In dit hoofdstuk geven we numerieke methoden voor het bepalen van x, die voldoet aan de
niet-lineaire vergelijking f(x) = 0.
Als voorbeeld nemen we de drukval in een stromende vloeistof. Bij lage stroomsnelheden is
de stroming laminair terwijl bij hoge snelheden de stroming turbulent genoemd wordt. Het
Reynoldsgetal kan gebruikt worden om te zien of een stroming turbulent is. Voor een stroming
in een ronde pijp met diameter D(m) wordt het Reynoldsgetal gegeven door
Re =
Dv

,
waarbij v (m/s) de gemiddelde vloeistofsnelheid is en (m
2
/s) de viscositeit is van de vloei-
stof. Als het Reynoldsgetal kleiner is dan 2100 dan is de stroming laminair, terwijl als
Re 3000 dan is er een turbulente stroming.
Voor een turbulente stroming wordt het drukverschil tussen de uit- en inlaat gegeven door
P
uit
P
in
=
wLv
2
2gD
,
hierbij is w de wrijvingsfactor, (kg/m
3
) is de soortelijke dichtheid, L (m) is de lengte en
g (m/s
2
) is de valversnelling. Als de vloeistof deeltjes bevat (zand, papiervezels) dan voldoet
de wrijvingsfaktor w aan de vergelijking:
1

w
=
ln(Re

w) + 14
5.6
k
k
,
waarbij k een parameter is, die bekend is uit experimenten.
In dit hoofdstuk zullen methoden behandeld worden om w te bepalen uit deze vergelijking,
als de waarden van Re en k gegeven zijn.
4.2 Een eenvoudige nulpuntsmethode
Bisectie
De eerste methode, de Bisectie methode, is gebaseerd op de tussenwaarde stelling 1.6.1. Stel f
38
is een continue functie gedenieerd op een interval [a, b] waarbij f(a) en f(b) een tegengesteld
teken hebben. Volgens de tussenwaarde stelling bestaat er een getal p in (a, b) waar f(p) = 0.
We nemen aan dat er slechts een zon p is. In de methode wordt het interval steeds gehalveerd
waarbij in elke stap het interval gekozen wordt waar p in ligt.
We starten de methode met a
1
= a en b
1
= b en nemen voor p
1
het gemiddelde van a
1
en b
1
:
p
1
=
1
2
(a
1
+b
1
) .
Als f(p
1
) = 0 dan zijn we klaar, anders heeft f(p
1
) hetzelfde teken als f(a
1
) of f(b
1
). Als
f(p
1
)f(a
1
) > 0 dan nemen we a
2
= p
1
en b
2
= b
1
anders a
2
= a
1
en b
2
= p
1
. Daarna herhalen
we de procedure met het interval [a
2
, b
2
].
Stopcriterium
De Bisectie methode is een iteratieve methode. Dat betekent dat een gebruiker op moet geven
wanneer de methode moet stoppen. De volgende stopcriteria kunnen gebruikt worden
[p
n
p
n1
[
[p
n
[
,
of
[f(p
n
)[ < .
Convergentie
De Bisectie methode kan traag convergeren. Het kan ook gebeuren dat [p
i1
p[ [p
i
p[.
Een groot voordeel is dat de methode altijd convergeert naar een oplossing. De Bisectie
methode wordt vaak gebruikt om een goede startoplossing te genereren voor ecientere me-
thoden, die later in dit hoofdstuk behandeld zullen worden.
Stelling 4.2.1 Stel f C[a, b] en f(a) f(b) < 0, dan genereert de Bisectie methode een rij
p
n
die convergeert naar een nulpunt p van f waarbij
[p
n
p[
b a
2
n
, n 1 .
Bewijs:
Voor elke n 1 hebben we b
n
a
n
=
1
2
n1
(b a) en p (a
n
, b
n
). Omdat p
n
=
1
2
(a
n
+ b
n
)
volgt
[p
n
p[
1
2
(b
n
a
n
) =
b a
2
n
.

Afrondfouten
Als van een functie f de berekende waarden

f een afrondfout hebben dan kan men niet het
echte nulpunt p bepalen, immers elk punt van de verzameling
I = x [a, b] [ [f(x)[ <
zou het (of een) nulpunt van f kunnen zijn. Een dergelijk interval noemt men een onbetrouw-
baarheidsinterval. Het heeft bijvoorbeeld geen zin om als stopcriterium
[f(p
n
)[ <
39
te nemen als < gekozen is. Grote kans dat het algoritme dan altijd blijft itereren. Met
behulp van het Taylorpolynoom blijkt dat als p een enkelvoudig nulpunt is van f en f

(p) ,= 0
dan is I ongeveer gelijk aan
I [p

[f

(p)[
, p +

[f

(p)[
] .
Merk op dat als [f

(p)[ dicht bij 0 ligt, het bepalen van p een slecht gesteld probleem is.
4.3 Vaste punt iteratie
Een vast punt van een gegeven functie g is een getal p zodanig dat g(p) = p. In deze paragraaf
beschouwen we het vinden van oplossing voor een vast punt probleem en het verband tussen
deze problemen en het vinden van nulpunten.
Het vinden van een nulpunt en vast punt problemen zijn als volgt gerelateerd: als we het
nulpunt p zoeken zodat f(p) = 0, dan kunnen we een niet unieke functie g denieren als
g(x) = x f(x) of g(x) = x +
_
f(x). Aan de andere kant als g een vast punt heeft in p, dan
heeft de functie gedenieerd door f(x) = x g(x) een nulpunt in p.
In de volgende stelling geven we voldoende voorwaarden voor de existentie en eenduidigheid
van een vast punt.
Stelling 4.3.1 1. Als g C[a, b] en g(x) [a, b] voor alle x [a, b] dan heeft g een vast
punt in [a, b].
2. Als bovendien g

(x) bestaat voor x [a, b] en er is een positieve constante k < 1 zodanig


dat
[g

(x)[ k voor alle x [a, b] ,


dan is het vaste punt in [a, b] uniek.
Bewijs:
1. Als g(a) = a of g(b) = b dan heeft g een vast punt in een eindpunt. Anders geldt
g(a) > a en g(b) < b. De functie h(x) = g(x) x is continu op [a, b] en h(a) > 0 en
h(b) < 0. Uit de tussenwaarde stelling 1.6.1 volgt er is een p zodat h(p) = 0, dus p is
een vast punt van g.
2. Stel [g

(x)[ k < 1 en er zijn twee vaste punten p en q waarbij p < q. Uit de


middelwaardestelling volgt er is een [p, q] zodat
g(p) g(q)
p q
= g

() .
Dan volgt
[p q[ = [g(p) g(q)[ = [g

()[[p q[ < [p q[ ,
dit is een tegespraak, dus p = q en het vaste punt is uniek.
40
Om een vast punt van een functie g te benaderen, kiezen we een startwaarde p
0
en bepalen p
n
door middel van p
n
= g(p
n1
) voor n 1. Als de rij convergeert naar p en g is een continue
functie dan geldt
p = lim
n
p
n
= lim
n
g(p
n1
) = g( lim
n
p
n1
) = g(p) ,
zodat p een vast punt is van g. Dit noemen we de vaste punt (of Picard) iteratie.
Voorbeeld
Voor het bepalen van het nulpunt van de functie f(x) = x
3
+ 3x 4, gebruiken we de
hulpfunctie:
g(x) =
4
x
2
+ 3
in onze vaste punt methode. Deze functie is bepaald via de volgende stappen:
f(x) = 0, x
3
+ 3x 4 = 0
x
3
+ 3x = 4 x(x
2
+ 3) = 4 x =
4
x
2
+ 3
In Figuur 4.1 staat het iteratieproces getekend, waarbij gestart is met x
0
= 0.
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
p
0
g(p
0
)
p
1
g(p
1
)
p
2
g(p
2
)
p
3
g(p
3
)
h
g
Figuur 4.1: Grasche voorstelling van de vaste punt methode
Convergentie van de methode volgt uit de Vaste Punt Stelling.
Stelling 4.3.2 Stel g C[a, b], g(x) [a, b], als x [a, b] en [g

(x)[ k < 1 voor x [a, b].


Dan geldt dat de vaste punt iteratie convergeert naar p voor elke waarde p
0
[a, b].
41
Bewijs:
Onder de gegeven voorwaarden heeft g een uniek vast punt p. Uit de middelwaarde stelling
volgt:
[p
n
p[ = [g(p
n1
) g(p)[ = [g

()[[p
n1
p[ k[p
n1
p[ .
Met inductie volgt
lim
n
[p
n
p[ lim
n
k
n
[p
0
p[ = 0 ,
dus p
n
convergeert naar p.
De bovenstaande stelling kan ook gebruik worden om een goed stopcriterium te geven.
Merk op dat voor m > n 1 geldt
[p
m
p
n
[ = [p
m
p
m1
+p
m1
+... +p
n+1
p
n
[
[p
m
p
m1
[ +[p
m1
p
m2
[ +... +[p
n+1
p
n
[
k
mn
[p
n
p
n1
[ +... +k[p
n
p
n1
[
= (k +... +k
mn
)[p
n
p
n1
[ .
Omdat lim
m
p
m
= p geldt
[p p
n
[ = lim
m
[p
m
p
n
[ k

i=0
k
i
[p
n
p
n1
[ =
k
1 k
[p
n
p
n1
[ .
Dit betekend dat als we stoppen wanneer
[p
n
p
n1
[
1 k
k
,
dan geldt [p p
n
[ .
4.4 De Newton-Raphson methode
De Newton-Raphson methode is een van de krachtigste en bekendste numerieke methoden
voor het oplossen van een niet-lineaire vergelijking f(x) = 0. We zullen de methode uitleggen
aan de hand van een Taylorpolynoom.
Veronderstel f C
2
[a, b]. Laat x [a, b] een benadering zijn van de oplossing p zodanig dat
f

( x) ,= 0 en veronderstel dat [ x p[ klein is. Beschouw het eerste graads Taylorpolynoom:


f(x) = f( x) + (x x)f

( x) +
(x x)
2
2
f

((x)) ,
waarbij (x) (x, x). Omdat f(p) = 0 geldt
0 = f( x) + (p x)f

( x) +
(p x)
2
2
f

((x)) .
Omdat we aangenomen hebben dat [p x[ klein is geldt:
0 f( x) + (p x)f

( x) .
42
Als we hieruit p oplossen krijgen we
p x
f( x)
f

( x)
.
Dit motiveert de Newton-Raphson methode, die start met een beginbenadering p
0
en een rij
p
n
genereert volgens
p
n
= p
n1

f(p
n1
)
f

(p
n1
)
, voor n 1 .
Voorbeeld
Stel we willen het positieve nulpunt bepalen van de functie f(x) = x
2
2. Het exacte antwoord
is p =

2 = 1.41421. We nemen als startpunt p


0
= 1. De vergelijking van de raaklijn is nu
h(x) = 1 + 2(x 1).
De nieuwe benadering van het nulpunt p
1
is nu:
p
1
= 1
1
2
= 1.5.
Zo doorgaande vinden we:
p
1
= 1.50000
p
2
= 1.41666
p
3
= 1.41421
Hieruit blijkt dat de oplossing al na 3 stappen gevonden is. De procedure voor de eerste
iteratie staat uitgelegd in Figuur 4.2.
1 0 1 2
1
1
2
2
p
0
f(p
0
)
p
1
f(x) = x
2
2
raaklijn
Figuur 4.2: De Newton-Raphson methode
We kunnen dezelfde stopcriteria gebruiken als bij de bisectie methode:
[p
n
p
n1
[
[p
n
[
< of [f(p
n
)[ < .
43
In de stelling hierna geven we het verband tussen de Newton-Raphson iteratie en een vaste
punt methode.
Stelling 4.4.1 Laat f C
2
[a, b]. Als p [a, b] zodat f(p) = 0 en f

(p) ,= 0 dan is er een


> 0 zodanig dat Newtons methode een rij p
n
genereert, die naar p convergeert voor elke
p
0
[p , p +].
Bewijs:
Beschouw Newtons methode als de vaste punt iteratie p
n
= g(p
n1
) met
g(x) = x
f(x)
f

(x)
.
We proberen eerst een interval [p, p+] te vinden zodat [g

(x)[ k < 1 voor (p, p+).


Omdat f

(p) ,= 0 en f

continu is bestaat er een


1
> 0 zodat f

(x) ,= 0 voor x [p
1
, p+
1
].
Dus g is gedenieerd en continu op [p
1
, p +
1
]. Bovendien geldt
g

(x) = 1
(f

(x))
2
f(x)f

(x)
(f

(x))
2
=
f(x)f

(x)
(f

(x))
2
.
Omdat f C
2
[a, b] is g(x) C
1
[p
1
, p +
1
]. Merk op dat g

(p) = 0 omdat f(p) = 0. Daar


g

continu is, bestaat er een <


1
zodat
[g

(x)[ k < 1 voor alle x [p , p +] .


Als laatste moeten we laten zien dat g : [p , p +] [p , p +]. Uit de middelwaarde-
stelling volgt
[g(x) g(p)[ = [g

()[[x p[ voor tussen x en p .


Omdat x [p , p +] geldt [x p[ < en dus
[g(x) g(p)[ = [g(x) p[ < [x p[ < .
Hiermee is de stelling bewezen.
Om een goede vergelijking van convergentie mogelijk te maken voeren we de volgende denitie
in.
Denitie
Stel p
n

n=0
is een rij die convergeert naar p, met p
n
,= p voor alle n.
Als er positieve constantes en bestaan met
lim
n
[p
n+1
p[
[p
n
p[

= , (4.1)
dan convergeert p
n
naar p met orde en asymptotische constante .
In het algemeen convergeert een hogere orde methode sneller dan een lagere orde methode. De
waarde van de asymptotische constante is minder belangrijk. Twee gevallen zijn belangrijk
- als = 1 dan noemen we het proces lineair convergent,
44
- als = 2 dan noemen we het proces kwadratisch convergent.
Het is eenvoudig om in te zien dat elke convergerende vaste punt methode tenminste lineair
convergent is.
Voor Newton Raphson merken we op
0 = f(p) = f(p
n
) + (p p
n
)f

(p
n
) +
(p p
n
)
2
2
f

(
n
) ,
n
(p
n
, p) .
Volgens de denitie geldt
0 = f(p
n
) + (p
n+1
p
n
)f

(p
n
) .
Aftrekken geeft
p
n+1
p = (p
n
p)
2
f

()
2f

(p
n
)
.
Dit is inderdaad van de gedaante (4.1) met = 2 en =
f

(p)
2f

(p)
, zodat Newton Raphson
kwadratisch convergent is.
Er zijn allerlei varianten op de Newton Raphson methode bekend. We zullen deze alleen
noemen.
Secant methode (Koorden Newton)
Vervang f

(p
n1
) door
f(p
n1
)f(p
n2
)
p
n1
p
n2
. Voordeel hiervan is dat f

niet bepaald behoeft te


worden.
Regula Falsi methode
Stel er zijn twee benaderingen gegeven p
0
en p
1
zodanig dat f(p
0
) f(p
1
) < 0. Het schema
om p te benaderen is nu:
stap 1 q
0
= f(p
0
)
q
1
= f(p
1
)
n = 2
stap 2 doe zolang n N
0
stap 3 p = p
1
q
1
(p
1
p
0
)/(q
1
q
0
)
q = f(p)
n = n + 1
stap 4 als q q
1
< 0 dan p
0
= p
1
; q
0
= q
stap 5 p
1
= p
q
1
= q
4.5 Stelsels niet-lineaire vergelijkingen
Een stelsel van niet-lineaire vergelijkingen heeft de vorm
f
1
(x
1
, ..., x
n
) = 0 ,
.
.
.
f
n
(x
1
, ..., x
n
) = 0 .
45
We noteren dit ook als
F(x) = 0 . (4.2)
De Newton-Raphson methode voor (4.2) wordt gegeven door
x
(p)
= x
(p1)
J(x
(p1)
)
1
F(x
(p1)
) .
Hierbij wordt J(x) de Jacobiaan matrix genoemd, die gedenieerd is als:
J(x) =
_
_
_
_
f
1
(x)
x
1
. . .
f
1
(x)
xn
.
.
.
.
.
.
fn(x)
x
1
. . .
fn(x)
xn
_
_
_
_
.
Als het exact uitrekenen van
f
j
x
k
(x) onmogelijk is, dan kunnen we de partiele afgeleiden
vervangen door eindige dierentie benaderingen. Bijvoorbeeld
f
j
x
k
(x)
f
j
(x +e
k
h) f
j
(x)
h
,
waarbij e
k
de k
e
eenheidsvector is. Dit noemen we een quasi-Newton methode.
4.6 Samenvatting
In dit hoofdstuk zijn de volgende begrippen behandeld:
- Bisectie methode
- stopcriteria
- convergentie
- vaste punt iteratie (Picard)
- Newton Raphson
- Secant methode, Regula Falsi methode
- stelsels niet-lineaire vergelijkingen
46
4.7 Opgaven
1. Stel f(x) = 3(x + 1)(x
1
2
)(x 1). Gebruik de Bisectie methode op de volgende
intervallen om p
3
te bepalen: [-2 1.5] en [-1.25 2.5].
2. We beschouwen de vaste punt methoden: p
n
=
20p
n1
+21/p
2
n1
21
en p
n
= p
n1

p
3
n1
21
3p
2
n1
.
Beantwoord voor beide methoden de volgende vragen. Laat zien dat het vaste punt
(21)
1
3
is. Geef een schatting van de convergentie snelheid. Bepaal p
3
met p
0
= 1.
3. We gaan een methode aeiden voor het bepalen van een nulpunt van f gebaseerd op
interpolatie.
(a) Stel er zijn twee startwaarden gegeven p
0
en p
1
. Bepaal het lineaire interpolatie-
polynoom van de functie f.
(b) Neem voor p
2
het punt waar het interpolatiepolynoom de x-as snijdt.
(c) Doe 2 iteraties met de deze methode voor de functie f(x) = x
2
2 met p
0
= 1 en
p
1
= 2.
4. Gegeven de functie f(x) = x cosx, x [0,

2
]. Bepaal met behulp van de Newton-
Raphson methode een benadering van de oplossing met een fout kleiner dan 10
4
.
5. Doe twee iteraties met de Newton-Raphson methode met startvector (1, 1) om het
volgende niet-lineaire stelsel op te lossen: x
2
1
x
2
3 = 0 en x
1
+ x
2
2
+ 1 = 0 .
Vergelijk de benadering met de exacte oplossing (2, 1).
47
Hoofdstuk 5
Numerieke integratie
5.1 Introduktie
Voor het bepalen van volume, massa, lengte enz. is het nodig om de integraal van een functie
uit te rekenen. Vaak is het onmogelijk om van een integrand de primitieve te vinden. Om
dan toch een antwoord te bepalen wordt er veelal gebruik gemaakt van numerieke integratie.
Als voorbeeld nemen we de productie van een spoiler, die geplaatst wordt op de cabine van
een vrachtwagen (Figuur 5.1). De vorm van de spoiler wordt beschreven door een sinusfunctie
met een periode van 2 meter. De spoiler wordt door walsen verkregen uit een vlakke plaat.
De fabrikant wil weten hoe breed de vlakke plaat moet zijn opdat de horizontale afmeting
van de spoiler 80 cm is. Het antwoord hierop is de booglengte van de kromme gegeven door
x(t) = t 0 t 0.8 .
y(t) = sint
Voor het bepalen van de booglengte kunnen we gebruik maken van de formule
l =
0.8
_
0

1 +
_
dy
dt
_
2
dt =
0.8
_
0
_
1 + (cos t)
2
dt .
Deze integraal is niet eenvoudig te bepalen. We zullen in dit hoofdstuk laten zien hoe de
gezochte lengte bepaald kan worden met behulp van numerieke integratie.
5.2 Eenvoudige numerieke integratieformules
Na een herhaling van de denitie van een integraal zullen we een aantal eenvoudige integra-
tieregels geven. Hiervan zal de benaderingsfout en het eect van afrondfouten onderzocht
worden.
Denitie
Een partitie P van [a, b] is een eindig aantal punten x
k
waarbij a = x
0
< x
1
... < x
n
= b. Een
bijbehorende strooiing T is een verzameling tussenpunten t
k
zodat x
k1
t
k
x
k
. De lengte
van een interval geven we aan met h
k
= x
k
x
k1
en de maaswijdte m(P) = max
1kn
h
k
. De
48
1 2 3 4 5 6
1
0.5
0
0.5
1
1.5
2
2.5
3
Lengte
H
o
o
g
t
e
Numerieke
Integratie B.V.
Figuur 5.1: Vrachtwagen met spoiler op de cabine
Riemannsom voor een functie f die continu is op [a, b] is nu gedeneerd als:
R(f, P, T) =
n

k=1
f(t
k
)h
k
.
Kies een rij verdelingen P
1
, P
2
, ... en bijbehorende strooiingen T
n
zodanig dat m(P
n
) 0 dan
convergeert
R(f, P
n
, T
n
) naar een limiet I =
b
_
a
f(x)dx .
Numerieke integratieregels lijken veel op de Riemannsom. Het belangrijkste verschil is de
gewenste ecientie bij numerieke integratie.
De Rechthoekregel
Neem een equidistante verdeling zodat de knooppunten gegeven worden door: x
k
= a +
kh, k = 0, 1, ..., n met h =
ba
n
. De strooipunten nemen we gelijk aan de linkerknooppunten:
t
k
= x
k1
. De Riemannsom wordt dan gegeven door
I
R
= h[f(a) +f(a +h) +... +f(b h)] .
Stelling 5.2.1 Zij f een dierentieerbare functie op [a, b]. Stel M
1
is het maximum van [f

[
op [a, b] dan geldt:
[
b
_
a
f(x)dx I
R
[
1
2
M
1
(b a)h
49
Bewijs:
We beschouwen eerst het interval [x
k1
, x
k
]. Uit een Taylor ontwikkeling volgt:
f(x) = f(x
k1
) + (x x
k1
)f

((x)) met x
k1
(x) x
k
.
Hieruit volgt:
[
x
k
_
x
k1
[f(x) f(x
k1
)]dx[ M
1
x
k
_
x
k1
(x x
k1
)dx ,
zodat
[
x
k
_
x
k1
f(x)dx hf(x
k1
)[
1
2
M
1
h
2
.
Voor de totale fout geldt dus:
[
b
_
a
f(x)dx I
R
[
n

k=1
[
x
k
_
x
k1
f(x)dx hf(x
k1
)[
1
2
M
1
h
2
n =
1
2
M
1
(b a)h .

Voorbeeld(spoiler)
Voor het voorbeeld genoemd in de introductie willen we de lengte van de vlakke plaat bena-
deren met een fout van 1 cm. Als we de Rechthoekregel toepassen betekent dit dat
1
2
M
1
0.8h 0.01 .
De afgeleide van de integrand f(t) =
_
1 + (cos t)
2
wordt gegeven door:
f

(t) =
cos t sin t
_
1 + (cos t)
2
=

1
2
sin 2t
_
1 + (cos t)
2
.
Hieruit volgt [f

[ M
1

1
2
zodat een stapgrootte h = 0.05 voldoende zou moeten zijn. De
integraal is 1.0759 m in 5 cijfers nauwkeurig. Voor n = 16 geeft de Rechthoekregel 1.0807
zodat de fout inderdaar kleiner is dan 1 cm.
De nauwkeurigheid van de Rechthoekregel is O(h). Hierna wordt een methode gegeven, die
met dezelfde hoeveelheid werk, een nauwkeuriger antwoord geeft.
Midpuntregel
Neem een equidistante verdeling zodat de knooppunten gegeven worden door: x
k
= kh, k =
0, 1, ..., n en h =
ba
n
. De middenpunten
x
k
+x
k1
2
worden als strooipunten gekozen. De
Riemannsom wordt dan gegeven door:
I
m
= h[f(a +
1
2
h) +f(a +
3
2
h) +... +f(b
1
2
h)] .
50
Stelling 5.2.2 Zij f een tweemaal dierentieerbare functie op [a, b]. Stel M
2
is het maximum
van [f

[ op [a, b] dan geldt:


[
b
_
a
f(x)dx I
m
[
1
24
M
2
(b a)h
2
.
Bewijs deze stelling zelf.
(Hint: ontwikkel f rond
x
k
+x
k1
2
in een Taylorpolynoom van de graad 1).
Voorbeeld (spoiler)
In Tabel 5.1 zijn de fouten gegeven voor verschillende waarden van de stapgrootte h. Op
grond van de theorie verwachten we dat de fout bij de rechthoeksregel afneemt met een factor
h rechthoeksregel Midpuntregel
0.8 0.055 0.0117
0.4 0.0336 0.0028
0.2 0.0182 0.00068
0.1 0.0094 0.00017
0.05 0.0048 0.000043
Tabel 5.1: De fout voor verschillende waarden van h.
2 en die bij de Midpuntregel met een factor 4 als h gehalveerd wordt. De resultaten zijn in
overeenstemming met onze verwachtingen.
Ook bij numerieke integratie kunnen meet- en afrondfouten een belangrijke rol spelen. Neem
aan dat de functiewaarden verstoord zijn met een fout :

f(x) = f(x) +(x) .


Als we de integraal benaderen met de Rechthoekregel dan geldt:
[
b
_
a
f(x)dx h
n1

i=0

f(x
i
)[
1
2
M
1
(b a)h +h
n1

k=0
(x
k
) .
Onder de aanname [(x)[
max
volgt:
[
b
_
a
f(x)dx

I
R
[ (
1
2
M
1
h +
max
)(b a) .
Merk op dat het geen zin heeft om h veel kleiner te kiezen dan
2max
M
1
.
Voorbeeld (spoiler)
We hebben de berekening van de lengte van de vlakke plaat opnieuw gedaan met de veronder-
stelling dat er een kleine fabricagefout opgetreden is. Als gevolg daarvan bevat de integrand
een afrondfout (x) = 10
3
. In Figuur 5.2 zien we het eect van de afrondfouten: de totale
fout blijft groter dan 0.810
3
. Verder heeft het geen zin om de stapgrootte kleiner te kiezen
51
10
4
10
3
10
2
10
1
10
0
10
5
10
4
10
3
10
2
10
1
10
0
stapgrootte
f
o
u
t
Met afrondfouten
Zonder afrondfouten
Figuur 5.2: De fout in de bepaling van de lengte van de vlakke plaat.
dan 4
max
= 4 10
3
.
Als laatste kan voor de numerieke bepaling van een integraal I onderscheid gemaakt worden
tussen een goed en een slecht gesteld probleem. Neem aan dat de fout begrensd wordt door
de ongelijkheid
[f(x)

f(x)[ [f(x)[ .
Een bovengrens voor de relatieve fout in het antwoord is nu
[
b
_
a
f(x)dx
b
_
a

f(x)dx[
b
_
a
f(x)dx

b
_
a
[f(x)[dx
b
_
a
f(x)dx
.
Denieer K
I
=
b
R
a
|f(x)|dx
b
R
a
f(x)dx
als het conditiegetal van de integraal I. Als K
I
1 dan is het
numeriek bepalen van I een slecht gesteld probleem.
Voorbeeld (winst/verlies)
De winst of het verlies per dag van een autofabrikant is afhankelijk van het seizoen. In de
winter worden minder autos verkocht dan in de zomer. In de winter zijn de kosten hoger dan
de inkomsten en wordt er dus verlies geleden. We veronderstellen de volgende winstformule
(in miljard $) in het eerste kwartaal:
w
lente
(t) = 0.01 + sin(t

2
) , t [0, 1]
52
en in het derde kwartaal:
w
herfst
(t) = 0.01 + sin(t +

2
) , t [0, 1] .
De totale winst in het eerste kwartaal (W
lente
) is gelijk aan:
W
lente
=
1
_
0
w
lente
(t)dt .
In beide kwartalen bedraagt de winst 0.01 (is 10 miljoen $). Omdat
1
_
0
[w
lente
(t)[dt 0.63
is K
I
= 63 en is het bepalen van de integraal een slecht gesteld probleem. Als we beide
integralen bepalen met de Rechthoekregel krijgen we voor n = 50 de antwoorden:
W
lente
= 0.01 ,
W
herfst
= 0.03 .
De kleine stapgrootte h = 0.02 is niet voldoende klein om de winst correct te bepalen.
5.3 Newton Cotes formules
In deze paragraaf zullen we algemene integratieregels beschrijven. We beginnen met de Tra-
peziumregel en we geven het verband tussen numerieke integratie en interpolatie. Daarna
behandelen we integratieregels die gebaseerd zijn op hogere orde interpolatie. Als een bijzon-
der geval daarvan beschouwen we de Newton Cotes formules.
De Trapeziumregel
Laat a en b twee punten in R zijn, a < b en f een continue functie op [a, b]. Laat p het lineaire
interpolatiepolynoom van f op a en b zijn (zie paragraaf 2.2):
p(x) =
b x
b a
f(a) +
x a
b a
f(b) .
We nemen nu
b
_
a
p(x)dx als benadering voor
b
_
a
f(x)dx:
b
_
a
p(x)dx =
b a
2
(f(a) +f(b)) . (5.1)
Deze benadering heet de Trapeziumregel, omdat (5.1) gelijk is aan het oppervlak van het
trapezium met hoekpunten (a, 0), (b, 0), (b, f(b)) en (a, f(a)). Merk op dat de Trapeziumregel
ook aan de orde geweest is in paragraaf 6.3 bij het oplossen van beginwaarde problemen.
53
De restterm
Bij lineaire interpolatie op a en b hebben we de volgende afbreekfout
f(x) p(x) =
1
2
(x a)(x b)f

((x)) , (5.2)
waarbij we (x) schrijven in plaats van om de afhankelijkheid van ten aanzien van x te
benadrukken. Als we de linker- en rechterterm van (5.2) integreren dan krijgen we:
b
_
a
f(x)dx
b a
2
(f(b) +f(a)) =
1
2
b
_
a
(x a)(x b)f

((x))dx . (5.3)
Deze restterm kan men schatten met behulp van de volgende stelling:
Stelling 5.3.1 Zij f C
2
[a, b]. Dan is er een [a, b] zo dat
b
_
a
f(x)dx
b a
2
(f(a) +f(b)) =
(b a)
3
12
f

() .
Bewijs:
Zij m = min
x[a,b]
f

(x) en M = max
x[a,b]
f

(x). Dan geldt, wegens (x a)(b x) 0 op


[a, b]:
m
b
_
a
(x a)(b x)dx
b
_
a
(x a)(b x)f

((x))dx
M
b
_
a
(x a)(b x)dx ,
zodat er een (m, M) is waarvoor geldt
b
_
a
(x a)(b x)f

((x))dx =
b
_
a
(x a)(b x)dx =
(b a)
3
6
.
Omdat f

continu is, is er een [a, b] zodat = f

(). Invullen in (5.3) voltooit het bewijs.

Als we de Trapeziumregel gebruiken om een integraal te benaderen dan is de fout meestal


groter dan de gewenste nauwkeurigheid. Een nauwkeuriger antwoord kan verkregen worden
met de gerepeteerde Trapeziumregel. In dit geval verdeelt men het interval in n delen ter
grootte h =
ba
n
. Op elk deelinterval [x
k1
, x
k
] met x
k
= a+kh wordt dan de Trapeziumregel
toegepast:
x
k
_
x
k1
f(x)dx =
h
2
[f(x
k
) +f(x
k1
)]
h
3
12
f

(
k
) ,
54
met x
k1

k
x
k
. Dus
b
_
a
f(x)dx = h[
1
2
f(x
0
) +f(x
1
) +... +f(x
n1
) +
1
2
f(x
n
)]

h
3
12
n

k=1
f

(
k
) . (5.4)
Omdat voor een continue functie f

geldt:
min
k
f

(
k
)
1
n
n

k=1
f

(
k
) max
k
f

(
k
)
bestaat er een [a, b] zodat
n

k=1
f

(
k
) = nf

() .
Dit invullen in (5.4) geeft
b
_
a
f(x)dx = I
T
(h)
b a
12
h
2
f

() ,
waarbij I
T
(h) = h[
1
2
f(x
0
) +f(x
1
) +... +
1
2
f(x
n
)] .
Opmerkingen
1. De Restterm bij de gerepeteerde Trapeziumregel is O(h
2
), terwijl de Rechthoekregel een
restterm O(h) heeft. Bij beiden methoden wordt dezelfde hoeveelheid werk gebruikt.
De Trapeziumregel heeft dus duidelijk de voorkeur.
2. De gerepeteerde Trapeziumregel kan ook als volgt genterpreteerd worden. Stel s is de
lineaire spline benadering van f op a = x
0
, ..., x
n
= b. Dan geldt
I
T
(h) =
b
_
a
s(x)dx .
Voorbeeld (winst/verlies)
We hebben de winst uit het voorbeeld gegeven in paragraaf 5.2 ook benaderd met de Trape-
ziumregel. Voor n = 50 krijgen we de antwoorden:
W
lente
= 0.01 en W
herfst
= 0.01 .
Merk op dat de resultaten nu exact zijn.
Algemene kwadratuurformules
We hebben gezien dat lineaire interpolatie aanleiding geeft tot de Trapeziumregel. Als we
andere interpolatieformules gebruiken krijgen we verschillende integratieregels.
55
Laat x
0
, ..., x
m
[a, b] gegeven zijn. Zij p het Lagrange interpolatiepolynoom van f op de
punten x
0
, ..., x
m
. We nemen dan
b
_
a
p(x)dx als benadering voor
b
_
a
f(x)dx. Omdat p(x) =
m

k=0
f(x
k
)L
km
(x) geldt
b
_
a
p(x)dx =
m

k=0
w
k
f(x
k
) ,
met als coecienten
w
k
=
b
_
a
L
km
(x)dx ,
die blijkbaar onafhankelijk van f zijn. We noemen
m

k=0
w
k
f(x
k
) de bij x
0
, ..., x
m
behorende
interpolatoire kwadratuurformule voor
b
_
a
f(x)dx. De x
k
heten de steunpunten en w
k
de
gewichten van de kwadratuurformule.
Stelling 5.3.2 Als f een polynoom van hoogstens graad m is, dan is elke m+1-punts inter-
polatoire kwadratuurformule exact:
b
_
a
f(x)dx =
m

k=0
w
k
f(x
k
) .
Bewijs:
Uit stelling 2.3.1 volgt dat f samenvalt met zijn Lagrange interpolatiepolynoom op x
0
, ..., x
m
en dus geldt
b
_
a
f(x)dx =
b
_
a
p(x)dx .

Omgekeerd geldt:
Stelling 5.3.3 Wanneer x
0
, .., x
m
en w
0
, ..., w
m
gegeven getallen zijn en er geldt
b
_
a
p(x)dx =
m

k=0
w
k
p(x
k
) ,
voor alle polynomen p van de graad m, dan is
m

k=0
w
k
f(x
k
) de bij x
0
, ..., x
m
behorende
interpolatoire kwadratuurformule voor
b
_
a
f(x)dx.
56
Bewijs:
Zij p het interpolatiepolynoom op x
0
, ..., x
m
van f. De vraag is dan of geldt
b
_
a
p(x)dx =
m

k=0
w
k
f(x
k
)?
Dit is zo omdat
b
_
a
p(x)dx =
m

k=0
w
k
p(x
k
) =
m

k=0
w
k
f(x
k
) .

We kunnen deze stelling ook gebruiken om de gewichten w


k
uit te rekenen als de punten
x
0
, ..., x
m
gegeven zijn. Neem voor p(x) achtereenvolgens 1, x, ..., x
m
. Dit levert een stelsel
van m + 1 vergelijkingen in de m + 1 onbekenden w
k
op. Men kan aantonen dat dit stelsel
eenduidig oplosbaar is.
Midpuntregel
Als we de nulde orde interpolatie van f nemen in het punt m =
1
2
(a + b) dan vinden we als
kwadratuurformule voor
b
_
a
f(x)dx:
(b a)f(m) .
Dit noemen we de Midpuntregel. Deze regel is nauwkeuriger dan men op het eerste gezicht
zou verwachten. Als f C
2
[a, b] dan geldt
f(x) = f(m) + (x m)f

(m) +
1
2
(x m)
2
f

((x))
en
b
_
a
f(x)dx = (b a)f(m) +
1
2
b
_
a
(x m)
2
f

((x))dx .
Omdat (x m)
2
0 is kunnen we aeiden
b
_
a
f(x)dx (b a)f(m) =
(b a)
3
24
f

() .
Voorbeeld (winst/verlies)
Als we de winst of het verlies uitrekenen met de gerepeteerde Midpuntregel
h[f(a +
1
2
h) +... +f(b
1
2
h)] ,
dan krijgen we voor n = 50
W
lente
= 0.01 en W
herfst
= 0.01 .
Newton-Cotes formules
Laat x
0
, ..., x
m
equidistant in [a, b] liggen met x
0
= a en x
m
= b. De kwadratuurformules,
57
die ontstaan door integratie van het m-de orde interpolatiepolynoom p
m
van f noemt men
Newton-Cotes formules.
Voor de resttermen van deze formules geldt de volgende stelling:
Stelling 5.3.4 Voor de restterm R
m
van de Newton Cotes kwadratuurformules voor het be-
naderen van
b
_
a
f(x)dx geldt:
als m even is en f C
m+2
[a, b] dan
R
m
= C
m
_
b a
m
_
m+3
f
(m+2)
() met
C
m
=
1
(m + 2)!
m
_
0
t
2
(t 1)...(t m)dt ;
als m oneven is en f C
m+1
[a, b] dan
R
m
= D
m
_
b a
m
_
m+2
f
(m+1)
() met
D
m
=
1
(m + 1)!
m
_
0
t(t 1)...(t m)dt .
Simpsonregel
We kiezen nu als steunpunten x
0
= a, x
1
=
1
2
(a +b) en x
2
= b. De integratieregel is dan
b a
6
[f(x
0
) + 4f(x
1
) +f(x
2
)] .
Het is niet moeilijk om in te zien dat de Simpsonregel exact is voor de polynomen f(x) =
1, f(x) = x x
1
en f(x) = (x x
1
)
2
.
5.4 Gauss formules

De integratieregels
m

k=0
w
k
f(x
k
) hebben we afgeleid door de steunpunten x
k
van te voren te
kiezen en vervolgens de w
k
te bepalen zodat de regel exact is voor polynomen van de graad
m. Men zou echter ook de vraag kunnen stellen bepaal alle w
k
en x
k
zo dat polynomen
van een zo hoog mogelijke graad nog exact worden gentegreerd, in de hoop dat dit ook
voor willekeurige functies tot betere resultaten zal leiden. Door te eisen dat 1, x, ..., x
2m+1
exact worden gentegreerd ontstaat er een stelsel van 2m+2 niet-lineaire vergelijkingen in de
2m+2 onbekenden w
k
en x
k
. Men kan aantonen dat dit stelsel oplosbaar is. De resulterende
kwadratuurformules heten Gauss formules. Voor de m + 1 punts Gauss formule geldt de
volgende restterm:
R =
(b a)
2m+3
((m + 1)!)
4
(2m+ 3)((2m + 2)!)
3
f
(2m+2)
() .
58
Voorbeeld (2 punts Gauss formule)
Stel dat we c
0
, c
1
, x
0
en x
1
willen bepalen zo dat de integratieformule
1
_
1
f(x)dx c
0
f(x
0
) +c
1
f(x
1
)
het exacte resultaat geeft als f een polynoom is van de graad 3. We kiezen voor f de functies
1, x, x
2
en x
3
zodat c
0
, c
1
, x
0
en x
1
moeten voldoen aan
f(x) = 1 c
0
+c
1
=
1
_
1
1dx = 2 ,
f(x) = x c
0
x
0
+c
1
x
1
=
1
_
1
xdx = 0 ,
f(x) = x
2
c
0
x
2
0
+c
1
x
2
1
=
1
_
1
x
2
dx =
2
3
,
f(x) = x
3
c
0
x
3
0
+c
1
x
3
1
=
1
_
1
x
3
dx = 0 .
Het is eenvoudig om in te zien dat de oplossing van dit stelsel gegeven wordt door
c
0
= 1 , c
1
= 1 , x
0
=

3
3
en x
1
=

3
3
,
zodat de integratieformule gegeven wordt door
1
_
1
f(x)dx f
_

3
3
_
+f
_

3
3
_
.
Voorbeeld (vergelijken methoden)
In Tabel 5.2 staan de resttermen als men ter berekening van

_
0
sin xdx een zeker aantal punten
investeert in Trapezium, Simpson en 5-punts Gauss. Opvallend is dat 5-punts Gauss enkel-
voudig toegepast reeds zon goed resultaat geeft, alsmede dat halvering van het interval bij
5-punts Gauss de nauwkeurigheid zo snel doet toenemen.
5.5 Samenvatting
In dit hoofdstuk zijn de volgende begrippen behandeld:
- Numerieke integratie
- rechthoekregel
59
aantal aantal
methode malen punten fout
gerepeteerd
Trapezium 4 5 1.0410
1
Simpson 2 5 4.5610
3
5p. Gauss 1 5 1.1110
7
Trapezium 8 9 2.5810
2
Simpson 4 9 2.6910
4
5 p. Gauss 2 10 1.110
10
Trapezium 16 17 6.4310
3
Simpson 8 17 1.6610
5
5 p. Gauss 4 20 1.110
13
Tabel 5.2: Vergelijking verschillende integratiemethoden.
- midpuntregel
- gerepeteerde regels
- Newton Cotes formules
- Trapeziumregel
- Simpsonregel
- Gauss formules
60
5.6 Opgaven
1. We willen de volgende integraal bepalen:
1
_
1
[(10x)
3
+ 0.001]dx.
(a) De relatieve afrondfout in de functiewaarden is kleinder dan . Bepaal de relatieve
fout in de integraal ten gevolge van de afrondfouten.
(b) We nemen de gerepeteerde midpuntregel als numerieke integratie methode en =
4 10
8
. Geef een redelijke waarde voor de stapgrootte h.
2. Bepaal
1
_
0.5
x
4
dx met de Trapeziumregel. Schat de fout en vergelijk deze schatting met de
echte fout. Bereken de integraal ook met de gerepeteerde Trapeziumregel met h = 0.25.
Schat de fout met Richardson s foutschatting.
61
Hoofdstuk 6
Numerieke tijdsintegratie voor
beginwaarde problemen
6.1 Inleiding
Een beginwaarde probleem is meestal een wiskundige beschrijving (dierentiaalvergelijking)
van een tijdsafhankelijk probleem. De voorwaarden, die nodig zijn om een unieke oplossing
te bepalen, worden gegeven op t
0
= 0 en worden beginvoorwaarden genoemd.
Als voorbeeld beschouwen we de water afvoer uit een stuwmeer door een leiding (zie Fi-
guur 6.1). Het water is in rust totdat op t = 0 de schuif plotseling geopend wordt. Door
de traagheid van het water komt de stroming geleidelijk op gang. Als dit stromende water
gebruikt wordt om electriciteit op te wekken, dan is het van belang om te weten hoe lang het
duurt, voordat de turbines op vol vermogen werken.
Een beschrijving van dit proces wordt gegeven door de niet-lineaire dierentiaalvergelijking
dq
dt
= p(t) aq
2
,
met beginvoorwaarde
q(0) = 0 .
Hierin is q(m
3
/s) de afvoer, p is de drijvende kracht (
kracht/lengte
dichtheid
ofwel
N/m
kg/m
3
= m
3
/s
2
) en
aq
2
is de wrijvingskracht. De drijvende kracht is onder andere afhankelijk van het waterpeil
in het stuwmeer. Als we veronderstellen dat p(t) constant is (p(t) = p
0
) dan is een analytische
oplossing bekend namelijk
q =
_
p
0
a
tanh(t

ap
0
) .
De numerieke oplossing kan voor willekeurige functies p bepaald worden.
6.2 Theorie van beginwaarde problemen
In deze paragraaf zullen we een korte samenvatting geven van de theorie van beginwaarde
problemen. Voor het bepalen van een numerieke oplossing van een beginwaarde probleem is
62
Figuur 6.1: Het stuwmeer, de afvoerbuis en de schuif in gesloten toestand
het natuurlijk van belang om te weten of het beginwaarde probleem wel een oplossing heeft.
Om hier een uitspraak over te doen voeren we het begrip Lipschitz continu in.
Denitie 6.2.1 Een functie f(t, y) heet Lipschitz continu in de variabele y in een verzameling
D R
2
, als er een constante L > 0 bestaat zo dat
[f(t, y
1
) f(t, y
2
)[ L[y
1
y
2
[,
voor alle (t, y
1
), (t, y
2
) D. De constante L wordt de Lipschitz constante genoemd.
Als de functie f dierentieerbaar is in de variabele y dan geldt, dat f(t, y) Lipschitz continu
is in de variabele y als geldt:
[
f
y
(t, y)[ L, voor alle (t, y) D.
Niet alleen het bestaan van een unieke oplossing is van belang, maar ook de vraag hoe een
oplossing verandert als er kleine verstoringen aangebracht worden in de beginvoorwaarden of
de dierentiaalvergelijking. We voeren daarom het begrip goed gesteld probleem in.
Denitie 6.2.2 Het beginwaarde probleem
dy
dt
= f(t, y), a t b, y(a) = y
a
,
heet goed gesteld als
1. Het probleem een unieke oplossing heeft;
63
2. Voor elke > 0, bestaat er een positieve constante k, zodat als [
0
[ < en (t) is continu
met [(t)[ < op [a, b] dan bestaat er een unieke oplossing z(t), zodat
dz
dt
= f(t, z) +(t), a t b, z(a) = y
a
+
0
,
waarbij z voldoet aan de ongelijkheid:
[z(t) y(t)[ < k, voor alle a t b.
De volgende stelling geeft aan wanneer een beginwaarde probleem goed gesteld is.
Stelling 6.2.1 Veronderstel dat D = (t, y)[a t b, < y < en dat f(t, y) continu
is. Als f Lipschitz continu is in de variabele y dan is het beginwaarde probleem
dy
dt
= f(t, y), a t b, y(a) = y
a
,
goed gesteld.
6.3 Eenstaps methoden
In tegenstelling tot het voorbeeld in paragraaf 6.1 is het voor vele in de praktijk voorkomende
dierentiaalvergelijkingen onmogelijk de oplossing analytisch te bepalen. Voor nietlineaire
dierentiaalvergelijkigen bestaat daarvoor in elk geval geen algemene theorie. Weliswaar
bestaan er algemeen toepasbare technieken om bepaalde qualitatieve eigenschappen van de
oplossing op te sporen maar deze geven meestal onvoldoende quantitatieve informatie. Hier-
voor moet je je toevlucht nemen tot numerieke methoden welke de oplossing approximeren.
Praktisch alle numerieke methoden zijn ontworpen voor eerste orde dierentiaalvergelijkingen.
Numerieke methoden die direct op hogere orde dierentiaalvergelijkingen werken bestaan wel
maar worden vrijwel niet toegepast. Hogere orde dierentiaalvergelijkigen worden eerst om-
geschreven naar een eerste orde stelsel en daarop wordt dan de numerieke methode toegepast.
Numerieke methoden voor stelsels worden later in dit college behandeld. Eerst gaan we de ap-
proximatie van scalaire eerste orde dierentiaalvergelijkingen van het type y

= f(t, y), t > t


0
en y(t
0
) = y
0
bekijken, te beginnen met de voorwaartse methode van Euler, de meest een-
voudige integratie methode.
De voorwaartse methode van Euler
Bij de aeiding van de voorwaartse methode van Euler (Euler Voorwaarts) is het inzichtelijk
gebruik te maken van het richtingsveld dat door de dierentiaalvergelijking wordt bepaald.
Een dierentiaalvergelijking is in feite niets anders dan een voorschrift dat in elk punt van het
(t, y)vlak de richting van de door dat punt gaande oplossingskromme vastlegt. Een bepaalde
oplossingskromme wordt geselecteerd door een punt te speciceren waar de oplossingskrom-
me doorheen moet gaan. Een formele uitdrukking voor de oplossingskromme door een punt
(t
0
, y
0
) ontstaat door de afgeleide te integreren:
y(t) = y
0
+
_
t
t
0
y

(t)dt = y
0
+
_
t
t
0
f(t, y(t))dt. (6.1)
64
Dit is een integraalvergelijking omdat de onbekende functie y(t) onder het integraalteken
voorkomt. De integraalvergelijking is analytisch niet minder moeilijk op te lossen dan de
dierentiaalvergelijking maar vormt wel een beter aanknopingspunt voor diverse vormen van
approximatie van de oplossing. De meest eenvoudige approximatie ontstaat door de integraal
_
t
t
0
f(t, y(t))dt in (6.1) te vervangen door t t
0
maal de waarde van de integrand in het
startpunt (zie Figuur 6.2):
y(t) y
0
+ (t t
0
)f(t
0
, y
0
), t > t
0
. (6.2)
De rechterzijde stelt de raaklijn aan de oplossingskromme in het startpunt voor. De raaklijn
zal de exacte kromme in het algemeen niet volgen en slechts voor korte tijd, zeg h
0
, een goede
benadering vormen. Daarom willen we vanaf t
1
= t
0
+h
0
de richting van de lijn (6.2) aanpassen
aan de veranderde richting van de exacte oplossingskromme. De nieuwe approximatielijn start
in het approximatiepunt dat we als (t
1
, w
1
) aanduiden (zie Figuur 6.3); w
1
volgt door in de
rechterzijde van (6.2) t
1
= t
0
+h
0
voor t in te vullen:
w
1
= y
0
+h
0
f(t
0
, y
0
). (6.3)
De vergelijking voor de tweede approximatielijn wordt, evenals die voor de eerste, afgeleid uit
de integraalformulering voor de oplossing, dit keer voor de naburige oplossingskromme door
het punt (t
1
, w
1
). Analoog aan (6.3) hebben we voor t
2
= t
1
+h
1
:
w
2
= y
1
+h
1
f(t
1
, w
1
). (6.4)
Voortzetting van deze procedure leidt tot een reeks van approximatiepunten (t
n
, w
n
) (n=0,1,2,. . . )
met t
n+1
= t
n
+h
n
en
y
n+1
= y
n
+h
n
f(t
n
, y
n
), (6.5)
waarbij t
0
en w
0
= y
0
gegeven zijn. Meetkundig stelt dit een stuksgewijs lineaire approximatie
van de exacte oplossingskromme voor, het zogenaamde Eulerpolygoon.
De essentie van de approximatie wordt gevormd door de discrete set van punten (t
0
, w
0
),
(t
1
, w
1
), (t
2
, w
2
), . . . (dat deze verbonden geacht kunnen worden door rechte lijnstukjes is
eigenlijk niet zo interessant).
Als er geen bijzondere redenen zijn om het anders te doen kent men aan de stapgrootten
h
1
, h
2
, . . . dezelfde waarde h toe; men spreekt dan van een approximatie met equidistante
stapgrootte h. Bij een equidistante Eulerapproximatie gaat (6.5) over in
w
n+1
= w
n
+hf(t
n
, w
n
). (6.6)
In dit dictaat worden uitsluitend equidistante integratiemethoden gebruikt.
Enkele numerieke experimenten
Het gedrag van de afbreekfout op de tijdstippen t
0
, t
1
, . . . als functie van de stapgrootte vormt
steeds het centrale thema bij de analyse van numerieke methoden voor dierentiaalvergelij-
kingen. Deze paragraaf bevat een inleidende studie aan de hand van een aantal numerieke
experimenten met de voorwaartse methode van Euler toegepast op het waterafvoerprobleem
q

= 50 2q
2
(t 0), q(0) = 0. (6.7)
65
0.2 0.4 0.6 0.8 1 1.2 1.4
0
5
10
15
t
f
(
y
(
t
)
)
t
n
t
n
+h
y(t
n
)
y(t
n
+h)
Figuur 6.2: Een-punts approximatie van de integraal in (6.1)
0 0.2 0.4 0.6 0.8 1 1.2
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
1.4
1.5
t
y
w1
y(t1)
t1
w2
y(t2)
t2
w3
y(t3)
t3
EXACT
Figuur 6.3: Approximatie met Euler over meerdere stappen (- -: naburige oplossingskrommen
in de diverse approximatiepunten)
66
In de volgende paragrafen zullen we de gevonden resultaten op theoretische wijze trachten te
verklaren.
Toegepast op de waterafvoervergelijking wordt (6.6):
w
n+1
= w
n
+h(50 2w
2
n
), w
0
= 0. (6.8)
In Figuur 6.4 zijn twee numerieke benaderingen, berekend met (6.8) voor de stapgrootten
h = 0.01, resp. h = 0.05, vergeleken met de analytische oplossing op het interval [0, 0.4]. Van
de analytische oplossing
q(t) = 5 tanh(10t), (6.9)
is bekend dat hij vanaf 0 monotoon toeneemt en naar de asymptotische waarde 5 convergeert
voor grote t.
Een paar dingen vallen meteen op. Voor beide stapgrootten is de afbreekfout in het begin heel
klein, maar neemt toe in een middengebied, om vervolgens weer af te nemen voor grote t
(het asymptotische gebied). In het middengebied is de benadering met de kleinere stapgrootte
duidelijk beter dan die met de grotere. In het asymptotische gebied verdwijnt de afbreekfout
voor beide stapgrootten, voor zover we dat in de guur kunnen waarnemen tenminste.
Als we voornamelijk genteresseerd zijn in de asymptotische waarde van de oplossing is dit
een uitnodiging om de stapgrootte verder op te voeren omdat dat een winst in eciency
oplevert. In Figuur 6.5 zien we de resultaten van berekeningen met oplopende stapgrootten.
Zolang h < 0.1 dempt de in het middengebied geaccumuleerde afbreekfout weg als je in het
asymptotische gebied komt; dat gaat heel snel als h duidelijk kleiner is dan 0.1 maar heeft
meer tijd (integratiestappen) nodig naarmate h dichter bij 0.1 gekozen wordt. Kies je h ook
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
5.5
t
Q
: h= 0.01
: h= 0.05
Figuur 6.4: De Eulerfout bij q

= 50 2q
2
voor twee waarden van h
maar iets groter dan 0.1 dan dempt de afbreekfout niet meer weg: voor h zeer weinig groter
dan 0.1 blijven de approximatiepunten nog in een bepaald patroon rond de asymptotische
waarde schommelen; voor stapgrootten groter dan ongeveer h = 0.105 echter verwijdert de
numerieke approximatie zich in de loop van het integratieproces van de asymptotische waarde;
67
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
0
1
2
3
4
5
6
t
Q
h = 0.08
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
0
1
2
3
4
5
6
t
Q
h = 0.09
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
0
1
2
3
4
5
6
t
Q
h = 0.099
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
0
1
2
3
4
5
6
t
Q
h = 0.1
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
0
1
2
3
4
5
6
t
Q
h = 0.101
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
0
1
2
3
4
5
6
t
Q
h = 0.105
Figuur 6.5: Stabiele en instabiele approximaties met Euler
de snelheid van verwijdering neemt sterk toe met toenemende h. Je kunt stellen dat h = 0.1
de omslag van bruikbare naar onbruikbare approximaties scherp markeert.
Het beschreven verschijnsel wordt (numerieke) instabiliteit genoemd en de hwaarde waarbij
de omslag van (bruikbare) stabiele naar (onbruikbare ) instabiele approximaties plaatsvindt
wordt de stabiliteitsgrens genoemd. In een volgende paragraaf zullen we het verschijnsel
stabiliteit op theoretische wijze nader verklaren.
De achterwaartse methode van Euler
De achterwaartse methode van Euler (Euler Achterwaarts) ontstaat als we de integraal
_
t
1
t
0
f(t, y(t))dt in (6.1) te vervangen door t
1
t
0
maal de waarde van de integrand in het
eindpunt
y(t
1
) y
0
+ (t
1
t
0
)f(t
0
, y
1
).
De numerieke benadering wordt dan:
w
1
= w
0
+h
0
f(t
0
, w
1
). (6.10)
Merk op dat de onbekende w
1
nu ook in het rechterlid voorkomt. We noemen daarom de
achterwaartse methode van Euler een impliciete methode. Oplossing van (6.10) is tamelijk
triviaal zolang f lineair van y afhangt. Daar hebben we niet zoveel aan want lineaire die-
rentiaalvergelijkingen kunnen we ook wel analytisch oplossen. Juist voor de numeriek gezien
interessante nietlineaire dierentiaalvergelijkingen is oplossing van w
1
, hoewel veel eenvou-
diger dan oplossing van y(t
1
) uit de integraalvergelijking (6.1), niettriviaal. In het algemeen
68
0.2 0.4 0.6 0.8 1 1.2 1.4
0
5
10
15
t
f
(
y
(
t
)
)
t
n
t
n
+h
y(t
n
)
y(t
n
+h)
Figuur 6.6: Approximatie van de integraal in (6.1) d.m.v. de trapeziumregel
zal hiervoor een numerieke nietlineaire solver moeten worden ingezet. Ten opzichte van Euler
Voorwaarts is dit een nadeel omdat het veel rekentijd kan kosten.
Als we een impliciete tijdsintegratie methode gebruiken voor het oplossen van een beginwaarde
probleem,
y

= f(t, y) , t [0, T] ,
y(0) = y
0
dan moet er in elk tijdstip een niet-lineaire vergelijking opgelost worden. Als voorbeeld nemen
we Euler Achterwaarts, bepaal w
j+1
uit
w
j+1
hf(t
j+1
, w
j+1
) = w
j
.
Als startoplossing kiest men vaak w
(0)
j+1
= w
j
terwijl de iteranden w
(n)
j+1
bepaald worden uit
w
(n1)
j+1
met behulp van een van de methoden genoemd in Paragraaf 4.2, 4.3 of 4.4. Omdat
w
j
vaak een goede beginschatting is zijn er vaak maar enkele iteraties nodig.
De Trapeziumregel
Andere numerieke methoden kunnen afgeleid worden door de integraal in (6.1) met nauw-
keuriger integratieregels te benaderen. Als eerste komt in aanmerking de Trapeziumregel (zie
Figuur 6.6):
y(t
1
) y
0
+
h
2
[f(t
0
, y
0
) +f(t
1
, y(t
1
))]. (6.11)
69
Gelijkstellen van linker en rechterlid geeft een formule voor de approximatie w
1
van de exacte
waarde y(t
1
):
w
1
= w
0
+
h
2
[f(t
0
, w
0
) +f(t
1
, w
1
)]. (6.12)
Merk op dat ook de Trapeziumregel een impliciete methode is. Het aanpassen van deze
methode naar een expliciete methode gebeurt in de volgende paragraaf.
De Modied Euler-methode
Voor het aeiden van een expliciete variant van (6.12), voorspellen we de onbekende w
1
in het
rechterlid van (6.12) met behulp van Euler Voorwaarts. Dan ontstaat de volgende zogenaamde
predictorcorrector formule:
predictor: w
1
= w
0
+hf(t
0
, w
0
),
corrector: w
1
= w
0
+
h
2
[f(t
0
, w
0
) +f(t
1
, w
1
)]. (6.13)
Gegeven w
0
kunnen we de predictor w
1
uitrekenen waarna het resultaat ingevuld wordt in de
corrector; hiermee is een geheel expliciete formule voor w
1
ontstaan.
De volgende stappen kunnen we op hetzelfde principe baseren. Dit geeft de predictor
corrector formule:
predictor: w
n+1
= w
n
+hf(t
n
, w
n
), (6.14)
corrector: w
n+1
= w
n
+
h
2
[f(t
n
, w
n
) +f(t
n+1
, w
n+1
)]. (6.15)
Gegeven w
n
(uitgerekend in de vorige stap) kunnen we de predictor w
n+1
uitrekenen waarna
het resultaat ingevuld wordt in de corrector; hiermee is een geheel expliciete formule ontstaan
die als de Modied Euler-methode wordt aangeduid.
Laten we deze methode toepassen op de volgende dierentiaalvergelijking
y

= 10[y (1 +sin(t/2))] +
1
2
cos(t/2), y(0) = 1. (6.16)
De oplossing van deze vergelijking is y(t) = 1+sin(t/2), zoals men eenvoudig door substitutie
kan nagaan.
De approximatie blijkt (binnen de resolutie van de Figuur 6.7) voor stapgrootten tot aan
h = 0.18 vrijwel perfect. Bij h = 0.2 zie je een afbreekfout aan de toppen van de perodieke
oplossing ontstaan. Voor de iets grotere stappen h = 0.201 en h = 0.202 blijkt de afbreekfout
al heel sterk te zijn toegenomen. Voor h = 0.207 blijkt de approximatie totaal onbruikbaar
te zijn geworden. Evenals bij de Euler Voorwaarts benadering van de waterafvoervergelijking
blijkt er een scherpe scheiding op te treden tussen acceptabele en onacceptable approximaties.
Deze ligt voor dit probleem bij h = 0.2.
Om het beeld te completeren integreren we (6.16) ook met Euler Voorwaarts in dezelfde range
van stapgrootten. De resultaten staan in Figuur 6.8. Bij Euler Voorwaarts lijkt het iets langer
goed te gaan, maar bij h = 0.207 is het ook helemaal mis. Het verschil is in feite volkomen
marginaal; we kunnen wel stellen dat ook bij Euler Voorwaarts de stabiliteitsgrens op h = 0.2
ligt.
70
0 5 10 15 20 25 30 35 40 45 50
1
0.5
0
0.5
1
1.5
2
2.5
3
t
Q
methode van Heun met h= 0.18
0 5 10 15 20 25 30 35 40 45 50
1
0.5
0
0.5
1
1.5
2
2.5
3
t
Q
methode van Heun met h= 0.2
0 5 10 15 20 25 30 35 40 45 50
1
0.5
0
0.5
1
1.5
2
2.5
3
t
Q
methode van Heun met h= 0.201
0 5 10 15 20 25 30 35 40 45 50
1
0.5
0
0.5
1
1.5
2
2.5
3
t
Q
methode van Heun met h= 0.202
0 5 10 15 20 25 30 35 40 45 50
1
0.5
0
0.5
1
1.5
2
2.5
3
t
Q
methode van Heun met h= 0.207
Figuur 6.7: Stabiele en instabiele approximaties van (6.16) met de Modied Euler-methode
0 5 10 15 20 25 30 35 40 45 50
1
0.5
0
0.5
1
1.5
2
2.5
3
t
Q
methode van Euler met h= 0.18
0 5 10 15 20 25 30 35 40 45 50
1
0.5
0
0.5
1
1.5
2
2.5
3
t
Q
methode van Euler met h= 0.2
0 5 10 15 20 25 30 35 40 45 50
1
0.5
0
0.5
1
1.5
2
2.5
3
t
Q
methode van Euler met h= 0.201
0 5 10 15 20 25 30 35 40 45 50
1
0.5
0
0.5
1
1.5
2
2.5
3
t
Q
methode van Euler met h= 0.207
0 5 10 15 20 25 30 35 40 45 50
1
0.5
0
0.5
1
1.5
2
2.5
3
t
Q
methode van Euler met h= 0.22
Figuur 6.8: Stabiele en instabiele approximaties van (6.16) met Euler Voorwaarts
71
Er is wel een opvallend verschil tussen beide methoden in de manier waarop de afbreekfout
groeit in de loop van het integratieproces. Dat zie je heel duidelijk bij h = 0.207. Bij Euler
Voorwaarts oscilleren de approximaties rond de exacte oplossing terwijl ze bij de Modied
Euler allemaal aan een kant ervan liggen. Met andere woorden, bij Euler Voorwaarts alterneert
het teken van de afbreekfout per stap terwijl dit bij de Modied Euler gelijk blijft.
6.4 Foutvoortplanting bij de methode Euler Voorwaarts
In deze paragraaf willen we de resultaten van de numerieke experimenten uit de vorige para-
graaf theoretisch verklaren, te beginnen met de voorwaartse methode van Euler. Recapitule-
rend, deze methode approximeert de vergelijking
y

= f(t, y), y(t


0
) = w
0
volgens
w
n+1
= w
n
+hf(t
n
, w
n
). (6.17)
De globale afbreekfout op tijdstip t
n+1
wordt gedenieerd als het verschil van de exacte en
de numerieke oplossing:
e
n+1
= y(t
n+1
) w
n+1
, (6.18)
waarbij y(t
n+1
) de exacte en w
n+1
de numerieke oplossing is. De bedoeling is de afbreekfouten
0 0.2 0.4 0.6 0.8 1 1.2
0.5
0.6
0.7
0.8
0.9
1
1.1
1.2
1.3
1.4
1.5
t
y
t
n
w
n
e
n
y(t
n
)
t
n+1
w
n+1
z
n+1
y(t
n+1
)
EXACT
Figuur 6.9: Opsplitsing van de Euler Voorwaarts-afbreekfout
e
n
en e
n+1
te relateren.
72
Het punt (t
n+1
, w
n+1
) ligt op de lijn die raakt aan de door (t
n
, w
n
) gaande naburige oplos-
singskromme. We beginnen met een hulppunt (t
n+1
, z
n+1
) te kiezen op de lijn die in t
n
raakt
aan de exacte oplossingskromme y(t). De situatie is gellustreerd in Figuur 6.9. Analytisch
wordt de waarde van z
n+1
gegeven door
z
n+1
= y(t
n
) +hf(t
n
, y(t
n
)). (6.19)
Het hulppunt verdeelt het lijnstuk (y(t
n+1
), w
n+1
) (de afbreekfout) in twee stukken. Analy-
tisch correspondeert met deze verdeling de (van de guur onafhankelijke) opsplitsing
e
n+1
= y(t
n+1
) w
n+1
= (y(t
n+1
) z
n+1
) + (z
n+1
w
n+1
). (6.20)
Het eerste deel geeft aan hoe goed de raaklijn de exacte oplossing tijdens de stap (t
n
, t
n+1
)
volgt en staat los van de in de voorgaande stappen geaccumuleerde afbreekfout e
n
. Een
analytische uitdrukking in termen van de oplossing en zijn afgeleiden volgt door de exacte
oplossing y(t
n+1
) in een Taylorreeks rond het punt t
n
te ontwikkelen en daarvan (6.19) af te
trekken:
y(t
n+1
) z
n+1
= y(t
n
) +hy

(t
n
) +
h
2
2
y

(
n+1
) [y(t
n
) +hf(t
n
, y(t
n
))]
=
h
2
2
y

(
n+1
),
n+1
(t
n
, t
n+1
). (6.21)
De afhankelijkheid van de tweede afgeleide van de oplossing is niet verwonderlijk: de nauw-
keurigheid van de raaklijnapproximatie hangt natuurlijk samen met de kromming van de
oplossingscurve die op zijn beurt weer samenhangt met de tweede afgeleide.
Opmerking.
Men kan bovenstaand resultaat ook in een iets andere vorm presenteren door de Taylorreeks voor y(tn+1) als
oneindig voortlopende reeks van machten van h te schrijven:
y(tn+1) zn+1 =
h
2
2
y

(n+1) =
h
2
2
y

(tn) +
h
3
6
y

(tn) +
h
4
24
y

(tn) + . . . (6.22)
Als y(t
n+1
) z
n+1
door de stapgrootte wordt gedeeld ontstaat de denitie van de lokale
afbreekfout
n+1
. De lokale afbreekfout van de voorwaartse methode van Euler is dus volgens
(6.21):

n+1
=
y(t
n+1
) z
n+1
h
=
h
2
y

(
n+1
). (6.23)
Het tweede deel van de afbreekfout, z
n+1
w
n+1
in (6.20), geeft aan hoe de in de voorgaande
stappen geaccumuleerde afbreekfout e
n
wordt doorgegeven naar het punt t
n+1
. Afhankelijk
van het richtingsverschil tussen de raaklijnen aan de exacte en de naburige oplossingskrommen
wordt e
n
versterkt of gedempt doorgegeven.
Analytisch (trek (6.17) en (6.19) van elkaar af):
z
n+1
w
n+1
= e
n
+h[f(t
n
, y(t
n
)) f(t
n
, w
n
)]. (6.24)
Combineren we (6.24) en (6.23) in (6.20) dan resulteert de afbreekfoutrelatie
e
n+1
= e
n
+h[f(t
n
, y(t
n
)) f(t
n
, w
n
)] +h
n+1
, (6.25)
73
met
n+1
gegeven door (6.23), terwijl we e
n
+h[f(t
n
, y(t
n
)) f(t
n
, w
n
)] in deze beschouwing
het doorgavedeel zullen noemen.
Opmerking
Ter onderscheid van de lokale afbreekfout wordt e
n
vaak de globale afbreekfout genoemd. De
lokale afbreekfout is een samenstellend deel van de (globale) afbreekfoutrelatie. Wanneer we
in het vervolg over de afbreekfout spreken bedoelen we de globale fout.
Uit (6.25) kan worden afgeleid hoe de globale fout zich in de loop van het integratieproces
ontwikkelt als gevolg van het samenspel van bij elke stap toegevoegde afbreekfout en doorgave
van de in de voorgaande stappen geaccumuleerde globale afbreekfout, maar de niet-lineaire
term f(t
n
, w
n
) f(t
n
, y(t
n
)) vormt daarbij een barriere. Daarom analyseren we de afbreek-
foutrelatie eerst voor lineaire dierentiaalvergelijkingen, type f(t, y) = (t)y+g(t). Voor deze
vergelijkingen gaat (6.25) over in:
z
n+1
w
n+1
= e
n
+h[f(t
n
, y(t
n
)) f(t
n
, w
n
)]
= e
n
+h(t
n
)(y(t
n
) w
n
)
= e
n
+h
n
e
n
= (1 +h
n
)e
n
.
Bij een lineaire dierentiaalvergelijking manifesteert het doorgavedeel zich door middel van
een factor, de zg. versterkingsfactor, en gaat de afbreekfoutrelatie (6.25) over in:
e
n+1
= (1 +h
n
)e
n
+h
n+1
. (6.26)
Voor constante (
n
= ) kan deze recurrente betrekking gemakkelijk opgelost worden in
de vorm van een reeks:
e
N
= (1 +h)e
N1
+h
N
= (1 +h)
2
e
N2
+ (1 +h)h
N1
+h
N
.
.
.
= (1 +h)
N
e
0
+ (1 +h)
N1
h
1
+ (1 +h)
N2
h
2
+. . . + (1 +h)h
N1
+h
N
.
Veronderstellend dat de beginvoorwaarde foutloos gemplementeerd wordt, mogen we e
0
nul
stellen en volgt:
e
N
= (1 +h)
N1
h
1
+ (1 +h)
N2
h
2
+. . . + (1 +h)h
N1
+h
N
. (6.27)
De reeks (6.27) geeft precies aan hoe de afzonderlijke afbreekfouten bijdragen aan de globale
afbreekfout na N integratiestappen. Elke afbreekfout in (6.27) is voorzien van een macht van
de versterkingsfactor 1 +h waarvan de exponent is gelijk is aan het aantal stappen dat ligt
tusssen de laatste stap en de stap waarin de betreende afbreekfout werd gemaakt.
Bepalend voor het uiteindelijk eect van de afbreekfouten is natuurlijk of de versterkings-
factor, absoluut gezien, groter of kleiner dan 1 is. In het eerste geval wordt elke afbreekfout
exponentieel groeiend doorgegeven met als gevolg dat de globale afbreekfout, als som van al
deze doorgegeven afbreekfouten, exponentieel groeit met N. In het tweede geval dempt de
bijdrage van elke afbreekfout exponentieel met het aantal integratiestappen weg en kunnen
we afschatten:
[ e
N
[ h [
1
[ +h [
2
[ +. . . +h [
N
[= Nh. (6.28)
74
waarbij h de gemiddelde afbreekfout over het integratie interval is. Hieruit blijkt dat de
globale afbreekfout niet sneller dan ruwweg lineair met het aantal integratiestappen N kan
toenemen als [ 1 +h [< 1. Dat is dan nog een beetje pessimistisch voorgesteld want in wer-
kelijkheid gebeurt meestal het volgende. Vanwege de voortdurende demping zal de globale
afbreekfout voornamelijk bepaald worden door een paar van de laatst gemaakte afbreekfouten:
steeds worden nieuwe gemaakt en oude worden weggedempt. Dat houdt in dat de globale
afbreekfout op de verschillende tijdstippen t = Nh (N toenemend) zich ruwweg gedraagt
als de afbreekfouten in de buurt (vlak v o or) t = Nh, dus ruwweg als de tweede afgeleide
van de oplossing ter plekke, afgezien van een zeker na-ijl eect. Neemt in de loop van het
integratieproces de tweede afgeleide van de oplossing toe dan zal de globale afbreekfout op
soortgelijke wijze toenemen. Komen we in een gebied waar de tweede afgeleide weer afneemt
dan zal ook de globale afbreekfout weer afnemen. Een typisch voorbeeld hiervan zagen we
bij de waterafvoervergelijking waar de afbreekfout toenam tot in een middengebied en daar-
na afnam tot vrijwel nul, tenminste zolang de stapgrootte kleiner dan 0.1 werd gekozen. De
drastische omslag in het gedrag van de afbreekfout die bij h = 0.1 optreedt is een gevolg van
overschrijding van de grens [ 1 +h [= 1. Om te laten zien dat dat bij h = 0.1 gebeurt moet
de voorwaarde [ 1 +h [< 1 naar een voorwaarde voor h vertaald worden.
We moeten onderscheid maken tussen positieve en negatieve . Voor positieve is de ver-
sterkingsfactor voor elke h > 0 groter dan 1 en zal de globale afbreekfout bijgevolg voor
elke stapgrootte exponentieel groeien. Dit lijkt heel onprettig maar we moeten twee dingen
in ogenschouw nemen; (i) de exacte oplossing van y

= y + g(t) zal voor positieve ook


exponentieel stijgen dus de relatieve afbreekfout kan beperkt blijven, (ii) vergelijkingen van
het type y

= y +g(t) komen zeer weinig voor in de fysica en de techniek omdat de gewone


fysische mechanismen een dempende werking hebben; wiskundige modellering daarvan leidt
tot dierentiaalvergelijkingen met oplossingen die op den duur uitdempen. Om de problemen
waar wij in genteresseerd te analyseren volstaat naar lineaire vergelijkingen met negatieve
en dalende oplossingen kijken.
Voor negatieve kan wel aan [ 1 + h [< 1 worden voldaan. Merk op dat 1 + h voor
negatieve altijd kleiner is dan 1 maar kan wel kleiner dan -1 worden als je h groot maakt.
Enig rekenwerk leert dat voor negatieve , de waarde van 1 + h groter is dan -1 onder de
stabiliteitsvoorwaarde
h <
2

=
2
[ [
. (6.29)
Opmerking
Omdat onder deze voorwaarde de afbreekfouten in de loop van het integratieproces monotoon
wegdempen spreekt men in de literatuur wel over absolute stabiliteit. Let wel dat het begrip
absolute stabiliteit alleen van toepassing is op negatieve waarden van .
Laten we voorgaande stabiliteitstheorie toepassen op de Euler Voorwaarts-approximatie van
de vergelijking
y

= 10[y (1 + sin(t/2))] +
1
2
cos(t/2), y(0) = 1. (6.30)
Dit is een lineaire vergelijking y

= y + g(t) met = 10. Toepassing van (6.29) leidt tot


de stabiliteitsvoorwaarde h < 0.2, goed overeenkomend met de experimentele bevindingen in
de vorige paragraaf.
75
6.5 Stability of initial-value problems
Stability
A general denition of stability is: small changes or perturbations in the initial conditions
produce correspondingly small changes in the subsequent approximations. Phenomena which
have unstable behavior are: buckling of a column under compression and resonance of a bridge
due to wind forces. In this supplement we only consider stable applications.
Suppose that the initial condition y
0
is perturbed with
0
. The perturbed solution y satises:
y

= f(t, y) with y(0) = y


0
+
0
.
The dierence of the exact and perturbed solution is dened as : (t) = y(t) y(t). An
initial-value problem is stable if
[(t)[ is bounded for all t > 0.
If [(t)[ is not bounded for all t, we call the initial-value problem unstable. An initial-value
problem is absolutely stable if
lim
t
[(t)[ = 0.
Stability of a linear initial-value problem
Consider the linear initial-value problem
y

= y +g with y(0) = y
0
. (6.31)
It is easily seen that satises the test equation :

= with (0) =
0
. (6.32)
The solution of (6.32) is given by (t) =
0
e
t
. This implies that a linear initial-value
problem is stable if and only if 0.
Stability of a one-step dierence method
Consider two numerical solutions of (6.31): w
j
with initial condition w
0
= y
0
and v
j
with
initial condition v
0
= y
0
+
0
. The dierence method is stable if
[
j
[ is bounded for all j
and absolutely stable if
lim
j
[
j
[ = 0 .
It appears that
j
= v
j
w
j
is the numerical solution of the test equation. It is easy to see
that every one-step method applied to the test equation gives

j+1
= Q(h)
j
, (6.33)
where Q(h), the amplication factor, depends on the numerical method: for Forward Euler
Q(h) = 1 +h and for the Modied Euler method Q(h) = 1 + h +
1
2
(h)
2
. By induction it
follows that
j
= [Q(h)]
j

0
. So a numerical method is stable if and only if
[Q(h)[ 1 . (6.34)
76
For the Forward Euler method we have Q(h) = 1 + h. Suppose that 0 then the
dierential equation is stable. Inequality (6.34) can be written as:
1 1 +h 1 ,
which is equivalent to
2 h 0 .
Since h > 0 and 0 it follows that h
2
||
.
For the Modied Euler method the condition [Q(h)[ 1 leads to the inequalities:
1 1 +h +
1
2
(h)
2
1.
The left-hand inequality is equivalent to the inequality
0 2 +h +
1
2
(h)
2
.
Since the equation 2 + h +
1
2
(h)
2
= 0 has no real solution h, the inequality is satised for
all h > 0. The right-hand inequality 1 +h +
1
2
(h)
2
1 is equivalent to
h +
1
2
(h)
2
0,
1
2
(h)
2
h.
Division of the inequality by the positive number
h
2
2
shows that
h
2

=
2
[[
.
Note that the stability criteria for Euler Forward and Modied Euler are the same, although
the amplication factors are dierent, see also Figure 6.10.
For Backward Euler the amplication factor is given by Q(h) =
1
1h
. So for stability h
should be such that:
1
1
1 h
1 .
It is easy to see that these inequalities hold for all h 0 because 0. This implies that
the Backward Euler method is always stable as long as 0.
Example (linear problem)
Consider the initial-value problem:
y

= 10y , t [0, 1] ,
y(0) = 1 .
The exact solution is given by y(t) = e
10t
. From the theory it follows that Forward Euler is
stable if h 0.2. In Figure 6.11 the perturbations are plotted for the step sizes h =
1
3
,
1
6
and
1
12
with
0
= 10
4
. The method is indeed unstable if h =
1
3
because [
j
[ > [
j1
[. For the
other values of h we see that the perturbations decrease.
77
1 2 3
0
1
1
Euler Voorwaarts
Modified Euler
Figuur 6.10: The amplication factors of Euler Forward and the Modied Euler method as
function of h
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
2
1
0
1
2
3
4
5
6
x 10
4
t
P
e
r
t
u
r
b
a
t
i
o
n
h = 1/3
h = 1/6
h = 1/12
Figuur 6.11: Forward Euler applied to y

= 10y
Stability of a nonlinear initial-value problem
For a general initial-value problem we investigate the stability properties for the linearized
problem. So the initial-value problem
y

= f(t, y) and y(t


0
) = y
0
, (6.35)
78
is linearized by using the linear approximation around (

t, y):
f(t, y) f(

t, y) + (y y)
f
y
(

t, y) + (t

t)
f
t
(

t, y) .
If (t, y) is close to (

t, y) equation (6.35) can be approximated by


y

= f(

t, y) + (y y)
f
y
(

t, y) + (t

t)
f
t
(

t, y) .
Comparison with the linear equation shows that in this case =
f
y
(

t, y). Note that the


stability condition depends on the values of y and

t.
Example (nonlinear problem)
A simple model of a transient ow is given by
y

= ay
2
+p, y(0) = 0.
In this example f(t, y) = ay
2
+p. After linearization one obtains
=
f
t
(

t, y) = 2a y
0
.
This implies that the initial-value problem is stable for all positive a and y
0
. The Forward
Euler method is stable if
h
1
a y
0
.
Note that the bound on the step size decreases if y
0
increases.
6.6 Afbreekfout en consistentie
Om het verschil tussen de exacte en de numerieke oplossing te schatten denieren we opnieuw
de begrippen: consistentie, stabiliteit en convergentie. Elke eenstaps methode is te schrijven
als
w
j+1
= w
j
+h(w
j+1
, w
j
, t
j+1
, t
j
, h) .
Als niet afhangt van w
j+1
dan noemen we de methode expliciet, anders impliciet. Deze
notatie zullen we gebruiken om een aantal begrippen te denieren.
Lokale afbreekfout
De lokale afbreekfout
j+1
is gedenieerd als

j+1
=
y
j+1
z
j+1
h
, (6.36)
where
z
j+1
= y
j
+h(y
j+1
, y
j
, t
j+1
, t
j
, h) . (6.37)
Merk op dat, net als bij de Euler Voorwaarts analyse, de exacte oplossing ingevuld is in de
numerieke methode.
79
Consistentie
Een methode heet consistent als
lim
h0

j
= 0 ,
waarbij in de limiet j zo gekozen wordt, dat jh constant is. We noemen een methode van
orde p als e
j
= O(h
p
).
Lokale afbreekfout bij de testvergelijking
Als we een eenstaps methode toepassen op de testvergelijking dan volgt uit (6.33)

j+1
=
y
j+1
Q(h)y
j
h
. (6.38)
De exacte oplossing van de testvergelijking wordt gegeven door
y
j+1
= e
h
y
j
. (6.39)
Substitutie van (6.39) in (6.38) geeft

j+1
=
e
h
Q(h)
h
y
j
.
De grootte van de lokale afbreekfout wordt dus bepaald door het verschil tussen de verster-
kingsfaktor en de exponentiele functie. Om dit verschil te bepalen maken we gebruik van de
Taylor-ontwikkeling van e
h
:
e
h
=
r1

i=0
1
i!
(h)
i
+O(h
r
) . (6.40)
Als we 6.40) vergelijken met Q(h) = 1 + h dan volgt dat Euler Voorwaarts een lokale
afbreekfout van de orde 1 heeft. De Modied Euler methode heeft volgens Q(h) = 1 +h +
1
2
(h)
2
een lokale afbreekfout van de orde 2 en is dus nauwkeuriger.
Voor de achterwaartse methode van Euler volgt uit Q(h) =
1
1h
dat
Q(h) = 1 +h + (h)
2
+O(h
3
) ,
zodat de lokale afbreekfout bij Euler Achterwaarts ook van de orde 1 is. Bij de Trapeziumregel
is de orde van de lokale afbreekfout gelijk aan 2.
Lokale afbreekfout voor de algemene vergelijking
Voor een eenstaps methode geldt

j+1
=
y
j+1
(y
j
+h(y
j
, t
j
, h))
h
. (6.41)
Taylorontwikkeling van y
j+1
geeft
y
j+1
= y
j
+hy

j
+
h
2
2
y

j
+O(h
3
) . (6.42)
Omdat y voldoet aan de dierentiaalvergelijking geldt:
y

= f(t, y) (6.43)
80
en
y

= f
t
+f
y
f . (6.44)
Combinatie van (6.41), (6.42), (6.43) en (6.44) geeft

j+1
= f
j
+
h
2
(f
t
+f
y
f)
j
(y
j
, t
j
, h) +O(h
2
) .
Bij de voorwaartse methode van Euler is (y
j
, t
j
, h) = f(t
j
, y
j
) en is de afbreekfout van de
orde 1. Dit kunnen we als volgt bewijzen. Uit (6.41) en (6.42) volgt

j+1
= y

j
+O(h) (y
j
, t
j
, h)
Omdat voor Euler Voorwaarts (y
j
, t
j
, h) = f(t
j
, y
i
) volgt uit (6.43)
j+1
= O(h).
Foutrelatie voor de Modied Euler
De methode wordt gegeven door
w
n+1
= w
n
+hf(t
n
, w
n
), (6.45)
w
n+1
= w
n
+
h
2
[f(t
n
, w
n
) +f(t
n+1
, w
n+1
)]. (6.46)
Voor het bepalen van de lokale afbreekfout vervangen we in de formules (6.45), (6.46) de
numerieke waarde w
n
door de exacte waarde y(t
n
), dus
z
n+1
= y(t
n
) +hf(t
n
, y(t
n
)), (6.47)
z
n+1
= y(t
n
) +
h
2
[f(t
n
, y(t
n
)) +f(t
n+1
, z
n+1
)]. (6.48)
Eerst bewijzen we dat de lokale afbreekfout van de Modied Euler methode de grootte O(h
2
)
heeft door aan te tonen dat van de Taylorreeksontwikkelingen van y(t
n+1
) en z
n+1
de termen
van orde 1, h en h
2
tegen elkaar wegvallen.
De laatste term van (6.48) wordt rond het punt (t
n
, y(t
n
)) ontwikkeld in een Taylorreeks (in
twee variabelen omdat beide variabelen verschoven worden):
f(t
n+1
, z
n+1
) = f
n
+h(
f
t
)
n
+ (z
n+1
y(t
n
))(
f
y
)
n
+
1
2
h
2
(

2
f
t
2
)
n
+
+
1
2
(z
n+1
y(t
n
))
2
(

2
f
y
2
)
n
+h(z
n+1
y(t
n
))(

2
f
ty
)
n
+ . . . (6.49)
Volgens (6.47) geldt z
n+1
y(t
n
) = hf(t
n
, y(t
n
)) = hf
n
. Dat houdt in dat de laatste drie
gespeciceerde termen van (6.49) de grootteorde h
2
hebben (en dat de stippeltjes voor termen
van O(h
3
) en hoger staan). We zullen de termen met tweede en hogere machten van h
niet nodig hebben en speciceren ze verder niet meer. Substitutie van de uitdrukking voor
z
n+1
y(t
n
) in de derde term van (6.49) resulteert in:
f(t
n+1
, z
n+1
) = f
n
+h[
f
t
+f
f
y
]
n
+O(h
2
).
81
Substitutie van deze uitdrukking in (6.48) geeft:
z
n+1
= y(t
n
) +hf
n
+
h
2
2
[
f
t
+f
f
y
]
n
+O(h
3
). (6.50)
Op dit punt wordt de dierentiaalvergelijking y

(t) = f(t, y) gebruikt. Door dierentiatie


naar t, onder gebruik van de kettingregel, volgt
y

(t) =
dy

dt
=
df(t, y(t))
dt
=
f
t
+
f
y
dy
dt
= [
f
t
+f
f
y
](t, y). (6.51)
Door substitutie van deze uitdrukking, na evaluatie in t = t
n
, gaat (6.50) over in:
z
n+1
= y(t
n
) +hy

(t
n
) +
h
2
2
y

(t
n
) +O(h
3
). (6.52)
We zien dat de eerste drie termen precies de eerste drie termen van de Taylorontwikkeling
y(t
n+1
) = y(t
n
) +hy

(t
n
) +
h
2
2
y

(t
n
) +O(h
3
) (6.53)
zijn; ze verdwijnen als we het verschil van de twee ontwikkelingen nemen:
y(t
n+1
) z
n+1
= O(h
3
). (6.54)
Na deling door h volgt

n+1
= O(h
2
). (6.55)
6.7 Convergentie
Laat y
j
en w
j
respectievelijk de exacte en numerieke oplossing zijn op t = t
j
. Bij het bepalen
van een numerieke benadering is het van belang om te weten hoe groot de globale afbreekfout
e
j
= y
j
w
j
is.
Convergentie
Een schema heet convergent als voor de globale afbreekfout e
j
geldt:
lim
h0
e
j
= 0 , waarbij jh constant is.
We laten nu zien dat stabiliteit en consistentie convergentie impliceren.
Theorem 6.7.1 If the numerical method is stable and consistent then the numerical solution
converges to the exact solution for h 0. Furthermore the global error e
j
and the local
truncation error
j
(h) have the same rate of convergence.
Proof
We only prove the theorem for the test equation y

= y. The following recurrence holds for


the global error e
j
:
e
j
= y
j
Q(h)w
j1
= y
j
Q(h)y
j1
+Q(h)e
j1
= h
j
+Q(h)e
j1
. (6.56)
82
Repeating this argument one obtains
e
j
=
j1

l=0
[Q(h)]
l
h
jl
.
From the stability follows
[e
j
[
j1

l=0
[Q(h)[
l
h[
jl
[
j1

l=0
h[
jl
[ max
1lj1
[
l
[ ,
where we used that jh 1. This implies that the rate of convergence of the global error is
identical to that of the local truncation error. Furthermore the global error goes to zero if
h 0 because the method is consistent.
Waarom hogere orde methoden?
Het gebruik van een hogere orde methode is vaak zinvol. We laten dit zien aan de hand van
de Voorwaartse en de Modied methode van Euler. Neem aan dat de globale afbreekfout
begrensd is door:
[y
j
w
j
[ h Euler Voorwaarts ,
[y
j
w
j
[ h
2
Modied Euler .
Om de hoeveelheid werk te bepalen, tellen we het aantal functie evaluaties. Bij Euler Voor-
waarts is een functie evaluatie per tijdstap nodig en bij Modied Euler twee. In de volgende
tabel geven we de stapgrootte en aantal functie evaluaties, dat nodig is om een voorgeschreven
precisie te halen. Uit de tabel blijkt dat een hogere orde methode de voorkeur heeft, als er
Euler Voorwaarts Modied Euler
[y
j
w
j
[ h functie evaluaties h functie evaluaties
10
1
10
1
10 1/3 6
10
2
10
2
100 10
1
20
10
4
10
4
10000 10
2
200
Tabel 6.1: Kosten voor Euler Voorwaarts en Modied Euler voor een verschillende nauwkeu-
righeid
een hoge nauwkeurigheid vereist wordt. Deze observatie is algemeen geldig. Belangrijk is wel
dat de exacte oplossing voldoende glad is.
De vierde orde methode van Runge-Kutta
In deze paragraaf denieren we de vierde orde methode van Runge-Kutta. We hebben gezien
dat hogere orde methoden tot een grote besparing kunnen leiden. Later blijkt dat deze me-
thode ook aantrekkelijke stabiliteits eigenschappen heeft. We geven hier de formules en een
intutieve vericatie op basis van de integraalformulering:
w
n+1
= w
n
+
1
6
[k
1
+ 2k
2
+ 2k
3
+k
4
], (6.57)
83
waarbij de predictoren k
1
t/m k
4
gegeven worden door
k
1
= hf(t
n
, w
n
) (6.58)
k
2
= hf(t
n
+
1
2
h, w
n
+
1
2
k
1
)
k
3
= hf(t
n
+
1
2
h, w
n
+
1
2
k
2
)
k
4
= hf(t
n
+h, w
n
+k
3
).
De corrector is gebaseerd op de Simpson regel als benadering van de integraal
_
t
n+1
tn
f(t, y(t))dt.
De Simpsonregel approximeert volgens:
_
t
n+1
tn
f(t, y(t))dt
h
6
[y(t
n
) +4y(t
n
+
1
2
h) +y(t
n
+h)]
De Simpson regel is nauwkeuriger dan de Trapezium regel en de midpoint rule die aan tweede
orde Runge Kutta methoden ten grondslag liggen.
De waarden voor y(t
n
+
1
2
h) en y(t
n
+h) moeten voorspeld worden. Uit de gebruikte eerste
argumenten van f in bovenstaande predictor formules kun je aeiden dat k
2
en k
3
beiden een
predictie voor y(t
n
+
1
2
h) moeten vormen (kennelijk wordt de middelste term in de Simpson
regel in twee helften gesplitst) en dat k
4
een predictie voor y(t
n
+h) vormt.
Bovenstaande RungeKutta (afkorting RK4) methode kan door middel van Taylorreeksen
strict afgeleid worden, met als bijproduct een uitdrukking voor de lokale afbreekfout die van
de O(h
4
) blijkt te zijn. Die aeiding toont aan dat de keuze van de predictoren volgens (6.58)
optimaal is in die zin dat elke andere keuze tot een lagere orde van de afbreekfout zou leiden.
In plaats van de algemene aeiding beperken we ons weer tot homogene testvergelijkingen
waarvoor de orde van de lokale afbreekfout en de versterkingsfactor betrekkelijk simpel af te
leiden zijn.
Toepassing van de formules (6.57) en (6.58) op y

= y resulteert namelijk in
w
n+1
= [1 +h +
1
2
(h)
2
+
1
6
(h)
3
+
1
24
(h)
4
]w
n
.
Zoals bij de aeiding voor de Modied Euler opgemerkt kun je hieruit direct de versterkings-
factor aezen, namelijk
Q(h) = 1 +h +
1
2
(h)
2
+
1
6
(h)
3
+
1
24
(h)
4
. (6.59)
Opgave. Laat zien dat een niethomogene testvergelijking dezelfde versterkingsfactor heeft.
Ook de lokale afbreekfout kan gemakkelijk uitgerekend worden voor de testvergelijking. De
grootheid z
n+1
wordt weer gedenieerd door in (6.57) en (6.58) w
n
door y(t
n
) te vervangen.
Substitutie van f(t, y) = y leidt tot z
n+1
= Q(h)y(t
n
). De exacte oplossing van y

= y in
t
n+1
wordt gegeven door y(t
n+1
) = e
h
y(t
n
), zoals men vrij eenvoudig kan nagaan. Dit leidt
tot:
y(t
n+1
) z
n+1
= [e
h
Q(h)]y(t
n
). (6.60)
De rechterzijde van (6.59) bestaat precies uit de eerste vijf termen van de reeksontwikkeling
van e
h
naar machten van h zodat van de coecient van y(t
n
) in (6.60) slechts vijfde en
hogere machten van h overblijven. Na deling door h volgt dat de lokale afbreekfout O(h
4
) is.
84
Dit resultaat bevestigt het algemene resultaat, verkregen door middel van Taylorontwikkelin-
gen, voor testvergelijkingen.
De stabiliteitstheorie loopt voor RK4 op dezelfde wijze als voor de methoden van Euler en
Modied Euler, alleen de versterkingsfactor is anders. Aan (6.59) ziet men direct dat Q(h)
voor positieve voor elke h groter is dan 1 en dat onvermijdelijk exponentiele foutgroei op-
treedt.
In het negatieve geval eisen we voor stabiliteit dat
1 < 1 +h +
1
2
(h)
2
+
1
6
(h)
3
+
1
24
(h)
4
< 1. (6.61)
Noem voor het gemak h = x; met deze notatie volgt uit de linker ongelijkheid van (6.61):
2 + x +
1
2
x
2
+
1
6
x
3
+
1
24
x
4
> 0. Aan deze ongelijkheid is voor elke x voldaan. Dat ziet men
door naar de extremen van het vierde graads polynoom P(x) = 2 +x +
1
2
x
2
+
1
6
x
3
+
1
24
x
4
te
kijken. De extremen worden aangenomen in de nulpunten van P

(x), dus voor die waarden x


van x waarvoor geldt: P

( x) = 1 + x +
1
2
x
2
+
1
6
x
3
= 0. De waarde van een extreem van P(x)
wordt gevonden door zon x in P(x) te substitueren en de relatie P

( x) = 0 te gebruiken:
P( x) = 2 + x +
1
2
x
2
+
1
6
x
3
+
1
24
x
4
= 1 + (1 + x +
1
2
x
2
+
1
6
x
3
) +
1
24
x
4
= 1 +
1
24
x
4
. Aangezien
1 +
1
24
x
4
voor elke x positief is zijn alle extremen van P(x) positief, dus ook de minima.
Bijgevolg is P(x) positief voor elke x en daarmee is het beweerde bewezen.
Uit de rechter ongelijkheid van (6.61) moet de stabiliteitsvoorwaarde voor h volgen. Deze
ongelijkheid is identiek met x +
1
2
x
2
+
1
6
x
3
+
1
24
x
4
< 0, oftewel x(1 +
1
2
x +
1
6
x
2
+
1
24
x
3
) < 0
welke, vanwege x = h < 0, equivalent is met 1 +
1
2
x +
1
6
x
2
+
1
24
x
3
> 0. Een onderzoek van
het polynoom 1 +
1
2
x +
1
6
x
2
+
1
24
x
3
toont aan dat dit slechts een nulpunt bezit en wel voor
x ongeveer gelijk aan -2.8. Rechts van dit nulpunt is het polynoom positief en links ervan
negatief. Hieruit volgt dat moet gelden x = h > 2.8, oftewel
h <
2.8

=
2.8
[ [
, (6.62)
opdat aan de stabiliteitsconditie 1 < Q(h) < 1 is voldaan.
De stabiliteitsgrens ligt voor RK4 iets hoger dan voor Euler Voorwaarts en Modied Euler.
De iets grotere ruimte voor de stapgrootte keuze die daardoor bij RK4 ontstaat is echter
marginaal en heeft vrijwel geen praktische betekenis.
De volgende tabel geeft een overzicht van de stabiliteitsvoorwaarden en afbreekfouten van de
drie behandelde methoden.
methode versterkingsfactor stab. voorwaarde lokale
bij reele negatieve afbreekfout
Euler Voorwaarts 1 +h h <
2
||
h
2
y

()
Modied Euler 1 +h +
1
2
h
2

2
h <
2
||
O(h
2
)
RungeKutta 1 +h +
1
2
h
2

2
+
1
6
h
3

3
+
1
24
h
4

4
h <
2.8
||
O(h
4
)
85
6.8 Globale afbreekfout en foutschattingen
In dit stukje onderzoeken we het gedrag van de globale afbreekfout als functie van de stap-
grootte, voor kleine (stabiele) stapgrootten; de limiet h 0 speelt daarbij een belangrijke
rol.
Afschatting van de afbreekfout
We hebben een bovengrens voor de Euler Voorwaarts afbreekfout afgeleid. Deze bovengrens is
evenredig met h terwijl de evenredigheidscoecient een functie is van een Lipschitzconstante
L voor het rechterlid f(t, y) van de dierentiaalvergelijking, een bovengrens M voor de tweede
afgeleide van de oplossing en de lengte van het integratie-interval. Deze afschatting toont aan
dat de globale afbreekfout naar nul gaat als h naar nul gaat, oftewel dat de voorwaartse me-
thode van Euler convergent is, voor een uitgebreide klasse van dierentiaalvergelijkingen, nl.
die met rechterleden f(t, y) welke aan de Lipschitz voorwaarde voldoen. Theoretisch gezien
een belangrijk en fundamenteel resultaat want een methode die niet convergent is natuurlijk
onbruikbaar.
Helaas geeft de bovengrens in de voor ons interessante gevallen, dat zijn dierentiaalverge-
lijkingen met dalende (of in elk geval niet exponentieel stijgende) oplossingen, geen enkele
indicatie over de werkelijke afbreekfout omdat de evenredigheidscoecient van h voor deze
klasse van dierentiaalvergelijkingen veel en veel te ruim bemeten is. Het is voldoende naar
de testvergelijkingen te kijken om te zien hoe dat zit.
Omdat de Lipschitzconstante voor een testvergelijking gelijk is aan [ [ is er geen onder-
scheid tussen positieve en negatieve en is verder geldig voor willekeurige stapgrootte. Voor
positieve en voor instabiele approximaties in het negatieve -geval stijgt de afbreekfout
exponentieel met het aantal stappen omdat de versterkingsfactor groter is dan 1. Om deze
gevallen te dekken in de afbreekfoutafschatting moet de evenredigheidscoecient exponentieel
oplopen met de lengte van het integratie-interval. Als we ons beperken tot stabiele integratie
van testvergelijkingen met negatieve kan de grens veel scherper gesteld worden omdat de
versterkingsfactor kleiner dan 1 blijft.
De globale afbreekfout in de limiet h 0 voor het negatieve -geval
Met het oog op een uniforme behandeling recapituleren we de afbreekfoutrelaties voor de drie
behandelde methoden, waarbij e
n
= y
n
w
n
:
e
n+1
= Q(h)e
n
+h
n+1
, (6.63)
met:
Q(h) = 1 +h (Euler Voorwaarts), (6.64)
Q(h) = 1 +h +
h
2
2

2
(Modied Euler), (6.65)
Q(h) = 1 +h +
h
2
2

2
+
h
3
6

3
+
h
4
24

4
(RK4). (6.66)
Herhaalde toepassing van (6.63) (met e
0
= 0) geeft:
e
N
= Q(h)
N1
h
1
+Q(h)
N2
h
2
+. . . +Q(h)h
N1
+h
N
. (6.67)
86
Voor stabiele stapgrootten zijn de versterkingsfactoren kleiner dan 1 in absolute waarde en
geldt:
[ e
N
[ h
N1
0
[
n+1
[ . (6.68)
Deze schatting is voor stabiele approximaties in het negatieve -geval veel adequater. Omdat
anderszijds de versterkingsfactoren voor h 0 naar 1 naderen is (6.68) ook geen overschatting
van de afbreekfout. In deze limiet worden de afbreekfouten niet gedempt en hebben we gewoon
met de optelsom van afbreekfouten te maken:
lim
h0
e
N
= lim
h0
h
N1
0

n+1
(6.69)
We moeten afspreken wat met deze limiet bedoeld wordt. Het heeft weinig zin de limiet h 0
te nemen terwijl N vast wordt gehouden: dan krimpt het integratie interval in tot nul. Je
krijgt alleen iets zinvols als je het integratie-interval (0,t) vasthoudt. Dus Nh = t=constant
terwijl h 0 en het aantal rooster punten N gaat omgekeerd evenredig met h naar oneindig.
In de aldus opgevatte limiet gaat het rechterlid van (6.69) over in een integraal over (0, t),
immers h
N1
0

n+1
is niets anders dan de Riemann-som voor
_
t
0
(t)dt, waarbij (t) opgevat
moet worden als de continue versie van de lokale afbreekfout. Voor de Euler Voorwaarts
methode bijvoorbeeld zouden we (t) =
h
2
y

(t) moeten invullen in


_
t
0
(t)dt hetgeen leidt tot
lim
h0
e(t, h) =
h
2
_
t
0
y

(t)dt.
De notatie e
N
is hier door e(t, h) vervangen om aan te geven dat naar de afbreekfout op een
vast (maar overigens willekeurig) tijdstip t kijken, als functie van de stapgrootte.
Voor andere methoden zou een uitdrukking voor de limietfout op soortgelijke wijze kunnen
volgen, maar dat heeft weinig zin want evaluatie is in pricipe toch niet mogelijk omdat de
oplossing onbekend is. Wel belangrijk, en direct uit
_
t
0
(t)dt af te leiden, is dat de globale
afbreekfout op dezelfde manier van h afhangt als de lokale afbreekfout. We schrijven
lim
h0
e(t, h) = K(t) h
p
. (6.70)
Het getal p, de orde van de methode, geeft dus de grootteorde van zowel de globale afbreek-
fout als de lokale afbreekfout aan. Voor de behandelde methoden van Euler en de tweede en
vierde orde Runge-Kutta methoden is p=1, 2, resp. 4.
De evenredigheidsconstante van h
p
bestaat uit integralen over (0, t) van bepaalde afgeleiden
van de oplossing. Deze worden in (6.70) op een hoop geveegd en met K(t) aangeduid. Zoals
eerder gezegd heeft het geen zin om te proberen K(t) aan de oplossing te relateren omdat deze
onbekend is. Het idee is K(t) te gaan schatten aan de hand van bepaalde numeriek berekende
grootheden en daarvoor zullen we alleen de afhankelijkheid (6.70) van de afbreekfout van h
in de limiet voor verdwijnende h nodig hebben.
De afbreekfout bij nietlineaire dierentiaalvergelijkingen
Na linearisatie van de afbreekfoutrelatie kan bovenstaande theorie ook op nietlineaire dif-
ferentiaalvergelijkingen worden toegepast. De expansie van de afbreekfout blijft in wezen
dezelfde, afgezien van de variabiliteit van de versterkingsfactoren, en de redenering verandert
niet onder deze uitbreiding. Laten we eens experimenteel verieren dat de Euler Voorwaarts
87
afbreekfout bij de waterafvoervergelijking inderdaad lineair met h naar nul gaat. De exacte
oplossing van de vergelijking is bekend zodat de afbreekfout precies bekend is.
In Tabel 6.2 zijn numerieke oplossing (tweede kolom) en de afbreekfout (derde kolom) in het
punt t = 0.2 getabelleerd voor steeds gehalveerde stapgrootten, startend met h = 0.01. Let
op de notatie: y(t, h) staat voor de numerieke approximatie met stapgrootte h in het punt t.
Het punt t = 0.2 is in het middengebied gekozen omdat de afbreekfouten daar het grootst zijn
wat de duidelijkheid van de verschijnselen ten goede komt; in principe zou elke andere waarde
van t gekozen kunnen worden. In de vierde kolom is het quotient van de afbreekfout en h
h y(0.2, h) y(0.2) y(0.2, h) (y(0.2) y(0.2, h))/h (6.77)
0.010000000 4.86599176380252 -0.04585386 -4.585386
0.005000000 4.84332116375693 -0.02318326 -4.636652 -0.02267060
0.002500000 4.83178659464220 -0.01164869 -4.659477 -0.01153457
0.001250000 4.82597571717546 -0.00583781 -4.670253 -0.00581036
0.000625000 4.82306008128045 -0.00292218 -4.675489 -0.00291563
0.000312500 4.82159979736355 -0.00146189 -4.678070 -0.00146028
0.000156250 4.82086904907235 -0.00073114 -4.679351 -0.00073074
0.000078125 4.82050352459794 -0.00036562 -4.679990 -0.00036552
Tabel 6.2: Numerieke oplossing van y

= 502y
2
in t=0.2, met behulp van Euler Voorwaarts
uitgerekend. Dit quotient blijkt weinig te varieren over de getoonde range van hwaarden en
lijkt voor h 0 naar een constante waarde te gaan. Met andere woorden, voor niet te grote
h blijkt de afbreekfout praktisch lineair met h af te nemen. Numerieke experimenten met
allerlei dierentiaalvergelijkingen laten zien dat dit steeds het geval is, afgezien van die (in de
praktijk weinig voorkomende) gevallen waar de oplossing van de dierentiaalvergelijking niet
aan bepaalde continuiteitseisen voldoet.
Foutschatting door middel van stapgrootte halvering
Dat de afbreekfout in bovenstaand voorbeeld voor niet zeer kleine h niet helemaal lineair
is met h houdt verband met het feit dat men de Riemann-som h
N1
0

n+1
alleen door de
integraal
_
t
0
(t)dt mag vervangen in de limiet h 0; de Riemann-som en de integraal ver-
schillen voor kleine doch niet innitesimale h met een bedrag dat van h afhangt. We schrijven
dienovereenkomstig:
e(t, h) = K(t, h) h
p
, lim
h0
K(t, h) = K(t). (6.71)
Het idee is dat K(t, h) vrijwel onafhankelijk van h wordt (en wel gelijk aan K(t)) indien h
maar voldoende klein wordt gekozen. Dat wordt aangegeven door de schrijfwijze:
e(t, h) K(t)h
p
voor voldoende kleine h. (6.72)
Op basis van deze approximatieve gelijkheid gaan we zonder enige kennis van de exacte op-
lossing een schatting voor K(t) in een willekeurig te kiezen punt t geven op basis van twee
numerieke approximaties. De eerste approximatie werkt met stapgrootte h (N stappen) en
de tweede met stapgrootte
1
2
h (en gebruikt dus 2N stappen om in t uit te komen). Notatie:
w
N
= y(t, h) en w
2N
= y(t,
h
2
). We noemen dit afbreekfoutschatting door stapgrootte halve-
ring en het werkt als volgt.
88
Neem aan dat h zo klein is dat (6.72) goed opgaat (we zullen nog aangeven hoe dat gecon-
troleerd kan worden). Dan geldt:
e(t, h) = y(t) y(t, h) K(t)h
p
(6.73)
en, omdat (6.72) beter opgaat naarmate h kleiner wordt, zal zeker gelden
e(t,
h
2
) = y(t) y(t,
h
2
) K(t)(
h
2
)
p
, (6.74)
Aftrekken van twee bovenstaande vergelijkingen levert
y(t,
h
2
) y(t, h) K(t)h
p
(1 (
1
2
)
p
), (6.75)
waaruit de waarde van K(t) volgt:
K(t)
y(t,
h
2
) y(t, h)
h
p
(1 (
1
2
)
p
)
. (6.76)
Merk op dat dit vergelijkbaar is met Richardson foutschatting, die behandeld is in Paragraaf
3.6. Vullen we deze schatting voor K(t) in in (6.73) dan ontstaat een afbreekfoutschatting
voor de approximatie met h en bij invulling in (6.74) ontstaat een afbreekfoutschatting voor
de approximatie met h/2. Omdat het zinvoller is de afbreekfout in de meest nauwkeurige
approximatie te schatten substitueren we (6.76) in (6.74):
y(t) y(t,
h
2
)
1
2
p
1
[y(t,
h
2
) y(t, h)]. (6.77)
We zien dat de orde van de methode zich in de afbreekfoutschatting manifesteert via de factor
1
2
p
1
.
Laten we deze formule toepassen op de Euler Voorwaarts approximaties uit kolom twee
van tabel 6.2 voor het waterafvoerprobleem. De resultaten voor paren (h,
1
2
h) met h =
0.05, 0.025, 0.00125,. . . staan in de vijfde kolom van de tabel en kunnen vergeleken worden
met de afbreekfouten in de vierde kolom die berekend zijn als het verschil van de numerieke
en de exacte oplossing. De geschatte afbreekfouten blijken heel dicht in de buurt van de exact
berekende te liggen, en wel dichter naarmate h kleiner wordt. Dat is ook logisch want hoe
kleiner h hoe beter aan (6.72) voldaan is.
In de praktische situatie dat de oplossing niet bekend is bestaat geen directe controle op de
kwaliteit van de afbreekfoutschatting. We weten niet in hoeverre voor een bepaalde h goed
aan de lineariteitsrelatie (6.72) is voldaan en of afbreekfoutschattingen voor deze h wel re-
alistische informatie leveren. Het aardige is dat ook hierover experimentele informatie kan
worden verkregen door nogmaals stapgroottehalvering toe te passen (h h/2 h/4). We
schrijven: y(t) y(t, h/4) K(h/4)
p
waaruit door aftrekking van (6.74) volgt
y(t, h/4) y(t, h/2) K(
h
4
)
p
. (6.78)
Deze relatie en (6.75) kunnen gecombineerd worden tot:
y(t, h/2) y(t, h)
y(t, h/4) y(t, h/2)

K(
h
2
)
p
K(
h
4
)
p
2
p
. (6.79)
89
Indien we voor zekere h voor de drie opeenvolgende approximaties y(t, h),
y(t,
h
2
), y(
h
4
) vinden dat de grootheid
y(t,h/2)y(t,h)
y(t,h/4)y(t,h/2)
in de buurt van 2
p
ligt (dus 2 voor Euler,
4 voor Modied Euler, 16 voor RK4) dan mogen we aannemen dat vanaf deze h goed aan
(6.72) is voldaan.
Laten we deze procedure toepassen op een enigszins aangepast model voor de waterafvoer
waarbij y
2
in het rechterlid vervangen is door y
2.1
. Van deze vergelijking is geen analytische
oplossing bekend. Tabel 6.3 geeft de numerieke approximaties van de oplossing op t = 0.2 voor
een zelfde reeks van hwaarden als in Tabel 6.2. De resultaten in kolom vier laten zien dat
vanaf h=0.00125 de afbreekfout als lineair in h beschouwd kan worden. In de praktijk worden
h y(0.2,h) (6.77) (6.79)
0.01000000000 4.559913710926
0.00500000000 4.543116291062 -0.01679741
0.00250000000 4.534384275071 -0.00873201 1.9236588
0.00125000000 4.529943322643 -0.00444095 1.9662484
0.00062500000 4.527705063356 -0.00223825 1.9841099
0.00031250000 4.526581601705 -0.00112346 1.9922881
0.00015625000 4.526018801777 -0.00056279 1.9962007
0.00007812500 4.525737136254 -0.00028166 1.9981143
0.00003906250 4.525596237317 -0.00014089 1.9990606
0.00001953125 4.525525771331 -0.00007046 1.9995311
Tabel 6.3: Numerieke oplossing van y

= 50 2y
2.1
in t=0.2. met Euler Voorwaarts
afbreekfoutschattingen meestal op de volgende wijze toegepast. Je eist dat de afbreekfout
op een zeker tijdstip binnen een bepaalde marge blijft en je wilt een stapgrootte bepalen
waarvoor dat het geval is.
Eerst probeer je een stapgrootte te vinden die een kans maakt aan de gevraagde eis te voldoen.
Je zou de keuze kunnen baseren op kennis van het globale verloop van de oplossing en op een
idee over het aantal punten dat nodig is de oplossing visueel te herkennen als je deze in die
punten plot. Bijvoorbeeld, voor een sinus op het interval (0,) heb je toch al gauw 10 a 20
punten nodig.
Te beginnen met zon stapgrootte voer je de integratie driemaal uit met telkens gehalveerde
stapgrootte, en kijkt of aan de lineariteitstest (6.79) is voldaan. Zo niet dan halveer je h
nogmaals en voert de test opnieuw uit voor de laatste drie approximaties. Zodra de test
positief uitvalt bereken je een schatting voor de afbreekfout volgens (6.77) uit de laatste
twee approximaties. Is de geschatte afbreekfout niet kleiner dan de marge dan ga je door
met stapgroottehalvering tot je wel binnen de marge uitkomt. De schattingen zelf worden
daarbij steeds nauwkeuriger uitgevoerd omdat steeds beter aan de lineariteitstest (6.79) wordt
voldaan naarmate h kleiner wordt.
Opgave
1. Een dierentiaalvergelijking wordt met twee verschillende methoden geapproximeerd.
Voor beide methoden zijn de stapgrootten h=0.1, 0.05, 0.025 gebruikt. De numerieke
oplossingen in het punt t=1 zijn hieronder getabelleerd.
90
Bepaal de orde p van de globale afbreekfout O(h
p
) van beide methoden.
h methode 1 methode 2
0.1 0.752790 0.710791
0.05 0.750686 0.730912
0.025 0.750180 0.740587
6.9 Numerieke methoden voor stelsels dierentiaalvergelijkin-
gen
Er is eigenlijk heel weinig verschil tussen de behandeling van een dierentiaalvergelijking
voor een onbekende functie en een stelsel van k dierentiaalvergelijkingen voor k onbeken-
de functies. Numerieke methoden voor stelsels worden op eenzelfde wijze afgeleid als in het
scalaire geval; bij consequent gebruik van de vectornotatie is er eigenlijk niet eens verschil
in de formules. Dat geldt ook voor de afbreekfoutrelatie; de stabiliteitstheorie en de analyse
van de globale afbreekfout zijn dan ook niet veel meer dan een generalizatie van de theorie
voor het scalaire geval. De theorievorming voor stelsels is weer gecentreerd rond de lineaire
vergelijkingen met constante coecienten, de zg. teststelsels y

= Ay + g(t). In de theorie
blijken de eigenwaarden van de matrix A de grootheid in y

= y +g(t) te vervangen. Het


enige essentieel nieuwe aspect waarmee rekening gehouden moet worden is het voorkomen
van complexe eigenwaarden.
De voorwaartse methode van Euler voor stelsels
De werkwijze is dezelfde als voorheen, nu toegepast op elk van de dierentiaalvergelijkingen
afzonderlijk. Voor de i-de component: w
i,n+1
ligt op de raaklijn in t
n
aan de i-de oplos-
singskromme door het vorige numerieke punt (t
n
, w
n
) (deze kromme ligt in de buurt van de
exacte i-de oplossingskromme y
i
(t)). Onder gebruikmaking van de ide dierentiaalvergelij-
king y

i
= f
i
(t, y
1
, y
2
, . . . , y
k
) volgt:
w
i,n+1
= w
in
+hf
i
(t
n
, w
1n
, w
2n
, . . . , w
kn
). (6.80)
Voor elk van de componenten kan een dergelijke formule opgeschreven worden. In vectorno-
tatie worden deze formules samengevat als:
w
n+1
= w
n
+hf (t
n
, w
n
). (6.81)
De Euler Voorwaarts formule voor stelsels is gewoon een vectoriele copie van die voor het
scalaire geval.
Als we een impliciete methode gebruiken zoals Euler Achterwaarts, dan moet er elke tijdstap
een oplossing bepaald worden van het volgende niet-lineaire stelsel:
w
n+1
= w
n
+hf (t
n+1
, w
n+1
).
Dit kan gedaan worden met een methode uit Paragraaf 4.5.
De afbreekfoutrelatie kan componentsgewijs op dezelfde wijze als in het scalaire geval worden
afgeleid. De ide component e
i,n+1
van de afbreekfout in t
n+1
, gedenieerd als
e
i,n+1
= y
i
(t
n+1
) w
i,n+1
, (6.82)
91
wordt weer opgesplitst volgens
e
i,n+1
= (y
i
(t
n+1
) z
i,n+1
) + (z
i,n+1
w
i,n+1
), (6.83)
waarbij z
i,n+1
gevonden wordt door de Eulerformule in de punten (t
n
, y
i
(t
n
)) (i=1,2,. . . ,k)
van de exacte oplossingskrommen toe te passen:
z
i,n+1
= y
i
(t
n
) +hf
i
(t
n
, y
1
(t
n
), y
2
(t
n
), . . . , y
k
(t
n
)).
Door aftrekking van (6.80) volgt voor het doorgavedeel:
z
i,n+1
w
i,n+1
= e
in
+h[f
i
(t
n
, y
1
(t
n
), y
2
(t
n
), . . . , y
k
(t
n
))
f
i
(t
n
, w
1n
, w
2n
, . . . , w
kn
)]. (6.84)
Een uitdrukking voor de afbreekfout,

i,n+1
=
y
i
(t
n+1
) z
i,n+1
h
(6.85)
volgt, precies als in het scalaire geval, door de Taylorontwikkelingen van y
i
(t
n+1
) en z
i,n+1
rond het punt t = t
n
van elkaar af te trekken. Men veriere dat

i,n+1
=
1
2
hy

i
(
i,n+1
),
i,n+1
(t
n
, t
n+1
). (6.86)
Na invullen van (6.84) en (6.86) in (6.83) (voor i=1,2,. . . ,k) resulteert de vectoriele versie van
de scalaire afbreekfoutrelatie:
e
n+1
= e
n
+h[f (t
n
, y(t
n
)) f (t
n
, w
n
)] +h
n+1
, (6.87)
waarbij de afbreekfoutvector gegeven wordt door:

n+1
=
1
2
hy

(
n+1
),
n+1
(t
n
, t
n+1
). (6.88)
De problemen die de afbreekfoutrelatie in deze vorm voor de verdere analyse oplevert zijn
van dezelfde aard als in het scalaire geval. Voor nietlineaire f (t, y) moet het doorgavedeel
weer gelinearizeerd worden door middel van een Taylorontwikkeling, nu voor een functie van
meerdere variabelen:
f
i
(t
n
, w
1n
, w
2n
, . . . , w
kn
) = f
i
(t
n
, y
1
(t
n
), y
2
(t
n
), . . . , y
k
(t
n
))
+ (w
1n
y
1
(t
n
))(
f
i
y
1
)
n
+ (w
2n
y
2
(t
n
))(
f
i
y
2
)
n
+ . . .
+ (w
kn
y
k
(t
n
))(
f
i
y
k
)
n
,
92
waarbij de benedenindex
n
bij de partiele afgeleiden staat voor evaluatie in het punt (t
n
, y
1
(t
n
), y
2
(t
n
), . . . , y
k
(t
n
)).
Enige reorganisatie van deze uitdrukking levert:
f
i
(t
n
, y
1
(t
n
), y
2
(t
n
), . . . , y
k
(t
n
)) f
i
(t
n
, w
1n
, w
2n
, . . . , w
kn
) =
(
f
i
y
1
)
n
e
1n
+ (
f
i
y
2
)
n
e
2n
+. . . + (
f
i
y
k
)
n
e
kn
=
_
f
i
y
1
f
i
y
2
. . .
f
i
y
k
_
n
_
_
_
_
_
e
1n
e
2n
.
.
.
e
kn
_
_
_
_
_
.
In vectorvorm:
f (t
n
, y(t
n
)) f (t
n
, w
n
) =
_
_
_
_
_
_
f
1
y
1
f
1
y
2
. . .
f
1
y
k
f
2
y
1
f
2
y
2
. . .
f
2
y
k
.
.
.
.
.
.
.
.
.
f
k
y
1
f
k
y
2
. . .
f
k
y
k
_
_
_
_
_
_
n
e
n
. (6.89)
De matrix is de Jacobiaan van de vectorfunctie f (t, y) in het punt (t
n
, y
1
(t
n
), y
2
(t
n
), . . . , y
k
(t
n
));
we noemen deze J
n
. Vullen we bovenstaande uitdrukking voor het doorgavedeel van de af-
breekfout in in (6.83) dan ontstaat de gelineariseerde vorm van (6.87):
e
n+1
= (I +hJ
n
)e
n
+h
n+1
. (6.90)
Hogere orde beginwaarde problemen
Een hogere orde beginwaarde probleem wordt beschreven door de dierentiaalvergelijking
y
(n)
= f(t, y, y
(1)
, ..., y
(n1)
) , (6.91)
met beginvoorwaarden
y(0) = y
0
, y

(0) = y

0
, ..., y
(n1)
(0) = y
(n1)
0
,
waarin y
(k)
een korte schrijfwijze is voor
d
k
y
dt
k
.
Een manier om dit probleem op te lossen is de volgende transformatie:
x
1
= y ,
x
2
= y
(1)
,
.
.
.
x
n
= y
(n1)
.
Hiermee gaat (6.91) over in het volgende eerste orde stelsel
x

1
= x
2
,
.
.
.
x

n1
= x
n
,
x

n
= f(t, x
1
, ..., x
n
) ,
93
met beginvoorwaarden x
1
(0) = y
0
, ..., x
n
(0) = y
(n1)
0
.
Voorbeeld (mathematische slinger)
De vergelijking van de mathematische slinger wordt gegeven door

+ sin = 0 ,
met beginvoorwaarden (0) =
0
en

(0) = 0. Het bijbehorende eerste orde stelsel volgt uit


x
1
= en x
2
=

:
x

1
= x
2
,
x

2
= sin x
1
,
met beginvoorwaarden x
1
(0) =
0
en x
2
(0) = 0. Als we de voorwaartse methode van Euler
gebruiken dan geldt:
x
j+1
1
= x
j
1
+hx
j
2
,
x
j+1
2
= x
j
2
hsin x
j
1
.
6.10 Stabiliteit van numerieke methoden voor teststelsels
De analogie van het scalaire en vectoriele geval strekt zich verder uit tot de numerieke sta-
biliteitsanalyse. Ook voor stelsels is deze gecentreerd rond lineaire dierentiaalvergelijkingen
met constante coecienten, de klasse van teststelsels:
y

= Ay +g(t), A : (k bij k) constant. (6.92)


Voor een teststelsel gaat (6.90) over in:
e
n+1
= (I +hA)e
n
+h
n+1
, (6.93)
immers A is de Jacobiaan van f (t, y) = Ay + g(t). I+hA wordt de versterkingsmatrix van
de methode van Euler Voorwaarts genoemd.
De vectoriele afbreekfoutrelatie (6.93) wordt geanalyseerd door ontkoppeling met behulp van
de transformatie e
n
= S
n
, waarbij S de matrix is met de eigenvectoren van A als kolom-
men. Introduceren we deze transformatie in (6.93), waarbij e
n
en e
n+1
op dezelfde wijze
getransformeerd worden omdat A constant is, dan ontstaat, na vermenigvuldiging met S
1
:

n+1
= S
1
(I +hA)S
n
+S
1
h
n+1
= (I +hS
1
AS)
n
+hS
1

n+1
. (6.94)
Uit de lineaire algebra is bekend dat de gelijkvormigheidstransformatie met S de matrix A
diagonaliseert: S
1
AS = , waarbij een diagonaalmatrix is met de eigenwaarden van A
op de hoofddiagonaal: = Diag(
1
,
2
, . . . ,
k
).
Ontbinden we verder nog de afbreekfoutvector
n+1
langs de eigenvectoren,

n+1
=
k

i=1

i,n+1
v
i
= S
n+1
, (6.95)
94
waarmee S
1

n+1
overgaat in S
1
S
n+1
=
n+1
, dan kan de getransformeerde afbreekfout-
relatie geschreven worden als:

n+1
= (I +h)
n
+h
n+1
. (6.96)
N.B. De getallen
i,n+1
zijn de componenten van de afbreekfoutvector t.o.v. de basis der
eigenvectoren.
Eenvoudig is in te zien dat geldt:
I +h = Diag(1 +h
1
, 1 +h
2
, . . . , 1 +h
k
) (6.97)
en dat componentsgewijs uitschrijven van (6.96) bijgevolg levert:

i,n+1
= (1 +h
i
)
i,n
+h
i,n+1
(i = 1, 2, . . . , k). (6.98)
Blijkens deze relatie hangt de ide component van de getransformeerde afbreekfoutvector op
tijdstip t
n+1
alleen via de ide component af van de getransformeerde afbreekfoutvector op
tijdstip t
n
, en niet via de andere componenten zoals dat bij de oorspronkelijke afbreekfout-
vector e
n+1
het geval was. Daarom noemen we de afbreekfoutrelatie (6.96) ontkoppeld.
De hierboven gegeven ontkoppelingsprocedure kan alleen worden uitgevoerd indien A diago-
nalizeerbaar is. Uit de lineaire algebra is bekend dat hiervoor noodzakelijk en voldoende is
dat A een volledig stel van k lineair onafhankelijke eigenvectoren heeft. Deze voorwaarde
garandeert tevens dat de afbreekfoutvector
n+1
altijd langs de eigenvectoren ontbonden kan
worden. De in deze paragraaf behandelde theorie is naar nietdiagonalizeerbare matrices uit
te breiden maar wordt dan wat gecompliceerder.
De afbreekfoutrelatie (6.98) laat een eenvoudige conclusie toe: indien alle factoren 1 + h
i
in absolute waarde kleiner dan 1 zijn dempen alle componenten van de getransformeerde
afbreekfoutvector en even goed alle componenten van de oorspronkelijke afbreekfoutvector,
immers beiden zijn verbonden via de van n onafhankelijke matrix S door de relatie e
n
= S
n
.
Omgekeerd zal exponentiele groei van een of meer van de componenten van exponentiele
groei van een van de componenten van e tot gevolg hebben. Voor absolute stabiliteit van de
Euler-oplossing van een stelsel moeten we dus eisen:
[ 1 +h
i
[< 1, i = 1, 2, . . . , k. (6.99)
Ten opzichte van het scalaire geval komt bij het uitwerken van (6.99) een nieuw aspect naar
voren: de eigenwaarden van de matrix kunnen complex zijn en de versterkingsfactor 1 +h
i
kan bijgevolg ook complex zijn. De linkerzijde van (6.99) moet dan ook genterpreteerd
worden als de modulus van het complexe getal 1 +h
i
; zo opgevat garandeert (6.99) dat alle
componenten van de afbreekfout wegdempen in de loop van het integratieproces, voor zowel
complexe als reele eigenwaarden.
Noemen we = + i (deze formulering omvat het reele geval, nl. voor = 0) dan geldt:
[ 1+h [=[ (1+h) +ih [. Omdat de modulus van een complex getal de wortel uit som van
de kwadraten van het reeel en het imaginair deel is, [ 1 + h [=
_
(1 +h)
2
+h
2

2
, wordt
(6.99) geschreven als
(1 +h)
2
+h
2

2
< 1, i = 1, 2, . . . , n. (6.100)
95
Aan (6.100) kan niet worden voldaan zodra een eigenwaarde met een positief reeel deel voor-
komt, met als gevolg dat de afbreekfout voor elke h onbegrensd gaat groeien, net als bij
scalaire testvergelijkingen met positieve .
Alleen stelsels waarvan alle eigenwaarden een negatief reeel deel hebben kunnen stabiel gentegreerd
worden. Dat zijn de stelsels met dempende oplossingen welke men in de praktijk normaal
gesproken tegen komt.
De bijbehorende stabiliteitsvoorwaarde voor h volgt door naar de vergelijking (1 + h
i
)
2
+
h
2

2
i
= 1 te kijken. De nietnul wortel van deze kwadratische vergelijking in h (h =
2
i

2
i
+
2
i
)
scheidt groei en demping van de ide component van de afbreekfout. De integratie van het
stelsel is stabiel indien h voldoet aan:
h < min
i
2 [
i
[

2
i
+
2
i
i = 1, 2, . . . , k. (6.101)
Waarschuwing: Maak niet de fout in geval van een complexe eigenwaarde de reele stabili-
teitsvoorwaarde h <
2
||
toe te passen, en vervolgens in deze formule [ [ als de modulus van
te interpreteren. De aeiding van de voorwaarde h <
2
||
uit (6.99) is alleen geldig voor
reele , niet voor complexe . Voor complexe moet je met (6.101) werken
Heel inzichtelijk is het de vergelijking [ 1 +h [=
_
(1 +h)
2
+h
2

2
= 1 af te beelden in het
complexe hvlak (op de horizontale as wordt h uitgezet en op de verticale h); de verge-
lijking stelt daarin een cirkel voor met middelpunt (-1,0) en straal 1. Voor punten h binnen
deze cirkel geldt dat de modulus van de versterkingsfactor kleiner is dan 1 en daarbuiten gro-
ter. Het gebied binnen de cirkel wordt dan ook het stabiliteitsgebied van de methode van Euler
genoemd. Het stabiliteitsgebied van Euler ligt (uiteraard, omdat
_
(1 +h)
2
+h
2

2
< 1 al-
leen mogelijk is voor negatieve ) geheel links van de imaginaire as maar raakt aan deze as.
Met behulp van het stabiliteitsgebied kan de stabiliteitsvoorwaarde voor h heel aardig grasch
bepaald worden. Je begint met een eigenwaarde
i
in het hvlak te markeren; je markeert
dus in feite het punt h
i
met h=1. De ligging van het gemarkeerde punt geeft aan of de inte-
gratie al of niet stabiel is voor h=1. Ligt het gemarkeerde punt buiten het stabiliteitsgebied
dan ga je h inkrimpen tot h
i
binnen het stabiliteitsgebied komt te liggen. Inkrimpen van
h vanaf h = 1 betekent grasch dat je langs een rechte lijn van het gemarkeerde punt naar
de oorsprong loopt. Je kunt in veel gevallen met het blote oog al vrij nauwkeurig vaststellen
voor welke h de lijn de cirkel snijdt. Dit voer je uit voor elke eigenwaarde; de kleinste h die
je nodig had bepaalt de stabiliteitsgrens.
Uiteraard lukt deze operatie alleen als alle eigenwaarden een strikt negatief reeel deel hebben.
Inkrimpen van h kan je nooit binnen het stabiliteitsgebied brengen bij een eigenwaarde met
een reeel deel dat positief of nul is, dit laatste omdat het stabiliteitsgebied aan de imaginaire
as raakt. We besteden speciaal aandacht aan zuiver imaginaire eigenwaarden vanwege het
grote praktisch belang. Dierentiaalvergelijkingen met zuiver imaginaire eigenwaarden repre-
senteren systemen zonder demping. Zulke systemen resulteren uit meer realistische modellen
nadat dempende mechanismen, zoals wrijving en warmte geleiding, in eerste benadering zijn
verwaarloosd. Het overblijvende ongedempte model is vaak nog zo ingewikkeld dat het nu-
meriek moet worden opgelost.
96
Modied Euler en RungeKutta voor stelsels
De Modied Euler en RungeKutta methoden worden, net als Euler Voorwaarts, components-
gewijs op dezelfde wijze afgeleid als in het scalaire geval en de resulterende formules zijn, net
als (6.81) dat is voor de voorwaartse methode van Euler, niets anders dan vectoriele copieen
van hun scalaire varianten. Hetzelfde geldt voor hun afbreekfoutrelaties. Voor homogene
teststelsels zijn de afbreekfoutrelaties voor alle drie de methoden te vangen onder de formule:
e
n+1
= G(hA)e
n
+h
n+1
, (6.102)
met respectievelijk:
G
E
(hA) = I +hA (Euler Voorwaarts), (6.103)
G
H
(hA) = I +hA+
h
2
2
A
2
(Modied Euler), (6.104)
G
RK
(hA) = I +hA+
h
2
2
A
2
+
h
3
6
A
3
+
h
4
24
A
4
(RungeKutta). (6.105)
De versterkingsmatrix wordt steeds gevonden door in de versterkingsfactor Q(h) van de
betreende methode voor h de matrix hA te substitueren, m.a.w. G(hA) is het matrixpo-
lynoom gedenieerd door het scalaire polynoom Q(h).
De afbreekfoutrelatie (6.102) wordt voor alle drie methoden op dezelfde manier ontkoppeld.
Door de transformatie e
n
= S
n
gaat (6.102) over in:

n+1
= S
1
G(hA)S
n
+hS
1

n+1
. (6.106)
Elk van de drie versterkingsmatrices kan termsgewijs getransformeerd worden, immers
S
1
(I +hA+
h
2
2
A
2
+. . .)S = I +hS
1
AS +
h
2
2
S
1
A
2
S +. . . (6.107)
Verder diagonaliseert de transformatie elke macht van A volgens:
S
1
A
k
S =
k
, (6.108)
waarbij de diagonaalvorm van A is. De transformatie laat kennelijk de vorm van het matrix
polynoom onveranderd en vervangt alleen het argument hA door h: S
1
G(hA)S = G(h).
Wordt verder de afbreekfoutvector weer langs de eigenvectoren van A ontbonden dan kan de
getransformeerde afbreekfoutrelatie (6.106) worden geschreven als:

n+1
= G(h)
n
+h
n+1
. (6.109)
Het is niet moeilijk in te zien dat G(h) een diagonaalmatrix is, en wel met de verster-
kingsfactoren van de respectieve methoden als diagonaalelementen:
G(h) = Diag[Q(h
1
), Q(h
2
), . . . , Q(h
k
)]. (6.110)
Componentsgewijze oplossing van het ontkoppelde stelsel geeft:

i,n+1
= Q(h
i
)
i,n
+h
i,n+1
(i = 1, 2, . . . , k). (6.111)
We concluderen dat voor absolute stabiliteit de versterkingsfactor Q(h) voor elk van de ei-
genwaarden van A in absolute waarde kleiner moet zijn dan 1.
97
Het komt er in feite op neer dat we bij de stabiliteitsanalyse voor stelsels gewoon met de sca-
laire versterkingsfactor kunnen blijven werken en daarin achtereenvolgens alle eigenwaarden
van de matrix A substitueren!
Bij uitwerking van deze voorwaarde tot een voorwaarde voor de stapgrootte, waarbij uiter-
aard weer rekening moet worden gehouden met de complexiteit van de eigenwaarden, komen
de verschillen tussen de drie methoden naar voren. Evenals bij Euler Voorwaarts wordt met
stabiliteitsgebieden in het complexe hvlak gewerkt. We zullen nu een aantal stabiliteits-
gebieden geven. De stabiliteitsgebieden van de expliciete methoden staan in Figuur 6.12 en
die van de impliciete methoden in Figuur 6.13. Een stabiliteitsgebied kan als volgt gebruikt
worden: stel
i
is een complexe eigenwaarde, dan moet h zo klein genomen worden dat h
i
binnen het stabiliteitsgebied valt. Het stabiliteitsgebied van Modied Euler lijkt erg veel
Euler voorwaarts
1 1 2 3 0
1
2
1
2
Modified Euler
1 1 2 3 0
1
2
1
2
Figuur 6.12: Stabiliteitsgebieden van de expliciete methoden
op dat van Euler. Beide methoden kennen voor een gegeven stelsel dierentiaalvergelijkingen
dan ook vrijwel dezelfde stapgrootte beperking. Met name geldt voor beide methoden dat
stelsels waarin zuiver imaginaire eigenwaarden voorkomen voor geen enkele stapgrootte sta-
biel te integreren zijn, tot uiting komend in onbegrensde foutgroei.
Het stabiliteitsgebied van de RK
4
methode staat in Figuur 6.14. We zien dat de methode
voorwaardelijk stabiel is. Tevens merken we op dat de methode ook stabiel kan zijn in het
geval van y

= Ay met een matrix A, die zuiver imaginaire eigenwaarden heeft. De eerder


door ons behandelde expliciete methoden zijn altijd instabiel voor een dergelijk stelsel.
Stabiliteit van een algemeen stelsel
Voor stelsels van de vorm
x

= f(t, x) , x(0) = x
0
,
98
Euler achterwaarts
1 2 1 2 0
1
2
1
2
Trapeziumregel
1 2 1 2 0
1
2
1
2
Figuur 6.13: Stabiliteitsgebied van de impliciete methoden
gelden lokaal dezelfde eigenschappen als voor stelsels van het type (6.92). De rol van A wordt
dan ingenomen door de matrix van partiele afgeleiden van f gegeven door
_
_
_
f
1
x
1
. . .
f
1
x
k
.
.
.
.
.
.
f
k
x
1
. . .
f
k
x
k
_
_
_ .
Voorbeeld (stabiliteit mathematische slinger)
We beschouwen de stabiliteit van de numerieke oplossing van de vergelijking van de mathe-
matische slinger:

+ sin = 0 , (0) =
0
en

(0) = 0 .
We kunnen dit schrijven als het stelsel
x

1
= x
2
= f
1
(t, x
1
, x
2
) ,
x

2
= sin x
1
= f
2
(t, x
1
, x
2
) .
De matrix van afgeleiden is nu
_
0 1
cos x
1
0
_
.
Als we aannemen dat

2
<
0
<

2
dan zijn de eigenwaarden

1,2
= i

cos x
1
.
Merk op dat de voorwaartse methode van Euler en de methode van Modied Euler instabiel
zijn voor elke h. De Trapeziumregel is stabiel en de achterwaartse methode van Euler leidt tot
99
RungeKutta
1 1 2 3 4 0
1
2
3
1
2
3
Figuur 6.14: Stabiliteitsgebied van de Runge-Kutta methode RK
4
demping van de slingerbeweging. In een volgende paragraaf zullen we een expliciete methode
behandelen, die wel stabiel is voor stelsels met imaginaire eigenwaarden.
De orde van de globale afbreekfout bij Euler, Modied Euler en RK4
De vectoriele afbreekfout wordt voor elk van de drie methoden componentsgewijs afgeleid,
op dezelfde wijze als in het scalaire geval (analoog aan de aeiding van (6.86) voor Euler
Voorwaarts). Dat houdt automatisch in dat elke component van de afbreekfoutvector de-
zelfde grootteorde heeft als de scalaire afbreekfout, dus O(h), O(h
2
) en O(h
4
) voor Euler
Voorwaarts, Modied Euler en RK respectievelijk. Deze grootte-orde verandert niet onder
transformatie met de matrix S omdat deze niet van h afhangt zodat uit

i,n+1
= Q(h
i
)
i,n
+h
i,n+1
(i = 1, 2, . . . , k) (6.112)
volgt, op dezelfde wijze als in het scalaire geval, dat de componenten van de globale ge-
transformeerde afbreekfout (t, h) dezelfde grootte-orde hebben als de lokale afbreekfout. Bij
terugtransformatie met de matrix S blijft diezelfde orde van grootte weer behouden. Voor
kleine maar niet innitesimale h geldt dus
e
i
(t, h) K
i
(t)h
p
(i = 1, 2, . . . , k). (6.113)
De details van deze beschouwing zijn verder niet interessant omdat de onbekende evenredig-
heidsconstanten K
i
(t) door stapgroottehalvering uit de numerieke resultaten geschat zullen
worden, op dezelfde wijze als in het scalaire geval. Dit leidt tot:
y
i
(t) y
i
(t,
h
2
)
1
2
p
1
[y
i
(t,
h
2
) y
i
(t, h)] (i = 1, 2, . . . , k), (6.114)
100
waarbij p de orde van de gebruikte methode is.
De afbreekfout wordt voor iedere component afzonderlijk geschat op basis van de numerieke
data voor die betreende component. De numerieke data voor de andere componenten spelen
daarbij geen rol.
6.11 Stijve dierentiaalvergelijkingen
Stijve dierentiaalvergelijkingen (sti systems) beschrijven problemen waarbij inschakelver-
schijnselen optreden. Hun oplossing is de som van een snel uitdempend deel, de transient, en
een langzaam varierend deel. De transient is na korte tijd uitgewerkt; daarna blijft alleen
het langzaam varierend deel van de oplossing over, de (quasi-)stationaire oplossing.
Stijfheid kan in verscheidene vormen voorkomen. Wat voor consequenties stijfheid voor de
keuze van een numerieke methode heeft leggen we uit aan de hand van de meest eenvoudige
verschijningsvorm van stijfheid, namelijk die bij scalaire eerste orde niet-homogene testverge-
lijkingen.
Om de discussie te vergemakkelijken schrijven we testvergelijkingen in de gedaante y

=
(y F(t)) +F

(t). De oplossing met beginvoorwaarde y(0) = y


0
is y = (y
0
F(0))e
t
+F(t),
zoals meteen door substitutie is na te gaan. Deze schrijfwijze is handig omdat je uit de dif-
ferentiaalvergelijking direct de oplossing kunt aezen en omgekeerd bij elke keuze van en
een particuliere oplossing F(t) de bijbehorende testvergelijking kunt opschrijven. Als sterk
negatief is en F(t) voldoende glad hebben we met een stijf probleem te maken. De transient
is (y
0
F(0))e
t
en F(t) is de quasi-stationaire oplossing.
Voor een foutbeschouwing recapituleren we de reeksontwikkeling voor de globale afbreekfout
na N stappen:
e
N
= Q
N1
h
1
+Q
N2
h
2
+Q
N2
h
3
+. . . +Qh
N1
+h
N
. (6.115)
Bij stabiele integratie wordt elke afbreekfout met een factor Q ([ Q [< 1) gereduceerd. Deze
exponentiele demping zorgt ervoor dat afbreekfouten die in het begin gemaakt zijn steeds
minder zwaar gaan wegen ten opzichte van de laatst gemaakte afbreekfouten welke nog niet
zo sterk gedempt zijn. Er is sprake van een soort verversingsproces: oude afbreekfouten wor-
den in de loop van het integratieproces steeds minder belangrijk en vervangen door nieuwe.
De globale afbreekfout heeft daardoor de neiging zich aan te passen aan de afbreekfouten
ter plaatse, al zal er vanwege verder terug gemaakte afbreekfouten die nog niet helemaal zijn
weggedempt altijd een zeker naijleect zijn; van dit naijleect merk je minder naarmate de
dempingsfactor Q dichter bij nul ligt.
Het waterafvoerprobleem demonstreert dit foutgedrag heel goed: in het asymptotische gebied
wordt de oplossing glad (heel kleine afgeleiden) zodat elke methode daar kleine afbreekfouten
maakt (voor Euler Voorwaarts bijvoorbeeld is de afbreekfout evenredig met de tweede afge-
leide). Daardoor gaat de globale afbreekfout, na een maximum in het middengebied, in het
asymptotische gebied dalen en op den duur zelfs volledig wegdempen omdat de afbreekfouten
naar nul gaan.
Stijve problemen vertonen een soortgelijke karakteristiek. In het gebied van de transient maak
je relatief grote afbreekfouten maar daarna worden ze veel kleiner vanwege de gladheid van de
101
quasi-stationaire oplossing. De globale afbreekfout die zich aan deze afbreekfouten aanpast
wordt kleiner na passage van het transient gebied, en kan zelfs onnodig klein zijn als je de
stapgrootte klein in verhouding tot de gladheid van F(t) kiest. Dat is natuurlijk inecient
vooral als je de quasi-stationaire oplossing over langere tijdsintervallen wilt volgen.
Als je in zon geval de stapgrootte wilt opvoeren mag je natuurlijk de stabiliteitsgrens niet
overschrijden want dan worden de afbreekfouten niet meer gedempt. Bij de integratiemetho-
den die tot nu toe aan de orde zijn gekomen is deze
A
||
, met A = 2 voor Euler Voorwaarts
en tweede orde RK en 2.8 voor vierde orde RK. Dit is tevens ongeveer de afmeting van het
inschakelgebied, zoals blijkt uit het feit dat de e-macht e
t
in een tijdsinterval
A
||
met een
factor e
A
gereduceerd wordt. Op grond van stabiliteitseisen is de maximale stapgrootte bij
de tot nu toe behandelde methoden dus beperkt tot ruwweg de afmeting van het inschakel-
gebied.
Om de gedachten verder te bepalen kun je je voorstellen dat een reeks van testproblemen wordt
geapproximeerd, met steeds dezelfde F(t), daarbij steeds meer negatief kiezend en telkens
de maximale stapgrootte gebruikend. De nauwkeurigheid waarmee de quasi-stationaire op-
lossing F(t) bepaald wordt zal (noodzakelijkerwijs) toenemen met [ [ omdat de maximale
stapgrootte afneemt met [ [. Vanaf zekere wordt die nauwkeurigheid groter dan een be-
paalde tolerantie die verlangd wordt. De stabiliteitseis wordt dan meer beperkend voor de
stapgrootte dan de nauwkeurigheidseis. Dit is de essentie van het verschijnsel stijfheid.
Uit voorgaande beschrijving maakt duidelijk dat stijfheid niet door alleen wordt bepaald
maar dat het eerder het eerder gaat om de relatie tussen en de gladheid van F(t): naarmate
F(t) gladder is treedt stijfheid vanaf kleinere [ [ op. Het is in feite de verhouding tussen de
tijdschalen van de transient en de quasi-stationaire oplossing die bepaalt of een testvergelij-
king stijf genoemd kan worden. Verder is stijfheid een enigszins relatief begrip want de eisen
die men aan de nauwkeurigheid van de quasi-stationaire oplossing stelt bepalen mede of een
testvergelijking met gegeven en F(t) al of niet stijf genoemd moet worden. Bovendien hangt
stijfheid samen met de gebruikte integratiemethode. De maximale stapgrootte is ongeveer
dezelfde voor Euler Voorwaarts en RK4 maar RK4 zal de quasi-stationaire oplossing bij deze
stapgrootte veel nauwkeuriger approximeren dan Euler Voorwaarts en dus voor een gegeven
testvergelijking eerder tot de qualicatie stijfheid aanleiding geven.
Problemen die stijfheid vertonen m.b.t. een van de tot nu toe behandelde methoden kunnen
het beste gentegreerd worden met een methode met een stabiliteitsgebied dat zodanig ruim
is dat daarbinnen de stapgrootte kan worden opgevoerd tot een waarde waarbij de quasi-
stationaire oplossing nog met een redelijke nauwkeurigheid wordt benaderd. Dit brengt ons
bij de impliciete methoden (zie hieronder).
In de praktijk hebben we meestal met stijfheid bij stelsels te maken (vandaar de naam sti
systems). Daar heb je een vectoriele variant van stijfheid, namelijk als de particuliere oplos-
sing glad is (normaal gesproken is dat het geval als het rechterlid glad is) en alle eigenwaarden
sterk negatief zijn. Alle transients dempen dan snel weg maar blijven wel de stabiliteitsvoor-
waarde bepalen en heb je precies hetzelfde probleem als bij de scalaire testvergelijkingen.
Wellicht komt stijfheid bij stelsels het meest voor in de volgende vorm. Bijvoorbeeld, stel
voor een 2 2 homogene testvergelijking is een eigenwaarde -1 en de andere -10000. De op-
102
lossing is van het type c
1

(1)
e
t
+c
2

(2)
e
10000t
, waarbij
(1)
en
(2)
de eigenvectoren van de
matrix zijn en de integratieconstanten c
1
en c
2
door de begincondities van de twee variabelen
bepaald worden. De term met e
10000t
speelt nu de rol van transient; deze term verdwijnt
veel eerder dan de term met e
t
. Deze laatste is glad t.o.v. de transient en speelt de rol
van quasi-stationaire oplossing. De transient blijft echter over het hele integratiegebied de
stabiliteitsvoorwaarde (h < 2/10000) bepalen waardoor verhinderd wordt dat de stapgrootte
aangepast kan worden aan het relatief langzaam varierende (quasi-)stationaire deel met e
t
.
De situatie is dezelfde als bij een stijve scalaire testvergelijking, al heeft stijfheid hier niet met
de particuliere oplossing te maken maar met de verhouding tussen de (absolute) grootte van
de eigenwaarden.
Bij stelsels met complexe eigenwaarden heb je een vergelijkbare situatie als de reele delen van
de eigenwaarden sterk in grootte verschillen.
Voorgaande overwegingen blijven van kracht voor niet-homogene stelsels, mits de particuliere
oplossing min of meer dezelfde gladheid heeft als het langzaam varierende deel van de homo-
gene oplossing.
Impliciete methoden
Een impliciete methode is al gentroduceerd bij de aeiding van de Modied Euler. Deze is
gebaseerd op de Trapeziumregel:
w
n+1
= w
n
+
h
2
[f(t
n
, w
n
) +f(t
n+1
, w
n+1
)].
De impliciet voorkomende w
n+1
in de rechterzijde kan voorspeld worden teneinde te voorko-
men dat bij elke tijdstap een (in het algemeen niet-lineaire) vergelijking moet worden opgelost
om w
n+1
te vinden. Dat leidt tot de Modied Euler. Doen we de concessie de vergelijking wel
op te lossen dan krijgen we daarvoor terug dat de aldus gedenieerde methode, die onder de
naam Trapezium- of Crank-Nicolson (CN) methode bekend staat, onbeperkt stabiel is. Dat
tonen we aan aan de hand van teststelsels. Voor een teststelsel y

= Ay + g(t). wordt de
methode:
w
n+1
= w
n
+
h
2
[Aw
n
+g(t
n
) +Aw
n+1
+g(t
n+1
))].
Brengen we alle termen met w
n+1
naar links:
(I
h
2
A)w
n+1
= (I +
h
2
A)w
n
+
h
2
[g(t
n
) +g(t
n+1
)].
Bij elke tijdstap moet het bovenstaande stelsel algebrasche vergelijkingen worden opgelost;
dat zal, ook al is het een lineair stelsel, voor grotere matrices numeriek moeten gebeuren. Dat
is de veer die we moeten laten.
Om de versterkingsfactor van de Trapezium methode te vinden kunnen we ons tot homogene
teststelsels beperken. Ontkoppeling gebeurt op dezelfde wijze als voorheen (zie week 6 text)
door transformatie van de afbreekfout met de matrix S der eigenvectoren. Dit leidt zoals men
zelf kan nagaan tot het ontkoppelde stelsel
(I
h
2
)
n+1
= (I +
h
2
)
n
.
103
Componentsgewijs oplossen geeft:

i,n+1
=
1 +
h
2

i
1
h
2

i,n
.
De versterkingsfactor van de Trapezium methode is dus Q(h) =
1+
h
2

1
h
2

. Met = +i geldt
[ Q(h( +i)) [ =
[ (1 +
h
2
) +
h
2
i [
[ (1
h
2
)
h
2
i [
=
_
(1 +
h
2
)
2
+ (
h
2
)
2
_
(1
h
2
)
2
+ (
h
2
)
2
.
Voor eigenwaarden met negatief reeel deel ( < 0) is de teller kleiner dan de noemer voor elke
stapgrootte en de methode is stabiel voor elke stapgrootte, onbeperkt stabiel dus.
Een tweede veel gebruikte onbeperkt stabiele methode is Euler Achterwaarts. Deze kan
weer uit de integraalformulering worden afgeleid door
_
t
n+1
tn
f(t, y(t))dt te approximeren door
hf(t
n+1
, y(t
n+1
)), in plaats van door hf(t
n
, y(t
n
)) wat tot Euler Voorwaarts leidt. Er volgt
w
n+1
= w
n
+hf(t
n+1
, w
n+1
).
Voor een teststelsel wordt dit
w
n+1
= w
n
+h(Aw
n+1
+g(t
n+1
)),
hetgeen herschreven kan worden als:
(I hA)w
n+1
= w
n
+hg(t
n+1
).
Voor homogene teststelsels resulteert ontkoppeling in de scalaire vergelijking

i,n+1
= (1 h
i
)
1

i,n
voor de i-de component. Stabiele integratie wordt verkregen op voorwaarde dat de moduli van
alle versterkingsfactoren (1h
i
)
1
kleiner dan 1 zijn. Er geldt [ 1h
i
[
2
=[ 1hhi [
2
=
(1 h)
2
+ (h)
2
> 1 voor eigenwaarden met negatief reeel deel . Dat geldt voor elke h en
dus is [ (1 h
i
)
1
[=[ 1 h
i
[
1
voor elke stapgrootte kleiner dan 1 waarmee aangetoond
is dat Euler Impliciet onbeperkt stabiel is.
Beide hier behandelde methoden hebben hun onbeperkte stabiliteit gemeen maar vertonen
bij toepassing aanzienlijke verschil in gedrag zoals het volgende experiment laat zien. Geap-
proximeerd is de scalaire testvergelijking y

= 100(y cos t) sin t met Euler Achterwaarts


en Trapezium, in beide gevallen met stapgrootte 0.2. De afmeting van het transient gebied
is van de orde 0.01. Met de eerste stap stap je dus gewoon over dit gebied heen. Dat is niet
erg als je niet in het preciese gedrag van de transient bent genteresseerd hoewel de eerste
afbreekfout erg groot zal zijn. Deze zal weggedempt moeten worden. Het gemak waarmee
dit gebeurt verschilt erg voor beide methoden zoals te zien is in Figuur 6.15 en 6.16. In
deze guren is de quasi-stationaire oplossing cos t weergegeven vanaf t = 0 zodat je goed het
104
eect van de genegeerde transient op de afbreekfout kunt zien. Men ziet de zeer gunstige
resultaten van Euler Achterwaarts: reeds na 4 stappen zitten we vrijwel op de exacte oplos-
singskromme. Met de Trapezium methode duurt het een stuk langer eer de grote beginfouten
zijn weggedempt. Probeer zelf eens dit verschil te verklaren aan de hand van guur 3 waar
de versterkingsfactoren van Euler Achterwaarts en de Trapezium methode als functie van h
zijn uitgezet.
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
1.5
1
0.5
0
0.5
1
1.5
2
Figuur 6.15: Approximatie van y

= 100(ycos t)sint met de Trapezium methode; h=0.2


0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
1
0.8
0.6
0.4
0.2
0
0.2
0.4
0.6
0.8
1
Figuur 6.16: Approximatie van y

= 100(y cos t) sint met Euler Achterwaarts; h=0.2


105
Superstabiel
Een numerieke methode heet superstabiel als
lim
h
[Q(h)[ < 1 .
Uit Figuur 6.17 blijkt dat Euler achterwaarts superstabiel is, terwijl voor de Trapeziumregel
geldt:
lim
h
[Q(h)[ = 1 .
Dit betekent dat beginverstoringen in de snelle componenten niet of zeer traag uitdempen
10 20 30 40 50 0
1
1
h
Euler Achterwaarts
Trapeziumregel
Figuur 6.17: De versterkingsfactoren van Euler Achterwaarts en de Trapezium methode als
functie van h
bij het gebruik van de Trapeziumregel.
Discussie
In deze paragraaf hebben we ons beperkt tot een eenvoudig stelsel dierentiaalvergelijkingen.
Het zal duidelijk zijn dat ook bij ingewikkelder stelsels sprake van stijfheid kan zijn. In derge-
lijke gevallen zijn impliciete methoden aan te raden. Bij toepassing van impliciete methoden
moet in elke stap een stelsel vergelijkingen opgelost worden. Meestal is dit stelsel niet-lineair.
Hoewel er zeer goede numerieke methoden beschikbaar zijn voor het oplossen van stelsels
vergelijkingen, kunnen de kosten toch sterk oplopen. Het is daarom vaak een kwestie van
wikken en wegen, waarbij expliciete methoden niet op voorhand zijn uit te sluiten.
6.12 Meerstaps methoden

De methoden, die we tot nu toe behandeld hebben, worden eenstaps methoden genoemd,
omdat de benadering in t
j+1
alleen afhangt van informatie van het vorige tijdstip t
j
. Hoewel
sommige methoden gebruik maken van functie evaluaties in tussengelegen punten, wordt
106
deze informatie niet bewaard om te gebruiken in toekomstige benaderingen. Alle informatie
gebruikt door deze methoden is verkregen binnen het interval waarover de oplossing benaderd
wordt.
Omdat de benaderende oplossing beschikbaar is in de roosterpunten t
0
, t
1
, ..., t
j
voordat de
benadering in t
j+1
bepaald wordt, lijkt het redelijk om methoden te ontwikkelen, die deze
informatie gebruiken. Deze methoden worden meerstaps methoden genoemd.
Adams-Bashforth methode
Voor de aeiding van de Adams-Bashforth methode gaan we uit van de Trapeziumregel
u
j+1
= u
j
+
h
2
[f(t
j
, u
j
) +f(t
j+1
, u
j+1
)] (6.116)
We kunnen deze methode expliciet maken door f(t
j+1
, u
j+1
) te extrapoleren met behulp van
f(t
j1
, u
j1
) en f(t
j
, u
j
). Het lineaire interpolatiepolynoom wordt gegeven door
l(t) = f(t
j
, u
j
) + (t t
j
)
f(t
j
, u
j
) f(t
j1
, u
j1
)
h
.
Als we nu f(t
j+1
, u
j+1
) in (6.116) vervangen door l(t
j+1
), dan krijgen we de Adams-Bashforth
methode
u
j+1
= u
j
+
3
2
hf(t
j
, u
j
)
1
2
hf(t
j1
, u
j1
) . (6.117)
Merk op dat per tijdstap slechts een functie evaluatie nodig is.
Stabiliteit
We maken gebruik van de testvergelijking y

= y. Voor de verstoring geldt de recursie

j+1
= (1 +
3
2
h)
j

1
2
h
j1
. (6.118)
Dit is een dierentievergelijking met constante coecienten. Deze kunnen we oplossen door
te substitueren
j
= cz
j
. De karakteristieke vergelijking wordt
z
2
(1 +
3
2
h)z +
1
2
h = 0 ,
met als oplossingen
z
1
=
1 +
3
2
h +

D
2
, (6.119)
z
2
=
1 +
3
2
h

D
2
, (6.120)
waarbij D = 1 +h +
9
4
(h)
2
. De algemene oplossing van (6.118) is nu

j
= c
1
z
j
1
+c
2
z
j
2
.
De constanten c
1
en c
2
volgen uit de beginvoorwaarden. Merk op dat de Adams-Bashforth
methode stabiel is wanneer
[z
1,2
(h)[ 1 . (6.121)
107
0.5 1 0
1
1
z1
z2
Figuur 6.18: De versterkingsfactoren z
1
en z
2
van de Adams-Bashforth methode
De wortels z
1
en z
2
zijn gegeven in Figuur 6.18. Merk op dat aan (6.121) voldaan is voor
h
1
||
. De methode is dus voorwaardelijk stabiel.
Afbreekfout
Met behulp van Taylorontwikkeling volgt uit (6.119) en (6.121):
z
1
(h) = 1 +h +
1
2
(h)
2

1
4
(h)
3
+O(h
4
) ,
z
2
(h) =
1
2
h +O(h
2
) .
De exacte oplossing van de testvergelijking is
e
h
= 1 +h +
1
2
(h)
2
+
1
6
(h)
3
+O(h
4
) .
Merk op dat
|z
1
(h)e
h
|
h

5
12
h
2
[[
3
.
Dus z
1
(h) is een goede benadering van e
h
en wordt daarom de principal root genoemd.
Daarentegen heet z
2
(h) de spurious root. Deze heeft niets met de dierentiaalvergelijking
te maken, maar is een gevolg van de gekozen numerieke methode.
Vergelijking met de methode van Modied Euler
Wat betreft stabiliteit moet de stapgrootte bij Adams-Bashforth 2 maal zo klein genomen
worden dan bij de methode van Modied Euler. Omdat Modied Euler per tijdstap 2 maal
zoveel werk kost zijn de methoden op dit punt vergelijkbaar.
Wat betreft nauwkeurigheid kiezen we de stapgrootte zo dat de afbreekfout kleiner is dan eps.
108
Voor Adams-Bashforth geldt dan
h =

12eps
5[[
3
en voor Modied Euler
h =

6eps
[[
3
.
We kunnen met dezelfde hoeveelheid werk 2 stappen Adams-Bashforth doen ten opzichte van
1 stap Modied Euler. Hiermee wordt het interval waarover we de oplossing benaderen bij
Adams-Bashforth

96eps
10[[
3
,
en bij Modied Euler

60eps
10[[
3
,
zodat Adams-Bashforth minder werk kost dan Modied Euler.
Discussie
Meerstaps methoden zijn minder populair dan Runge-Kutta methoden. Bij meerstaps metho-
den treden opstartproblemen op, omdat de oplossing op meerdere tijdsniveaus bekend dient
te zijn. Verder is de controle van de spurious roots een moeilijke zaak.
6.13 Samenvatting
In dit hoofdstuk zijn de volgende begrippen behandeld:
- eenstapsmethoden (Euler, Modied Euler, Trapezium)
- impliciete, expliciete methoden
- versterkingsfactor
- afbreekfout, consistentie
- stabiliteit, convergentie
- stelsels eerste orde beginwaarde problemen
- hogere orde beginwaarde problemen
- stabiliteit stelsels, stabiliteitsgebied
- stijve stelsels, superstabiel
- Runge-Kutta methoden
- meerstapsmethode (Adams-Bashforth)
109
6.14 Opgaven
1. Gebruik de Modied Euler methode om de oplossing te benaderen van het volgende
beginwaardeprobleem: y

= 1 + (t y)
2
, 2 t 3, y(2) = 1, met h = 0.5. De exacte
oplossing wordt gegeven door y(t) = t+
1
1t
. Bepaal de fout in de numerieke benadering.
2. Laat zien dat de lokale afbreekfout bij de midpuntregel O(h
2
) is. De midpuntregel wordt
gegeven door:
w
i+1
= w
i
+hf(t
i
+
h
2
, w
i
+
h
2
f(t
i
, w
i
))
3. Bepaal de versterkingsfactor voor de Trapeziumregel. Schat hiermee de afbreekfout
voor de testvergelijking. Laat zien dat de Trapeziumregel stabiel is voor alle h > 0, als
0.
4. Gegeven het niet-lineaire beginwaardeprobleem: y

= 1 + (t y)
2
. Geef de stabiliteits-
voorwaarde voor de methode van Modied Euler in het punt t = 2 en y = 1.
5. Gegeven is de numerieke integratiemethode:
u

= u
n
+hf(t
n
, u
n
), u
n+1
= u

+ (1 )hf(t
n
+h, u

)
(a) Laat zien, dat de afbreekfout O(h) is voor elke waarde van .
(b) Bepaal de versterkingsfactor van deze methode.
(c) Beschouw de niet-lineaire dierentiaalvergelijking: y

= 2y 4y
2
. Bepaal de maxi-
male stapgrootte zodanig, dat de methode (met =
1
2
) stabiel is in de buurt van
y =
1
2
.
6. Voer een stap uit met de voorwaartse Euler methode met stapgrootte h = 0.1 voor het
stelsel:
u

1
= 4u
1
2u
2
+e
t
,
u

2
= 3u
1
+u
2
,
met beginvoorwaarde u
1
(0) = 0 en u
2
(0) = 1.
7. Doe een stap met voorwaarts Euler voor de vergelijking y

2y

+ y = te
t
t met
y(0) = y

(0) = 0 met stapgrootte h = 0.1. Bepaal de fout met de echte oplossing:


y(t) =
1
6
t
3
e
t
te
t
+ 2e
t
t 2.
8. Stel we hebben de vergelijking voor de mathematische slinger:

+
g
L
= 0 met (0) =

(0) = 0. Schrijf dit als een stelsel. Is dit stelsel stabiel?


9. Gegeven het stelsel y

1
= 1195y
1
1995y
2
, y
1
(0) = 2, y

2
= 1197y
1
1997y
2
, y
2
(0) =
2. De exacte oplossing wordt gegeven door y
1
(t) = 10e
2t
8e
800t
, y
2
(t) = 6e
2t

8e
800t
.
(a) Doe een stap met E.V. en E.A. met h = 0.1 en vergelijk met het exacte antwoord.
(b) Bepaal voor welke stapgrootte E.V. stabiel is.
(c) Doe een stap met E.V. en E.A. met h = 0.0001 en vergelijk met het exacte ant-
woord. Conclusie?
110
10. Gegeven de dierentiaalvergelijking y

= y t
2
+ 1 en y(0) =
1
2
. Benader y(0.1) =
0.6574145 met E.V. met h = 0.025 en de RK methode met h = 0.1. Welke methode
verdient de voorkeur?
111
Hoofdstuk 7
De eindige dierentie methode voor
randwaarde problemen
7.1 Inleiding
Bij het simuleren van praktische problemen wordt vaak gebruik gemaakt van randwaarde pro-
blemen. Een eendimensionaal randwaarde probleem is een dierentiaalvergeleijking op een
begrensd gebied, waarbij de functie en/of zijn afgeleiden gegeven zijn in beide randpunten.
Stationair warmte probleem
Als voorbeeld nemen we de temperatuurverdeling in een staaf (Figuur 7.1). De temperatuur
0 x x+ x L
Figuur 7.1: De vorm van de staaf
van de staaf geven we aan met T(x) (

K). We nemen aan dat de temperatuur gegeven is in


beide uiteinden: T(0) = T
0
en T(L) = T
L
. Verder wordt er in de staaf warmte geprodu-
ceerd. Deze warmteproductie geven we aan met Q(x) (J/m
3
s). Bij dit voorbeeld zijn we
genteresseerd in de temperatuur na lange tijd. Dit betekend dat de temperatuur stationair
geworden is en dus alleen een functie is van x. Voor het aeiden van de dierentiaalvergelij-
king maken we gebruik van de wet van behoud van energie toegepast op het controle volume
tussen x en x + x (zie Figuur 7.1).
Door geleiding is er warmtetransport door de zijvlakken op x en x +x. Volgens de wet van
Fourier wordt dit warmtetransport per oppervlak en per seconde gegeven door:

dT
dx
,
112
waarbij (J/msK) de warmtegeleidingscoecient genoemd wordt. De warmtebalans is nu:
A
dT
dx
(x) +A
dT
dx
(x + x) +AQ(x)x = 0 .
Delen door Ax geeft

dT
dx
(x + x)
dT
dx
(x)
x
+Q(x) = 0 .
Na het nemen van de limiet x 0 krijgen we het volgende randwaarde probleem:

d
2
T
dx
2
(x) = Q(x) 0 < x < L ,
T(0) = T
0
en T(L) = T
L
.
Dit voorbeeld zal vaak gebruikt worden ter illustratie van de eindige dierentie methode.
In een aantal toepassingen is de warmtestroom aan een van de uiteinden gegeven in plaats
van de temperatuur. Voor x = L leidt dit via de wet van Fourier tot de randvoorwaarde
A
dT
dx
(L) = Aq
L
,
waarbij de warmtestroom q
L
(J/m
2
s) gegeven is.
7.2 De eindige dierentie methode
De algemene vorm van een randwaarde probleem van de tweede orde in een dimensie wordt
gegeven door
(p(x)y

+r(x)y

+q(x)y = f(x) , 0 < x < L ,


met de randvoorwaarden
a
0
y(0) +b
0
y

(0) = c
0
en a
L
y(L) +b
L
y

(L) = c
L
.
Hierbij is aangenomen dat p(x) > 0 en q(x) 0 voor alle x [0, L]. Deze problemen
worden Sturm-Liouville problemen genoemd. Merk op dat het gegeven randwaarde probleem
meerdere oplossingen heeft als a
0
= a
L
= 0. Voor de randvoorwaarden worden de volgende
aanduidingen gebruikt (we beperken ons tot x = 0):
Dirichlet randvoorwaarde: a
0
y(0) = c
0
dus b
0
= 0 ,
Neumann randvoorwaarde: b
0
y

(0) = c
0
dus a
0
= 0 ,
Robbins randvoorwaarde: a
0
,= 0 en b
0
,= 0 .
De vergelijking
We beschrijven de eindige dierentie methode voor het probleem:
y

+q(x)y = f(x) , 0 < x < 1 ,


y(0) = 0 en y(1) = 0 .
Discretisatie
We delen het interval [0, 1] op in n+1 gelijke delen met lengte h =
1
n+1
. De knooppunten zijn
113
x
j
= jh voor j = 0, ..., n + 1. de numerieke benadering van y
j
= y(x
j
) geven we aan met w
j
.
Om de numerieke oplossing te bepalen wordt gebruik gemaakt van de dierentiaalvergelijking
in het punt x
j
:
y

j
+q
j
y
j
= f
j
1 j n . (7.1)
De tweede afgeleide in (7.1) benaderen we met een centrale dierentie zodat geldt:

w
j1
2w
j
+w
j+1
h
2
+q
j
w
j
= f
j
1 j n . (7.2)
De waarde w
0
en w
n+1
in de randpunten volgen uit de randvoorwaarden
w
0
= 0 en w
n+1
= 0 . (7.3)
Het stelsel vergelijkingen
Het dierentieschema (7.2) en (7.3) geeft n+2 vergelijkingen voor de onbekenden w
0
, ..., w
n+1
.
Als we w
0
en w
n+1
elimineren uit (7.2) dan krijgen we het stelsel
Aw = f , (7.4)
met A = K +M, waarbij K en M gegeven worden door:
K =
1
h
2
_

_
2 1
1 2 1
1 2 1

.
.
.
.
.
.
.
.
.
_

_
en M =
_

_
q
1

.
.
.

.
.
.
q
n1
_

_
.
De vektoren w en f zijn: w =
_
_
_
w
1
.
.
.
w
n
_
_
_
en f =
_
_
_
f
1
.
.
.
f
n
_
_
_
.
7.3 Herhaling van enkele lineaire algebra begrippen
In deze paragraaf worden een aantal begrippen uit de lineaire algebra opgesomd, die gebruikt
worden bij het bestuderen van het verschil tussen de numerieke u
j
en de exakte oplossing y
j
van het randwaarde probleem.
Conditie
De geschaalde Euclidische norm van een vector is gedenieerd als:
|x| =

_
1
n
n

i=1
x
2
i
.
De natuurlijke, of afgeleide, matrix norm, die gerelateerd is aan de vectornorm |.| wordt
gedeneerd als:
|A| = max
x=1
|Ax|.
We maken veel gebruik van de ongelijkheid |Ax| |A| |x|.
114
Stel dat we genteresserd zijn in de vektor x, die voldoet aan Ax = b. Als het rechterlid b
verstoord wordt met een fout b, dan zal tengevolge daarvan in de oplossing x een fout x
optreden, zodat we in feite oplossen
A(x + x) = b + b .
Voor de relatieve fout geldt dan
|x|
|x|
|A| |A
1
|
|b|
|b|
.
De grootheid K(A) = |A| |A
1
| wordt het conditiegetal genoemd. Voor een symmetrische
matrix met eigenwaarden
1
, ...,
n
geldt
|A| =
max
= max
1jn
[
j
[ en |A
1
| =
1

min
=
1
min
1jn
[
j
[
,
zodat K(A) =
max

min
. Voor een schatting van het conditiegetal van een symmetrische matrix,
is het van belang om de grootste en de kleinste eigenwaarden te kennen. Een handige stelling
hierbij is:
De stelling van Gershgorin
De eigenwaarden van de matrix A liggen in de vereniging van de cirkels
[z a
ii
[
n

j=i
j=1
[a
ij
[ waarbij z C .
Bewijs
Stel Av
k
=
k
v
k
. Laat nu v
ki
de in de modulus grootste component zijn van v
k
. Dan geldt:
(a
ii

k
)v
ki
=
n

j=i
j=1
a
ij
v
kj
zodat
[a
ii

k
[
n

j=i
j=1
[a
ij
[
[v
kj
[
[v
ki
[

n

j=i
j=1
[a
ij
[,
waarmee de stelling bewezen is.
7.4 Consistentie, stabiliteit en convergentie
We willen laten zien dat het verschil tussen de numerieke en de exakte oplossing naar nul
gaat als de stapgrootte h naar nul gaat. Om dit aan te tonen zullen we een aantal begrippen
denieren.
Afbreekfout
De afbreekfout van het schema Aw = f is gedenieerd als

j
= (Ay Aw)
j
= (Ay f)
j
, j = 1, ..., n ,
115
waarbij de componenten van y de exacte oplossing, gegeven worden door y
j
= y(x
j
).
Voor het stelsel gegeven door (7.4)
y
j1
+2y
j
y
j+1
h
2
+q
j
y
j
= f
j
geldt met de foutschatting voor
de centrale dierentie

j
= y

j
+q
j
y
j
f
j
+O(h
2
) .
Gecombineerd met (7.1) volgt dan:

j
= O(h
2
) . (7.5)
De orde van de afbreekfout is gelijk aan 2 voor dit schema.
Consistentie
Een eindige dierentie schema heet consistent als
lim
h0
| | = 0 .
Uit (7.5) volgt | | = O(h
2
) zodat stelsel (7.4) consistent is.
Stabiliteit
Een eindige dierentie schema heet stabiel, als er een constante M bestaat, die niet afhangt
van h, zodanig dat
|A
1
| M , voor h 0 .
Merk op dat stabiliteit impliceert dat het stelsel een eenduidige oplossing heeft. De matrix A
uit (7.4) is symmetrisch. Dit betekent dat de eigenwaarden reeel zijn en
|A
1
| =
1

min
.
Als 0 < q
min
q(x) q
max
dan volgt uit de stelling van Gershgorin
q
min

j
q
max
+
4
h
2
voor j = 1, ..., n .
Hieruit volgt |A
1
|
1
q
min
zodat het schema stabiel is.
Als q(x) = 0 voor alle x [0, 1], dan hebben we niets aan de stelling van Gershgorin voor
het schatten van de kleinste eigenwaarde (waarom niet?). Zonder bewijs merken we op dat
de eigenwaarden van A = K gegeven worden door

j
= (2 2 cos(n j)h)/h
2
, j = 1, ..., n .
Dit geeft

min
= (2 2 cos h)/h
2
= (4 sin
2
h
2
)/h
2

2
.
Dus ook voor q 0 geldt dat het schema stabiel is. Het conditiegetal van A is
4
(h)
2
.
Convergentie
Een schema heet convergent als voor de globale fout y w geldt
lim
h0
|y w| = 0 .
In de volgende stelling wordt er een verband aangegeven tussen de begrippen: consistentie,
stabiliteit en convergentie.
116
Stelling 7.4.1 Als een schema stabiel en consistent is, dan is het schema convergent.
Bewijs:
De globale fout y w voldoet aan het stelsel
A(y w) = Ay Aw = f + f = ,
waar uit volgt: y w = A
1
. Als we hiervan de norm nemen dan geldt:
|y w| |A
1
| | | .
Uit de stabiliteit en de consistentie volgt nu direct
lim
h0
|y w| = 0 .

Merk op dat consistentie alleen, niet voldoende is voor convergentie.


Voorbeeld (convergentie)
Stel het warmtetransport in een staaf wordt beschreven door het randwaarde probleem:
y

= 25e
5x
, 0 < x < 1 ,
y(0) = y(1) = 0 .
Omdat er een warmtebron (25e
5x
) is, verwachten we dat de temperatuur y positief is. In
Figuur 7.2 staat de graek van y en van de numerieke oplossingen bepaald met de stapgroot-
ten: h =
1
4
,
1
8
en
1
16
. Er is een snelle convergentie van de numerieke oplossing naar de exacte
oplossing. De behaalde nauwkeurigheid bij stapgrootte h =
1
16
is in een praktische situatie
waarschijnlijk voldoende.
Als een variatie op deze toepassing nemen we
y

+ 9y = 25e
5x
, 0 < x < 1 ,
y(0) = y(1) = 0 .
De term 9y beschrijft afgifte van warmte aan de omgeving, die evenredig is met de tempe-
ratuur. De exacte en numerieke oplossingen staan in Figuur 7.3. Merk op dat de maximale
temperatuur inderdaad lager is dan in het eerste voorbeeld (Figuur 7.2). Verder is er weinig
verschil tussen het convergentiegedrag van beide problemen.
7.5 De conditie van de discretisatie matrix
Voor q(x) = 0, 0 x 1 hebben we gezien dat

min

2
en
max

4
h
2
.
Dit betekent dat K(A) =
4

2
h
2
. Als h naar nul gaat, dan gaat de conditie van A naar
oneindig. Dit ziet er niet zo goed uit. In de praktijk valt het gedrag van de fout vaak mee.
117
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
10
20
30
40
50
60
70
80
x
y
Exact
h=0.25
h=0.125
h=0.0625
Figuur 7.2: De exacte en numerieke oplossingen van het warmteprobleem
Bij de aeiding van de relatieve fout is uitgegaan van een pessimistische situatie. Voor een
realistischer schatting kunnen we de volgende analyse gebruiken. De numerieke oplossing
voldoet aan
Aw = f .
Bij een verstoring f geldt
A(w + w) = f + f ,
zodat w voldoet aan Aw = f. Hiermee leiden we af
|w| = |A
1
f|
1

min
|f| .
Voor de relatieve fout volgt dan
|w|
|w|

1

min
|f|
|w|

|f|
|f|
.
De rol van K(A) is hierbij overgenomen door het eectieve conditiegetal
1

min
f
w
. We
weten dat
min

2
en in veel toepassingen is
f
w
begrensd als h naar nul gaat, zodat het
eectieve conditiegetal wel begrensd is.
7.6 Neumann randvoorwaarde
Tot nu toe hebben we randwaarde problemen bekeken met twee Dirichlet randvoorwaarden.
Hoe moeten we een Neumann randvoorwaarde verwerken? We zullen deze vraag beantworden
118
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
5
10
15
20
25
30
35
40
45
x
y
Exact
h=0.25
h=0.125
h=0.0625
Figuur 7.3: De exacte en numerieke oplossingen van het warmteprobleem met afkoeling
voor de voorwaarde
dy
dx
(1) = 0 . (7.6)
Discretisatie
We introduceren een virtueel punt x
n+2
= (n + 2)h = 1 +h. Voor j = n + 1 geldt
w
n
+ 2w
n+1
w
n+2
h
2
+q
n+1
w
n+1
= f
n+1
. (7.7)
Discretisatie van (7.6) geeft
w
n+2
w
n
2h
= 0 .
Hieruit volgt w
n+2
= w
n
. Dit substitueren we in (7.7) en delen door 2:
w
n
+w
n+1
h
2
+
1
2
q
n+1
w
n+1
=
1
2
f
n+1
. (7.8)
Deling door 2 is uitgevoerd om een symmetrische matrix A te verkrijgen. Merk op dat de
vector w nu lengte n + 1 heeft.
Convergentie
Met Taylorontwikkeling volgt
w
n+2
= w
n
+O(h
3
) ,
zodat de afbreekfout in (7.8) gelijk is aan O(h) en bij alle andere vergelijkingen is een af-
breekfout O(h
2
). Bij Dirichlet randvoorwaarden is de lokale afbreekfout in elke vergelijking
O(h
2
). Betekent dit dat de globale fout O(h) is? Dit blijk mee te vallen, zoals we hieronder
zullen zien.
119
We nemen q(x) = 0, 0 x 1. Het is bekend dat het resulterende stelsel stabiel is. We
splitsen de afbreekfout in twee vectoren:
Ay = f +h
2
u +hv , met v =
_
_
_
_
_
0
.
.
.
0
v
n+1
_
_
_
_
_
.
De globale fout e = y w splitsen we ook e = e
(1)
+e
(2)
, waarbij
Ae
(1)
= h
2
u en Ae
(2)
= hv .
Omdat A stabiel is geldt |e
(1)
| = O(h
2
). Voor e
(2)
merken we op dat
e
(2)
i
= h
3
v
n+1
i , i = 1, ..., n + 1 .
Omdat hi 1 volgt |e
(2)
| = O(h
2
). Dus voor de globale fout geldt |e| = O(h
2
).
7.7 Het algemene probleem
Het algemene randwaarde probleem wordt gegeven door
(py

+ry

+qy = f , 0 < x < 1 ,


met randvoorwaarden
y(0) = en y

(1) = .
Discretisatie in het punt x
j
geeft:
p
j+
1
2
(w
j+1
w
j
) +p
j
1
2
(w
j
w
j1
)
h
2
+r
j
w
j+1
w
j1
2h
+q
j
w
j
= f
j
, j = 1, ..., n+1 . (7.9)
Merk op als r
j
,= 0 dan is de discretisatie matrix niet symmetrisch. De randvoorwaarde voor
x = 0 geeft w
0
= hetgeen gesubstitueerd kan worden in (7.9) voor j = 1. De randvoorwaarde
voor x = 1 discretiseren we als volgt:
1
2
(p
n+
3
2
w
n+2
w
n+1
h
+p
n+
1
2
w
n+1
w
n
h
) = p(1) .
Merk op dat links het gemiddelde genomen is van de benaderingen voor
p
n+
3
2
dy
dx
(1 +
1
2
h) en p
n+
1
2
dy
dx
(1
1
2
h) .
Dit gemiddelde is een benadering voor p
n+1
dy
dx
(1) = p(1). Voor deze formulering is gekozen
omdat nu de term p
n+
3
2
(w
n+2
w
n+1
) in (7.9) voor j = n + 1 vervangen kan worden door
p
n+
1
2
(w
n+1
w
n
) + 2hp(1).
120
7.8 Niet-lineaire randwaarde problemen
Een niet-lineair randwaarde probleem kunnen we schrijven als
(py

+g(y

, y, x) = 0 , 0 < x < 1 ,
y(0) = 0 en y(1) = 0 .
(7.10)
De algemene aanpak is dat (7.10) wordt opgelost met een iteratief proces waarin alleen lineaire
vergelijkingen opgelost worden. De lineaire randwaarde problemen lossen we op met methoden
uit Hoofdstuk 7. De iteratieve methode genereert een rij iteranden y
(0)
, y
(1)
, y
(2)
, ... zodanig
dat y
(n)
y, n met y de oplossing van (7.10).
Picard
De iteratiemethode van Picard werkt als volgt:
Kies een startfunctie y
(0)
(x)
for n = 1 step 1 until nit do
begin
bepaal y
(n)
uit
(py

= g(y
(n1)

, y
(n1)
, x) ,
y(0) = 0 en y(1) = 0
end
Hierbij is nit het aantal iteraties dat wordt uitgevoerd.
Newton-Raphson
Met behulp van Taylor ontwikkeling volgt:
g(y

, y, x) g(y
(n1)

, y
(n1)
, x) + (y

y
(n1)

)r + (y y
(n1)
)q
waarbij
r =
g
y

(y
(n1)

, y
(n1)
, x) en
q =
g
y
(y
(n1)

, y
(n1)
, x) .
De Newton-Raphson methode is nu:
Kies een startfunctie y
(0)
(x)
for n = 1 step 1 until nit do
begin
bepaal y
(n)
uit
(py

+ry

+qy = y
(n1)

r +y
(n1)
q g(y
(n1)

, y
(n1)
, x)
y(0) = 0 en y(1) = 0
end
121
7.9 De convectie-diusie vergelijking
In de vorige paragraaf hebben we de discretisatie afgeleid voor het algemene randwaarde
probleem. We hebben hierbij centrale dierenties toegepast. In toepassingen blijkt dit niet
altijd tot (physisch) acceptabele oplossingen te leiden. We illustreren dit aan de hand van
het randwaarde probleem:
y

+vy

= 0 , 0 < x < 1 ,
y(0) = 1 , y(1) = ,
met v > 0. We kunnen dit interpreteren als een warmte transport probleem. Hierbij is er
niet alleen transport door geleiding (diusie) y

maar ook door stroming (convectie) vy

.
Bovenstaande vergelijking staat bekend als de convectie-diusie vergelijking.
Centrale dierenties
Toepassen van centrale dierenties geeft als stelsel
1
h
2
_
_
_
_
2 1 +
vh
2
1
vh
2
2
.
.
.

.
.
.
.
.
.
.
.
.
_
_
_
_
_
_
_
_
_
_
w
1
.
.
.
.
.
.
w
n
_
_
_
_
_
_
=
1
h
2
_
_
_
_
_
_
_
1 +
vh
2
0
.
.
.
0
(1
vh
2
)
_
_
_
_
_
_
_
.
Als h zo gekozen wordt dat vh = 2 dan wordt de matrix een onderdriehoeksmatrix. De op-
lossing is dan u
i
= 1, i = 1, ..., n onafhankelijk van de waarde van . Dit kan niet goed zijn.
Het blijkt dat de oplossing acceptabel is zolang h zo klein is dat vh < 2.
Upwind dierenties
Als de voorwaarde vh < 2 tot hele kleine stapgroottes leidt, is het beter om upwind discreti-
satie te gebruiken. Hierbij wordt vy

j
benaderd door
v
w
j
w
j1
h
als v 0 en
v
w
j+1
w
j
h
als v < 0 .
Voorbeeld (convectie-diusie)
Om het verschil van centrale en upwind discretisatie te zien, beschouwen we het randwaarde-
probleem
y

+vy

= 1 , 0 < x < 1 ,
y(0) = y(1) = 0 .
Voor h = 0.1 zijn de oplossingen bepaald voor v = 10, 20 en 100 (zie Figuur 7.4, 7.5 en
7.6). Voor v = 10 geldt vh < 2 en geeft centrale discretisatie een beter resultaat dan een
upwind discretisatie. Voor v = 20 geldt vh = 2. De numerieke oplossing voor de centrale
dierentie hangt nu niet af van de randvoorwaarde in x = 1. Toevallig is in dit probleem de
numerieke oplossing nog redelijk. Voor v = 100 zien we dat de oplossing bepaald via upwind
discretisatie nog steeds een goede oplossing geeft terwijl centrale discretisatie oscillaties geeft
in de oplossing. Bovendien treden er grote fouten op.
122
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.01
0.02
0.03
0.04
0.05
0.06
0.07
x
T
e
m
p
e
r
a
t
u
u
r
Exact
Centraal
Upwind
Figuur 7.4: De oplossing van het convectie-diusie probleem voor v = 10
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0.01
0
0.01
0.02
0.03
0.04
0.05
x
T
e
m
p
e
r
a
t
u
u
r
Exact
Centraal
Upwind
Figuur 7.5: De oplossing van het convectie-diusie probleem voor v = 20
7.10 Samenvatting
In dit hoofdstuk zijn de volgende begrippen behandeld:
123
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0
0.002
0.004
0.006
0.008
0.01
0.012
0.014
0.016
x
T
e
m
p
e
r
a
t
u
u
r
Exact
Centraal
Upwind
Figuur 7.6: De oplossing van het convectie-diusie probleem voor v = 100
- model warmtetransport
- randwaarde probleem
- Dirichlet, Neumann, Robbins randvoorwaarde
- eindige dierentie
- conditiegetal
- consistentie, afbreekfout
- stabiliteit
- convergentie, globale fout
- niet-lineair randwaarde probleem
- convectie-diusie probleem
- upwind discretisatie
124
7.11 Opgaven
1. Gegeven de matrices A
1
en A
2
:
A
1
=
_
2 1
1 2
_
en A
2
=
_
100 99
99 100
_
Bepaal van beide matrices het conditiegetal. Bepaal de oplossing van A
2
x = b waarbij
b = (199, 199). Neem b = (1, 0). Schat |x| met behulp van het conditiegetal.
Bepaal x en vergelijk |x| met de schatting.
2. Gegeven het randwaarde probleem
y

(x) = 2(y(x) x), x [0, 1], y(0) = 0, y(1) = 0.


(a) Discretisatie geeft een stelsel vergelijkingen A w = b. Geef A en b.
(b) Geef een schatting voor de grootste en de kleinste eigenwaarde van A.
(c) Geef een schatting van
w
w
als
b
b
10
4
.
3. Gegeven het randwaarde probleem
y

(x) = sinx, x [0, ],


y(0) = 0, y() = 0.
Geef de exacte oplossing. Neem N = 2 en bepaal de numerieke oplossing w
j
. Bereken
y
j
w
j
, j = 1, 2.
4. Gegeven het randwaarde probleem
y

(x) +y(x) = 0, x [0, 1],


y(0) = 1, y

(1) = 0.
Discretizeer dit randwaarde probleem met de roosterpunten: x
0
= 0, x
1
=
2
7
, x
2
=
4
7
, x
3
=
6
7
en x
4
=
8
7
. Geef de matrix A. Is de matrix symmetrisch of niet-symmetrisch?
Zijn de eigenwaarden positief?
125
Hoofdstuk 8
De instationaire warmtevergelijking

8.1 Inleiding
De tijdsafhankelijke temperatuurverdeling in een staaf kan beschreven worden met een para-
bolische partiele dierentiaalvergelijking. Om zon begin-, randwaarde probleem op te lossen
maken we gebruik van de methoden uit hoofdstuk 6 en 7. Omdat praktische voorbeelden aan
de orde zullen komen in het practicum, zullen we in dit hoofdstuk geen voorbeelden geven.
8.2 Aeiding van de instationaire warmtevergelijking
Als voorbeeld nemen we de temperatuurverdeling in een staaf (Figuur 8.1). De tempera-
tuur geven we aan met T(x, t) (K). We nemen aan dat de temperatuur gegeven is in beide
0 x x+ x L
Figuur 8.1: De vorm van de staaf
uiteinden T(0, t) = T
l
en T(L, t) = T
r
. De warmteproductie in de staaf geven we aan met
Q(x, t) (J/m
3
s). Voor het aeiden van de warmtevergelijking maken we gebruik van de wet
van behoud van energie toegepast op het controle volume tussen x en x + x en van het
tijdstip t tot t + t. Volgens de wet van Fourier wordt de warmtestroomdichtheid gegeven
door
T
x
.
De energie balans is nu
cT(x, t + t)Ax = cT(x, t)Ax

T
x
(x)At +
T
x
(x + x)At +Q(x)Axt ,
126
waarbij geldt: (kg/m
3
) is de soortelijke massa, c(J/kgK) is de soortelijke warmte en (J/msK)
is de warmtegeleidingscoecient. Delen door Axt en herschikken van de termen geeft
c
T(x, t + t) T(x, t)
t
=
T
x
(x + x, t)
T
x
(x, t)
x
+Q .
Na het nemen van de limieten x 0 en t 0 krijgen we het volgende begin-, randwaarde
probleem:
c
T
t
=

2
T
x
2
+Q , 0 < x < L , 0 < t ,
T(0, t) = T
l
(t) en T(L, t) = T
r
(t) , 0 t ,
T(x, 0) = T
0
(x) , 0 x L .
8.3 De gediscretiseerde vergelijking
Voor een eenvoudig warmteprobleem laten we zien hoe plaats- en tijdsdiscretisatie eruit komen
te zien. Er is hierbij een duidelijk verschil tussen een expliciete (Euler voorwaarts) en een
impliciete (Euler achterwaarts) tijdsintegratie methode.
De vergelijking
Als warmteprobleem nemen we
y
t
=

2
y
x
2
, 0 < x < 1 , 0 < t T
y(0, t) = y
l
(t) en y(1, t) = y
r
(t) , 0 t T
y(x, 0) = y
0
(x) , 0 x 1 .
(8.1)
Semi-discretisatie
We discretiseren (8.1) in de x-richting met behulp van de eindige dierentie methode. Deel het
interval [0, 1] op in n gelijke delen met lengte h. De knooppunten zijn x
i
= ih voor i = 0, ..., n.
De numerieke benadering van y(x
i
, t) geven we aan met u
i
(t). De vector u(t) wordt gegeven
door u(t) = (u
1
(t), ..., u
n1
(t))
T
. De waarden in de randpunten zijn weggelaten, omdat deze
bekend zijn uit de randvoorwaarden. Gebruikmakend van de technieken uit hoofdstuk 7
krijgen we het volgende stelsel eerste orde dierentiaalvergelijkingen
du
dt
= Ku +r , 0 < t T .
u(0) = y
0
.
(8.2)
De matrix K en vector r worden gegeven door
K =
1
h
2
_
_
_
_
_
_
_
2 1
1 2 1
.
.
.
.
.
.
.
.
.
1 2 1
1 2
_
_
_
_
_
_
_
en r =
1
h
2
_
_
_
_
_
_
_
y
l
(t)
0
.
.
.
0
y
r
(t)
_
_
_
_
_
_
_
.
Men spreekt hierbij van semi-discretisatie (of methode der lijnen), omdat er (vooralsnog) wel
in x maar niet in t wordt gediscretiseerd.
127
Tijdsintegratie (Euler voorwaarts)
Het stelsel (8.2) kan in de tijd gentegreerd worden met een van de methoden uit hoofdstuk 6.
We kiezen eerst voor de voorwaartse methode van Euler. Stel we nemen m stappen in de
tijd ter lengte k =
T
m
en t
j
= jk. De numerieke oplossing geven we aan met w
j
i
, hetwelk
een benadering is van u
i
(t
j
) en dus van y(x
i
, t
j
). In inwendige roosterpunten geldt dan de
volgende vergelijking

j+1
i

j
i
k
=

j
i1
2
j
i
+
j
i+1
h
2
. (8.3)
De afbreekfout van deze dierentievergelijking is

i,j
=
k
2

2
u
t
2
(x
i
,
j
)
h
2
12

4
u
x
4
(
i
, t
j
) , (8.4)
waarbij
j
(t
j
, t
j+1
) en
i
(x
i1
, x
i+1
). De methode is dus O(k + h
2
). Het is verstandig
om k en h zo te kiezen dat beide componenten aan de rechterkant van (8.4) ongeveer even
groot zijn. Dit betekent dat als je de plaatsstap halveert, het voor de hand ligt om de tijdstap
4 maal zo klein te nemen.
Merk op dat we
j+1
i
eenvoudig kunnen bepalen via (8.3) immers

j+1
i
= (1
2k
h
2
)
j
i
+
k
h
2
(
j
i1
+
j
i+1
) , 1 i n 1 , (8.5)
waarbij
j+1
0
en
j+1
n
volgen uit de randvoorwaarden. Merk op dat de waarden in het roos-
terpunt (x
i
, t
j+1
) afhangt van de waarden in de roosterpunten (x
i1
, t
j
), (x
i
, t
j
) en (x
i+1
, t
j
).
Deze punten zijn met een aangegeven in Figuur 8.2. De waarden, die al bekend zijn uit
de begin- en randvoorwaarden zijn aangegeven met een . In matrix vectornotatie geldt
u
j+1
= (I +kK)u
j
+kr
j
.
Stabiliteit
Omdat Euler voorwaarts voorwaardelijk stabiel is, is het van belang om te bepalen hoe groot
de tijdstap genomen kan worden zonder dat er instabiliteiten optreden. De matrix K uit (8.2)
is symmetrisch, dus de eigenwaarden zijn reeel. Toepassing van de stelling van Gershgorin
geeft

4
h
2

i
0 , voor 1 i n 1 .
De matrix heeft geen positieve eigenwaarden zodat het stelsel dierentiaalvergelijkingen (8.2)
stabiel is. In paragraaf 7.5 hebben we een expliciete uitdrukking voor de eigenwaarden van
K gegeven. Hieruit blijkt
max [
i
[
min [
i
[

4

2
h
2
.
Voor kleine waarden van h is (8.2) een stijf stelsel.
We weten dat Euler voorwaarts stabiel is als de tijdstap k voldoet aan
k
2
max [
i
[

h
2
2
.
Merk op dat als de plaatsstap gehalveerd wordt, de tijdstap 4 maal zo klein genomen moet
worden om te voldoen aan de stabiliteitsvoorwaarde. Voor kleine h kan het verstandiger zijn
128
t
j+1
t
j
x
i
x
i1
x
i+1
Figuur 8.2: De afhankelijkheid bij Euler voorwaarts
om over te stappen op de achterwaartse methode van Euler, die onvoorwaardelijk stabiel is.
Tijdsintegratie (Euler achterwaarts)
Als we Euler achterwaarts toepassen dan krijgen we de formule

j+1
i

j
i
k
=

j+1
i1
2
j+1
i
+
j+1
i+1
h
2
,
in inwendige roosterpunten. Ook hiervan is de afbreekfout O(k + h
2
). Voor het bepalen van

j+1
i
moeten we nu het volgende lineaire stelsel oplossen
Ax = b , (8.6)
met A = (I kK), x =
_
_
_
u
j+1
1
.
.
.
u
j+1
n1
_
_
_ en b =
_
_
_
u
j
1
.
.
.
u
j
n1
_
_
_+
k
h
2
_
_
_
_
_
_
_
y
l
(t
j
)
0
.
.
.
0
y
r
(t
j
)
_
_
_
_
_
_
_
.
Merk op dat A een matrix is met veel nullen. Toch kost het oplossen van (8.6) meer werk dan
het bepalen van
i,j+1
via (8.5). Een voordeel is wel, dat Euler achterwaarts onvoorwaardelijk
stabiel is, zodat de tijdstap afgesteld kan worden op de gewenste nauwkeurigheid. Ook hierbij
is een afweging nodig: goedkoop oplossen met veel tijdstappen (Euler voorwaarts) versus duur
oplossen met weinig tijdstappen (Euler achterwaarts).
Nu hangt de waarde in het roosterpunt (x
i
, t
j+1
) af van de waarden in de roosterpunten
(x
i
, t
j
), (x
i1
, t
j+1
) en (x
i+1
, t
j+1
), zie Figuur 8.3.
129
t
j+1
t
j
x
i
x
i1
x
i+1
Figuur 8.3: De afhankelijkheid bij Euler achterwaarts
Tijdsintegratie (Trapezium)
We kunnen ook de Trapezium regel gebruiken als tijdsintegratie methode. De uitwerking
hiervan gaat analoog. In de literatuur wordt de Trapeziumregel ook wel aangeduid als de
Crank-Nicolson methode.
8.4 Samenvatting
In dit hoofdstuk zijn de volgende begrippen behandeld:
- instationaire warmtevergelijking
- semi-discretisatie
- afbreekfout
- stabiliteit
- Crank-Nicolson
130
Hoofdstuk 9
Optimization problems

Optimization problems arise in all areas of science and engineering and are perhaps even
more common in business and industry. Any design problem usually involves optimizing
some gure, such as cost or eciency. Among all possible designs (i.e. congurations), one
usually aims at the conguration that best achieves some desired objective. Of course, the
result depends on the particular objective. We mention a few examples:
Find the smooth curve between two points in space such that its length is minimal.
(this is a straight line)
Design the industrial process for the manufacturing of slabs made of steel such that the
cost are minimal.
Given some measurements on the voltage over a resistor and the current through this
resistor, nd the resistence which suits the measurements best.
Given a cloud of data-points, which third order polynomial ts best to these data-
points?
Find the thermodynamic setting of a system such that the potential energy of this
system is minimal.
Find the conguration of an optical set-up such that the light beam in this optical set-up
has the shortest path.
Often the designer formulates an optimization problem in mathematical terms. For some
applications one looks for a certain optimum subject to a constraint. As an example: a
dietitian might minimize the number of calories of a diet subject to meeting other nutritional
requirements (such as for the amount of salt and sugar). The additional constraints may
complicate matters considerably. This class of constrained optimization problems will not
be treated in the present text. This chapter is devoted to a mathematical formulation of
optimization problems (without any constraints) and some classical numerical procedures to
solve optimization problems.
First a general mathematical formulation of an optimization problem is presented. Let x be
an n dimensional vector, i.e. x = [x
1
. . . x
n
] and f be a function of x. For problems without
any constraints we will consider the following type
Given V R
n
, nd x V such that f(x) f(y) for all y V. (9.1)
131
A typical example is the following
Find x R such that f(x) = x
2
y
2
= f(y) for all y R. (9.2)
It is immediately clear that x = 0 is the answer and that V = R in this example.
For problems in which a function involves the sum of squares, we will consider least squares
solutions. An important class here is the tting of measured data-points to a polymial relation.
Then we will deal with some basic techniques for more general optimization problems.
We note here that there is a great variety in numerical methods for optimization problems.
The interested reader is referred to the work of Heath
1
. Furthermore, mathematical details
on conditions for existence and uniqueness are omitted. We also remark that a maximization
problem is based on the same principles as minimization problems just under replacing f(x)
by f(x).
9.1 Least squares for linear problems
Suppose that we have a table with measured values for the voltage (V ) and electric current
(I), see Table 1. From this table and Ohms Law, which is V = IR, we want to determine
the resistance R such that its value agrees best with the data in Table 1.
V(V) I(A)
100 1.10
200 2.15
300 3.25
400 4.30
500 5.45
V = IR R =?
Table 1: Input data for least squares problem.
The data in Table 1 imply the following set of linear equations:
1.10R 100 = 0
2.15R 200 = 0
3.25R 300 = 0
4.30R 400 = 0
5.45R 500 = 0.
(9.3)
Of course, the above system is inconsistent: there is no value for R for which all the equations
are satised. For the sake of illustration and for convenience of notation, the above system is
replaced by the following set of relations
1.10R 100 = r
1
2.15R 200 = r
2
3.25R 300 = r
3
4.30R 400 = r
4
5.45R 500 = r
5
.
(9.4)
1
M.T. Heath, Scientic computing: an introductory survey, Mc Graw Hill, New York, second edition,
(2002).
132
the quantities r
1
, . . . , r
5
are called the residuals. Let us try to determine R such that the sum
of the squares of the residuals is minimal. Mathematically, this is formulated as follows
Let (R) :=
5

i=1
r
2
i
, nd R such that (R) is minimized. (9.5)
To achieve this minimum, we require
d(R)
dR
= 0. (9.6)
Using the Chain Rule for dierentiation, we obtain:
d(R)
dR
=
d
dR
5

i=1
r
2
i
=
5

i=1
2r
i
dr
i
dR
. (9.7)
In our application we have
dr
1
dR
= 1.10,
dr
2
dR
= 2.15, etc. Substitution into equation (9.7) and
division by 2 gives
1.10(1.10R 100) + 2.15(2.15R 200) +. . . + 5.45(5.45R 500) = 0. (9.8)
This linear equation is solved for R to obtain R = 92.28. This solution is referred to as the
least squares solution because the sum of the squares of the residuals is minimized.
Exercise 1 Show that
d
2

dR
2
> 0. This implies that indeed the minimum of the sum of the
squares of the residuals is found.
Exercise 2 Given the following table
M(kg) V(m
3
)
992 1
2008 2
2989 3
Table 2: Input data for least squares problem.
Let M = V , determine the least squares solution for the density from Table 2.
9.1.1 n linear equations with m unknowns (n > m)
Now we consider a more general case n linear equations with m unknowns where n > m
(hence more equations than unknowns)
_
_
_
a
11
x
1
+. . . +a
1n
x
m
= b
1
. . .
a
n1
x
1
+. . . +a
nm
x
m
= b
n
(9.9)
A compact notation, where A is the matrix with the coecients and x R
n
the solution
vector and b R
m
the right hand side vector, is given by
Ax = b. (9.10)
133
We will look for the least squares solution of equation (9.9). First, we introduce some notation.
We dene the inner product of two vectors in R
n
by
(v, w) := v
T
w =
n

i=1
v
i
w
i
(v, w) = (w, v). (9.11)
Further, for a matrix B R
nn
, we have
(v, Bw) = v
T
Bw = (B
T
v)
T
w = (B
T
v, w). (9.12)
In the above equation we used (AB)
T
= B
T
A
T
for two matrices A and B. Further, we dene
the norm of the real-valued vector x R
n
by
[[x[[ =
_
(x, x). (9.13)
We turn back to the least squares solution of problem (9.9) and rewrite the problem as
Find x R
n
such that [[Ax b[[ [[Ay b[[ for all y R
n
. (9.14)
Here y is an arbitrary vector in R
n
. The vector y is replaced by y = x + tv where v is an
arbitrary vector and t R. Then from equation (9.14) follows that
(A(x +tv) b, A(x +tv) b) (Ax b, Ax b). (9.15)
for every t. Working out the left hand side gives
t
2
(Av, Av) + 2t(Av, Ax b) + (Ax b, Ax b) (Ax b, Ax b). (9.16)
Hence
t
2
(Av, Av) + 2t(Av, Ax b) 0 for all t and v. (9.17)
Suppose that t > 0, then t(Av, Av) + 2(Av, Ax b) 0 for all v and hence (Av, Ax b)
0 for all v.
Similarly if t < 0, then (Av, Ax b) 0 for all v and t. Combination of the above equation
with equation (9.9) yields
(v, A
T
(Ax b)) = 0, for all v R
n
. (9.18)
This implies that the vector A
T
(Ax b) is orthogonal to all vectors in R
n
. This implies that
A
T
(Ax b) = A
T
Ax A
T
b = 0. By this we proved:
Theorem 9.1.1 A least squares solution of the m n system Ax = b satises the m m
system A
T
Ax = A
T
b.
The system A
T
Ax = A
T
b is commonly referred to as the normal equations of the least squares
problem.
134
9.1.2 Application to tting data on polynomials
An important application is tting experimental data to a polynomial. Suppose that a phy-
sical quantity is known to behave like an m th degree polynomial in some variable. This
quantity is measured for several values of the independent variable such that the number of
measurements is (much) larger than the polynomial degree. The goal is to determine the
coecients of the polynomial such that this approximates the set of measured data points as
well as possible. Let the physical quantity be given by y and the independent variable be t,
then we require that
y(t) = p
0
+p
1
t +p
2
t
2
+. . . +p
m
t
m
, (9.19)
approximates as well as possible the measurements hypothetically given by Table 3.
y
0
y
1
. . . y
n
t
0
t
1
. . . t
n
This amounts to nding p
0
, . . . , p
m
such that the polynomial y coincides with the measured
data from Table 3 as well as possible. Substitution of these measured data into (9.19) yields
y
0
= p
0
+p
1
t
0
+. . . +p
m
t
m
0
y
1
= p
0
+p
1
t
1
+. . . +p
m
t
m
1
. . .
y
n
= p
0
+p
1
t
n
+. . . +p
m
t
m
n
.
(9.20)
This represents a system of n equations with m + 1 unknowns p = [p
0
. . . p
m
]
T
. In vector-
notation this reads as Qp = y, where Q =
_
_
1 t
0
. . . t
m
0
1 t
1
. . . t
m
1
1 t
n
. . . t
m
n
_
_
, n > m, where p is to be
determined. According to the previous section (Theorem 9.1.1) the least squares solution is
given by the solution of
Q
T
Qp = Q
T
y. (9.21)
9.2 Optimization of non linear problems
First an introduction into non-linear optimization problems is given in terms of conditions
for the nature of minima or maxima. Subsequently the steepest descent method is described
and then a link with Newtons method is presented.
9.2.1 Critical points
Let f(x
1
, . . . , x
n
) be a smooth function of the independent variables x
1
, . . . , x
n
R. Suppose
that x
1
, . . . , x
n
gives the minimum value of f(x
1
, . . . , x
n
). In this section the following type
of problem is addressed:
Find x
1
, . . . , x
n
R such that f( x
1
, . . . , x
n
) f(x
1
, . . . , x
n
) for all x
1
, . . . , x
n
R. (9.22)
Here f(x
1
, . . . , x
n
) is sometimes referred to as the object function. For ease of notation a
vector notation is used, where
x = [x
1
. . . x
n
]
T
. (9.23)
135
From calculus it is known that the gradient of f (f) gives the direction of the maximum
increase of f(x
1
, . . . , x
n
) and that the magnitude of the gradient of f gives the value of the
maximum increase. Then, it is clear that f gives the direction of the maximum decrease of
f. This motivates that if x represents a value at which f has a (local) maximum or minimum
then we need to look for
f( x) = 0. (9.24)
A more formal way to derive this is based on the use of the directional derivative. Note
that the point x where f( x) = 0 is called a critical point of f and can either be a (local)
maximum, minimum or a saddle point. To determine the nature of the critical point, a second
order Taylor expansion around point x is developed:
f(x) f( x) + (x x)
T
f( x) +
1
2
_
(x x)
T

2
f( x) =
= f( x) + (x x)
T
f( x) +
1
2
(x
1
x
1
)
2

2
f
x
2
1
( x) +. . . + (x
n
x
n
)
2

2
f
x
2
n
( x)+
+2(x
1
x
1
)(x
2
x
2
)

2
f
x
1
x
2
( x) +. . . + 2(x
n1
x
n1
)(x
n
x
n
)

2
f
x
n1
x
n
( x).
(9.25)
The last terms of the above equation involve the second order partial derivatives of the
function f at the point x. It is interpreted as a quadratic form which contains the Hessian
matrix (or briey the Hessian) with all the second order partial derivatives of the function
f at x. Note further that in the above expression, terms of x x of third and higher order
have been neglected. Further, let H( x) denote the Hessian of f at x, i.e.
H( x) =
_
_
_

2
f
x
2
1
( x) . . .

2
f
x
1
xn
( x)
. . . . . . . . .

2
f
xnx
1
( x) . . .

2
f
x
2
n
( x)
_
_
_. (9.26)
then, equation (9.25) is written in a more compact form by
f(x) f( x) + (x x)
T
f( x) +
1
2
(x x)
T
H( x)(x x). (9.27)
Since

2
f
x
i
x
j
( x) =

2
f
x
j
x
i
( x) (we assume f to be a smooth function so that the second order
partial derivatives are continuous), we immediately see that H( x) is a symmetric matrix.
At this point some elementary properties from linear algebra of symmetric matrices are shortly
reviewed. Let A be a general symmetric matrix. A symmetric matrix is called positive denite
if and only if x
T
Ax > 0 for all x ,= 0. A symmetric matrix is always diagonalizable, i.e. one
can write A = PDP
T
where P and D respectively represent a matrix whose columns consist
of the eigenvectors of A and a diagonal matrix whose entries in the main diagonal represent
the eigenvalues of A (see linear algebra). Further, by the use of a diagonalization argument,
we show that a symmetric positive matrix has (real-valued) positive eigenvalues only:
x
T
Ax = x
T
PDP
T
x = P
T
x
T
DP
T
x = y
T
Dy =
1
y
2
1
+. . . +
n
y
2
n
, (9.28)
where y := P
T
x. It can be seen easily that if
i
> 0 for all i 1, . . . , n then x
T
Ax > 0
for all x ,= 0. It can be shown by a similar argument that a negative denite matrix, i.e.
136
x
T
Ax < 0 for all x ,= 0, has negative eigenvalues only. Further, if the eigenvalues of A dier
in sign, the matrix is called indenite: the expression x
T
Ax can either be positive, negative
or zero for x ,= 0. Later these properties of symmetric matrices will be used for the Hessian
H.
Further, since f( x) = 0, equation (9.25) turns into
f(x) = f( x) +
1
2
(x x)
T
H( x)(x x). (9.29)
This implies that if (x x)
T
H( x)(x x) > 0 for all x near x then f(x) is a local minimum
and if (x x)
T
H( x)(x x) < 0 for all x near x then f(x) is a local maximum. With x near x
it is meant that there is an > 0 for which [[x x[[ < . This means the following: Suppose
that f( x) = 0 then x is a critical point of f for which
1. If (x x)
T
H( x)(x x) > 0 for all x such that x ,= x (i.e. H( x) is positive denite) then
f( x) is a local minimum;
2. If (x x)
T
H( x)(x x) < 0 for all x such that x ,= x (i.e. H( x) is negative denite)
then f( x) is a local maximum;
3. If (x x)
T
H( x)(x x) changes sign, then f( x) is a saddle point.
Since H( x) or shortly H is symmetric, it is clear that
1. If all eigenvalues of H are positive, then H is positive denite;
2. If all eigenvalues of H are negative, then H is negative denite;
3. If the eigenvalues of H dier in sign, then H is indenite.
This gives us the following important conclusion for critical points of smooth functions:
Let f be a smooth function, then, at a critical point x, where f( x) = 0, if H is
1. positive denite (all eigenvalues positive), then f( x) is a minimum;
2. negative denite (all eigenvalues negative), then f( x) is a maximum;
3. indenite (eigenvalues dier in sign), then f( x) is a saddle point;
4. singular (at least one eigenvalue zero), then the test is inconclusive.
Voorbeeld 9.2.1 Let f(x
1
, x
2
) = x
2
1
+ x
2
2
then it is immediately clear that (x
1
, x
2
) = (0, 0)
gives a minimum. Now we use the test: f = [2x
1
, 2x
2
]
T
= 0 x
1
= 0 and x
2
= 0. The
Hessian is given by H =
_
2 0
0 2
_
. The eigenvalues of H are both equal to 2, hence positive.
According to the above test it is concluded that x
1
= 0 and x
2
= 0 gives a minimum.
In the coming sections two classical numerical methods are presented and discussed for nding
a (local) minimum of a function of n variables.
137
9.2.2 The method of steepest descent
As mentioned earlier the negative gradient gives the direction of the largest decrease of the
function f. Therefore, we use this largest decrease, i.e. the steepest descent, of the function
f at consecutive iterates x
k
. Since the steepest descent method is based on the determination
of a minimum along a search direction, a minimization problem along a given search direction
is formulated. Let s be a given search direction, then one seeks the minimum along the line
of this search direction containing the point x, i.e.
Find R such that f(x + s) f(x +s) for all R. (9.30)
The minimization is commonly referred to as a line-search. The value of is determined by
a single variable minimization, i.e. () = f(x + s) then

( ) = 0. The maximum benet


from downhill movement of f is obtained by the use of the direction of the negative gradient,
i.e. s = f. Therewith, the following algorithm is constructed:
x
0
= initial guess.
for k = 1, 2, . . .
s
k
= f(x
k1
) (compute direction of steepest descent)
Choose
k
to minimize f(x
k1
+
k
s
k
) (do line search)
x
k
= x
k1
+
k
s
k
end
(9.31)
The steepest descent method is very reliable provided the gradient f is nonzero. However,
the method only has a rst order convergence, so that
[[x
k
x[[ C[[x
k1
x[[, (9.32)
where x is the minimum of f and C is a positive constant. For cases where C is large,
convergence may be slow. For some cases the iterates zigzag towards the solution very
slowly. This is shown in the following example.
Voorbeeld 9.2.2 Given f(x
1
, x
2
) = 0.5x
2
1
+ 2.5x
2
2
, then at rst glance (x
1
, x
2
) = (0, 0)
is the global minimum. Let x
0
= [5 1]
T
and s
k
= f = [x
1
5x
2
]
T
, then x
k
=
x
k1
[x
1
5x
2
]
T

k
. This implies that x
1
= [5 1]
T
[5 5]
T
, where is to be found. Let
() := f(x + s), then () = 0.5(5 5)
2
+ 2.5(1 5)
2
hence

() = (5)(5 5) +
5(1 5)(5) = 150 50 = 0. This means that =
1
3
and herewith
x
1
= [5 1]
T

1
3
[5 5]
T
= [
10
3

2
3
]
T
.
A qualitative sketch of the convergence of consecutive iterations is shown in Figure 9.1.
Although convergence is slow, the method of steepest descent is robust for smooth functions.
The speed of convergence is improved by the use of the conjugate gradient method, which
is based on the same principle as the method of steepest descent, except that the obtained
consecutive search directions are corrected such that the components in the direction of the
previous search directions are removed. We do not treat the conjugate gradient method
any further. A faster converging, but unfortunately less robust, method is dealt with in the
next section. Finally, it is noted that the method converges to a (local) minimum and hence
convergence to the absolute minimum is obtained depending on the choice of the initial guess.
One should choose the initial value suciently close to desired minimum. Often this should
be done with care.
138
Figuur 9.1: Illustration of the zigzag behaviour of the convergence of the method of the
method of the steepest descent.
9.2.3 Newtons method for optimization
We saw that determining a maximum or minimum of a given smooth function f implies the
determination of a critical point, i.e.
Find x R
n
such that f( x) = 0. (9.33)
This is a determination of a zero of a set of (nonlinear) functions, let F(x) = f(x), then
f( x) = 0 F( x) = 0. (9.34)
Here we determine x by the use of Newtons method. Let x
k
be the iterates generated by
Newtons method for which lim
k
[[x
k
x[[ = 0, then
J(x
k1
)(x
k
x
k1
) = F(x
k1
), (9.35)
for a suitable start-vector x
0
. Here J(x
k1
) denotes the Jacobian of F evaluated at x
k1
, i.e.
J(x
k1
) =
_
_
F
1
x
1
(x
k1
) . . .
F
1
xn
(x
k1
)
. . . . . . . . .
Fn
x
1
(x
k1
) . . .
Fn
xn
(x
k1
)
_
_
. (9.36)
Since F
i
(x
k1
) =
f
x
i
(x
k1
), equation (9.35) is rewritten using equation (9.36) to yield
H(x
k1
)(x
k
x
k1
) = f(x
k1
), (9.37)
where H(x
k1
) is the Hessian of f containing the second derivatives evaluated at x
k1
. Equa-
tion (9.37) is a system of linear equations (a matrix equation) which has to be solved. For
existence and uniqueness of a solution of the above linear equation, it is necessary that H is
nonsingular. In an algorithmic form we have the following (we dene s = x
k
x
k1
):
x
0
= initial guess
for k = 1, 2, . . .
Solve H(x
k1
)s
k
= f(x
k1
) for s
k
x
k
= x
k1
+s
k
(update solution)
end
(9.38)
139
Newtons method is known to have a quadratic convergence, i.e.
[[x
k
x[[ C[[x
k1
x[[
2
, (9.39)
for a positive constant C. Since the convergence of the steepest descent method is known to
be linear (see preceeding section), Newtons method is faster. A disadvantage of Newtons
method is that the initial guess should often be close to the extremal point (i.e. the solution).
How close it should be is often hard to determine. Therefore, for many cases one better
starts with an other method (such as the steepest descent method) and then at the later
stages continue with Newtons method, using its nice convergence properties. Examples of
such hybrid methods are beyond the scope of this course. Further, one would try to avoid
the determination of the Hessian matrix. Often, the choice between the several optimization
methods comes down to a judgement of the various drawbacks and assets of the methods. We
refer to Heath to nd a more comprehensive view over (deterministic) optimization strategies.
Exercise 3 Given f(x
1
, x
2
) = 0.5x
2
1
+ 2.5x
2
2
. Perform one step of the Newton iteration for
nding the mimimum of f. Take x
0
= [5 1]
T
as the initial value. Compare your results
to the results in Example 2, what do you observe. Explain your observations (what is the
error?).
140
Index
Lipschitz continu, 63
goed gesteld probleem, 63
stabiliteitsvoorwaarde, 75
absolute fout, 3
absolutely stable, 76
achterwaartse dierentie, 27
Adams-Bashforth, 107
afbreekfout, 26, 115
afkappen, 4
afrondfout, 3, 28
amplication factor, 76
Bisectie, 38
centrale dierentie, 27, 30, 32
cijferverlies, 6
conditiegetal, 115
consistent, 80, 116
convectie-diusie vergelijking, 122
convergent, 82
convergentie, 116
Crank-Nicolson, 130
cubische spline, 21
dierentievergelijking, 107
Dirichlet, 113
eindige dierentie, 113
Euclidische norm, 114
Euler Achterwaarts, 68
Euler Voorwaarts, 64
expliciet, 70
extrapolatie, 16
extrapoleren, 13
oating point getal, 3
functie evaluatie, 83
Gauss formules, 58
Gershgorin, 115
global error, 82
globale afbreekfout, 72, 82
Hermite interpolatie, 17
hogere orde beginwaarde, 93
impliciet, 68
interpolatie, 11
Jacobiaan, 46
kwadratisch convergent, 45
Lagrange interpolatie, 13, 31
lineair convergent, 44
lineaire interpolatie, 11
lokale afbreekfout, 73, 79
matrix norm, 114
meerstaps methoden, 107
Middelwaardestelling, 8
Modied Euler, 70
Neumann, 113, 118
Newton-Cotes, 58
Newton-Raphson, 42
niet-lineair stelsel, 45
niet-lineaire vergelijking, 38
nonlinear problem, 78
O-symbool, 7
onbetrouwbaarheidsinterval, 39
principal root, 108
quasi-Newton, 46
randwaarde probleem, 112
Regula Falsi, 45
relatieve fout, 3
Richardsons extrapolatie, 33
141
Robbins, 113
Rolle, 8
Secant, 45
semi-discretisatie, 127
splines, 20
spurious root, 108
stabiliteit, 116
stable, 76
stelsels dierentiaalvergelijkingen, 91
stopcriterium, 39
superstabiel, 106
Taylorpolynoom, 8, 16
test equation, 76
Trapeziumregel, 69
truncation error, 82
Tussenwaardestelling, 8
upwind discretisatie, 122
vast punt probleem, 40
versterkingsfactor, 74
versterkingsmatrix, 94
voorwaartse dierentie, 26, 31
warmtevergelijking, 126
142

You might also like