Professional Documents
Culture Documents
Old
Old
Differentiaalvergelijkingen
C. Vuik, P. van Beek, F. Vermolen, J. van Kan
2004
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 differentiaalver-
gelijkingen. Aan de orde komen aspecten, die in praktische problemen een grote rol spelen. In
dit college beperken we ons tot gewone differentiaalvergelijkingen, uitgezonderd het hoofdstuk
over de warmtevergelijking waarin een partiële differentiaalvergelijking behandeld wordt. Een
aantal technieken zoals: interpolatie, numerieke integratie en het oplossen van niet-lineaire
vergelijkingen, kunnen ook buiten de context van differentiaalvergelijkingen gebruikt worden.
Hoofdstukken, paragraven of opgaven met een ∗ , vallen buiten het Delft Instellings Pakket.
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 differentiëren 25
3.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Eenvoudige differentieformules voor de eerste afgeleide . . . . . . . . . . . . . 26
3.3 Algemene formules voor de eerste afgeleide . . . . . . . . . . . . . . . . . . . 30
3.4 Relatie tussen differentieformules en interpolatie . . . . . . . . . . . . . . . . 31
3.5 Differentieformules voor hogere afgeleiden . . . . . . . . . . . . . . . . . . . . 32
3.6 Richardson’s extrapolatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.6.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.6.2 Schatting van de fout in de praktijk . . . . . . . . . . . . . . . . . . . 33
3.6.3 Nauwkeuriger formules via Richardson’s 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
ii
8 De instationaire warmtevergelijking ∗ 126
8.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
8.2 Afleiding van de instationaire warmtevergelijking . . . . . . . . . . . . . . . . 126
8.3 De gediscretiseerde vergelijking . . . . . . . . . . . . . . . . . . . . . . . . . . 127
8.4 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
iii
Hoofdstuk 1
Inleiding
1
1.1 Enkele historische opmerkingen
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, betreffende 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.
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 efficiency. Een vergroting
van efficiency, dat wil zeggen vermindering van het aantal benodigde operaties en/of het be-
nodigde geheugen, wordt elders in de wiskunde niet als een essentiële 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.
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
Zπ p
1 + cos2 (x)dx ,
0
die de lengte geeft van één boog van de kromme gegeven door y = sin x. 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 grafiek met een numerieke methode is meestal efficiënter dan
het evalueren van de analytische oplossing in een groot aantal punten.
1.4 Afrondfouten
Een computer werkt niet met oneindige precisie. Reële getallen worden in computers opge-
slagen als
±0.d1 d2 ...dn · β e
waarbij d1 > 0 en 0 ≤ di < β. We noemen dit een floating point getal waarbij: de mantisse
is 0.d1 d2 ...dn , de basis is β en e (geheel getal) is de exponent. Vaak is β = 2, n = 24 (enkele
precisie), zoals voor vele PC’s. In dubbele precisie geldt n = 56. We zeggen dan dat de
machine rekent met n cijfers.
We noemen |f l(x) − x| = |x| de absolute fout en |f l(x)−x| |x| = || de relatieve fout. Het
verschil tussen de floating point getallen waar x tussen ligt is β e−n . Door afronden geldt
|f l(x) − x| ≤ 12 β e−n , zodat voor de absolute fout geldt:
1
|x| ≤ β e−n .
2
Aangezien |x| ≥ β e−1 (omdat d1 > 0) geldt voor de relatieve fout:
Figuur 1.1 toont de ligging van de floating point getallen 0.1d 2 d3 · β e ; e = −1, 0, 1, 2 in het
binaire stelsel (β = 2). Deze floating point getallen liggen ongelijk verdeeld en er is een gat
3
bij 0. Als een rekenresultaat in dit gat terecht komt noemen we dit underflow. 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 overflow. De machine waarschuwt
en stopt.
Hoe voeren computers rekenkundige operaties uit met floating point getallen? Rekenproces-
−4 −3 −2 −1 0 1 2 3 4
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
floating point getallen zijn. Dan is de machine-uitkomst van de operatie:
z = f l(x ◦ y) (1.4)
met x ◦ y de exacte uitkomst. Deze is in het algemeen geen floating point getal, zodat er een
fout gemaakt wordt. Volgens (1.1) geldt
Stel dat x en y geen floating point getallen zijn, maar benaderd worden met f l(x) en f l(y)
dus f l(x) = x(1 + 1 ), f l(y) = y(1 + 2 ), dan geldt voor de absolute fout van het berekende
antwoord:
|x ◦ y − f l(f l(x) ◦ f l(y))| ≤ |x ◦ y − f l(x) ◦ f l(y)| + |f l(x) ◦ f l(y) − f l(f l(x) ◦ f l(y))|. (1.6)
We zien dat de fout de som is van de doorwerking van de afrondfouten (storingen) in de data
en de floating point fout die het verschil tussen een exacte bewerking en een floating 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 f l(x) alleen de significante cijfers meegenomen worden.
Voorbeeld 1.4.1
We nemen x = 75 en y = 31 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 f l(x) = 0.71428 × 100 en f l(y) = 0.33333 × 100 . We zullen laten zien hoe de
tabel tot stand gekomen is. Na normalisatie vinden we voor de optelling:
4
bewerking resultaat exacte waarde absolute fout relatieve fout
x+y 0.10476 × 101 22/21 0.190 × 10−4 0.182 × 10−4
x−y 0.38095 × 100 8/21 0.238 × 10−5 0.625 × 10−5
x×y 0.23809 × 100 5/21 0.523 × 10−5 0.220 × 10−4
x÷y 0.21428 × 101 15/7 0.571 × 10−4 0.267 × 10−4
We laten nu zien, hoe de eerste rij tot stand gekomen is. Het exacte antwoord is u =
0.714251 en x − u = 57 − .714251 = 0.3471428571.... × 10−4 , terwijl f l(u) = 0.71425 × 100 en
f l(x)−f l(u) = 0.71428−0.71425 = 0.0000300000×10 0 . Normaliseren geeft f l(f l(x)−f l(u)) =
0.30000 × 10−4 . Hieruit volgt de absolute fout: (x − u) − f l(f l(x) − f l(u)) = (.3471428571... −
0.471...×10−5
.30000) × 10−4 ≈ 0.471 × 10−5 . en de relatieve fout: 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 floating point systeem te maken heeft (de aftrekking van f l(x) en f l(u) wordt
in dit geval namelijk foutloos uitgevoerd) maar uitsluitend een gevolg is van de onzekerheid in
de data doordat deze in het floating point systeem slechts door 5 significante cijfers worden ge-
geven. De nullen die na normalisatie in het enkele lengte resultaat f l(f l(x)−f l(u)) = 0.30000
overblijven hebben dientengevolge geen enkele betekenis: het cijfer 3 is het enige significante;
5
de nullen die ingevuld worden zijn niet meer dan een formaliteit. Dit verschijnsel wordt cij-
ferverlies genoemd. Het verlies van significante 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 f l(f l(x) − f l(u)) × f l(v) geeft:
f l(f l(x) − f l(u)) × f l(v) = 0.3 × 10−4 × 0.98766 × 105 = 0.2962980000 × 101 .
Na afkappen geldt: f l(f l(f l(x) − f l(u)) × f l(v)) = 0.29630 × 10 1 . Hieruit volgt de absolute
0.465..
fout: 3.4285594526000...... − 0.29630 × 10 1 ≈ 0.465. en de relatieve fout: 3.4285.... ≈ 0.136. Stel
dat we nu bij (x − u) × v iets optellen, bv. y 2 = 19 (merk op dat y = 13 ), 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. Eén van de doelstellingen van de numerieke analyse is zulke pro-
cessen te identificeren als onbruikbaar, of ze zodanig te verbeteren dat ze stabiel worden.
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 floating point bewerkingsfout, de doorwerking van deze storingen in het resultaat van
deze stap in beschouwing moeten worden genomen. Na een flink aantal stappen zal deze bron
van fouten meestal belangrijker worden dan de floating 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, één voor optellen en aftrekken en één voor vermenigvuldi-
gen en delen. De benaderingen van x en y worden x̃ en ỹ genoemd en de (absolute storingen)
δx = x − x̃, analoog δy = y − ỹ
a) Optellen en aftrekken.
(x + y) − (x̃ + ỹ) = (x − x̃) + (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̃ − ỹ) = δx − δy. Vaak wordt de regel in
de vorm van een afschatting gepresenteerd: |(x ± y) − (x̃ ± ỹ)| ≤ |δ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 gedefinieerd door x̃ = x(1 − x ), idem
xy−x(1−x )y(1−y )
voor y. Voor de relatieve fout in een product xy geldt nu: xy−x̃ỹ
xy = 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̃ỹ
xy | ≤ |x | + |y |.
Als we x̃ met f l(x) identificeren en ỹ met f l(y) dan kun je met deze twee simpele regels
allerlei verschijnselen bij floating point berekeningen bij benadering prima verklaren. Bij de
berekening van x − u 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
floating point fout (maximaal 12 × 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 x − u en v, dus aan 0.136 + 10 −5 = 0.136. De absolute fout volgt direct:
ongeveer 0.465.
Definitie 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
Bij het schatten van fouten maken we vaak gebruik van de volgende rekenregels:
Rekenregels
Als f (x) = O(xp ) en g(x) = O(xq ) als x → 0, met p ≥ 0 en q ≥ 0 dan is
c) f (x)g(x) = O(xp+q ).
f (x)
d) |x|s = O(xp−s ) 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) 6= 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 differentieerbaar op
(a, b). Als f (a) = f (b), dan bestaat er een c ∈ (a, b) zodat f 0 (c) = 0.
Stelling 1.6.4 (Taylorpolynoom) Neem aan dat f : (a, b) → R een (n + 1)-maal differen-
tieerbare functie is. Dan geldt voor alle c en x ∈ (a, b) bestaat er een ξ tussen c en x zo
dat
f (x) = Pn (x) + Rn (x),
waarbij het Taylorpolynoom Pn (x) gegeven wordt door
Bewijs:
Neem c, x ∈ (a, b) met c 6= x en laat K gedefinieerd zijn door:
f 000 (ξ)
F 0 (ξ) = f 0 (ξ) + {f 00 (ξ)(x − ξ) − f 0 (ξ)} + { (x − ξ)2 − f 00 (ξ)(x − ξ)} +
2!
f (n+1) (ξ) f (n) (ξ)
+··· +{ (x − ξ)n − (x − ξ)(n−1) } − K(n + 1)(x − ξ)n =
n! (n − 1)!
f (n+1) (ξ)
= (x − ξ)n − K(n + 1)(x − ξ)n = 0.
n!
f (n+1) (ξ)
Dus K = (n+1)! , waarmee de stelling bewezen is.
8
1.7 Samenvatting
- numerieke wiskunde
- afrondfouten
9
1.8 Opgaven
1. Laat f (x) = x3 . 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) = ex . 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]?
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.
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 gedefinieerd 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.
11
Een betere vorm van interpolatie is de rechte lijn tussen 2 punten (zie Figuur 2.1). Stel we
f(x0)
p(x)
f(x)
f(x1)
x0 x x1
en waar hangt die van af? Indien we weten dat de functie die we interpoleren tenminste 2
maal continu differentieer is dan kunnen we een uitspraak over de fout maken. Merk op met
[a, b, x0 ] bedoelen we het gesloten interval opgespannen door de uitersten van a, b en x 0 .
12
Stelling 2.2.1 Laat x0 en x1 punten zijn in [a, b], x0 6= x1 en f ∈ C[a, b] ∩ C 2 (a, b). Dan
geldt voor het lineaire interpolatie polynoom p van f op de steunpunten x 0 , x1 en voor elke
x ∈ [a, b] : er is een ξ ∈ (x0 , x1 , x) zodat
1 00
f (x) − p(x) = (x − x0 )(x − x1 )f (ξ) . (2.1)
2
Bewijs:
Als x = x0 of x = x1 , dan is f (x) − p(x) = 0 en kan men ξ willekeurig kiezen. Neem aan
x 6= x0 en x 6= x1 . Voor elke waarde van x is er een getal q zodat
Hiervoor geldt ϕ(x0 ) = ϕ(x1 ) = ϕ(x) = 0. Volgens de stelling van Rolle zijn er minstens twee
0 0
verschillende punten y en z in (x0 , x1 , x) zodat ϕ (y) = ϕ (z) = 0. Opnieuw volgens Rolle
00 00 00
is er ook een ξ ∈ (y, z) en dus ξ ∈ (x0 , x1 , x) zo dat ϕ (ξ) = 0. Omdat ϕ (t) = f (t) − 2q
betekent dit dat q = 21 f (ξ).
00
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 Ln in een
gegeven n + 1-tal verschillende punten x 0 , ..., xn aan elkaar gelijk zijn. Dit noemen we n-orde
Lagrange interpolatie.
Een polynoom Ln dat aan deze eisen voldoet is gemakkelijk aan te geven in een vorm, die
een duidelijke generalisatie van (2.1) is:
n
X
Ln (x) = f (xk )Lkn (x) ,
k=0
waarbij
(x − x0 )....(x − xk−1 )(x − xk+1 )....(x − xn )
Lkn (x) = .
(xk − x0 )....(xk − xk−1 )(xk − xk+1 )....(xk − xn )
Dat dit het goede polynoom is kunen we als volgt zien:
- elke Lkn is een polynoom van de graad n,
- omdat Lkn (xj ) = δkj geldt Ln (xk ) = f (xk ), k ∈ {0, ..., n}.
Het polynoom Ln wordt het Lagrange interpolatiepolynoom genoemd. De polynomen L kn
heten de Lagrange coëfficiënten. Zij kunnen ook geschreven worden als:
n
ω(x) Y
Lkn (x) = 0 met ω(x) = (x − xi ) .
(x − xk )ω (xk )
i=0
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
Xn
|Lkn (x)|ε .
k=0
n
P
Als de steunpunten equidistant zijn, x k = x0 + kh, dan neemt de waarde van |Lkn (x)|
k=0
langzaam toe als n groter wordt. In Tabel 2.3 worden een aantal bovengrenzen gegeven.
14
x ∈ [x0 , x1 ] x ∈ [x1 , x2 ] x ∈ [x2 , x3 ] x ∈ [x3 , x4 ] x ∈ [x4 , x5 ]
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
n
P
Tabel 2.3: Bovengrenzen voor |Lkn (x)|.
k=0
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.
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 14e graadspolynoom grote afwijkingen.
8
−1
−5 −4 −3 −2 −1 0 1 2 3 4 5
1
Figuur 2.2: Interpolatie van functie 1+x e
2 (−) met een 6 graads Lagrange polynoom (· · · ) en
een 14e graad Lagrange polynoom (− · − · −).
15
Voorbeeld 2.3.2 (extrapolatie)
Eenzelfde verschijnsel kan optreden bij extrapolatie. Beschouw de functie x1 . Het n-de graads
interpolatiepolynoom wordt bepaald op de steunpunten x k = 0.5 + nk , k = 0, ..., n. Als we
de functie, het 6e en het 10e 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.
2.4
2.2
1.8
1.6
1.4
1.2
0.8
0.6
0.4
0.5 1 1.5 2
Figuur 2.3: Extrapolatie van functie x1 (−) met een 6e graads Lagrange polynoom (· · · ) en
een 10e 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:
16
De functie f (x) = x1 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 ne graads
Taylorpolynoom wordt dan gegeven door:
n
X n
X
pn (x) = f (k) (1)(x − 1)k /k! = (−1)k (x − 1)k .
k=0 k=0
De waarden van pn (3) als benadering van f (3) = 31 staan in Tabel 2.4. Hieruit blijkt dat de
benadering onnauwkeuriger wordt als n toeneemt!
n 0 1 2 3 4 5 6 7
pn (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).
In wiskundige termen: bij elke xi is een niet negatief getal mi gegeven. Veronderstel dat
f ∈ C m [a, b] met m = max mi . Dan is p het polynoom van de laagste graad zodanig dat
0≤i≤n
dk p dk f
(x i ) = (xi ) voor elke i = 0, 1, ..., n en k = 0, 1, ..., m i .
dxk dxk
Opmerkingen
n
P
1. De graad van dit polynoom is hoogstens M = mi + n.
i=0
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:
(x0 , f (x0 )) (x1 , f (x1 )) ,
0 0
(x0 , f (x0 )) (x1 , f (x1 )) .
Het derde graads polynoom p3 moet voldoen aan de volgende eisen:
p3 (xi ) = f (xi ) i = 0, 1 ,
0 0
p3 (xi ) = f (xi ) i = 0, 1 .
Naar analogie van de Lagrange interpolatiepolynomen is dit polynoom te schrijven als:
1
X 0
p3 (x) = [f (xi )Hi1 (x) + f (xi )Ĥi1 (x)] ,
i=0
met
Hi1 (xj ) = δij , Ĥi1 (xj ) = 0 ,
0 0
Hi1 (xj ) = 0 , Ĥi1 (xj ) = δij .
Polynomen die behalve op functiewaarden ook gebaseerd zijn op gegeven afgeleiden staan
bekend onder de naam Hermite polynoom.
waarbij
0
Hjn(x) = [1 − 2(x − xj )Ljn (xj )]L2jn (x)
en
Ĥjn (x) = (x − xj )L2jn (x) .
Dat dit het goede polynoom is kunnen we als volgt zien: H jn en Ĥjn zijn polynomen van de
graad 2n + 1. In steunpunt xk geldt Hjn (xk ) = 0 als k 6= j. Als k = j dan geldt:
0
Hjn (xj ) = (1 − 2(xj − xj )Ljn (xj )]L2kn (xj ) = 1 .
18
Stelling 2.4.1 Als f ∈ C 2n+2 [a, b] dan geldt er is een ξ ∈ (x0 , ..., xn , x) zodat
(x − x0 )2 ....(x − xn )2 (2n+2)
f (x) − H2n+1 (x) = 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 − x0 )2 ....(t − xn )2
ϕ(t) = f (t) − H2n+1 (t) − [f (x) − H2n+1 (x)] .
(x − x0 )2 ....(x − xn )2
0
Er kan nu bewezen worden dat ϕ (t), 2n + 2 verschillende nulpunten heeft in (x 0 , ..., xn , x).
We zullen aan de hand van twee voorbeelden duidelijk maken waarom soms voor Hermite
interpolatie gekozen wordt in plaats van Lagrange interpolatie.
Bij het opsporen van olie wordt vaak gebruik gemaakt van seismische golven. Een eenvoudig
model voor golfvoortplanting wordt beschreven door het volgende stelsel differentiaalverge-
lijkingen:
dx
= c sin θ ,
dt
dz
= −c cos θ ,
dt
dθ dc
= − sin θ .
dt dz
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
dc
interpolatie in elk interval heeft tot gevolg dat dz niet bestaat in de steunpunten. Dit kan
dc
grote fouten geven in de oplossing. Als zowel c als dz bekend is in de meetpunten, dan kan
e
3 graads Hermite interpolatie gebruikt worden in elk interval. Hiervoor bestaat de eerste
afgeleide wel in alle punten.
Als we een figuur willen tekenen bepaald door een eindig aantal punten, ontstaan er bij line-
aire interpolatie knikken in de grafiek bij de steunpunten. Dit geeft vaak een onrealistische
weergave. Een beter resultaat wordt verkregen met Hermite interpolatie.
1
Stel de grafiek van de functie f (x) = 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 programma’s vaak met eenvoudige bouwstenen. Stel dat 3 e graads polynomen daartoe
behoren. In Figuur 2.4 is de grafiek benaderd met een aantal interpolatiepolynomen. De
resulterende figuur 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 3e graads polynomen zijn gebruikt. Daarom is de functie ook benaderd
met 3e orde Lagrange interpolatie. Ook dit resultaat is onbruikbaar.
1.2
0.8
0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3 3.5 4
1
Figuur 2.4: Interpolatie van 1+x 3. —– functie, · · · lineaire interpolatie, − − − Hermite
e
interpolatie, − · − · − 3 orde Lagrange interpolatie.
Een spline is een stuksgewijs polynoom, die glad aansluit in de knooppunten. Wij zullen
alleen splines van de eerste en derde orde beschouwen.
Definitie
Voor f ∈ C[a, b] is de interpolatie spline van graad 1 : s ∈ C[a, b] zodanig dat als a =
x0 < x, ... < xn = b een partitie is van [a, b] dan is s lineair op elk deelinterval [x i , xi+1 ] en
s(xi ) = f (xi ).
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.
Definitie
Voor f ∈ C[a, b] heeft de interpolerende spline s van de graad 3 de volgende eigenschappen:
a. s is een derde graads polynoom sj op elk deelinterval [xj , xj+1 ],
b. s(xj ) = f (xj ),
We zullen nu laten zien hoe zo’n interpolerende spline bepaald kan worden. We schrijven s j
als:
sj (x) = aj (x − xj )3 + bj (x − xj )2 + cj (x − xj ) + dj . (2.2)
00
Verder definieren we hj = xj+1 − xj , fj = f (xj ) en Gj = sj (xj ). Uit b volgt dj = fj .
Gj = 2bj voor x = xj en
Gj+1 = 6aj hj + 2bj voor x = xj+1 .
We kunnen nu aj en bj uitdrukken in de Gj :
1 1
bj = Gj en aj = (Gj+1 − Gj ) .
2 6hj
21
Vereenvoudiging geeft:
fj+2 − fj+1 fj+1 − fj
hj Gj + 2(hj + hj+1 )Gj+1 + hj+1 Gj+2 = 6( − ).
hj+1 hj
Uit dit stelsel kan de waarde van Gj berekend worden. Hiermee kunnen aj , bj en cj bepaald
worden.
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.
1.2
0.8
0.6
0.4
0.2
0
0 0.5 1 1.5 2 2.5 3 3.5 4
1
Figuur 2.5: Interpolatie van 1+x3 : — functie, - - spline van 3e orde
22
2.6 Samenvatting
In dit hoofdstuk zijn de volgende begrippen behandeld:
- lineaire interpolatie
- Lagrange interpolatie
- 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 x0 = 2, x1 = 2.5 en x2 = 4. Benader hiermee f (3).
24
Hoofdstuk 3
Numeriek differentiëren
3.1 Inleiding
Het volgende citaat 1 bespreekt het verschijnsel ”muisarm” of 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.
1. de muis ligt meestal niet goed op het bureau en gestrekt bedienen levert overbe-
lasting op,
25
3.2 Eenvoudige differentieformules voor de eerste afgeleide
Stel f is een continu differentieerbare functie. De voorwaartse differentie is gedefinieerd door:
f (x + h) − f (x)
, h>0,
h
waarbij h de stapgrootte genoemd wordt. Per definitie geldt:
f (x + h) − f (x) 0
lim = f (x) ,
h→0 h
zodat de voorwaartse differentie naar de afgeleide convergeert. De afbreekfout wordt gedefi-
nieerd door:
0 f (x + h) − f (x)
Rv (h) = f (x) − .
h
Stelling 3.2.1 Als f ∈ C 2 [x, x + h] dan geldt Rv (h) = − h2 f (ξ), met ξ tussen x en x + h.
00
Bewijs:
Het resultaat volgt eenvoudig uit een Taylorreeks van f (x + h) rond het punt x.
2.5
1.5
0.5
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
x x+h
26
3
2.5
1.5
0.5
0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
x−h x x+h
Figuur 3.2: De benadering van de afgeleide (- - -) in x = 1 met een centrale differentie (− · −).
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 differentie:
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 differentie:
0 f (x + h) − f (x − h)
R2 (h) = f (x) − ,
2h
gegeven door
h2 000
R2 (h) = −
f (ξ) ,
6
met ξ tussen x − h 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
differentie benadering veel sneller naar nul gaat als functie van h dan bij de voorwaartse
formule.
27
Voorbeeld 3.2.2 (afrondfouten)
x exp(x)
0.8000 2.22554
0.9000 2.45960
0.9900 2.69123 h benadering fout
0.9990 2.71556 0.2000 2.7364 -0.01814
0.9999 2.71801 0.1000 2.7228 -0.00451
1.0000 2.71828 0.0100 2.7185 -0.00021
1.0001 2.71855 0.0010 2.7200 -0.00171
1.0010 2.72100 0.0001 2.6999 0.01828
1.0100 2.74560
1.1000 3.00416
Tabel 3.2: De resultaten met de centrale dif-
1.2000 3.32011
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
Deze fout is 1000 maal zo groot als de maximale relatieve fout in de functiewaarden. Dit
effect 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 differentieformule begrensd is. We zullen dit voor de centrale differentie
verder analyseren. Door het verkleinen van de stapgrotte h zal de fout R 2 (h) kleiner worden,
echter de bovengrens S2 (h) van de fout tengevolge van afrondfouten zal toenemen. Er is dus
een optimale waarde van h waarbij de totale fout |R 2 (h)| + S2 (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 S2 (h) = hε (waarom?) in de numerieke benadering van f (1). De totale fout
0
wordt dus gemajoreerd door de grootheid ϕ(h), die gegeven wordt door:
ε h2
ϕ(h) = + m,
h 6
28
000
waarbij m een bovengrensq is voor |f (x)| op een
qvoldoend grote omgeving van 1. De functie
3 9 2 3 3ε
ϕ heeft een minimum 8 ε m voor hopt = m (leid dit zelf af). Voor ons voorbeeld
staat ϕ(h), S2 (h) en |R2 (h)| getekend in Figuur 3.3. Voor m = e volgt h opt = 0.017 en
ϕ(hopt ) = 0.00043. Merk op dat de fout in de buurt van h opt niet veel varieert, zodat een
stapgrootte in de buurt van hopt 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:
3. Het effect 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.
−3
x 10
6
0
0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1
Figuur 3.3: De grafiek van de totale fout ϕ (—), de afbreekfout |R 2 (h)|(−·−) en de afrondfout
S2 (h) (- - -).
29
3.3 Algemene formules voor de eerste afgeleide
De differentieformules gegeven in de vorige paragraaf zijn op een ad-hoc manier geı̈ntroduceerd.
In een aantal toepassingen is het nodig om differentieformules 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 differentieformules af te leiden.
Stel er zijn n+1 verschillende roosterpunten x 0 , ..., xn gegeven. Gevraagd: bepaal de coëfficiën-
ten αi zodanig dat de orde (k) van de fout:
0
|f (x) − Q(h)| = O(hk )
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 differentie
In dit voorbeeld kiezen we x−1 = x − h, x0 = x en x1 = x + h. Taylorontwikkeling geeft:
0 h2 00 h3 000
f (x + h) = f (x) + hf (x) + f (x) + f (x) + O(h4 )
2 3!
f (x) = f (x)
0 h2 00 h3 000
f (x − h) = f (x) − hf (x) + f (x) − f (x) + O(h4 )
2 3!
De voorwaarden voor α−1 , α0 en α1 zijn nu:
f (x) : α−1 + α0 + α1 = 0 ,
0
f (x) : −hα−1 + hα1 = 1 ,
00
f (x) : h2 α−1 + h 2 α1 = 0 .
−1 1
Oplossing van dit stelsel geeft α−1 = 2h , α0 = 0 en α1 = 2h waarmee we de reeds bekende
formule:
f (x + h) − f (x − h)
Q(h) =
2h
verkrijgen. Merk op dat de fout bij deze formule O(h 2 ) is.
f (x) = f (x) ,
h2 00
0
f (x + h) = f (x) + hf (x) + f (x) + O(h3 ) ,
2
0 00
f (x + 2h) = f (x) + 2hf (x) + 2h2 f (x) + O(h3 ) .
30
We verkrijgen nu de volgende voorwaarden:
f (x) : α0 + α1 + α2 = 0 ,
0
f (x) : hα1 + hα2 = 1 ,
00 h2 2
f (x) : 2 α1 + 2h α2 = 0 .
−3 2 −1
Oplossing van dit stelsel geeft α0 = 2h , α1 = h en α2 = 2h . De afbreekfout van de verkregen
eenzijdige differentieformule
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 differentieformules
afleiden.
De foutschatting is nu een gecompliceerde uitdrukking tenzij x gelijk genomen wordt aan één
van de steunpunten. Voor x = xj wordt de formule voor de afgeleide:
n n
0
X 0
Y f n+1 (ξ(x))
f (xj ) = f (xk )Lkn (xj ) + (xj − xk ) .
(n + 1)!
k=0 k=0
k6=j
31
Voor n = 1, x = x0 en x1 = x0 + h geldt:
x−x1 0 −1
L01 (x) = x0 −x1 , L01 (x) = h ,
x−x0 0 1
L11 (x) = x1 −x0 , L11 (x) = h .
De formule is dan: f (x0 ) = − h1 f (x0 ) + h1 f (x0 + h) + h2 f (ξ). Dit is precies de formule voor
0 00
de voorwaartse differentie.
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-1 h x +1 h
2 2
x-h x 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 x − h. Echter bij toepassing van centrale differenties betekent
dit, dat wij de functie ook in x + 2h en x − 2h nodig hebben. We kunnen dit ondervangen
door de hulppunten x ± 21 h in te voeren. Centrale differentie geeft:
f (x + 12 h) − f (x − 12 h)
0 0
h
00
als benadering van f (x). Op de beide eerste orde afgeleiden passen we opnieuw een centrale
differentie toe:
1 f (x + h) − f (x) f (x) − f (x − h)
( − ).
h h h
Vereenvoudiging van deze formule geeft:
f (x + h) − 2f (x) + f (x − h)
Q(h) = .
h2
Met behulp van Taylorpolynomen volgt voor de afbreekfout:
00 −h2 (4)
f (x) − Q(h) = f (ξ) .
12
Merk op dat het effect van afrondfouten nu nog ernstiger is. Een bovengrens voor de fout ten
gevolge van afrondfouten is:
4ε
S(h) = 2 .
h
32
Voor het oplossen van differentiaalvergelijkingen is het soms nodig om een benadering te
0 0
vinden voor (pf ) waarbij p een gegeven functie is. Analoog aan bovenstaande kunnen we
0 0
de volgende benadering van (pf ) opschrijven:
(pf ) (x + 21 h) − (pf ) (x − 12 h)
0 0
.
h
Opnieuw toepassen van centrale differenties geeft:
Als voorbeeld van het gebruik van Richardson’s 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 Richardson’s extrapolatie gebruikt worden zowel als de α i bekend, of
als de αi onbekend zijn.
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 ( h2 ) en N ( h4 ) te bepalen. Dit geeft 3 vergelijkingen met 3
onbekenden:
M − N (h) = Khα ,
h h
M − N ( ) = K( )α ,
2 2
h h α
M − N ( ) = K( ) (3.4)
4 4
Door de vergelijkingen van elkaar af te trekken houden we 2 onbekenden over:
h 1
N ( ) − N (h) = Khα (1 − ( )α ) ,
2 2
h h h α 1
N ( ) − N ( ) = K( ) (1 − ( )α ) . (3.5)
4 2 2 2
Het delen van deze uitdrukkingen geeft:
N ( h2 ) − N (h)
= 2α . (3.6)
N ( h4 ) − N ( h2 )
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 ( h4 ).
h
e − N ( ) = −0.0343 .
4
34
In dit voorbeeld is de foutschatting heel betrouwbaar.
Om een betere benadering te vinden zou de foutschatting opgeteld kunnen worden bij de
benadering:
h h
N ( ) + K = 2.7177 .
4 4
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.
- 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 Richardson’s extrapolatie
In een aantal toepassingen zijn de waarde van α i in (3.2) bekend. We kunnen Richardson’s
extrapolatie dan gebruiken om nauwkeuriger formules te bepalen. Als voorbeeld zullen we de
voorwaartse differentie beschouwen. De fout in de voorwaartse differentieformule blijkt door
gebruik van hogere orde Taylorpolynomen geschreven te kunnen worden als:
0
f (x) − Qv (h) = K1 h + K2 h2 + ... . (3.7)
h
Als we de differentie ook uitrekenen voor 2 dan geldt:
0 h h h
f (x) − Qv ( ) = K1 + K2 ( )2 + ... . (3.8)
2 2 2
Als we nu (3.8) met 2 vermenigvuldigen en (3.7) hier van aftrekken dan geldt:
0 h 1
f (x) − (2Qv ( ) − Qv (h) = − K2 h2 + ... .
2 2
Hieruit volgt dat de differentieformule
h 2f (x + h2 ) − f (x) f (x + h) − f (x)
2Qv ( ) − Qv (h) = h
−
2 2
h
−3f (x) + 4f (x + h2 ) − f (x + h)
= ,
h
een afbreekfout O(h2 ) 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:
- Richardson’s 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 differenties 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
differentie 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 0 (x) te benaderen waarbij
de fout minimaal is.
4. Gegeven de functie f (x) = sin x, x ∈ [0, π]. Bepaal f 0 (1) met behulp van een centrale
differentie 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
Dv
Re = ,
ν
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
ρwLv 2
Puit − Pin = ,
2gD
hierbij is w de wrijvingsfactor, ρ (kg/m 3 ) is de soortelijke dichtheid, L (m) is de lengte en
g (m/s2 ) is de valversnelling. Als de vloeistof deeltjes bevat (zand, papiervezels) dan voldoet
de wrijvingsfaktor w aan de vergelijking:
√
1 ln(Re w) + 14 − 5.6 k
√ = ,
w 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.
38
is een continue functie gedefinieerd 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 één zo’n p is. In de methode wordt het interval steeds gehalveerd
waarbij in elke stap het interval gekozen wordt waar p in ligt.
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
|pn − pn−1 |
≤ε,
|pn |
of
|f (pn )| < ε .
Convergentie
De Bisectie methode kan traag convergeren. Het kan ook gebeuren dat |p i−1 − p| |pi − 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 efficiëntere 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
{pn } die convergeert naar een nulpunt p van f waarbij
b−a
|pn − p| ≤ , n≥1.
2n
Bewijs:
1
Voor elke n ≥ 1 hebben we bn − an = 2n−1
(b − a) en p ∈ (an , bn ). Omdat pn = 12 (an + bn )
volgt
1 b−a
|pn − p| 5 (bn − an ) = n .
2 2
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
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 (pn )| < ε
39
te nemen als ε < ε̄ gekozen is. Grote kans dat het algoritme dan altijd blijft itereren. Met
0
behulp van het Taylorpolynoom blijkt dat als p een enkelvoudig nulpunt is van f en f (p) 6= 0
dan is I ongeveer gelijk aan
ε̄ ε̄
I ≈ [p − 0 , p+ 0 ].
|f (p)| |f (p)|
0
Merk op dat als |f (p)| dicht bij 0 ligt, het bepalen van p een slecht gesteld probleem is.
Het vinden van een nulpunt en vast punt problemen zijn als volgt gerelateerd: als we het
nulpunt p zoeken zodat f (p) p = 0, dan kunnen we een niet unieke functie g definiëren 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 gedefinieerd door f (x) = x − g(x) een nulpunt in p.
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].
0
2. Als bovendien g (x) bestaat voor x ∈ [a, b] en er is een positieve constante k < 1 zodanig
dat
0
|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.
0
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) 0
= g (ξ) .
p−q
Dan volgt
0
|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 pn
door middel van pn = g(pn−1 ) voor n ≥ 1. Als de rij convergeert naar p en g is een continue
functie dan geldt
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:
4
g(x) = 2
x +3
in onze vaste punt methode. Deze functie is bepaald via de volgende stappen:
f (x) = 0, x3 + 3x − 4 = 0
4
x3 + 3x = 4 → x(x2 + 3) = 4 → x =
+3 x2
In Figuur 4.1 staat het iteratieproces getekend, waarbij gestart is met x 0 = 0.
2
h
g
1.8
1.6
1.4
g(p )
0
1.2
g(p2)
g(p ) 1
3
g(p1)
0.8
0.6
0.4
0.2
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
p p p p
0 2 3 1
41
Bewijs:
Onder de gegeven voorwaarden heeft g een uniek vast punt p. Uit de middelwaarde stelling
volgt:
0
|pn − p| = |g(pn−1 ) − g(p)| = |g (ξ)||pn−1 − p| ≤ k|pn−1 − p| .
Met inductie volgt
lim |pn − p| ≤ lim k n |p0 − p| = 0 ,
n→∞ n→∞
De bovenstaande stelling kan ook gebruik worden om een goed stopcriterium te geven.
Merk op dat voor m > n ≥ 1 geldt
∞
X k
|p − pn | = lim |pm − pn | 5 k k i |pn − pn−1 | = |pn − pn−1 | .
m→∞ 1−k
i=0
Veronderstel f ∈ C 2 [a, b]. Laat x̄ ∈ [a, b] een benadering zijn van de oplossing p zodanig dat
0
f (x̄) 6= 0 en veronderstel dat |x̄ − p| klein is. Beschouw het eerste graads Taylorpolynoom:
0 (x − x̄)2 00
f (x) = f (x̄) + (x − x̄)f (x̄) + f (ξ(x)) ,
2
waarbij ξ(x) ∈ (x, x̄). Omdat f (p) = 0 geldt
0 (p − x̄)2 00
0 = f (x̄) + (p − x̄)f (x̄) + f (ξ(x)) .
2
Omdat we aangenomen hebben dat |p − x̄| klein is geldt:
0
0 ≈ f (x̄) + (p − x̄)f (x̄) .
42
Als we hieruit p oplossen krijgen we
f (x̄)
p ≈ x̄ − .
f 0 (x̄)
Dit motiveert de Newton-Raphson methode, die start met een beginbenadering p 0 en een rij
{pn } genereert volgens
f (pn−1 )
pn = pn−1 − , voor n≥1.
f 0 (pn−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
Hieruit blijkt dat de oplossing al na 3 stappen gevonden is. De procedure voor de eerste
iteratie staat uitgelegd in Figuur 4.2.
2
f(x) = x −2
raaklijn 2
p
0
p
1
−1 0 1 2
−1 f(p )
0
−2
43
In de stelling hierna geven we het verband tussen de Newton-Raphson iteratie en een vaste
punt methode.
0
Stelling 4.4.1 Laat f ∈ C 2 [a, b]. Als p ∈ [a, b] zodat f (p) = 0 en f (p) 6= 0 dan is er een
δ > 0 zodanig dat Newton’s methode een rij {p n } genereert, die naar p convergeert voor elke
p0 ∈ [p − δ, p + δ].
Bewijs:
Beschouw Newton’s methode als de vaste punt iteratie p n = g(pn−1 ) met
f (x)
g(x) = x − .
f 0 (x)
0
We proberen eerst een interval [p − δ, p + δ] te vinden zodat |g (x)| ≤ k < 1 voor (p − δ, p + δ).
0 0 0
Omdat f (p) 6= 0 en f continu is bestaat er een δ1 > 0 zodat f (x) 6= 0 voor x ∈ [p−δ1 , p+δ1 ].
Dus g is gedefinieerd en continu op [p − δ 1 , p + δ1 ]. Bovendien geldt
0 00 00
0 (f (x))2 − f (x)f (x) f (x)f (x)
g (x) = 1 − 2
= .
0
(f (x)) (f 0 (x))2
0
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
0
g continu is, bestaat er een δ < δ1 zodat
0
|g (x)| ≤ k < 1 voor alle x ∈ [p − δ, p + δ] .
Om een goede vergelijking van convergentie mogelijk te maken voeren we de volgende definitie
in.
Definitie
Stel {pn }∞
n=0 is een rij die convergeert naar p, met p n 6= p voor alle n.
|pn+1 − p|
lim =λ, (4.1)
n→∞ |pn − p|α
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
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.
0 (p − pn )2 00
0 = f (p) = f (pn ) + (p − pn )f (pn ) + f (ξn ) , ξn ∈ (pn , p) .
2
Volgens de definitie geldt
0
0 = f (pn ) + (pn+1 − pn )f (pn ) .
Aftrekken geeft
00
f (ξ)
2
pn+1 − p = (pn − p) .
2f 0 (pn )
00
f (p)
Dit is inderdaad van de gedaante (4.1) met α = 2 en λ = 0
2f (p)
, zodat Newton Raphson
kwadratisch convergent is.
Er zijn allerlei varianten op de Newton Raphson methode bekend. We zullen deze alleen
noemen.
stap 1 q0 = f (p0 )
q1 = f (p1 )
n=2
stap 2 doe zolang n ≤ N0
stap 3 p = p1 − q1 (p1 − p0 )/(q1 − q0 )
q = f (p)
n = n+1
stap 4 als q · q1 < 0 dan p0 = p1 ; q0 = q
stap 5 p1 = p
q1 = q
f1 (x1 , ..., xn ) = 0 ,
..
.
fn (x1 , ..., xn ) = 0 .
45
We noteren dit ook als
F (x) = 0 . (4.2)
De Newton-Raphson methode voor (4.2) wordt gegeven door
∂f
Als het exact uitrekenen van ∂xkj (x) onmogelijk is, dan kunnen we de partiële afgeleiden
vervangen door eindige differentie benaderingen. Bijvoorbeeld
∂fj fj (x + ek h) − fj (x)
(x) ≈ ,
∂xk h
waarbij ek 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
- Newton Raphson
46
4.7 Opgaven
1. Stel f (x) = 3(x + 1)(x − 21 )(x − 1). Gebruik de Bisectie methode op de volgende
intervallen om p3 te bepalen: [-2 1.5] en [-1.25 2.5].
20pn−1 +21/p2n−1 p3n−1 −21
2. We beschouwen de vaste punt methoden: p n = 21 en pn = pn−1 − 3p2n−1
.
Beantwoord voor beide methoden de volgende vragen. Laat zien dat het vaste punt
1
(21) 3 is. Geef een schatting van de convergentie snelheid. Bepaal p 3 met p0 = 1.
3. We gaan een methode afleiden voor het bepalen van een nulpunt van f gebaseerd op
interpolatie.
(a) Stel er zijn twee startwaarden gegeven p 0 en p1 . Bepaal het lineaire interpolatie-
polynoom van de functie f .
(b) Neem voor p2 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 p0 = 1 en
p1 = 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 21 − x2 − 3 = 0 en −x1 + x22 + 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) = sin t
Voor het bepalen van de booglengte kunnen we gebruik maken van de formule
Z0.8 Z0.8p
s 2
dy
l= 1+ dt = 1 + (cos t)2 dt .
dt
0 0
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.
Definitie
Een partitie P van [a, b] is een eindig aantal punten x k waarbij a = x0 < x1 ... < xn = b. Een
bijbehorende strooiing T is een verzameling tussenpunten t k zodat xk−1 ≤ tk ≤ xk . De lengte
van een interval geven we aan met hk = xk − xk−1 en de maaswijdte m(P ) = max {hk }. De
1≤k≤n
48
3
2.5
2 Numerieke
Integratie B.V.
1.5
Hoogte
0.5
−0.5
−1
1 2 3 4 5 6
Lengte
Kies een rij verdelingen P1 , P2 , ... en bijbehorende strooiingen T n zodanig dat m(Pn ) → 0 dan
convergeert
Zb
R(f, Pn , Tn ) naar een limiet I = f (x)dx .
a
De Rechthoekregel
Neem een equidistante verdeling zodat de knooppunten gegeven worden door: x k = a +
kh, k = 0, 1, ..., n met h = b−a
n . De strooipunten nemen we gelijk aan de linkerknooppunten:
tk = xk−1 . De Riemannsom wordt dan gegeven door
49
Bewijs:
We beschouwen eerst het interval [x k−1 , xk ]. Uit een Taylor ontwikkeling volgt:
0
f (x) = f (xk−1 ) + (x − xk−1 )f (ξ(x)) met xk−1 ≤ ξ(x) ≤ xk .
Hieruit volgt:
Zxk Zxk
| [f (x) − f (xk−1 )]dx| ≤ M1 (x − xk−1 )dx ,
xk−1 xk−1
zodat
Zxk
1
| f (x)dx − hf (xk−1 )| ≤ M1 h2 .
2
xk−1
Zb n Zxk
X 1 1
| f (x)dx − IR | ≤ | f (x)dx − hf (xk−1 )| ≤ M1 h2 n = M1 (b − a)h .
2 2
a k=1 x
k−1
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
M1 0.8h ≤ 0.01 .
2
p
De afgeleide van de integrand f (t) = 1 + (cos t)2 wordt gegeven door:
Hieruit volgt |f | ≤ M1 ≤ 12 zodat een stapgrootte h = 0.05 voldoende zou moeten zijn. De
0
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 =
xk +xk−1
0, 1, ..., n en h = b−a
n . De middenpunten 2 worden als strooipunten gekozen. De
Riemannsom wordt dan gegeven door:
1 3 1
Im = h[f (a + h) + f (a + h) + ... + f (b − h)] .
2 2 2
50
Stelling 5.2.2 Zij f een tweemaal differentieerbare functie op [a, b]. Stel M 2 is het maximum
00
van |f | op [a, b] dan geldt:
Zb
1
| f (x)dx − Im | ≤ M2 (b − a)h2 .
24
a
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
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) .
Zb n−1 n−1
ˆ i )| ≤ 1 M1 (b − a)h + h
X X
| f (x)dx − h f(x ε(xk ) .
2
a i=0 k=0
Zb
1
| f (x)dx − IˆR | ≤ ( M1 h + εmax )(b − a) .
2
a
2εmax
Merk op dat het geen zin heeft om h veel kleiner te kiezen dan M1 .
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 effect van de afrondfouten: de totale
fout blijft groter dan 0.8 × 10−3 . Verder heeft het geen zin om de stapgrootte kleiner te kiezen
51
0
10
Met afrondfouten
Zonder afrondfouten
−1
10
−2
10
fout
−3
10
−4
10
−5
10
−4 −3 −2 −1 0
10 10 10 10 10
stapgrootte
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
Rb Rb Rb
| f (x)dx − fˆ(x)dx| |f (x)|dx
a a a
≤ ·ε .
Rb Rb
f (x)dx f (x)dx
a a
Rb
|f (x)|dx
a
Definieer KI = Rb
als het conditiegetal van de integraal I. Als K I 1 dan is het
f (x)dx
a
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 auto’s 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:
π
wlente (t) = 0.01 + sin(πt − ) , t ∈ [0, 1]
2
52
en in het derde kwartaal:
π
wherfst (t) = 0.01 + sin(πt + ) , t ∈ [0, 1] .
2
De totale winst in het eerste kwartaal (W lente ) is gelijk aan:
Z1
Wlente = wlente (t)dt .
0
Z1
|wlente (t)|dt ' 0.63
0
is KI = 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:
Wlente = −0.01 ,
Wherfst = 0.03 .
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):
b−x x−a
p(x) = f (a) + f (b) .
b−a b−a
Rb Rb
We nemen nu p(x)dx als benadering voor f (x)dx:
a a
Zb
b−a
p(x)dx = (f (a) + f (b)) . (5.1)
2
a
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
1 00
f (x) − p(x) = (x − a)(x − b)f (ξ(x)) , (5.2)
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:
Zb Zb
b−a 1 00
f (x)dx − (f (b) + f (a)) = (x − a)(x − b)f (ξ(x))dx . (5.3)
2 2
a a
Deze restterm kan men schatten met behulp van de volgende stelling:
Zb
b−a −(b − a)3 00
f (x)dx − (f (a) + f (b)) = f (η) .
2 12
a
Bewijs:
00 00
Zij m = minx∈[a,b] f (x) en M = maxx∈[a,b] f (x). Dan geldt, wegens (x − a)(b − x) ≥ 0 op
[a, b]:
Zb Zb
00
m (x − a)(b − x)dx ≤ (x − a)(b − x)f (ξ(x))dx
a a
Zb
≤ M (x − a)(b − x)dx ,
a
Zb Zb
00 µ(b − a)3
(x − a)(b − x)f (ξ(x))dx = µ (x − a)(b − x)dx = .
6
a a
00 00
Omdat f continu is, is er een η ∈ [a, b] zodat µ = f (η). Invullen in (5.3) voltooit het bewijs.
54
met xk−1 ≤ ξk ≤ xk . Dus
Zb
1 1
f (x)dx = h[ f (x0 ) + f (x1 ) + ... + f (xn−1 ) + f (xn )]
2 2
a
n
h3 X 00
− f (ξk ) . (5.4)
12
k=1
00
Omdat voor een continue functie f geldt:
n
00 1 X 00 00
min f (ξk ) ≤ f (ξk ) ≤ max f (ξk )
k n k
k=1
Zb
b − a 2 00
f (x)dx = IT (h) − h f (ξ) ,
12
a
Opmerkingen
Zb
IT (h) = s(x)dx .
a
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:
Algemene kwadratuurformules
We hebben gezien dat lineaire interpolatie aanleiding geeft tot de Trapeziumregel. Als we
andere interpolatieformules gebruiken krijgen we verschillende integratieregels.
55
Laat x0 , ..., xm ∈ [a, b] gegeven zijn. Zij p het Lagrange interpolatiepolynoom van f op de
Rb Rb
punten x0 , ..., xm . We nemen dan p(x)dx als benadering voor f (x)dx. Omdat p(x) =
a a
m
P
f (xk )Lkm (x) geldt
k=0
Zb m
X
p(x)dx = wk f (xk ) ,
a k=0
Stelling 5.3.2 Als f een polynoom van hoogstens graad m is, dan is elke m + 1-punts inter-
polatoire kwadratuurformule exact:
Zb m
X
f (x)dx = wk f (xk ) .
a k=0
Bewijs:
Uit stelling 2.3.1 volgt dat f samenvalt met zijn Lagrange interpolatiepolynoom op x 0 , ..., xm
en dus geldt
Zb Zb
f (x)dx = p(x)dx .
a a
Omgekeerd geldt:
Zb m
X
p(x)dx = wk p(xk ) ,
a k=0
m
P
voor alle polynomen p van de graad ≤ m, dan is wk f (xk ) de bij x0 , ..., xm behorende
k=0
Rb
interpolatoire kwadratuurformule voor f (x)dx.
a
56
Bewijs:
Zij p het interpolatiepolynoom op x 0 , ..., xm van f . De vraag is dan of geldt
Zb m
X
p(x)dx = wk f (xk )?
a k=0
Dit is zo omdat
Zb m
X m
X
p(x)dx = wk p(xk ) = wk f (xk ) .
a k=0 k=0
We kunnen deze stelling ook gebruiken om de gewichten w k uit te rekenen als de punten
x0 , ..., xm 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 = 21 (a + b) dan vinden we als
Rb
kwadratuurformule voor f (x)dx:
a
(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
0 1 00
f (x) = f (m) + (x − m)f (m) + (x − m)2 f (ξ(x))
2
en
Zb Zb
1 00
f (x)dx = (b − a)f (m) + (x − m)2 f (ξ(x))dx .
2
a a
Zb
(b − a)3 00
f (x)dx − (b − a)f (m) = f (ξ) .
24
a
Voorbeeld (winst/verlies)
Als we de winst of het verlies uitrekenen met de gerepeteerde Midpuntregel
1 1
h[f (a + h) + ... + f (b − h)] ,
2 2
dan krijgen we voor n = 50
Newton-Cotes formules
Laat x0 , ..., xm equidistant in [a, b] liggen met x0 = a en xm = b. De kwadratuurformules,
57
die ontstaan door integratie van het m-de orde interpolatiepolynoom p m van f noemt men
Newton-Cotes formules.
b − a m+3 (m+2)
Rm = Cm f (ξ) met
m
Zm
1
Cm = t2 (t − 1)...(t − m)dt ;
(m + 2)!
0
b − a m+2 (m+1)
Rm = D m f (ξ) met
m
Zm
1
Dm = t(t − 1)...(t − m)dt .
(m + 1)!
0
Simpsonregel
We kiezen nu als steunpunten x0 = a, x1 = 21 (a + b) en x2 = b. De integratieregel is dan
b−a
[f (x0 ) + 4f (x1 ) + f (x2 )] .
6
Het is niet moeilijk om in te zien dat de Simpsonregel exact is voor de polynomen f (x) =
1, f (x) = x − x1 en f (x) = (x − x1 )2 .
58
Voorbeeld (2 punts Gauss formule)
Stel dat we c0 , c1 , x0 en x1 willen bepalen zo dat de integratieformule
Z1
f (x)dx ≈ c0 f (x0 ) + c1 f (x1 )
−1
het exacte resultaat geeft als f een polynoom is van de graad 3. We kiezen voor f de functies
1, x, x2 en x3 zodat c0 , c1 , x0 en x1 moeten voldoen aan
Z1
f (x) = 1 ⇒ c 0 + c1 = 1dx = 2 ,
−1
Z1
f (x) = x ⇒ c 0 x0 + c 1 x1 = xdx = 0 ,
−1
Z1
2
f (x) = x2 ⇒ c0 x20 + c1 x21 = x2 dx = ,
3
−1
Z1
3
f (x) = x ⇒ c0 x30 + c1 x31 = x3 dx = 0 .
−1
Het is eenvoudig om in te zien dat de oplossing van dit stelsel gegeven wordt door
√ √
− 3 3
c0 = 1 , c 1 = 1 , x 0 = en x1 = ,
3 3
zodat de integratieformule gegeven wordt door
Z1 √ ! √ !
− 3 3
f (x)dx ≈ f +f .
3 3
−1
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.04·10−1
Simpson 2 5 4.56·10−3
5p. Gauss 1 5 1.11·10−7
Trapezium 8 9 2.58·10−2
Simpson 4 9 2.69·10−4
5 p. Gauss 2 10 1.1·10−10
Trapezium 16 17 6.43·10−3
Simpson 8 17 1.66·10−5
5 p. Gauss 4 20 1.1·10−13
- midpuntregel
- gerepeteerde regels
- Trapeziumregel
- Simpsonregel
- Gauss formules
60
5.6 Opgaven
1. We willen de volgende integraal bepalen:
Z1
[(10x)3 + 0.001]dx.
−1
61
Hoofdstuk 6
6.1 Inleiding
Een beginwaarde probleem is meestal een wiskundige beschrijving (differentiaalvergelijking)
van een tijdsafhankelijk probleem. De voorwaarden, die nodig zijn om een unieke oplossing
te bepalen, worden gegeven op t0 = 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 differentiaalvergelijking
dq
= p(t) − aq 2 ,
dt
met beginvoorwaarde
q(0) = 0 .
kracht/lengte N/m
Hierin is q(m3 /s) de afvoer, p is de drijvende kracht ( ofwel kg/m 3 2
3 = m /s ) en
dichtheid
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 r
p0 √
q= tanh(t ap0 ) .
a
De numerieke oplossing kan voor willekeurige functies p bepaald worden.
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.
Definitie 6.2.1 Een functie f (t, y) heet Lipschitz continu in de variabele y in een verzameling
D ⊂ R2 , als er een constante L > 0 bestaat zo dat
Als de functie f differentieerbaar is in de variabele y dan geldt, dat f (t, y) Lipschitz continu
is in de variabele y als geldt:
∂f
| (t, y)| ≤ L, voor alle (t, y) ∈ D.
∂y
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 differentiaalvergelijking. We voeren daarom het begrip goed gesteld probleem in.
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
= f (t, z) + δ(t), a ≤ t ≤ b, z(a) = ya + 0 ,
dt
waarbij z voldoet aan de ongelijkheid:
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
= f (t, y), a ≤ t ≤ b, y(a) = ya ,
dt
goed gesteld.
Bij de afleiding van de voorwaartse methode van Euler (Euler Voorwaarts) is het inzichtelijk
gebruik te maken van het richtingsveld dat door de differentiaalvergelijking wordt bepaald.
Een differentiaalvergelijking 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. Eén bepaalde
oplossingskromme wordt geselecteerd door een punt te specificeren waar de oplossingskrom-
me doorheen moet gaan. Een formele uitdrukking voor de oplossingskromme door een punt
(t0 , y0 ) ontstaat door de afgeleide te integreren:
Z t Z t
y(t) = y0 + y 0 (t)dt = y0 + f (t, y(t))dt. (6.1)
t0 t0
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
differentiaalvergelijking maar vormt wel een beter aanknopingspunt voor diverse vormen van
approximatie
Rt van de oplossing. De meest eenvoudige approximatie ontstaat door de integraal
t0 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):
w1 = y0 + h0 f (t0 , y0 ). (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 (t1 , w1 ). Analoog aan (6.3) hebben we voor t 2 = t1 + h1 :
w2 = y1 + h1 f (t1 , w1 ). (6.4)
Voortzetting van deze procedure leidt tot een reeks van approximatiepunten (t n , wn ) (n=0,1,2,. . . )
met tn+1 = tn + hn en
yn+1 = yn + hn f (tn , yn ), (6.5)
waarbij t0 en w0 = y0 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 , w0 ),
(t1 , w1 ), (t2 , w2 ), . . . (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
h1 , h2 , . . . dezelfde waarde h toe; men spreekt dan van een approximatie met equidistante
stapgrootte h. Bij een equidistante Euler–approximatie gaat (6.5) over in
Het gedrag van de afbreekfout op de tijdstippen t 0 , t1 , . . . als functie van de stapgrootte vormt
steeds het centrale thema bij de analyse van numerieke methoden voor differentiaalvergelij-
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
65
15
y(t +h)
10 n
y(t )
n
f(y(t))
tn t n +h
0
0.2 0.4 0.6 0.8 1 1.2 1.4
t
1.5
w1
1.4
1.3
1.2 y(t1) w2
1.1
1 EXACT
y
y(t3)
0.9
y(t2) w3
0.8
0.7
0.6
t1 t2 t3
0.5
0 0.2 0.4 0.6 0.8 1 1.2
t
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):
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 figuur kunnen waarnemen tenminste.
4.5
3.5
3
Q
2.5
2 : h= 0.01
1.5 : h= 0.05
0.5
0
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4
t
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
6 6 6
5 5 5
4 4 4
Q
Q
3 3 3
2 2 2
1 1 1
0 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 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
t t t
6 6 6
5 5 5
4 4 4
Q
Q
3 3 3
2 2 2
1 1 1
0 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 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
t t t
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.
RDet1
achterwaartse methode van Euler (Euler Achterwaarts) ontstaat als we de integraal
t0 f (t, y(t))dt in (6.1) te vervangen door t 1 − t0 maal de waarde van de integrand in het
eindpunt
y(t1 ) ≈ y0 + (t1 − t0 )f (t0 , y1 ).
De numerieke benadering wordt dan:
w1 = w0 + h0 f (t0 , w1 ). (6.10)
68
15
y(t +h)
10 n
y(t )
n
f(y(t))
tn tn +h
0
0.2 0.4 0.6 0.8 1 1.2 1.4
t
zal hiervoor een numerieke niet–lineaire 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,
0
y = f (t, y) , t ∈ [0, T ] ,
y(0) = y0
dan moet er in elk tijdstip een niet-lineaire vergelijking opgelost worden. Als voorbeeld nemen
we Euler Achterwaarts, bepaal wj+1 uit
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):
h
y(t1 ) ≈ y0 + [f (t0 , y0 ) + f (t1 , y(t1 ))]. (6.11)
2
69
Gelijkstellen van linker– en rechterlid geeft een formule voor de approximatie w 1 van de exacte
waarde y(t1 ):
h
w1 = w0 + [f (t0 , w0 ) + f (t1 , w1 )]. (6.12)
2
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 Modified Euler-methode
Voor het afleiden 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
predictor–corrector formule:
predictor: w 1 = w0 + hf (t0 , w0 ),
h
corrector: w1 = w0 + [f (t0 , w0 ) + f (t1 , w 1 )]. (6.13)
2
Gegeven w0 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:
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
3 3 3
2 2 2
Q
1 1 1
0 0 0
−0.5 methode van Heun met h= 0.18 −0.5 methode van Heun met h= 0.2 −0.5 methode van Heun met h= 0.201
−1 −1 −1
0 5 10 15 20 25 30 35 40 45 50 0 5 10 15 20 25 30 35 40 45 50 0 5 10 15 20 25 30 35 40 45 50
t t t
3 3
2.5 2.5
2 2
1.5 1.5
Q
Q
1 1
0.5 0.5
0 0
−0.5 methode van Heun met h= 0.202 −0.5 methode van Heun met h= 0.207
−1 −1
0 5 10 15 20 25 30 35 40 45 50 0 5 10 15 20 25 30 35 40 45 50
t t
Figuur 6.7: Stabiele en instabiele approximaties van (6.16) met de Modified Euler-methode
3 3 3
2 2 2
1 1 1
0 0 0
−0.5 methode van Euler met h= 0.18 −0.5 methode van Euler met h= 0.2 −0.5 methode van Euler met h= 0.201
−1 −1 −1
0 5 10 15 20 25 30 35 40 45 50 0 5 10 15 20 25 30 35 40 45 50 0 5 10 15 20 25 30 35 40 45 50
t t t
3 3
2.5 2.5
2 2
1.5 1.5
Q
1 1
0.5 0.5
0 0
−0.5 methode van Euler met h= 0.207 −0.5 methode van Euler met h= 0.22
−1 −1
0 5 10 15 20 25 30 35 40 45 50 0 5 10 15 20 25 30 35 40 45 50
t t
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 Modified
Euler allemaal aan één kant ervan liggen. Met andere woorden, bij Euler Voorwaarts alterneert
het teken van de afbreekfout per stap terwijl dit bij de Modified Euler gelijk blijft.
volgens
wn+1 = wn + hf (tn , wn ). (6.17)
De globale afbreekfout op tijdstip t n+1 wordt gedefinieerd als het verschil van de exacte en
de numerieke oplossing:
en+1 = y(tn+1 ) − wn+1 , (6.18)
waarbij y(tn+1 ) de exacte en wn+1 de numerieke oplossing is. De bedoeling is de afbreekfouten
1.5
1.4
1.3
wn
en
1.2
y(t n )
1.1
w n+1
z n+1
1
y
0.9 EXACT
y(t n+1 )
0.8
0.7
0.6
tn t n+1
0.5
0 0.2 0.4 0.6 0.8 1 1.2
t
en en en+1 te relateren.
72
Het punt (tn+1 , wn+1 ) ligt op de lijn die raakt aan de door (t n , wn ) gaande naburige oplos-
singskromme. We beginnen met een hulppunt (t n+1 , zn+1 ) te kiezen op de lijn die in tn raakt
aan de exacte oplossingskromme y(t). De situatie is geı̈llustreerd in Figuur 6.9. Analytisch
wordt de waarde van zn+1 gegeven door
Het hulppunt verdeelt het lijnstuk (y(t n+1 ), wn+1 ) (de afbreekfout) in twee stukken. Analy-
tisch correspondeert met deze verdeling de (van de figuur onafhankelijke) opsplitsing
Het eerste deel geeft aan hoe goed de raaklijn de exacte oplossing tijdens de stap (t n , tn+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(tn+1 ) in een Taylorreeks rond het punt tn te ontwikkelen en daarvan (6.19) af te
trekken:
h2 00
y(tn+1 ) − zn+1 = y(tn ) + hy 0 (tn ) + y (ξn+1 ) − [y(tn ) + hf (tn , y(tn ))]
2
h2 00
= y (ξn+1 ), ξn+1 ∈ (tn , tn+1 ). (6.21)
2
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(t n+1 ) als
oneindig voortlopende reeks van machten van h te schrijven:
h2 00 h2 00 h3 000 h4 0000
y(tn+1 ) − zn+1 = y (ξn+1 ) = y (tn ) + y (tn ) + y (tn ) + . . . (6.22)
2 2 6 24
Als y(tn+1 ) − zn+1 door de stapgrootte wordt gedeeld ontstaat de definitie van de lokale
afbreekfout τn+1 . De lokale afbreekfout van de voorwaartse methode van Euler is dus volgens
(6.21):
y(tn+1 ) − zn+1 h
τn+1 = = y 00 (ξn+1 ). (6.23)
h 2
Het tweede deel van de afbreekfout, z n+1 − wn+1 in (6.20), geeft aan hoe de in de voorgaande
stappen geaccumuleerde afbreekfout e n wordt doorgegeven naar het punt tn+1 . Afhankelijk
van het richtingsverschil tussen de raaklijnen aan de exacte en de naburige oplossingskrommen
wordt en versterkt of gedempt doorgegeven.
73
met τn+1 gegeven door (6.23), terwijl we en + h[f (tn , y(tn )) − f (tn , wn )] 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 (tn , wn ) − f (tn , y(tn )) vormt daarbij een barriere. Daarom analyseren we de afbreek-
foutrelatie eerst voor lineaire differentiaalvergelijkingen, type f (t, y) = λ(t)y +g(t). Voor deze
vergelijkingen gaat (6.25) over in:
zn+1 − wn+1 = en + h[f (tn , y(tn )) − f (tn , wn )]
= en + hλ(tn )(y(tn ) − wn )
= en + hλn en
= (1 + hλn )en .
Bij een lineaire differentiaalvergelijking manifesteert het doorgavedeel zich door middel van
een factor, de zg. versterkingsfactor, en gaat de afbreekfoutrelatie (6.25) over in:
en+1 = (1 + hλn )en + hτn+1 . (6.26)
Voor constante λ (λn = λ) kan deze recurrente betrekking gemakkelijk ’opgelost’ worden in
de vorm van een reeks:
eN = (1 + hλ)eN −1 + hτN
= (1 + hλ)2 eN −2 + (1 + hλ)hτN −1 + hτN
..
.
= (1 + hλ)N e0 + (1 + hλ)N −1 hτ1 + (1 + hλ)N −2 hτ2 + . . . + (1 + hλ)hτN −1 + hτN .
Veronderstellend dat de beginvoorwaarde foutloos geı̈mplementeerd wordt, mogen we e0 nul
stellen en volgt:
eN = (1 + hλ)N −1 hτ1 + (1 + hλ)N −2 hτ2 + . . . + (1 + hλ)hτN −1 + 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 betreffende afbreekfout werd gemaakt.
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 = N h (N toenemend) zich ruwweg gedraagt
als de afbreekfouten in de buurt (’vlak vóór’) t = N h, dus ruwweg als de tweede afgeleide
van de oplossing ter plekke, afgezien van een zeker na-ijl effect. 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.
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
−2 2
h< = . (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 λ.
75
6.5 Stability of initial-value problems
Stability
A general definition 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 ỹ satisfies:
The difference of the exact and perturbed solution is defined as ε: ε(t) = ỹ(t) − y(t). An
initial-value problem is stable if
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)| = 0.
t→∞
Stability of a linear initial-value problem
Consider the linear initial-value problem
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.
It appears that εj = vj − wj is the numerical solution of the test equation. It is easy to see
that every one-step method applied to the test equation gives
where Q(hλ), the amplification factor, depends on the numerical method: for Forward Euler
Q(h) = 1 + hλ and for the Modified Euler method Q(h) = 1 + hλ + 12 (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
differential equation is stable. Inequality (6.34) can be written as:
−1 ≤ 1 + hλ ≤ 1 ,
which is equivalent to
−2 ≤ hλ ≤ 0 .
2
Since h > 0 and λ ≤ 0 it follows that h ≤ |λ| .
For the Modified Euler method the condition |Q(hλ)| ≤ 1 leads to the inequalities:
1
−1 ≤ 1 + hλ + (hλ)2 ≤ 1.
2
The left-hand inequality is equivalent to the inequality
1
0 ≤ 2 + hλ + (hλ)2 .
2
Since the equation 2 + hλ + 21 (hλ)2 = 0 has no real solution h, the inequality is satisfied for
all h > 0. The right-hand inequality 1 + hλ + 12 (hλ)2 ≤ 1 is equivalent to
1
hλ + (hλ)2 ≤ 0,
2
1
(hλ)2 ≤ −hλ.
2
hλ2
Division of the inequality by the positive number 2 shows that
−2 2
h≤ = .
λ |λ|
Note that the stability criteria for Euler Forward and Modified Euler are the same, although
the amplification factors are different, see also Figure 6.10.
1
For Backward Euler the amplification factor is given by Q(h) = 1−hλ . So for stability h
should be such that:
1
−1 ≤ ≤1.
1 − hλ
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.
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 = 31 , 16 and
1 −4 1
12 with ε0 = 10 . The method is indeed unstable if h = 3 because |εj | > |εj−1 |. For the
other values of h we see that the perturbations decrease.
77
Euler Voorwaarts
Modified Euler
0
−3 −2 −1
−1
Figuur 6.10: The amplification factors of Euler Forward and the Modified Euler method as
function of hλ
−4
x 10
6
h = 1/3
5 h = 1/6
h = 1/12
3
Perturbation
−1
−2
78
is linearized by using the linear approximation around ( t̃, ỹ):
∂f ∂f
f (t, y) ≈ f (t̃, ỹ) + (y − ỹ) (t̃, ỹ) + (t − t̃) (t̃, ỹ) .
∂y ∂t
0 ∂f ∂f
y = f (t̃, ỹ) + (y − ỹ) (t̃, ỹ) + (t − t̃) (t̃, ỹ) .
∂y ∂t
∂f
Comparison with the linear equation shows that in this case λ = ∂y (t̃, ỹ). Note that the
stability condition depends on the values of ỹ and t̃.
y 0 = −ay 2 + p, y(0) = 0.
∂f
λ= (t̃, ỹ) = −2aỹ0 .
∂t
This implies that the initial-value problem is stable for all positive a and ỹ 0 . The Forward
Euler method is stable if
1
h≤ .
aỹ0
Note that the bound on the step size decreases if ỹ 0 increases.
Lokale afbreekfout
De lokale afbreekfout τj+1 is gedefinieerd als
yj+1 − zj+1
τj+1 = , (6.36)
h
where
zj+1 = yj + hφ(yj+1 , yj , tj+1 , tj , 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 τj = 0 ,
h→0
waarbij in de limiet j zo gekozen wordt, dat jh constant is. We noemen een methode van
orde p als ej = O(hp ).
ehλ − Q(hλ)
τj+1 = yj .
h
De grootte van de lokale afbreekfout wordt dus bepaald door het verschil tussen de verster-
kingsfaktor en de exponentiële functie. Om dit verschil te bepalen maken we gebruik van de
Taylor-ontwikkeling van ehλ :
r−1
X 1
ehλ = (hλ)i + O(hr ) . (6.40)
i!
i=0
Als we 6.40) vergelijken met Q(hλ) = 1 + hλ dan volgt dat Euler Voorwaarts een lokale
afbreekfout van de orde 1 heeft. De Modified Euler methode heeft volgens Q(hλ) = 1 + hλ +
1 2
2 (hλ) een lokale afbreekfout van de orde 2 en is dus nauwkeuriger.
1
Voor de achterwaartse methode van Euler volgt uit Q(hλ) = 1−hλ dat
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.
0 h2 00
yj+1 = yj + hyj + y + O(h3 ) . (6.42)
2 j
Omdat y voldoet aan de differentiaalvergelijking geldt:
0
y = f (t, y) (6.43)
80
en
00
y = ft + fy f . (6.44)
Combinatie van (6.41), (6.42), (6.43) en (6.44) geeft
h
τj+1 = fj + (ft + fy f )j − φ(yj , tj , h) + O(h2 ) .
2
Bij de voorwaartse methode van Euler is φ(y j , tj , h) = f (tj , yj ) en is de afbreekfout van de
orde 1. Dit kunnen we als volgt bewijzen. Uit (6.41) en (6.42) volgt
0
τj+1 = yj + O(h) − φ(yj , tj , h)
Omdat voor Euler Voorwaarts φ(yj , tj , h) = f (tj , yi ) volgt uit (6.43) τj+1 = O(h).
De laatste term van (6.48) wordt rond het punt (t n , y(tn )) ontwikkeld in een Taylorreeks (in
twee variabelen omdat beide variabelen verschoven worden):
∂f ∂f 1 ∂2f
f (tn+1 , z n+1 ) = fn + h( )n + (z n+1 − y(tn ))( )n + h2 ( 2 )n +
∂t ∂y 2 ∂t
1 2
∂ f ∂2f
+ (z n+1 − y(tn ))2 ( 2 )n + h(z n+1 − y(tn ))( )n
2 ∂y ∂t∂y
+ ... (6.49)
Volgens (6.47) geldt z n+1 − y(tn ) = hf (tn , y(tn )) = hfn . Dat houdt in dat de laatste drie
gespecificeerde termen van (6.49) de grootte–orde h 2 hebben (en dat de stippeltjes voor termen
van O(h3 ) en hoger staan). We zullen de termen met tweede en hogere machten van h
niet nodig hebben en specificeren ze verder niet meer. Substitutie van de uitdrukking voor
z n+1 − y(tn ) in de derde term van (6.49) resulteert in:
∂f ∂f
f (tn+1 , z n+1 ) = fn + h[ + f ]n + O(h2 ).
∂t ∂y
81
Substitutie van deze uitdrukking in (6.48) geeft:
h2 ∂f ∂f
zn+1 = y(tn ) + hfn + [ +f ]n + O(h3 ). (6.50)
2 ∂t ∂y
Op dit punt wordt de differentiaalvergelijking y 0 (t) = f (t, y) gebruikt. Door differentiatie
naar t, onder gebruik van de kettingregel, volgt
dy 0 df (t, y(t)) ∂f ∂f dy ∂f ∂f
y 00 (t) = = = + =[ +f ](t, y). (6.51)
dt dt ∂t ∂y dt ∂t ∂y
Door substitutie van deze uitdrukking, na evaluatie in t = t n , gaat (6.50) over in:
h2 00
zn+1 = y(tn ) + hy 0 (tn ) + y (tn ) + O(h3 ). (6.52)
2
We zien dat de eerste drie termen precies de eerste drie termen van de Taylorontwikkeling
h2 00
y(tn+1 ) = y(tn ) + hy 0 (tn ) + y (tn ) + O(h3 ) (6.53)
2
zijn; ze verdwijnen als we het verschil van de twee ontwikkelingen nemen:
6.7 Convergentie
Laat yj en wj 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
ej = yj − wj is.
Convergentie
Een schema heet convergent als voor de globale afbreekfout e j geldt:
ej = yj − Q(hλ)wj−1
= yj − Q(hλ)yj−1 + Q(hλ)ej−1
= hτj + Q(hλ)ej−1 . (6.56)
82
Repeating this argument one obtains
j−1
X
ej = [Q(hλ)]l hτj−l .
l=0
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.
Om de hoeveelheid werk te bepalen, tellen we het aantal functie evaluaties. Bij Euler Voor-
waarts is één functie evaluatie per tijdstap nodig en bij Modified 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
Tabel 6.1: Kosten voor Euler Voorwaarts en Modified 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.
83
waarbij de predictoren k1 t/m k4 gegeven worden door
k1 = hf (tn , wn ) (6.58)
1 1
k2 = hf (tn + h, wn + k1 )
2 2
1 1
k3 = hf (tn + h, wn + k2 )
2 2
k4 = hf (tn + h, wn + k3 ).
Rt
De corrector is gebaseerd op de Simpson regel als benadering van de integraal tnn+1 f (t, y(t))dt.
Rt
De Simpsonregel approximeert volgens: tnn+1 f (t, y(t))dt ≈ h6 [y(tn ) + 4y(tn + 12 h) + y(tn + 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(tn + 21 h) en y(tn + h) moeten voorspeld worden. Uit de gebruikte eerste
argumenten van f in bovenstaande predictor formules kun je afleiden dat k 2 en k3 beiden een
predictie voor y(tn + 21 h) moeten vormen (kennelijk wordt de middelste term in de Simpson
regel in twee helften gesplitst) en dat k 4 een predictie voor y(tn + h) vormt.
Bovenstaande Runge–Kutta (afkorting RK4) methode kan door middel van Taylorreeksen
strict afgeleid worden, met als bijproduct een uitdrukking voor de lokale afbreekfout die van
de O(h4 ) blijkt te zijn. Die afleiding 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 afleiding beperken we ons weer tot homogene testvergelijkingen
waarvoor de orde van de lokale afbreekfout en de versterkingsfactor betrekkelijk simpel af te
leiden zijn.
Zoals bij de afleiding voor de Modified Euler opgemerkt kun je hieruit direct de versterkings-
factor aflezen, namelijk
1 1 1
Q(hλ) = 1 + hλ + (hλ)2 + (hλ)3 + (hλ)4 . (6.59)
2 6 24
Opgave. Laat zien dat een niet–homogene testvergelijking dezelfde versterkingsfactor heeft.
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
Modified 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 exponentiële foutgroei op-
treedt.
Uit de rechter ongelijkheid van (6.61) moet de stabiliteitsvoorwaarde voor h volgen. Deze
ongelijkheid is identiek met x + 21 x2 + 61 x3 + 24
1 4
x < 0, oftewel x(1 + 12 x + 61 x2 + 24
1 3
x )<0
1 1 2 1 3
welke, vanwege x = hλ < 0, equivalent is met 1 + 2 x + 6 x + 24 x > 0. Een onderzoek van
het polynoom 1 + 21 x + 16 x2 + 24
1 3
x toont aan dat dit slechts één 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
−2.8 2.8
h< = , (6.62)
λ |λ|
De stabiliteitsgrens ligt voor RK4 iets hoger dan voor Euler Voorwaarts en Modified Euler.
De iets grotere ruimte voor de stapgrootte keuze die daardoor bij RK4 ontstaat is echter
marginaal en heeft vrijwel geen praktische betekenis.
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.
Helaas geeft de bovengrens in de voor ons interessante gevallen, dat zijn differentiaalverge-
lijkingen met dalende (of in elk geval niet exponentiëel stijgende) oplossingen, geen enkele
indicatie over de werkelijke afbreekfout omdat de evenredigheidscoëfficiënt van h voor deze
klasse van differentiaalvergelijkingen veel en veel te ruim bemeten is. Het is voldoende naar
de testvergelijkingen te kijken om te zien hoe dat zit.
met:
Q(hλ) = 1 + hλ (Euler Voorwaarts), (6.64)
h2 2
Q(hλ) = 1 + hλ + λ (Modified Euler), (6.65)
2
h2 2 h3 3 h4 4
Q(hλ) = 1 + hλ + λ + λ + λ (RK4). (6.66)
2 6 24
Herhaalde toepassing van (6.63) (met e 0 = 0) geeft:
86
Voor stabiele stapgrootten zijn de versterkingsfactoren kleiner dan 1 in absolute waarde en
geldt:
| eN |≤ hΣN0
−1
| τ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:
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 N h = 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 R t in een integraal over (0, t),
N −1
immers hΣ0 τn+1 is niets anders dan de Riemann-som voor 0 τ (t)dt, waarbij τ (t) opgevat
moet worden als de continue versie van de lokale afbreekfout. Voor R t de Euler Voorwaarts
methode bijvoorbeeld zouden we τ (t) = h2 y 00 (t) moeten invullen in 0 τ (t)dt hetgeen leidt tot
h t 00
Z
lim e(t, h) = y (t)dt.
h→0 2 0
De notatie eN 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
R t pricipe toch niet mogelijk omdat de
oplossing onbekend is. Wel belangrijk, en direct uit 0 τ (t)dt af te leiden, is dat de globale
afbreekfout op dezelfde manier van h afhangt als de lokale afbreekfout. We schrijven
Het getal p, de orde van de methode, geeft dus de grootte–orde 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 hp bestaat uit integralen over (0, t) van bepaalde afgeleiden
van de oplossing. Deze worden in (6.70) op één 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.
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 quotiënt van de afbreekfout en h
Tabel 6.2: Numerieke oplossing van y 0 = 50 − 2y 2 in t=0.2, met behulp van Euler Voorwaarts
uitgerekend. Dit quotiënt blijkt weinig te variëren over de getoonde range van h–waarden 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 differentiaalvergelijkingen laten zien dat dit steeds het geval is, afgezien van die (in de
praktijk weinig voorkomende) gevallen waar de oplossing van de differentiaalvergelijking niet
aan bepaalde continuiteitseisen voldoet.
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:
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 12 h (en gebruikt dus 2N stappen om in t uit te komen). Notatie:
wN = y(t, h) en w2N = y(t, h2 ). 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:
en, omdat (6.72) beter opgaat naarmate h kleiner wordt, zal zeker gelden
h h h
e(t, ) = y(t) − y(t, ) ≈ K(t)( )p , (6.74)
2 2 2
Aftrekken van twee bovenstaande vergelijkingen levert
h 1
y(t, ) − y(t, h) ≈ K(t)hp (1 − ( )p ), (6.75)
2 2
waaruit de waarde van K(t) volgt:
y(t, h2 ) − y(t, h)
K(t) ≈ . (6.76)
hp (1 − ( 21 )p )
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):
h 1 h
y(t) − y(t, ) ≈ p [y(t, ) − y(t, h)]. (6.77)
2 2 −1 2
We zien dat de orde van de methode zich in de afbreekfoutschatting manifesteert via de factor
1
2p −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, 12 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
h
y(t, h/4) − y(t, h/2) ≈ K( )p . (6.78)
4
Deze relatie en (6.75) kunnen gecombineerd worden tot:
89
Indien we voor zekere h voor de drie opeenvolgende approximaties y(t, h),
y(t,h/2)−y(t,h)
y(t, h2 ), y( h4 ) vinden dat de grootheid y(t,h/4)−y(t,h/2) in de buurt van 2p ligt (dus 2 voor Euler,
4 voor Modified 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 h–waarden 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
Tabel 6.3: Numerieke oplossing van y 0 = 50 − 2y 2.1 in t=0.2. met Euler Voorwaarts
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 á 20
punten nodig.
Te beginnen met zo’n 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 differentiaalvergelijking 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
Als we een impliciete methode gebruiken zoals Euler Achterwaarts, dan moet er elke tijdstap
een oplossing bepaald worden van het volgende niet-lineaire stelsel:
wn+1 = wn + hf (tn+1 , wn+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 i–de component ei,n+1 van de afbreekfout in tn+1 , gedefinieerd als
ei,n+1 = yi (tn+1 ) − wi,n+1 , (6.82)
91
wordt weer opgesplitst volgens
waarbij zi,n+1 gevonden wordt door de Eulerformule in de punten (t n , yi (tn )) (i=1,2,. . . ,k)
van de exacte oplossingskrommen toe te passen:
yi (tn+1 ) − zi,n+1
τi,n+1 = (6.85)
h
volgt, precies als in het scalaire geval, door de Taylorontwikkelingen van y i (tn+1 ) en zi,n+1
rond het punt t = tn van elkaar af te trekken. Men verifiëre dat
1 00
τi,n+1 = hy (ξi,n+1 ), ξi,n+1 ∈ (tn , tn+1 ). (6.86)
2 i
Na invullen van (6.84) en (6.86) in (6.83) (voor i=1,2,. . . ,k) resulteert de vectoriële versie van
de scalaire afbreekfoutrelatie:
92
waarbij de beneden–index n bij de partiële afgeleiden staat voor evaluatie in het punt (t n , y1 (tn ), y2 (tn ), . . . , yk (tn ))
Enige reorganisatie van deze uitdrukking levert:
De matrix is de Jacobiaan van de vectorfunctie f (t, y) in het punt (t n , y1 (tn ), y2 (tn ), . . . , yk (tn ));
we noemen deze Jn . Vullen we bovenstaande uitdrukking voor het doorgavedeel van de af-
breekfout in in (6.83) dan ontstaat de gelineariseerde vorm van (6.87):
met beginvoorwaarden
0 0 (n−1)
y(0) = y0 , y (0) = y0 , ..., y (n−1) (0) = y0 ,
dk y
waarin y (k) een korte schrijfwijze is voor dtk
.
x1 = y ,
x2 = y (1) ,
..
.
xn = y (n−1) .
93
(n−1)
met beginvoorwaarden x1 (0) = y0 , ..., xn (0) = y0 .
xj+1
1 = xj1 + hxj2 ,
xj+1
2 = xj2 − h sin xj1 .
De vectoriële afbreekfoutrelatie (6.93) wordt geanalyseerd door ontkoppeling met behulp van
de transformatie en = 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 en+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)
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.B. De getallen αi,n+1 zijn de componenten van de afbreekfoutvector t.o.v. de basis der
eigenvectoren.
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 exponentiële groei van één of meer van de componenten van η exponentiële
groei van één van de componenten van e tot gevolg hebben. Voor absolute stabiliteit van de
Euler-oplossing van een stelsel moeten we dus eisen:
Ten opzichte van het scalaire geval komt bij het uitwerken van (6.99) één 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 geı̈nterpreteerd
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 reële eigenwaarden.
Noemen we λ = µ + iν (deze formulering omvat het reële geval, nl. voor ν = 0) dan geldt:
| 1 + hλ |=| (1 + hµ) + ihν |. Omdat de modulus van een complex getal p de wortel uit som van
de kwadraten van het reëel en het imaginair deel is, | 1 + hλ |= (1 + hµ)2 + h2 ν 2 , wordt
(6.99) geschreven als
(1 + hµ)2 + h2 ν 2 < 1, i = 1, 2, . . . , n. (6.100)
95
Aan (6.100) kan niet worden voldaan zodra een eigenwaarde met een positief reëel 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 reëel deel hebben kunnen stabiel geı̈ntegreerd
worden. Dat zijn de stelsels met dempende oplossingen welke men in de praktijk normaal
gesproken tegen komt.
Waarschuwing: Maak niet de fout in geval van een complexe eigenwaarde de ’reële’ stabili-
2
teitsvoorwaarde h < |λ| toe te passen, en vervolgens in deze formule | λ | als de modulus van
2
λ te interpreteren. De afleiding van de voorwaarde h < |λ| uit (6.99) is alleen geldig voor
reële λ, niet voor complexe λ. Voor complexe λ moet je met (6.101) werken
p
Heel inzichtelijk is het de vergelijking | 1 + hλ |= (1 + hµ)2 + h2 ν 2 = 1 af te beelden in het
complexe hλ–vlak (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 stabiliteitsgebiedpvan de methode van Euler
genoemd. Het stabiliteitsgebied van Euler ligt (uiteraard, omdat (1 + hµ)2 + h2 ν 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 grafisch
bepaald worden. Je begint met een eigenwaarde λ i in het hλ–vlak 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 grafisch 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 reëel deel hebben.
Inkrimpen van h kan je nooit binnen het stabiliteitsgebied brengen bij een eigenwaarde met
een reëel 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. Differentiaalvergelijkingen 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
Modified Euler en Runge–Kutta voor stelsels
De Modified Euler en Runge–Kutta 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 vectoriële copieën
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:
met respectievelijk:
GE (hA) = I + hA (Euler Voorwaarts), (6.103)
h2
GH (hA) = I + hA + A2 (Modified Euler), (6.104)
2
h2 h3 h4
GRK (hA) = I + hA + A2 + A3 + A4 (Runge–Kutta). (6.105)
2 6 24
De versterkingsmatrix wordt steeds gevonden door in de versterkingsfactor Q(hλ) van de
betreffende methode voor hλ de matrix hA te substitueren, m.a.w. G(hA) is het matrixpo-
lynoom gedefinieerd door het scalaire polynoom Q(hλ).
De afbreekfoutrelatie (6.102) wordt voor alle drie methoden op dezelfde manier ontkoppeld.
Door de transformatie en = Sη n gaat (6.102) over in:
S−1 Ak 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:
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:
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 hλ–vlak 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 Modified Euler lijkt erg veel
2 2
1 1
−3 −2 −1 0 1 −3 −2 −1 0 1
−1 −1
−2 −2
op dat van Euler. Beide methoden kennen voor een gegeven stelsel differentiaalvergelijkingen
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 RK4 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
0
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.
98
Euler achterwaarts Trapeziumregel
2 2
1 1
−2 −1 0 1 2 −2 −1 0 1 2
−1 −1
−2 −2
gelden lokaal dezelfde eigenschappen als voor stelsels van het type (6.92). De rol van A wordt
dan ingenomen door de matrix van partiële afgeleiden van f gegeven door
∂f1 ∂f1
∂x1 . . . ∂xk
.. .. .
. .
∂fk ∂fk
∂x1 ... ∂xk
Merk op dat de voorwaartse methode van Euler en de methode van Modified Euler instabiel
zijn voor elke h. De Trapeziumregel is stabiel en de achterwaartse methode van Euler leidt tot
99
Runge−Kutta
−4 −3 −2 −1 0 1
−1
−2
−3
demping van de slingerbeweging. In een volgende paragraaf zullen we een expliciete methode
behandelen, die wel stabiel is voor stelsels met imaginaire eigenwaarden.
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 infinitesimale h geldt dus
De details van deze beschouwing zijn verder niet interessant omdat de onbekende evenredig-
heidsconstanten Ki (t) door stapgroottehalvering uit de numerieke resultaten geschat zullen
worden, op dezelfde wijze als in het scalaire geval. Dit leidt tot:
h 1 h
yi (t) − yi (t, ) ≈ p [yi (t, ) − yi (t, h)] (i = 1, 2, . . . , k), (6.114)
2 2 −1 2
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 betreffende component. De numerieke data voor de andere componenten spelen
daarbij geen rol.
Bij stabiele integratie wordt elke afbreekfout met een factor Q (| Q |< 1) gereduceerd. Deze
exponentiële 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 ’naijleffect’ zijn; van dit ’naijleffect 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 inefficiënt
vooral als je de quasi-stationaire oplossing over langere tijdsintervallen wilt volgen.
Als je in zo’n geval de stapgrootte wilt opvoeren mag je natuurlijk de stabiliteitsgrens niet
overschrijden want dan worden de afbreekfouten niet meer gedempt. Bij de integratiemetho-
A
den die tot nu toe aan de orde zijn gekomen is deze |λ| , 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
A
inschakelgebied, zoals blijkt uit het feit dat de e-macht e λt in een tijdsinterval |λ| 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 qualificatie stijfheid aanleiding geven.
Problemen die stijfheid vertonen m.b.t. een van de tot nu toe behandelde methoden kunnen
het beste geı̈ntegreerd 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 stiff
systems). Daar heb je een vectoriële 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 één eigenwaarde -1 en de andere -10000. De op-
102
lossing is van het type c1 ξ (1) e−t + c2 ξ (2) e−10000t , waarbij ξ (1) en ξ (2) de eigenvectoren van de
matrix zijn en de integratieconstanten c 1 en c2 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 reële 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
Eén impliciete methode is al geı̈ntroduceerd bij de afleiding van de Modified Euler. Deze is
gebaseerd op de Trapeziumregel:
h
wn+1 = wn + [f (tn , wn ) + f (tn+1 , wn+1 )].
2
De impliciet voorkomende wn+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 wn+1 te vinden. Dat leidt tot de Modified Euler. Doen we de concessie de vergelijking wel
op te lossen dan krijgen we daarvoor terug dat de aldus gedefinieerde 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 0 = Ay + g(t). wordt de
methode:
h
wn+1 = wn + [Awn + g(tn ) + Awn+1 + g(tn+1 ))].
2
Brengen we alle termen met wn+1 naar links:
h h h
(I − A)wn+1 = (I + A)wn + [g(tn ) + g(tn+1 )].
2 2 2
Bij elke tijdstap moet het bovenstaande stelsel algebraı̈sche 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.
103
Componentsgewijs oplossen geeft:
1 + h2 λi
ηi,n+1 = ηi,n .
1 − h2 λi
1+ h2 λ
De versterkingsfactor van de Trapezium methode is dus Q(hλ) = 1− h2 λ
. Met λ = µ + iν geldt
| (1 + h2 µ) + h2 νi |
| Q(h(µ + iν)) | =
| (1 − h2 µ) − h2 νi |
q
(1 + h2 µ)2 + ( h2 ν)2
= q .
(1 − h2 µ)2 + ( h2 ν)2
Voor eigenwaarden met negatief reëel 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
R tn+1
weer uit de integraalformulering worden afgeleid door tn f (t, y(t))dt te approximeren door
hf (tn+1 , y(tn+1 )), in plaats van door hf (tn , y(tn )) wat tot Euler Voorwaarts leidt. Er volgt
(I − hA)wn+1 = wn + hg(tn+1 ).
voor de i-de component. Stabiele integratie wordt verkregen op voorwaarde dat de moduli van
alle versterkingsfactoren (1−hλi )−1 kleiner dan 1 zijn. Er geldt | 1−hλi |2 =| 1−hµ−hνi |2 =
(1 − hµ)2 + (hν)2 > 1 voor eigenwaarden met negatief reëel 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 0 = −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 geı̈nteresseerd 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 figuren is de quasi-stationaire oplossing cos t weergegeven vanaf t = 0 zodat je goed het
104
effect 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 figuur 3 waar
de versterkingsfactoren van Euler Achterwaarts en de Trapezium methode als functie van hλ
zijn uitgezet.
1.5
0.5
−0.5
−1
−1.5
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
Figuur 6.15: Approximatie van y 0 = −100(y − cos t) − sin t met de Trapezium methode; h=0.2
0.8
0.6
0.4
0.2
−0.2
−0.4
−0.6
−0.8
−1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
Figuur 6.16: Approximatie van y 0 = −100(y − cos t) − sin t met Euler Achterwaarts; h=0.2
105
Superstabiel
Een numerieke methode heet superstabiel als
Uit Figuur 6.17 blijkt dat Euler achterwaarts superstabiel is, terwijl voor de Trapeziumregel
geldt:
lim |Q(hλ)| = 1 .
hλ→−∞
Dit betekent dat beginverstoringen in de snelle componenten niet of zeer traag uitdempen
Euler Achterwaarts
Trapeziumregel
hλ
−50 −40 −30 −20 −10 0
−1
Discussie
In deze paragraaf hebben we ons beperkt tot een eenvoudig stelsel differentiaalvergelijkingen.
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 tj+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.
Adams-Bashforth methode
Voor de afleiding van de Adams-Bashforth methode gaan we uit van de Trapeziumregel
h
uj+1 = uj + [f (tj , uj ) + f (tj+1 , uj+1 )] (6.116)
2
We kunnen deze methode expliciet maken door f (t j+1 , uj+1 ) te extrapoleren met behulp van
f (tj−1 , uj−1 ) en f (tj , uj ). Het lineaire interpolatiepolynoom wordt gegeven door
Stabiliteit
0
We maken gebruik van de testvergelijking y = λy. Voor de verstoring ε geldt de recursie
3 1
εj+1 = (1 + hλ)εj − hλεj−1 . (6.118)
2 2
Dit is een differentievergelijking met constante coefficiënten. Deze kunnen we oplossen door
te substitueren εj = cz j . De karakteristieke vergelijking wordt
3 1
z 2 − (1 + hλ)z + hλ = 0 ,
2 2
met als oplossingen
√
1 + 32 hλ + D
z1 = , (6.119)
2 √
1 + 32 hλ − D
z2 = , (6.120)
2
waarbij D = 1 + hλ + 49 (hλ)2 . De algemene oplossing van (6.118) is nu
εj = c1 z1j + c2 z2j .
107
z1
z2
−1 −0.5 0
−1
De wortels z1 en z2 zijn gegeven in Figuur 6.18. Merk op dat aan (6.121) voldaan is voor
1
h ≤ |λ| . De methode is dus voorwaardelijk stabiel.
Afbreekfout
Met behulp van Taylorontwikkeling volgt uit (6.119) en (6.121):
1 1
z1 (hλ) = 1 + hλ + (hλ)2 − (hλ)3 + O(h4 ) ,
2 4
1 2
z2 (hλ) = hλ + O(h ) .
2
De exacte oplossing van de testvergelijking is
1 1
ehλ = 1 + hλ + (hλ)2 + (hλ)3 + O(h4 ) .
2 6
hλ
Merk op dat |z1 (hλ)−e
h
| 5 2
≈ 12 h |λ|3 .
Dus z1 (hλ) is een goede benadering van ehλ en wordt daarom de ’principal root’ genoemd.
Daarentegen heet z2 (hλ) de ’spurious root’. Deze heeft niets met de differentiaalvergelijking
te maken, maar is een gevolg van de gekozen numerieke methode.
Wat betreft nauwkeurigheid kiezen we de stapgrootte zo dat de afbreekfout kleiner is dan eps.
108
Voor Adams-Bashforth geldt dan s
12eps
h=
5|λ|3
en voor Modified Euler s
6eps
h= .
|λ|3
We kunnen met dezelfde hoeveelheid werk 2 stappen Adams-Bashforth doen ten opzichte van
1 stap Modified Euler. Hiermee wordt het interval waarover we de oplossing benaderen bij
Adams-Bashforth s
96eps
,
10|λ|3
en bij Modified Euler s
60eps
,
10|λ|3
zodat Adams-Bashforth minder werk kost dan Modified 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:
- versterkingsfactor
- afbreekfout, consistentie
- stabiliteit, convergentie
- Runge-Kutta methoden
- meerstapsmethode (Adams-Bashforth)
109
6.14 Opgaven
1. Gebruik de Modified Euler methode om de oplossing te benaderen van het volgende
beginwaardeprobleem: y 0 = 1 + (t − y)2 , 2 ≤ t ≤ 3, y(2) = 1, met h = 0.5. De exacte
1
oplossing wordt gegeven door y(t) = t+ 1−t . 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:
h h
wi+1 = wi + hf (ti + , wi + f (ti , wi ))
2 2
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.
(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 differentiaalvergelijking: y 0 = 2y − 4y 2 . Bepaal de maxi-
male stapgrootte zodanig, dat de methode (met β = 21 ) stabiel is in de buurt van
y = 12 .
6. Voer een stap uit met de voorwaartse Euler methode met stapgrootte h = 0.1 voor het
stelsel:
u01 = −4u1 − 2u2 + et ,
u02 = 3u1 + u2 ,
met beginvoorwaarde u1 (0) = 0 en u2 (0) = −1.
7. Doe één stap met voorwaarts Euler voor de vergelijking y 00 − 2y 0 + y = tet − t met
y(0) = y 0 (0) = 0 met stapgrootte h = 0.1. Bepaal de fout met de echte oplossing:
y(t) = 61 t3 et − tet + 2et − t − 2.
9. Gegeven het stelsel y10 = 1195y1 − 1995y2 , y1 (0) = 2, y20 = 1197y1 − 1997y2 , y2 (0) =
−2. De exacte oplossing wordt gegeven door y 1 (t) = 10e−2t − 8e−800t , y2 (t) = 6e−2t −
8e−800t .
(a) Doe één 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 één stap met E.V. en E.A. met h = 0.0001 en vergelijk met het exacte ant-
woord. Conclusie?
110
10. Gegeven de differentiaalvergelijking y 0 = y − t2 + 1 en y(0) = 21 . 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
7.1 Inleiding
Bij het simuleren van praktische problemen wordt vaak gebruik gemaakt van randwaarde pro-
blemen. Een eendimensionaal randwaarde probleem is een differentiaalvergeleijking op een
begrensd gebied, waarbij de functie en/of zijn afgeleiden gegeven zijn in beide randpunten.
0 x x+∆ x L
van de staaf geven we aan met T (x) (◦ K). We nemen aan dat de temperatuur gegeven is in
beide uiteinden: T (0) = T0 en T (L) = TL . 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
geı̈nteresseerd in de temperatuur na lange tijd. Dit betekend dat de temperatuur stationair
geworden is en dus alleen een functie is van x. Voor het afleiden van de differentiaalvergelij-
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).
112
waarbij λ (J/msK) de warmtegeleidingscoëfficiënt genoemd wordt. De warmtebalans is nu:
dT dT
−λA (x) + λA (x + ∆x) + AQ(x)∆x = 0 .
dx dx
Delen door A∆x geeft
dT
(x + ∆x) − dT
dx (x)
−λ dx + Q(x) = 0 .
∆x
Na het nemen van de limiet ∆x → 0 krijgen we het volgende randwaarde probleem:
d2 T
−λ (x) = −Q(x) 0 < x < L ,
dx2
T (0) = T0 en T (L) = TL .
Dit voorbeeld zal vaak gebruikt worden ter illustratie van de eindige differentie methode.
In een aantal toepassingen is de warmtestroom aan één van de uiteinden gegeven in plaats
van de temperatuur. Voor x = L leidt dit via de wet van Fourier tot de randvoorwaarde
dT
λA (L) = AqL ,
dx
waarbij de warmtestroom qL (J/m2 s) gegeven is.
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 a0 = aL = 0. Voor de randvoorwaarden worden de volgende
aanduidingen gebruikt (we beperken ons tot x = 0):
De vergelijking
We beschrijven de eindige differentie methode voor het probleem:
00
−y + q(x)y = f (x) , 0<x<1,
y(0) = 0 en y(1) = 0 .
Discretisatie
1
We delen het interval [0, 1] op in n + 1 gelijke delen met lengte h = n+1 . De knooppunten zijn
113
xj = jh voor j = 0, ..., n + 1. de numerieke benadering van y j = y(xj ) geven we aan met wj .
Om de numerieke oplossing te bepalen wordt gebruik gemaakt van de differentiaalvergelijking
in het punt xj :
00
−yj + qj yj = fj 1 ≤ j ≤ n . (7.1)
De tweede afgeleide in (7.1) benaderen we met een centrale differentie zodat geldt:
wj−1 − 2wj + wj+1
− + q j wj = f j 1≤j≤n. (7.2)
h2
De waarde w0 en wn+1 in de randpunten volgen uit de randvoorwaarden
w0 = 0 en wn+1 = 0 . (7.3)
Aw = f , (7.4)
∅
∅ q1
2 −1
..
1 −1 2 −1
.
K= 2 en M = .
h −1 2 −1 ..
∅ .
.. .. ..
∅ . . . qn−1
w1 f1
De vektoren w en f zijn: w = ... en f = .. .
.
wn fn
Conditie
De geschaalde Euclidische norm van een vector is gedefinieerd als:
v
u n
u1 X
kxk = t x2i .
n
i=1
De natuurlijke, of afgeleide, matrix norm, die gerelateerd is aan de vectornorm k.k wordt
gedefineerd als:
kAk = max kAxk.
kxk=1
114
Stel dat we geı̈nteresserd 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 .
Bewijs
Stel Avk = λk vk . Laat nu vki de in de modulus grootste component zijn van v k . Dan geldt:
n
X
(aii − λk )vki = − aij vkj
j6=i
j=1
zodat
n n
X |vkj | X
|aii − λk | ≤ |aij | ≤ |aij |,
|vki |
j6=i j6=i
j=1 j=1
Afbreekfout
De afbreekfout ε van het schema Aw = f is gedefinieerd als
115
waarbij de componenten van y de exacte oplossing, gegeven worden door y j = y(xj ).
−y +2y −y
Voor het stelsel gegeven door (7.4) j−1 h2 j j+1 + qj yj = fj geldt met de foutschatting voor
de centrale differentie
00
εj = −yj + qj yj − fj + O(h2 ) .
Gecombineerd met (7.1) volgt dan:
εj = O(h2 ) . (7.5)
De orde van de afbreekfout is gelijk aan 2 voor dit schema.
Consistentie
Een eindige differentie schema heet consistent als
lim kεεk = 0 .
h→0
Uit (7.5) volgt kεεk = O(h2 ) zodat stelsel (7.4) consistent is.
Stabiliteit
Een eindige differentie schema heet stabiel, als er een constante M bestaat, die niet afhangt
van h, zodanig dat
kA−1 k ≤ 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 reëel zijn en
1
kA−1 k = .
λmin
Als 0 < qmin ≤ q(x) ≤ qmax dan volgt uit de stelling van Gershgorin
4
qmin ≤ λj ≤ qmax + voor j = 1, ..., n .
h2
1
Hieruit volgt kA−1 k ≤ qmin 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π)/h2 , j = 1, ..., n .
Dit geeft
hπ
λmin = (2 − 2 cos hπ)/h2 = (4 sin2 )/h2 ≈ π 2 .
2
4
Dus ook voor q ≡ 0 geldt dat het schema stabiel is. Het conditiegetal van A is (πh)2
.
Convergentie
Een schema heet convergent als voor de globale fout y − w geldt
lim ky − wk = 0 .
h→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:
ky − wk ≤ kA−1 k kεεk .
lim ky − wk = 0 .
h→0
Voorbeeld (convergentie)
Stel het warmtetransport in een staaf wordt beschreven door het randwaarde probleem:
00
−y = 25e5x , 0<x<1,
y(0) = y(1) = 0 .
Omdat er een warmtebron (25e5x ) is, verwachten we dat de temperatuur y positief is. In
Figuur 7.2 staat de grafiek van y en van de numerieke oplossingen bepaald met de stapgroot-
ten: h = 41 , 18 en 16
1
. Er is een snelle convergentie van de numerieke oplossing naar de exacte
1
oplossing. De behaalde nauwkeurigheid bij stapgrootte h = 16 is in een praktische situatie
waarschijnlijk voldoende.
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.
117
80
Exact
h=0.25
h=0.125
70 h=0.0625
60
50
40
y
30
20
10
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
Bij de afleiding 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 A∆w = ∆f. Hiermee leiden we af
1
k∆wk = kA−1 ∆fk ≤ k∆f k .
λmin
Voor de relatieve fout volgt dan
k∆wk 1 kf k k∆f k
≤ · .
kwk λmin kwk kf k
1 kf k
De rol van K(A) is hierbij overgenomen door het ”effectieve” conditiegetal λmin kw k . We
kf k
weten dat λmin ' π 2 en in veel toepassingen is kwk begrensd als h naar nul gaat, zodat het
”effectieve” conditiegetal wel begrensd is.
118
45
Exact
h=0.25
40 h=0.125
h=0.0625
35
30
25
y
20
15
10
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
Figuur 7.3: De exacte en numerieke oplossingen van het warmteprobleem met afkoeling
voor de voorwaarde
dy
(1) = 0 . (7.6)
dx
Discretisatie
We introduceren een virtueel punt x n+2 = (n + 2)h = 1 + h. Voor j = n + 1 geldt
−wn + 2wn+1 − wn+2
+ qn+1 wn+1 = fn+1 . (7.7)
h2
Discretisatie van (7.6) geeft
wn+2 − wn
=0.
2h
Hieruit volgt wn+2 = wn . Dit substitueren we in (7.7) en delen door 2:
−wn + wn+1 1 1
+ qn+1 wn+1 = fn+1 . (7.8)
h2 2 2
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
wn+2 = wn + O(h3 ) ,
zodat de afbreekfout in (7.8) gelijk is aan O(h) en bij alle andere vergelijkingen is een af-
breekfout O(h2 ). Bij Dirichlet randvoorwaarden is de lokale afbreekfout in elke vergelijking
O(h2 ). 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:
0
..
Ay = f + h2 u + hv , met v = . .
0
vn+1
Ae(1) = h2 u en Ae(2) = hv .
Omdat hi ≤ 1 volgt ke(2) k = O(h2 ). Dus voor de globale fout geldt kek = O(h 2 ).
met randvoorwaarden
0
y(0) = α en y (1) = β .
Discretisatie in het punt xj geeft:
120
7.8 Niet-lineaire randwaarde problemen
Een niet-lineair randwaarde probleem kunnen we schrijven als
0 0 0
−(py ) + g(y , y, x) = 0 , 0<x<1,
(7.10)
y(0) = 0 en y(1) = 0 .
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:
Newton-Raphson
Met behulp van Taylor ontwikkeling volgt:
0 0 0 0
g(y , y, x) ' g(y (n−1) , y (n−1) , x) + (y − y (n−1) )r + (y − y (n−1) )q
waarbij
∂g (n−1)0 (n−1)
r = (y ,y , x) en
∂y 0
∂g (n−1)0 (n−1)
q = (y ,y , x) .
∂y
De Newton-Raphson methode is nu:
121
7.9 De convectie-diffusie vergelijking
In de vorige paragraaf hebben we de discretisatie afgeleid voor het algemene randwaarde
probleem. We hebben hierbij centrale differenties toegepast. In toepassingen blijkt dit niet
altijd tot (physisch) acceptabele oplossingen te leiden. We illustreren dit aan de hand van
het randwaarde probleem:
00 0
−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
00 0
niet alleen transport door geleiding (diffusie) −y maar ook door stroming (convectie) vy .
Bovenstaande vergelijking staat bekend als de convectie-diffusie vergelijking.
Centrale differenties
Toepassen van centrale differenties geeft als stelsel
1 + vh
vh
w1 2
2 −1 + 2 .. 0
1 .. . 1
..
vh
∅
−1 −
2 2 .
..
=
. .
h2 .. .. ..
.
h2
∅ . . . 0
wn (1 − vh
2 )α
Als h zo gekozen wordt dat vh = 2 dan wordt de matrix een onderdriehoeksmatrix. De op-
lossing is dan ui = 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 differenties
Als de voorwaarde vh < 2 tot hele kleine stapgroottes leidt, is het beter om upwind discreti-
0
satie te gebruiken. Hierbij wordt vy j benaderd door
wj − wj−1
v als v≥0 en
h
wj+1 − wj
v als v<0.
h
Voorbeeld (convectie-diffusie)
Om het verschil van centrale en upwind discretisatie te zien, beschouwen we het randwaarde-
probleem
00 0
−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
differentie 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.07
Exact
Centraal
Upwind
0.06
0.05
Temperatuur
0.04
0.03
0.02
0.01
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
0.05
Exact
Centraal
Upwind
0.04
0.03
Temperatuur
0.02
0.01
−0.01
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
7.10 Samenvatting
In dit hoofdstuk zijn de volgende begrippen behandeld:
123
0.016
Exact
Centraal
Upwind
0.014
0.012
0.01
Temperatuur
0.008
0.006
0.004
0.002
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x
- model warmtetransport
- randwaarde probleem
- eindige differentie
- conditiegetal
- consistentie, afbreekfout
- stabiliteit
- convectie-diffusie probleem
- upwind discretisatie
124
7.11 Opgaven
1. Gegeven de matrices A1 en A2 :
2 1 100 99
A1 = en A2 =
1 2 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 k∆xk met behulp van het conditiegetal.
Bepaal ∆x en vergelijk k∆xk met de schatting.
y(0) = 0, y(π) = 0.
Geef de exacte oplossing. Neem N = 2 en bepaal de numerieke oplossing w j . Bereken
yj − wj , j = 1, 2.
y(0) = 1, y 0 (1) = 0.
Discretizeer dit randwaarde probleem met de roosterpunten: x 0 = 0, x1 = 72 , x2 =
4 6 8
7 , x3 = 7 en x4 = 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 partiële differentiaalvergelijking. Om zo’n 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.
0 x x+∆ x L
De energie balans is nu
126
waarbij geldt: ρ(kg/m3 ) is de soortelijke massa, c(J/kgK) is de soortelijke warmte en λ(J/msK)
is de warmtegeleidingscoëfficiënt. Delen door A∆x∆t en herschikken van de termen geeft
∂T ∂T
T (x, t + ∆t) − T (x, t) (x + ∆x, t) − ∂x (x, t)
ρc = λ ∂x +Q.
∆t ∆x
Na het nemen van de limieten ∆x → 0 en ∆t → 0 krijgen we het volgende begin-, randwaarde
probleem:
∂T ∂2T
ρc = λ 2 +Q, 0<x<L, 0<t,
∂t ∂x
T (0, t) = Tl (t) en T (L, t) = Tr (t) , 0 ≤ t ,
T (x, 0) = T0 (x) , 0≤x≤L.
De vergelijking
Als warmteprobleem nemen we
∂y ∂2y
= , 0<x<1, 0<t≤T
∂t ∂x2
(8.1)
y(0, t) = yl (t) en y(1, t) = yr (t) , 0 ≤ t ≤ T
y(x, 0) = y0 (x) , 0≤x≤1.
Semi-discretisatie
We discretiseren (8.1) in de x-richting met behulp van de eindige differentie 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(xi , t) geven we aan met ui (t). De vector u(t) wordt gegeven
door u(t) = (u1 (t), ..., un−1 (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 differentiaalvergelijkingen
du
= Ku + r , 0<t≤T .
dt (8.2)
u(0) = y 0 .
De matrix K en vector r worden gegeven door
−2 1 yl (t)
1 −2 1 ∅ 0
1 . . .
1
..
K= 2
.. .. ..
en r = 2
. .
h h
∅
1 −2 1 0
1 −2 yr (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 geı̈ntegreerd worden met één 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 = m T
en tj = jk. De numerieke oplossing geven we aan met w ij , hetwelk
een benadering is van ui (tj ) en dus van y(xi , tj ). In inwendige roosterpunten geldt dan de
volgende vergelijking
ωij+1 − ωij ω j − 2ωij + ωi+1
j
= i−1 . (8.3)
k h2
De afbreekfout van deze differentievergelijking is
k ∂2u h2 ∂ 4 u
τi,j = (x i , µ j ) − (ξi , tj ) , (8.4)
2 ∂t2 12 ∂x4
waarbij µj ∈ (tj , tj+1 ) en ξi ∈ (xi−1 , xi+1 ). De methode is dus O(k + h2 ). 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.
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 reëel. Toepassing van de stelling van Gershgorin
geeft
4
− 2 ≤ λi ≤ 0 , voor 1 ≤ i ≤ n − 1 .
h
De matrix heeft geen positieve eigenwaarden zodat het stelsel differentiaalvergelijkingen (8.2)
stabiel is. In paragraaf 7.5 hebben we een expliciete uitdrukking voor de eigenwaarden van
K gegeven. Hieruit blijkt
max |λi | 4
≈ 2 2 .
min |λi | π h
Voor kleine waarden van h is (8.2) een stijf stelsel.
128
t
j+1
t
j
xi−1 xi xi+1
om over te stappen op de achterwaartse methode van Euler, die onvoorwaardelijk stabiel is.
Ax = b , (8.6)
yl (tj )
uj+1 uj1
1
0
met A = (I − kK), x = ... en b = ... + ..
k
.
h2 .
uj+1 ujn−1
n−1
0
yr (tj )
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).
129
t
j+1
t
j
xi−1 xi xi+1
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 figure, such as cost or efficiency. Among all possible designs (i.e. configurations), one
usually aims at the configuration 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, find the resistence which suits the measurements best.
• Given a ’cloud’ of data-points, which third order polynomial fits best to these data-
points?
• Find the thermodynamic setting of a system such that the potential energy of this
system is minimal.
• Find the configuration 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.
131
A typical example is the following
Find x ∈ R such that f (x) = x2 ≤ 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 fitting 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).
132
the quantities r1 , . . . , r5 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
5
X
Let ψ(R) := ri2 , find R such that ψ(R) is minimized. (9.5)
i=1
dr1 dr2
In our application we have dR = 1.10, dR = 2.15, etc. Substitution into equation (9.7) and
division by 2 gives
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.
2
d ψ
Exercise 1 Show that dR 2 > 0. This implies that indeed the minimum of the sum of the
squares of the residuals is found.
M(kg) V(m3 )
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.
A compact notation, where A is the matrix with the coefficients and x ∈ R n the solution
vector and b ∈ Rm 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 define the inner product of two vectors in R n by
n
X
(v, w) := v T w = vi wi ⇒ (v, w) = (w, v). (9.11)
i=1
In the above equation we used (AB)T = B T AT for two matrices A and B. Further, we define
the norm of the real-valued vector x ∈ R n by
p
||x|| = (x, x). (9.13)
We turn back to the least squares solution of problem (9.9) and rewrite the problem as
Find x ∈ Rn such that ||Ax − b|| ≤ ||Ay − b|| for all y ∈ R n . (9.14)
Hence
t2 (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
This implies that the vector AT (Ax − b) is orthogonal to all vectors in R n . This implies that
AT (Ax − b) = AT Ax − AT b = 0. By this we proved:
The system AT Ax = AT b is commonly referred to as the normal equations of the least squares
problem.
134
9.1.2 Application to fitting data on polynomials
An important application is fitting 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
coefficients 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) = p0 + p1 t + p2 t2 + . . . + pm tm , (9.19)
approximates as well as possible the measurements hypothetically given by Table 3.
y0 y1 ... yn
t0 t1 ... tn
This amounts to finding p0 , . . . , pm 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
y0 = p 0 + p 1 t0 + . . . + p m tm
0
y1 = p 0 + p 1 t1 + . . . + p m tm
1 (9.20)
...
yn = p 0 + p 1 tn + . . . + p m tm
n.
m + 1 unknownsp = [p 0 . . . pm ]T . In vector-
This represents a system of n equations with
1 t0 . . . t m
0
notation this reads as Qp = y, where Q = 1 t1 . . . tm 1
, n > m, where p is to be
m
1 tn . . . t n
determined. According to the previous section (Theorem 9.1.1) the least squares solution is
given by the solution of
QT Qp = QT y. (9.21)
Find x̂1 , . . . , x̂n ∈ R such that f (x̂1 , . . . , x̂n ) ≤ f (x1 , . . . , xn ) for all x1 , . . . , xn ∈ R. (9.22)
Here f (x1 , . . . , xn ) is sometimes referred to as the object function. For ease of notation a
vector notation is used, where
x = [x1 . . . xn ]T . (9.23)
135
From calculus it is known that the gradient of f (∇f ) gives the direction of the maximum
increase of f (x1 , . . . , xn ) 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:
1 2
f (x) ≈ f (x̂) + (x − x̂)T ∇f (x̂) + (x − x̂)T ∇ f (x̂) =
2
1 ∂2f ∂2f
= f (x̂) + (x − x̂)T ∇f (x̂) + {(x1 − x̂1 )2 2 (x̂) + . . . + (xn − x̂n )2 2 (x̂)+ (9.25)
2 ∂x1 ∂xn
∂2f ∂2f
+2(x1 − x̂1 )(x2 − x̂2 ) (x̂) + . . . + 2(xn−1 − x̂n−1 )(xn − x̂n ) (x̂)}.
∂x1 ∂x2 ∂xn−1 ∂xn
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 briefly 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.
∂2f 2f
. . . ∂x∂1 ∂x
∂x21
(x̂) n
(x̂)
H(x̂) = ... ... ... . (9.26)
∂2f ∂2f
∂xn ∂x1 (x̂) . . . ∂x2
(x̂)
n
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 definite
if and only if xT Ax > 0 for all x 6= 0. A symmetric matrix is always diagonalizable, i.e. one
can write A = P DP 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:
where y := P T x. It can be seen easily that if λi > 0 for all i ∈ {1, . . . , n} then xT Ax > 0
for all x 6= 0. It can be shown by a similar argument that a negative definite matrix, i.e.
136
xT Ax < 0 for all x 6= 0, has negative eigenvalues only. Further, if the eigenvalues of A differ
in sign, the matrix is called indefinite: the expression x T Ax can either be positive, negative
or zero for x 6= 0. Later these properties of symmetric matrices will be used for the Hessian
H.
Further, since ∇f (x̂) = 0, equation (9.25) turns into
1
f (x) = f (x̂) + (x − x̂)T H(x̂)(x − x̂). (9.29)
2
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 6= x̂ (i.e. H(x̂) is positive definite) then
f (x̂) is a local minimum;
2. If (x − x̂)T H(x̂)(x − x̂) < 0 for all x such that x 6= x̂ (i.e. H(x̂) is negative definite)
then f (x̂) is a local maximum;
This gives us the following important conclusion for critical points of smooth functions:
4. singular (at least one eigenvalue zero), then the test is inconclusive.
Voorbeeld 9.2.1 Let f (x1 , x2 ) = x21 + x22 then it is immediately clear that (x 1 , x2 ) = (0, 0)
gives a minimum. Now we T
use the test: ∇f = [2x 1 , 2x2 ] = 0 ⇔ x1 = 0 and x2 = 0. The
2 0
Hessian is given by H = . The eigenvalues of H are both equal to 2, hence positive.
0 2
According to the above test it is concluded that x 1 = 0 and x2 = 0 gives a minimum.
In the coming sections two classical numerical methods are presented and discussed for finding
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 xk . 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 (α̂) = 0. The maximum benefit
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:
x0 = initial guess.
for k = 1, 2, . . .
sk = −∇f (xk−1) (compute direction of steepest descent)
(9.31)
Choose αk to minimize f (xk−1 + αk sk ) (do line search)
xk = xk−1 + αk sk
end
The steepest descent method is very reliable provided the gradient ∇f is nonzero. However,
the method only has a first order convergence, so that
||xk − x̂|| ≤ C||xk−1 − 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 (x1 , x2 ) = 0.5x21 + 2.5x22 , then at first glance (x1 , x2 ) = (0, 0)
is the global minimum. Let x0 = [5 1]T and sk = −∇f = [−x1 − 5x2 ]T , then xk =
xk−1 − [x1 5x2 ]T αk . This implies that x1 = [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 φ0 (α) = (−5)(5 − 5α) +
5(1 − 5α)(−5) = 150α − 50 = 0. This means that α = 31 and herewith
1 10 2
x1 = [5 1]T − [5 5]T = [ − ]T .
3 3 3
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 sufficiently 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.
This is a determination of a zero of a set of (nonlinear) functions, let F (x) = ∇f (x), then
Here we determine x̂ by the use of Newton’s method. Let x k be the iterates generated by
Newton’s method for which limk→∞ ||xk − x̂|| = 0, then
for a suitable start-vector x0 . Here J(xk−1 ) denotes the Jacobian of F evaluated at x k−1 , i.e.
∂F1 ∂F1
∂x1 (xk−1 )
... ∂xn (xk−1 )
J(xk−1 ) = ... ... ... . (9.36)
∂Fn ∂Fn
∂x1 (x k−1 ) ... ∂xn (xk−1 )
∂f
Since Fi (xk−1 ) = ∂xi (xk−1 ), equation (9.35) is rewritten using equation (9.36) to yield
where H(xk−1 ) is the Hessian of f containing the second derivatives evaluated at x k−1 . 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 define s = x k − xk−1 ):
x0 = initial guess
for k = 1, 2, . . .
Solve H(xk−1 )sk = −∇f (xk−1 ) for sk (9.38)
xk = xk−1 + sk (update solution)
end
139
Newton’s method is known to have a quadratic convergence, i.e.
for a positive constant C. Since the convergence of the steepest descent method is known to
be linear (see preceeding section), Newton’s method is faster. A disadvantage of Newton’s
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 Newton’s 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 find a more comprehensive view over (deterministic) optimization strategies.
Exercise 3 Given f (x1 , x2 ) = 0.5x21 + 2.5x22 . Perform one step of the Newton iteration for
finding the mimimum of f . Take x0 = [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
141
Robbins, 113
Rolle, 8
Secant, 45
semi-discretisatie, 127
splines, 20
spurious root, 108
stabiliteit, 116
stable, 76
stelsels differentiaalvergelijkingen, 91
stopcriterium, 39
superstabiel, 106
Taylorpolynoom, 8, 16
test equation, 76
Trapeziumregel, 69
truncation error, 82
Tussenwaardestelling, 8
warmtevergelijking, 126
142