Numerieke Methoden voor Differentiaalvergelijkingen

148
Numerieke Methoden voor Differentiaalvergelijkingen C. Vuik, P. van Beek, F. Vermolen, J. van Kan 2004 Technische Universiteit Delft Faculteit Elektrotechniek, Wiskunde en Informatica Delft Institute of Applied Mathematics

Transcript of Numerieke Methoden voor Differentiaalvergelijkingen

Page 1: Numerieke Methoden voor Differentiaalvergelijkingen

Numerieke Methoden voor

Differentiaalvergelijkingen

C. Vuik, P. van Beek, F. Vermolen, J. van Kan

2004

Technische Universiteit DelftFaculteit Elektrotechniek, Wiskunde en InformaticaDelft Institute of Applied Mathematics

Page 2: Numerieke Methoden voor Differentiaalvergelijkingen

Copyright 2004 by Delft Institute of Applied Mathematics, Delft, The Netherlands.

No part of this work may be reproduced, stored in a retrieval system, or transmitted, in anyform or by any means, electronic, mechanical, photocopying, recording, or otherwise, withoutthe prior written permission from Delft Institute of Applied Mathematics, Delft Universityof Technology, The Netherlands.

Page 3: Numerieke Methoden voor Differentiaalvergelijkingen

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. Indit college beperken we ons tot gewone differentiaalvergelijkingen, uitgezonderd het hoofdstukover de warmtevergelijking waarin een partiele differentiaalvergelijking behandeld wordt. Eenaantal technieken zoals: interpolatie, numerieke integratie en het oplossen van niet-lineairevergelijkingen, kunnen ook buiten de context van differentiaalvergelijkingen gebruikt worden.

Hoofdstukken, paragraven of opgaven met een ∗, vallen buiten het Delft Instellings Pakket.

Achtergrondinformatie is te vinden in:

Numerical Analysis (7e editie)R.L. Burden, J.D. FairesBrodes/Cole publishing company, Pacific Grove, 2001

Applied Numerical Analysis (6e editie)C.F. Gerald, P.O. WheatlyAddison Wesley, Reading, 1999

Afternotes on Numerical AnalysisG.W. StewartSIAM, Philadelphia, 1996

Page 4: Numerieke Methoden voor Differentiaalvergelijkingen

Inhoudsopgave

1 Inleiding 11.1 Enkele historische opmerkingen . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Wat is numerieke wiskunde? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Waarom numerieke wiskunde? . . . . . . . . . . . . . . . . . . . . . . . . . . . 21.4 Afrondfouten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.5 Het O-symbool van Landau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.6 Herhaling begrippen uit de analyse . . . . . . . . . . . . . . . . . . . . . . . . 81.7 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.8 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2 Interpolatie 112.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.2 Lineaire interpolatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.3 Lagrange interpolatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.4 Interpolatie met functiewaarden en afgeleiden ∗ . . . . . . . . . . . . . . . . . 16

2.4.1 Taylorpolynoom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.4.2 Interpolatie in het algemeen . . . . . . . . . . . . . . . . . . . . . . . . 172.4.3 Hermite interpolatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

2.5 Interpolatie met splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.6 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.7 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

3 Numeriek differentieren 253.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.2 Eenvoudige differentieformules voor de eerste afgeleide . . . . . . . . . . . . . 263.3 Algemene formules voor de eerste afgeleide . . . . . . . . . . . . . . . . . . . 303.4 Relatie tussen differentieformules en interpolatie . . . . . . . . . . . . . . . . 313.5 Differentieformules voor hogere afgeleiden . . . . . . . . . . . . . . . . . . . . 323.6 Richardson’s extrapolatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

3.6.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333.6.2 Schatting van de fout in de praktijk . . . . . . . . . . . . . . . . . . . 333.6.3 Nauwkeuriger formules via Richardson’s extrapolatie ∗ . . . . . . . . . 35

3.7 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363.8 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

i

Page 5: Numerieke Methoden voor Differentiaalvergelijkingen

4 Niet-lineaire vergelijkingen 384.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.2 Een eenvoudige nulpuntsmethode . . . . . . . . . . . . . . . . . . . . . . . . . 384.3 Vaste punt iteratie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404.4 De Newton-Raphson methode . . . . . . . . . . . . . . . . . . . . . . . . . . . 424.5 Stelsels niet-lineaire vergelijkingen . . . . . . . . . . . . . . . . . . . . . . . . 454.6 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.7 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5 Numerieke integratie 485.1 Introduktie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 485.2 Eenvoudige numerieke integratieformules . . . . . . . . . . . . . . . . . . . . . 485.3 Newton Cotes formules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.4 Gauss formules∗ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 585.5 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.6 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

6 Numerieke tijdsintegratie voor beginwaarde problemen 626.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626.2 Theorie van beginwaarde problemen . . . . . . . . . . . . . . . . . . . . . . . 626.3 Eenstaps methoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646.4 Foutvoortplanting bij de methode Euler Voorwaarts . . . . . . . . . . . . . . 726.5 Stability of initial-value problems . . . . . . . . . . . . . . . . . . . . . . . . . 766.6 Afbreekfout en consistentie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 796.7 Convergentie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826.8 Globale afbreekfout en foutschattingen . . . . . . . . . . . . . . . . . . . . . . 866.9 Numerieke methoden voor stelsels differentiaalvergelijkingen . . . . . . . . . . 916.10 Stabiliteit van numerieke methoden voor teststelsels . . . . . . . . . . . . . . 946.11 Stijve differentiaalvergelijkingen . . . . . . . . . . . . . . . . . . . . . . . . . . 1016.12 Meerstaps methoden ∗ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1066.13 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1096.14 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

7 De eindige differentie methode voor randwaarde problemen 1127.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1127.2 De eindige differentie methode . . . . . . . . . . . . . . . . . . . . . . . . . . 1137.3 Herhaling van enkele lineaire algebra begrippen . . . . . . . . . . . . . . . . . 1147.4 Consistentie, stabiliteit en convergentie . . . . . . . . . . . . . . . . . . . . . . 1157.5 De conditie van de discretisatie matrix . . . . . . . . . . . . . . . . . . . . . . 1177.6 Neumann randvoorwaarde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1187.7 Het algemene probleem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1207.8 Niet-lineaire randwaarde problemen . . . . . . . . . . . . . . . . . . . . . . . 1217.9 De convectie-diffusie vergelijking . . . . . . . . . . . . . . . . . . . . . . . . . 1227.10 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1237.11 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

ii

Page 6: Numerieke Methoden voor Differentiaalvergelijkingen

8 De instationaire warmtevergelijking∗ 1268.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1268.2 Afleiding van de instationaire warmtevergelijking . . . . . . . . . . . . . . . . 1268.3 De gediscretiseerde vergelijking . . . . . . . . . . . . . . . . . . . . . . . . . . 1278.4 Samenvatting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

9 Optimization problems ∗ 1319.1 Least squares for linear problems . . . . . . . . . . . . . . . . . . . . . . . . . 132

9.1.1 n linear equations with m unknowns (n > m) . . . . . . . . . . . . . . 1339.1.2 Application to fitting data on polynomials . . . . . . . . . . . . . . . . 135

9.2 Optimization of non linear problems . . . . . . . . . . . . . . . . . . . . . . . 1359.2.1 Critical points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1359.2.2 The method of steepest descent . . . . . . . . . . . . . . . . . . . . . . 1389.2.3 Newton’s method for optimization . . . . . . . . . . . . . . . . . . . . 139

iii

Page 7: Numerieke Methoden voor Differentiaalvergelijkingen

Hoofdstuk 1

Inleiding

1.1 Enkele historische opmerkingen 1

De moderne toegepaste wiskunde begint in de 17e en 18e eeuw met mensen als Stevin, Des-cartes, Newton en Euler. Numerieke aspecten maakten op natuurlijke wijze deel uit vande analyse; de term numerieke wiskunde was onbekend. Numerieke methoden bedacht doorNewton, 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 eenvoudigogende wiskundige vergelijkingen. Deze bleken echter, tot veler teleurstelling, alleen in heelspeciale gevallen analytisch te kunnen worden opgelost. De opkomende techniek ontwikkeltzich 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 realistischewiskundige 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. Steekproevenwijzen 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 wordenuitgevoerd, wat de resultaten minder betrouwbaar maakt.

1.2 Wat is numerieke wiskunde?

Numerieke wiskunde is de leer der methoden voor het getalmatig benaderen van oplossingenvan 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

1voor meer informatie zie http://ta.twi.tudelft.nl/nw/users/vuik/wi211/wi211.html

1

Page 8: Numerieke Methoden voor Differentiaalvergelijkingen

berekenbaarheid. Berekenbaarheid houdt in dat het resultaat verkregen kan worden met eeneindig aantal operaties (zodat de rekentijd eindig is) op een eindige deelverzameling van derationele getallen (omdat het geheugen van de computer eindig is). In het algemeen zal hetresultaat 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 getallenbevatten.

Omdat in het algemeen slechts benaderingen van oplossingen verkregen kunnen worden, kun-nen in de numerieke wiskunde slechts die problemen zinvol behandeld worden, die bestandzijn 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 studievan stabiliteit is de functionaalanalyse. Deze discipline speelt ook een belangrijke rol bij destudie 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 polynomenvan voldoend hoge graad. Zodoende kan men niet zonder meer vertrouwen op methoden diegebaseerd zijn op de hoofdstelling van de algebra (namelijk, dat een ne graads polynoom pre-cies n nulpunten heeft). De fouten die het gevolg zijn van het werken met een eindig aantalcijfers heten afrondfouten. Aan afrondfouten zal in het vervolg van dit hoofdstuk nog enigeaandacht geschonken worden.

Een belangrijk aspect van de numerieke wiskunde is de nadruk op efficiency. Een vergrotingvan efficiency, dat wil zeggen vermindering van het aantal benodigde operaties en/of het be-nodigde geheugen, wordt elders in de wiskunde niet als een essentiele vooruitgang gezien, inde numerieke wiskunde echter wel. Deze vooruitgang is van groot praktisch belang. Het eindehiervan is nog lang niet in zicht. Hier liggen nog vele mogelijkheden voor creatieve geesten.Verder zal nog veel overhoop gehaald worden door veranderingen in computerarchitectuur.

1.3 Waarom numerieke wiskunde?

Een groot voordeel van numerieke wiskunde is dat een numeriek antwoord verkregen kanworden voor problemen, die geen ”analytische” oplossing hebben. Neem bijvoorbeeld deintegraal

π∫

0

1 + cos2(x)dx ,

die de lengte geeft van een boog van de kromme gegeven door y = sinx. Er bestaat voor dezeintegraal geen oplossing in gesloten vorm. Echter met een numerieke methode kan de integraaleenvoudig bepaald worden. Een bijkomend voordeel is dat een numerieke methode alleengebruik maakt van functie-evaluaties en de operaties: optellen, aftrekken, vermenigvuldigenen 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

Page 9: Numerieke Methoden voor Differentiaalvergelijkingen

wiskundige functies. Hieruit kan men inzicht verkrijgen in het gedrag en de eigenschappenvan de oplossing. Bij een numerieke oplossing is dit niet het geval. Aan de andere kant, erwordt vaak gebruik gemaakt van een visualizatie om inzicht in het gedrag van de oplossing teverkrijgen. Het maken van een grafiek met een numerieke methode is meestal efficienter danhet evalueren van de analytische oplossing in een groot aantal punten.

1.4 Afrondfouten

Een computer werkt niet met oneindige precisie. Reele getallen worden in computers opge-slagen als

±0.d1d2...dn · βe

waarbij d1 > 0 en 0 ≤ di < β. We noemen dit een floating point getal waarbij: de mantisseis 0.d1d2...dn, de basis is β en e (geheel getal) is de exponent. Vaak is β = 2, n = 24 (enkeleprecisie), zoals voor vele PC’s. In dubbele precisie geldt n = 56. We zeggen dan dat demachine rekent met n cijfers.

Laat voor x ∈ R gelden

0.d1...dn · βe ≤ x < 0.d1d2...(dn + 1) · βe

waarbij we x gemakshalve positief veronderstellen. Afronding houdt in dat x vervangenwordt door het dichtstbijzijnde floating point getal, dat we fl(x) zullen noemen. De hierdoorveroorzaakte fout wordt afrondfout genoemd. Laten we schrijven

fl(x) = x(1 + ε). (1.1)

We noemen |fl(x) − x| = |εx| de absolute fout en |fl(x)−x||x| = |ε| de relatieve fout. Het

verschil tussen de floating point getallen waar x tussen ligt is β e−n. Door afronden geldt|fl(x) − x| ≤ 1

2βe−n, zodat voor de absolute fout geldt:

|εx| ≤ 1

2βe−n.

Aangezien |x| ≥ βe−1 (omdat d1 > 0) geldt voor de relatieve fout:

|ε| ≤ eps (1.2)

met de relatieve precisie van de computer eps gedefinieerd door

eps =1

2β1−n . (1.3)

Met β = 2 en n = 24 geldt dus eps ∼= 6 · 10−8: er wordt met ongeveer 7 decimale cijfersgerekend.

Figuur 1.1 toont de ligging van de floating point getallen 0.1d2d3 · βe ; e = −1, 0, 1, 2 in hetbinaire stelsel (β = 2). Deze floating point getallen liggen ongelijk verdeeld en er is een gat

3

Page 10: Numerieke Methoden voor Differentiaalvergelijkingen

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 absolutewaarde van een rekenresultaat te groot is, is er sprake van overflow. De machine waarschuwten stopt.

Hoe voeren computers rekenkundige operaties uit met floating point getallen? Rekenproces-

1 2 3 4−1−2−3−4 0

Figuur 1.1: De ligging van ±0.1d2d3 · βe, β = 2, e = −1, 0, 1, 2.

soren zijn ingewikkeld. Meestal wordt het volgende model gebruikt ter benadering van dewerkelijkheid. Laat een rekenkundige operatie zijn (+,−,× of /), en laten x en y tweefloating point getallen zijn. Dan is de machine-uitkomst van de operatie:

z = fl(x y) (1.4)

met x y de exacte uitkomst. Deze is in het algemeen geen floating point getal, zodat er eenfout gemaakt wordt. Volgens (1.1) geldt

z = x y(1 + ε). (1.5)

voor een of andere ε die aan (1.2) voldoet.

Stel dat x en y geen floating point getallen zijn, maar benaderd worden met fl(x) en fl(y)dus fl(x) = x(1 + ε1), f l(y) = y(1 + ε2), dan geldt voor de absolute fout van het berekendeantwoord:

|x y − fl(fl(x) fl(y))| ≤ |x y − fl(x) fl(y)| + |fl(x) fl(y) − fl(fl(x) fl(y))|. (1.6)

We zien dat de fout de som is van de doorwerking van de afrondfouten (storingen) in de dataen de floating point fout die het verschil tussen een exacte bewerking en een floating pointbewerking uitmaakt.

We zullen eerst een aantal voorbeelden geven om te laten zien, hoe afrondfouten doorwerken.Daarna zullen we de algemene rekenregels geven. In deze voorbeelden gebruiken we afkappen,dat wil zeggen dat fl(x) alleen de significante cijfers meegenomen worden.

Voorbeeld 1.4.1

We nemen x = 57 en y = 1

3 en gebruiken een denkbeeldige machine waarin gerekend wordt metβ = 10, 5 cijfers en afkappen. In Tabel 1.1 staan de resultaten van verschillende berekeningentoegepast op fl(x) = 0.71428 × 100 en fl(y) = 0.33333 × 100. We zullen laten zien hoe detabel tot stand gekomen is. Na normalisatie vinden we voor de optelling:

fl(x) + fl(y) = (.71428 + .33333) × 100 = 0.1047610000... × 101

4

Page 11: Numerieke Methoden voor Differentiaalvergelijkingen

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

Tabel 1.1: De absolute en relatieve fout voor verschillende berekeningen

Dit resultaat moet naar 5 cijfers worden afgekapt:

fl(fl(x) + fl(y)) = 0.10476 × 101.

Exact hebben we x + y = 2221 = 1.0476190518... De absolute fout is dus 1.0476190518... −

0.10476 × 101 ≈ 0.190 × 10−4 en de relatieve fout is 0.190×10−4

22/21 ≈ 0.182 × 10−4.

De analyse van de fout bij de andere drie bewerkingen verloopt op nagenoeg dezelfde wijze.

Voorbeeld 1.4.2

In dit voorbeeld gebruiken we dezelfde getallen en dezelfde denkbeeldige machine als in hetvoorgaande voorbeeld. Verder gebruiken we u = 0.714251, v = 98765.9 en w = 0.111111 ×10−4, zodat fl(u) = 0.71425, fl(v) = 0.98765 × 105 en w = 0.11111 × 10−4. Deze getallenzijn zo gekozen om te laten zien welke problemen er op kunnen treden bij afrondfouten. InTabel 1.2 x− y heeft x− u een kleine absolute fout maar een grote relatieve fout. Als we ditgetal delen door een klein getal w of vermenigvuldigen met een groot getal v dan wordt deabsolute fout groter, terwijl de relatieve fout hetzelfde blijft. Het optellen van een groot getalu en een klein getal v geeft een grote absolute fout, maar een kleine relatieve fout.

bewerking resultaat exacte waarde absolute fout relatieve fout

x− u 0.30000 × 10−4 0.34714 × 10−4 0.471 × 10−5 0.136(x− u)/w 0.29629 × 101 0.34285 × 101 0.465 0.136(x− u) × v 0.29629 × 101 0.34285 × 101 0.465 0.136x+ y 0.98765 × 105 0.98766 × 105 0.161 × 101 0.163 × 10−4

Tabel 1.2: De absolute en relatieve fout voor verschillende berekeningen

We laten nu zien, hoe de eerste rij tot stand gekomen is. Het exacte antwoord is u =0.714251 en x− u = 5

7 − .714251 = 0.3471428571.... × 10−4, terwijl fl(u) = 0.71425 × 100 enfl(x)−fl(u) = 0.71428−0.71425 = 0.0000300000×100 . Normaliseren geeft fl(fl(x)−fl(u)) =0.30000×10−4 . Hieruit volgt de absolute fout: (x−u)−fl(fl(x)−fl(u)) = (.3471428571...−.30000) × 10−4 ≈ 0.471 × 10−5. en de relatieve fout: 0.471...×10−5

0.3471428...×10−4 ≈ 0.136.

Interessant om op te merken is dat de grote relatieve fout die hier ontstaat niets met de beper-kingen van het floating point systeem te maken heeft (de aftrekking van fl(x) en fl(u) wordtin dit geval namelijk foutloos uitgevoerd) maar uitsluitend een gevolg is van de onzekerheid inde 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 fl(fl(x)−fl(u)) = 0.30000overblijven hebben dientengevolge geen enkele betekenis: het cijfer 3 is het enige significante;

5

Page 12: Numerieke Methoden voor Differentiaalvergelijkingen

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 getaldan ontstaat naast een grote relatieve meteen een grote absolute fout. Als voorbeeld kijkenwe naar de derde rij in de tabel. Het exacte antwoord is (x − u) × v = 3.4285594526000....Bepalen van fl(fl(x) − fl(u)) × fl(v) geeft:

fl(fl(x) − fl(u)) × fl(v) = 0.3 × 10−4 × 0.98766 × 105 = 0.2962980000 × 101.

Na afkappen geldt: fl(fl(fl(x) − fl(u)) × fl(v)) = 0.29630 × 101. Hieruit volgt de absolutefout: 3.4285594526000......−0.29630×101 ≈ 0.465. en de relatieve fout: 0.465..

3.4285.... ≈ 0.136. Steldat we nu bij (x− u) × v iets optellen, bv. y2 = 1

9 (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 aldushet numerieke proces zouden wijzigen. Er is niet veel fantasie voor nodig om te concluderendat hier iets grondig mis is.

Vrijwel alle numerieke processen vertonen het verschijnsel van cijferverlies voor bepaaldeinvoerdata; zulke data kun je slecht geconditioneerd noemen. Er bestaan ook numerieke pro-cessen die dit soort verschijnselen voor alle mogelijke invoerdata vertonen; zulke processenworden instabiel genoemd. Een van de doelstellingen van de numerieke analyse is zulke pro-cessen te identificeren als onbruikbaar, of ze zodanig te verbeteren dat ze stabiel worden.

Rekenregels voor de doorwerking van fouten in een numeriek proces

Bij de analyse van een volledig numeriek proces moet bij elke volgende stap de in de voorgaan-de stappen geaccumuleerde fout als storing op de oorspronkelijke data worden opgevat en zal,naast de floating point bewerkingsfout, de doorwerking van deze storingen in het resultaat vandeze stap in beschouwing moeten worden genomen. Na een flink aantal stappen zal deze bronvan fouten meestal belangrijker worden dan de floating point fout (in voorgaand voorbeeldvan (x − u) × v zelfs al na 2 stappen!). In dat stadium zal de fout in een numeriek procesvoor een groot deel door pure ’voortplanting’ van geaccumuleerde fouten worden bepaald. Deregels voor de voortplanting van storingen zijn dezelfde als die voor meetfouten bij fysischeexperimenten. Er zijn twee regels, een voor optellen en aftrekken en een voor vermenigvuldi-gen en delen. De benaderingen van x en y worden x en y genoemd en de (absolute storingen)δx = x− x, analoog δy = y − y

a) Optellen en aftrekken.(x + y) − (x+ y) = (x− x) + (y − y) = δx + δy, met andere woorden de absolute foutin de som van twee gestoorde data is gelijk aan de som van de absolute storingen. Eenzelfde regel geldt voor verschillen: (x− y) − (x− y) = δx− δy. Vaak wordt de regel inde vorm van een afschatting gepresenteerd: |(x± y) − (x± y)| ≤ |δx| + |δy|.

b) Voor vermenigvuldigen en delen geldt deze regel niet (probeer hem maar af te leiden, datleidt tot niets). Wel is een overeenkomstige regel voor de relatieve fouten af te leiden,

6

Page 13: Numerieke Methoden voor Differentiaalvergelijkingen

als volgt. De relatieve storingen εx en εy zijn gedefinieerd door x = x(1 − εx), idem

voor y. Voor de relatieve fout in een product xy geldt nu: xy−xyxy =

xy−x(1−εx)y(1−εy)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 alsde som van de twee afzonderlijke relatieve storingen. Voor deling is een zelfde uitspraakte bewijzen. Als afschatting geformuleerd: | xy−xyxy | ≤ |εx| + |εy|.

Als we x met fl(x) identificeren en y met fl(y) dan kun je met deze twee simpele regelsallerlei verschijnselen bij floating point berekeningen bij benadering prima verklaren. Bij deberekening van x−u in Tabel 1.2 bijvoorbeeld wordt helemaal geen afrondfout gemaakt en isde eerste regel dus exact van toepassing: de totale (absolute) fout is precies gelijk aan de somvan de (absolute) afrondfouten (resp. 0.571 × 10−5 en 0.100 × 19−5) zoals eenvoudig is na tegaan. In het geval van (x − u) × v uit Tabel 1.2 heeft x − u een absolute fout van ongeveer10−5 geaccumuleerd en een relatieve van 0.136. Dat is veel en veel groter dan de relatievefloating point fout (maximaal 1

2 × 10−4) en doorwerking bepaalt vrijwel de gehele fout: derelatieve fout in (x− u)× v is dan volgens de foutregel voor producten gelijk aan de som vande relatieve fouten in x−u en v, dus aan 0.136+10−5 = 0.136. De absolute fout volgt direct:ongeveer 0.465.

1.5 Het O-symbool van Landau

Bij het analyseren van numerieke methoden is het onderzoeken van de fout belangrijk. Hierbijis een indicatie van de orde van grootte belangrijker dan een nauwkeurige uitdrukking voor defout. Om schrijfwerk te besparen maken we gebruik van het (grote O) O-symbool van Landau.

Definitie 1.5.1 Gegeven de functies f en g dan geldt f(x) = O(g(x)) voor x→ 0, als er eenpositieve r en M bestaat zodanig dat

|f(x)| ≤M |g(x)| voor alle x ∈ [−r, r] .

Bij het schatten van fouten maken we vaak gebruik van de volgende rekenregels:

RekenregelsAls f(x) = O(xp) en g(x) = O(xq) als x→ 0, met p ≥ 0 en q ≥ 0 dan is

a) f(x) = O(xs) voor alle s met 0 ≤ s ≤ p.

b) αf(x) + βg(x) = O(xminp,q) voor alle α, β ∈ R.

c) f(x)g(x) = O(xp+q).

d) f(x)|x|s = O(xp−s) als 0 ≤ s ≤ p.

7

Page 14: Numerieke Methoden voor Differentiaalvergelijkingen

1.6 Herhaling begrippen uit de analyse

In deze paragraaf zullen we een aantal stellingen samenvatten, die vaak gebruikt worden inde numerieke analyse.

Stelling 1.6.1 (Tussenwaardestelling) Neem aan dat f ∈ C[a, b]. Als f(a) 6= f(b) en Cis 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 ′(c) = 0.

Stelling 1.6.3 (Middelwaardestelling) Neem aan dat f ∈ C[a, b] en f is differentieerbaar

op (a, b), dan bestaat er een c ∈ (a, b) zodat f ′(c) = f(b)−f(a)b−a .

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 zodat

f(x) = Pn(x) +Rn(x),

waarbij het Taylorpolynoom Pn(x) gegeven wordt door

Pn(x) = f(c) + (x− c)f ′(c) +(x− c)2

2!f ′′(c) + . . . +

(x− c)n

n!f (n)(c)

en de restterm Rn(x) is:

Rn(x) =(x− c)n+1

(n+ 1)!f (n+1)(ξ).

Bewijs:Neem c, x ∈ (a, b) met c 6= x en laat K gedefinieerd zijn door:

f(x) = f(c) + (x− c)f ′(c) +(x− c)2

2!f ′′(c) + . . .+

(x− c)n

n!f (n)(c) +K(x− c)n+1. (1.7)

Beschouw de functie

F (t) = f(t) − f(x) + (x− t)f ′(t) +(x− t)2

2!f ′′(t) + . . .+

(x− t)n

n!f (n)(t) +K(x− t)n+1.

Er geldt nu F (c) = 0 uit (1.7) en F (x) = 0. Volgens de stelling van Rolle bestaat er een ξtussen c en x zo dat F ′(ξ) = 0. Dit uitwerken geeft:

F ′(ξ) = f ′(ξ) + f ′′(ξ)(x− ξ) − f ′(ξ) + f′′′(ξ)

2!(x− ξ)2 − f ′′(ξ)(x− ξ) +

+ · · · + f(n+1)(ξ)

n!(x− ξ)n − f (n)(ξ)

(n− 1)!(x− ξ)(n−1) −K(n+ 1)(x− ξ)n =

=f (n+1)(ξ)

n!(x− ξ)n −K(n+ 1)(x− ξ)n = 0.

Dus K = f(n+1)(ξ)(n+1)! , waarmee de stelling bewezen is.

8

Page 15: Numerieke Methoden voor Differentiaalvergelijkingen

1.7 Samenvatting

In dit hoofdstuk zijn de volgende begrippen behandeld:

- numerieke wiskunde

- afrondfouten

- O-symbool van Landau

- herhaling analyse begrippen

9

Page 16: Numerieke Methoden voor Differentiaalvergelijkingen

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 envergelijk dit met de echte fout.

2. Laat f(x) = ex. Geef het Taylor polynoom van de orde n en de restterm voor hetsteunpunt x = 0. Hoe groot moet n zijn opdat de fout kleiner is dan 10−6 op hetinterval [0,0.5]?

3. Het polynoom P2(x) = 1 − 12x

2 wordt gebruikt om f(x) = cos(x) te benaderen op[−1

2 ,12 ]. Geef een bovengrens voor de fout in de benadering.

4. Neem x = 13 , y = 5

7 . We rekenen met 3 cijfers. Schrijf x en y als floating point getallen.Bepaal voor = +,−, ∗, /, f l(fl(x) fl(y)), x y en de afrondfout.

10

Page 17: Numerieke Methoden voor Differentiaalvergelijkingen

Hoofdstuk 2

Interpolatie

2.1 Inleiding

De vraagstelling: het bepalen van tussenliggende waarden uit een beperkt aantal metingen, ofhet voorspellen van waarden in punten die buiten het meetbereik liggen (extrapolatie) komtin praktijk veel voor. Laten we als voorbeeld het aantal kippen beschouwen in de Nederland-se pluimveehouderijen. In Tabel 2.1 staan de aantallen in miljoenen tussen 1970 en 1995.

jaar 1970 1975 1980 1985 1990 1995

aantal 53 68 82 92 94 92

Tabel 2.1: Het aantal kippen (in miljoenen) in Nederland (bron: NRC 09-12-1998)

We kunnen ons afvragen hoe deze getallen gebruikt kunnen worden om het aantal kippen teschatten 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 bespaardworden als niet alle punten opgeslagen worden, maar alleen een beperkt aantal punten. Doordeze punten is dan een kromme gedefinieerd waarmee een min of meer realistisch beeld ophet scherm weergegeven kan worden.

Als laatste toepassing het bepalen van goniometrische functies op een rekenmachine. Hetberekenen 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 intussenliggende punten uit de bekende functiewaarden.

2.2 Lineaire interpolatie

De eenvoudigste manier van interpoleren is de nulde graads interpolatie. Stel de waarde in eenbepaald punt is bekend. Dan kiezen we de waarden in de omgeving gelijk aan deze waarde.Een bekend voorbeeld hiervan is de voorspelling dat het weer van morgen hetzelfde is alsvandaag. Deze voorspelling blijkt in 80% van de gevallen goed te zijn.

11

Page 18: Numerieke Methoden voor Differentiaalvergelijkingen

Een betere vorm van interpolatie is de rechte lijn tussen 2 punten (zie Figuur 2.1). Stel we

x0

f(x0)

x1

f(x1)

x

p(x)

f(x)

Figuur 2.1: Lineaire interpolatie.

weten de meetwaarden in de punten x0 en x1: f(x0) en f(x1). Als we verder geen informatiehebben ligt het voor de hand in het punt x∗ de waarde van de rechte lijn door de punten(x0, f(x0)), (x1, f(x1)) te nemen. Het is eenvoudig in te zien dat de rechte lijn gegeven wordtdoor:

p(x) = f(x0) +x− x0

x1 − x0(f(x1) − f(x0))

of

p(x) =x− x1

x0 − x1f(x0) +

x− x0

x1 − x0f(x1) .

De functie p is een lineair interpolatiepolynoom die gelijk is aan f(x0) in x0 en f(x1) in x1.Een voor de hand liggende vraag is uiteraard: hoe groot is de fout bij lineaire interpolatie

Voorbeeld 2.2.1 (lineaire interpolatie)

Stel de waarde van de sinusfunctie is bekendin 36 en 38. De lineaire interpolatiebena-dering in 37 is dan 0.601723. Het verschilmet de exacte waarde is slechts 0.9 × 10−4.

α sinα

36 0.5877852537 0.6018150238 0.61566148

Tabel 2.2: De waarde van sinα

en waar hangt die van af? Indien we weten dat de functie die we interpoleren tenminste 2maal 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 x0.

12

Page 19: Numerieke Methoden voor Differentiaalvergelijkingen

Stelling 2.2.1 Laat x0 en x1 punten zijn in [a, b], x0 6= x1 en f ∈ C[a, b] ∩ C2(a, b). Dangeldt voor het lineaire interpolatie polynoom p van f op de steunpunten x0, x1 en voor elkex ∈ [a, b] : er is een ξ ∈ (x0, x1, x) zodat

f(x) − p(x) =1

2(x− x0)(x− x1)f

′′

(ξ) . (2.1)

Bewijs:Als x = x0 of x = x1, dan is f(x) − p(x) = 0 en kan men ξ willekeurig kiezen. Neem aanx 6= x0 en x 6= x1. Voor elke waarde van x is er een getal q zodat

f(x) − p(x) = q(x− x0)(x− x1) .

Beschouw voor dit getal q de volgende functie

ϕ(t) = f(t) − p(t) − q(t− x0)(t− x1) .

Hiervoor geldt ϕ(x0) = ϕ(x1) = ϕ(x) = 0. Volgens de stelling van Rolle zijn er minstens tweeverschillende punten y en z in (x0, x1, x) zodat ϕ

(y) = ϕ′

(z) = 0. Opnieuw volgens Rolleis er ook een ξ ∈ (y, z) en dus ξ ∈ (x0, x1, x) zo dat ϕ

′′

(ξ) = 0. Omdat ϕ′′

(t) = f′′

(t) − 2qbetekent dit dat q = 1

2f′′

(ξ).

Als x ∈/ [x0, x1] dan gebruiken we het interpolatiepolynoom om te extrapoleren. De foutwordt dan nog steeds beschreven door (2.1).

Bij interpolatie volgt de bovengrens

|f(x) − p(x)| ≤ 1

8(x1 − x0)

2 maxξ∈[x0,x1]

|f ′′

(ξ)| .

In praktische toepassingen zijn de waarden f(x0) en f(x1) meestal door meting of berekeningverkregen. Deze waarden bevatten dus een fout. Neem aan dat de absolute fout hoogstensε is. Het verschil tussen het exacte polynoom p en verstoorde polynoom p wordt begrensddoor:

|p(x) − p(x)| ≤ |x1 − x| + |x− x0|x1 − x0

ε .

Bij interpolatie is deze fout altijd begrensd door ε. Bij extrapolatie kan de fout groter wordendan ε. Stel x ≥ x1 dan wordt de additionele onnauwkeurigheid begrensd door:

|p(x) − p(x)| ≤ (1 + 2x− x1

x1 − x0)ε .

De totale fout is de som van de interpolatie/extrapolatie fout en de meetfout.

2.3 Lagrange interpolatie

Indien men meer gegevens dan 2 punten heeft, is het verstandig om ook van die extra puntengebruik te maken. Een voor de hand liggende methode is een hogere graads interpolatie tegebruiken. Omdat een polynoom van de graad n, n+ 1 onafhankelijke parameters bevat zijndus n+ 1 gegevens nodig.

13

Page 20: Numerieke Methoden voor Differentiaalvergelijkingen

Als generalisatie van lineaire interpolatie kan men de approximatie beschouwen van een functief door een hoogstens n-de graadspolynoom Ln, zodanig dat de waarden van f en Ln in eengegeven n+1-tal verschillende punten x0, ..., xn aan elkaar gelijk zijn. Dit noemen we n-ordeLagrange interpolatie.

Een polynoom Ln dat aan deze eisen voldoet is gemakkelijk aan te geven in een vorm, dieeen duidelijke generalisatie van (2.1) is:

Ln(x) =

n∑

k=0

f(xk)Lkn(x) ,

waarbij

Lkn(x) =(x− x0)....(x − xk−1)(x− xk+1)....(x − xn)

(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 Lknheten de Lagrange coefficienten. Zij kunnen ook geschreven worden als:

Lkn(x) =ω(x)

(x− xk)ω′(xk)

met ω(x) =n∏

i=0

(x− xi) .

Een generalisatie van Stelling 2.2.1 is nu:

Stelling 2.3.1 Laat x0, ..., xn verschillende punten zijn in [a, b]. Laat f ∈ Cn[a, b] en f (n+1)

bestaat op (a, b). Dan geldt voor het bijbehorende polynoom Ln en voor elke x ∈ [a, b]: er iseen ξ ∈ (x0, x1, ..., xn, x) zodat

f(x) − Ln(x) = (x− x0)....(x − xn)fn+1(ξ)

n+ 1!.

Bewijs:Het bewijs is geheel analoog aan dat van Stelling 2.2.1.

Als we Lagrange interpolatie gebruiken op tabelwaarden, dan krijgt men het beste resultaatals de steunpunten zo gekozen worden dat x in het (of een) middelste interval ligt. Leg zelfuit waarom.

Naast de interpolatiefout willen we weten welke extra fouten er kunnen optreden bij hogeregraads interpolatie als de functie (of tabel) waarden niet exact zijn. Neem aan dat de absolutefout in de waarden hoogstens ε is. De fout in het verstoorde interpolatiepolynoom is danhoogstens

n∑

k=0

|Lkn(x)|ε .

Als de steunpunten equidistant zijn, xk = x0 + kh, dan neemt de waarde vann∑

k=0

|Lkn(x)|langzaam toe als n groter wordt. In Tabel 2.3 worden een aantal bovengrenzen gegeven.

14

Page 21: Numerieke Methoden voor Differentiaalvergelijkingen

x ∈ [x0, x1] x ∈ [x1, x2] x ∈ [x2, x3] x ∈ [x3, x4] x ∈ [x4, x5]

n = 1 1n = 2 1.25 1.25n = 3 1.63 1.25 1.63n = 4 2.3 1.4 1.4 2.3n = 5 3.1 1.6 1.4 1.6 3.1

Tabel 2.3: Bovengrenzen voorn∑

k=0

|Lkn(x)|.

In het algemeen verwacht je dat de benaderingsfout afneemt als de graad van het polynoomtoeneemt. Dit is echter niet altijd het geval zoals het volgende voorbeeld laat zien.

Voorbeeld 2.3.1 (interpolatie)

Beschouw de functie 11+x2 op het interval [−5, 5]. Bij de interpolatie gebruiken we de punten

xk = −5 + 10kn , k = 0, ..., n. In Figuur 2.2 is de functie, het 6e en het 14e graads inter-

polatiepolynoom afgebeeld. Merk op dat op het interval [-4, 4] de benadering van het 14e

graadspolynoom beter is dan die van het 6e graadspolynoom. Echter in de buurt van deeindpunten vertoont het 14e graadspolynoom grote afwijkingen.

−5 −4 −3 −2 −1 0 1 2 3 4 5−1

0

1

2

3

4

5

6

7

8

Figuur 2.2: Interpolatie van functie 11+x2 (−) met een 6e graads Lagrange polynoom (· · · ) en

een 14e graad Lagrange polynoom (− · − · −).

15

Page 22: Numerieke Methoden voor Differentiaalvergelijkingen

Voorbeeld 2.3.2 (extrapolatie)

Eenzelfde verschijnsel kan optreden bij extrapolatie. Beschouw de functie 1x . Het n-de graads

interpolatiepolynoom wordt bepaald op de steunpunten xk = 0.5 + kn , 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 hetgrootst bij het 10-de graadspolynoom.

0.5 1 1.5 20.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

2.2

2.4

Figuur 2.3: Extrapolatie van functie 1x (−) 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:

Voorbeeld 2.4.1 (Taylorpolynoom)

16

Page 23: Numerieke Methoden voor Differentiaalvergelijkingen

De functie f(x) = 1x 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)kk!x−(k+1). Het ne graadsTaylorpolynoom wordt dan gegeven door:

pn(x) =n∑

k=0

f (k)(1)(x − 1)k/k! =n∑

k=0

(−1)k(x− 1)k .

De waarden van pn(3) als benadering van f(3) = 13 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).

2.4.2 Interpolatie in het algemeen

In het algemene geval zoeken we bij een functie f een polynoom, zodanig dat in een aantalverschillende knooppunten x0, ..., xn niet alleen de waarden van f en p overeenstemmen, maarook de waarden van hun afgeleiden tot en met de orde mi.

In wiskundige termen: bij elke xi is een niet negatief getal mi gegeven. Veronderstel datf ∈ Cm[a, b] met m = max

0≤i≤nmi. Dan is p het polynoom van de laagste graad zodanig dat

dkp

dxk(xi) =

dkf

dxk(xi) voor elke i = 0, 1, ..., n en k = 0, 1, ...,mi .

Opmerkingen

1. De graad van dit polynoom is hoogstens M =n∑

i=0mi + n.

2. Als n = 0 dan is p het Taylorpolynoom in x0 van de graad m0.

3. Als mi = 0 dan is p het ne graads Lagrange polynoom van f op de punten x0, x1, ..., xn.

Als voorbeeld van algemene interpolatie beschouwen we in de volgende paragraaf de keuzemi = 1. De resulterende polynomen worden Hermite polynomen genoemd.

2.4.3 Hermite interpolatie

Indien we van een functie niet alleen de functiewaarden in bepaalde punten kennen maar ookde afgeleiden, dan kunnen we die gegevens gebruiken om een hogere graads benaderingspoly-noom te kiezen.

Stel bijvoorbeeld van een functie zijn in 2 punten zowel de functiewaarden als de afgeleiden

17

Page 24: Numerieke Methoden voor Differentiaalvergelijkingen

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)) ,

(x0, f′

(x0)) (x1, f′

(x1)) .

Het derde graads polynoom p3 moet voldoen aan de volgende eisen:

p3(xi) = f(xi) i = 0, 1 ,

p′

3(xi) = f′

(xi) i = 0, 1 .

Naar analogie van de Lagrange interpolatiepolynomen is dit polynoom te schrijven als:

p3(x) =

1∑

i=0

[f(xi)Hi1(x) + f′

(xi)Hi1(x)] ,

metHi1(xj) = δij , Hi1(xj) = 0 ,

H′

i1(xj) = 0 , H′

i1(xj) = δij .

Polynomen die behalve op functiewaarden ook gebaseerd zijn op gegeven afgeleiden staanbekend onder de naam Hermite polynoom.

De algemene uitdrukking voor Hermite polynomen die functiewaarden en eerste afgeleidenbevatten luidt:

H2n+1(x) =n∑

j=0

f(xj)Hjn(x) +n∑

j=0

f′

(xj)Hjn(x) ,

waarbijHjn(x) = [1 − 2(x− xj)L

jn(xj)]L2jn(x)

enHjn(x) = (x− xj)L

2jn(x) .

Dat dit het goede polynoom is kunnen we als volgt zien: Hjn en Hjn zijn polynomen van degraad 2n+ 1. In steunpunt xk geldt Hjn(xk) = 0 als k 6= j. Als k = j dan geldt:

Hjn(xj) = (1 − 2(xj − xj)L′

jn(xj)]L2kn(xj) = 1 .

Omdat Hjn(xk) = 0 geldt dus H2n+1(xj) = f(xj).

Om te laten zien dat ook de afgeleiden overeenstemmen merken we op dat H′

jn gegeven wordtdoor:

H′

jn(x) = −2L′

jn(xj)L2jn(x) +

[1 − 2(x− xj)L′

jn(xj)]2Ljn(x)L′

jn(x) .

Door invullen is eenvoudig te controleren dat H′

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

van Hjn wordt gegeven door

Hjn(x) = L2jn(x) + 2(x− xj)Ljn(x)L

jn(x) .

Hieruit volgt H′

jn(xk) = δjk zodat H′

2n+1(xj) = f′

(xj).

18

Page 25: Numerieke Methoden voor Differentiaalvergelijkingen

Stelling 2.4.1 Als f ∈ C2n+2[a, b] dan geldt er is een ξ ∈ (x0, ..., xn, x) zodat

f(x) −H2n+1(x) =(x− x0)

2....(x− xn)2

(2n+ 2)!f (2n+2)(ξ) .

Bewijs:Het bewijs hiervan gaat analoog aan het bewijs van Stelling 2.2.1. De hulpfunctie wordt nuals volgt gekozen:

ϕ(t) = f(t) −H2n+1(t) −(t− x0)

2....(t − xn)2

(x− x0)2....(x − xn)2[f(x) −H2n+1(x)] .

Er kan nu bewezen worden dat ϕ′

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

We zullen aan de hand van twee voorbeelden duidelijk maken waarom soms voor Hermiteinterpolatie gekozen wordt in plaats van Lagrange interpolatie.

Voorbeeld 2.4.2 (seismiek)

Bij het opsporen van olie wordt vaak gebruik gemaakt van seismische golven. Een eenvoudigmodel voor golfvoortplanting wordt beschreven door het volgende stelsel differentiaalverge-lijkingen:

dx

dt= c sin θ ,

dz

dt= −c cos θ ,

dt= −dc

dzsin θ .

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 afhangtvan de vertikale positie en bekend is in een eindig aantal meetpunten. Bij het oplossen van ditstelsel hebben we een benadering nodig van c(z) ook in de tussenliggende punten. Lineaireinterpolatie in elk interval heeft tot gevolg dat dc

dz niet bestaat in de steunpunten. Dit kan

grote fouten geven in de oplossing. Als zowel c als dcdz bekend is in de meetpunten, dan kan

3e graads Hermite interpolatie gebruikt worden in elk interval. Hiervoor bestaat de eersteafgeleide wel in alle punten.

Voorbeeld 2.4.3 (visualisatie)

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 onrealistischeweergave. Een beter resultaat wordt verkregen met Hermite interpolatie.

Stel de grafiek van de functie f(x) = 11+x3 , 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 3e graads polynomen daartoebehoren. In Figuur 2.4 is de grafiek benaderd met een aantal interpolatiepolynomen. Deresulterende figuur bij lineaire interpolatie lijkt niet op een heuvel. Hermite interpolatie op

19

Page 26: Numerieke Methoden voor Differentiaalvergelijkingen

dezelfde steunpunten geeft een veel beter resultaat. De vergelijking lijkt niet eerlijk omdat bijHermite interpolatie 3e graads polynomen zijn gebruikt. Daarom is de functie ook benaderdmet 3e orde Lagrange interpolatie. Ook dit resultaat is onbruikbaar.

0 0.5 1 1.5 2 2.5 3 3.5 40

0.2

0.4

0.6

0.8

1

1.2

Figuur 2.4: Interpolatie van 11+x3 . —– functie, · · · lineaire interpolatie, − − − Hermite

interpolatie, − · − · − 3e orde Lagrange interpolatie.

2.5 Interpolatie met splines

In de voorgaande paragraven hebben we gezien dat het benaderen van een functie op eeninterval tot problemen kan leiden. Het is vaak beter om het interval op te delen in deelinter-vallen en op elk deelinterval een interpolatie polynoom te construeren. Een probleem hierbij isdat de afgeleide vaak niet bestaat op de overgang van de deelintervallen. Hermite interpolatieverhelpt dit probleem, echter hierbij moet de afgeleide bekend zijn. Bij gemeten groothedenis de afgeleide in de knooppunten onbekend. Een oplossing hiervoor is het gebruikt van zo-genaamde splines (uit te spreken op zijn Engels).

Een spline is een stuksgewijs polynoom, die glad aansluit in de knooppunten. Wij zullenalleen splines van de eerste en derde orde beschouwen.

DefinitieVoor 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 [xi, xi+1] ens(xi) = f(xi).

Merk op dat een interpolerende spline van graad 1 niets anders is dan lineaire interpolatie op

20

Page 27: Numerieke Methoden voor Differentiaalvergelijkingen

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 tweedeafgeleide continu. Dit wordt ook wel een cubische spline genoemd.

DefinitieVoor 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),

c. sj(xj+1) = sj+1(xj+1),s′

j(xj+1) = s′

j+1(xj+1),

s′′

j (xj+1) = s′′

j+1(xj+1),

d. s′′

0(x0) = s′′

n−1(xn) = 0.

Merk op dat s ∈ C2[a, b]. Verder kunnen de voorwaarden in d vervangen worden door andere(rand) voorwaarden.

We zullen nu laten zien hoe zo’n interpolerende spline bepaald kan worden. We schrijven sjals:

sj(x) = aj(x− xj)3 + bj(x− xj)

2 + cj(x− xj) + dj . (2.2)

Verder definieren we hj = xj+1 − xj, fj = f(xj) en Gj = s′′

j (xj). Uit b volgt dj = fj.

We gaan nu de verschillende voorwaarden uit c gebruiken.s′′

j (xj+1) = s′′

j+1(xj+1)

Uit (2.2) volgt s′′

j (x) = 6aj(x− xj) + 2bj . Invullen geeft :

Gj = 2bj voor x = xj enGj+1 = 6ajhj + 2bj voor x = xj+1 .

We kunnen nu aj en bj uitdrukken in de Gj :

bj =1

2Gj en aj =

1

6hj(Gj+1 −Gj) .

sj(xj+1) = sj+1(xj+1)Hieruit volgt ajh

3j +bjh

2j +cjhj+dj = fj+1. Invullen van aj , bj en dj geeft voor cj de volgende

uitdrukking:

cj =fj+1 − fj

hj− hj

2Gj +Gj+1

6.

s′

(xj+1) = s′

j+1(xj+1)

Dit geeft 3ajh2j + 2bjhj + cj = cj+1. Invullen geeft

1

2hj(Gj+1 −Gj) +Gjhj +

fj+1 − fjhj

− hj2Gj +Gj+1

6

=fj+2 − fj+1

hj+1− hj+1

2Gj+1 +Gj+2

6.

21

Page 28: Numerieke Methoden voor Differentiaalvergelijkingen

Vereenvoudiging geeft:

hjGj + 2(hj + hj+1)Gj+1 + hj+1Gj+2 = 6(fj+2 − fj+1

hj+1− fj+1 − fj

hj) .

Deze relatie is geldig voor j = 0 tot j = n − 2. Dit geeft n − 1 vergelijkingen voor de n+ 1onbekenden G0, ..., Gn. Uit d volgt G0 = Gn = 0. Het resulterende stelsel wordt dan:

2(h0 + h1) h1

h1 2(h1 + h2) h2

. . .. . .

. . .

hn−2 2(hn−2 + hn−1)

G1

G2...

Gn−1

=

6(f2−f1h1− f1−f0

h0)

...

...

...

Uit dit stelsel kan de waarde van Gj berekend worden. Hiermee kunnen aj, bj en cj bepaaldworden.

Voorbeeld 2.5.1 (visualisatie)

We beschouwen hetzelfde voorbeeld als in de vorige paragraaf. In Figuur 2.5 is er een cubischespline gebruikt waarbij het interval opgedeeld is in 6 deelintervallen. Merk op dat de kwaliteitvan de interpolatie beter is dan Hermite interpolatie. Een ander voordeel is dat enkel defunctiewaarden in de steunpunten al voldoende informatie geven. Het is niet nodig om deafgeleide te weten in de steunpunten.

0 0.5 1 1.5 2 2.5 3 3.5 40

0.2

0.4

0.6

0.8

1

1.2

Figuur 2.5: Interpolatie van 11+x3 : — functie, - - spline van 3e orde

22

Page 29: Numerieke Methoden voor Differentiaalvergelijkingen

2.6 Samenvatting

In dit hoofdstuk zijn de volgende begrippen behandeld:

- lineaire interpolatie

- Lagrange interpolatie

- interpolatie met afgeleiden

- Taylor polynoom

- interpolatie in het algemeen

- Hermite interpolatie

- spline interpolatie.

23

Page 30: Numerieke Methoden voor Differentiaalvergelijkingen

2.7 Opgaven

1. Bepaal het tweede graads Lagrange polynoom van f(x) = 1/x gebruikmakend van desteunpunten x0 = 2, x1 = 2.5 en x2 = 4. Benader hiermee f(3).

2. Bepaal s( 12), waarbij s de kubische spline is met steunpunten 0, 1 en 2 voor de functie

f(x) = x. Doe dit ook voor de functie f(x) = x2.

24

Page 31: Numerieke Methoden voor Differentiaalvergelijkingen

Hoofdstuk 3

Numeriek differentieren

3.1 Inleiding

Het volgende citaat 1 bespreekt het verschijnsel ”muisarm” of RSI (Repetitive Strain Injury):

RSI (Repetitive Strain Injury)

Door de opkomst van MS-Windows als besturingssysteem raken we steeds meer met demuis vergroeid. Na een korte periode van gewenning raakt men al maar enthousiaster.Handig hoor dat klikken, dubbelklikken en slepen. Na een aantal weken of tijdenseen intensieve cursus beginnen de problemen. In schouder, arm en pols begint hette tintelen. In het begin gaat de pijn over na een nacht slapen, maar na een aantalmaanden helpt dat niet meer. De muisarm dient zich aan. Net als bij een tennisarmontstaan de problemen door overbelasting van spieren en pezen.

Waarom is de muis dan de boosdoener?

1. de muis ligt meestal niet goed op het bureau en gestrekt bedienen levert overbe-lasting op,

2. verkeerd knijpen in de muis kost te veel kracht,

3. dubbelklikken en positioneren vereisen te veel coordinatie en kracht (slepen!) en

4. de meeste muizen zijn niet ergonomisch ontworpen.

Om een muisarm te voorkomen wordt er onderzoek gedaan aan de krachten, die optreden inde gewrichten. Hiervoor wordt de positie van de muis gemeten als functie van de tijd. Om dekrachten te kunnen bepalen moeten de optredende snelheden en versnellingen bepaald worden.Zoals bekend is de snelheid de eerste afgeleide van de verplaatsing naar de tijd en de versnellingde tweede afgeleide. De vraag is: hoe kunnen we de afgeleide van een functie benaderen alsde functie slechts bekend is in een eindig aantal meetpunten. Bovendien bevatten de waardeneen meetfout. Het effect van de meetfouten op de benaderde snelheden en versnellingen isvan belang. In dit hoofdstuk zullen we aangeven hoe de afgeleiden numeriek bepaald kunnenworden en wat het effect is van meetfouten.

1http://www.muisarm.nl/

25

Page 32: Numerieke Methoden voor Differentiaalvergelijkingen

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, h > 0 ,

waarbij h de stapgrootte genoemd wordt. Per definitie geldt:

limh→0

f(x+ h) − f(x)

h= f

(x) ,

zodat de voorwaartse differentie naar de afgeleide convergeert. De afbreekfout wordt gedefi-nieerd door:

Rv(h) = f′

(x) − f(x+ h) − f(x)

h.

Stelling 3.2.1 Als f ∈ C2[x, x+ h] dan geldt Rv(h) = −h2f

′′

(ξ), met ξ tussen x en x+ h.

Bewijs:Het resultaat volgt eenvoudig uit een Taylorreeks van f(x+ h) rond het punt x.

Voorbeeld 3.2.1 (voorwaartse differentie)

We benaderen de afgeleide van de functie gegeven door f(x) = −x3 + x2 + 2x in het puntx = 1 met stapgrootte h = 0.5. In Figuur 3.1 zien we dat de benadering van de afgeleide nogniet zo nauwkeurig is.

0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.80.5

1

1.5

2

2.5

3

x x+h

Figuur 3.1: De benadering van de afgeleide (- - -) in x = 1 met een voorwaartse differentie(− · −).

26

Page 33: Numerieke Methoden voor Differentiaalvergelijkingen

0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.80.5

1

1.5

2

2.5

3

x x+hx−h

Figuur 3.2: De benadering van de afgeleide (- - -) in x = 1 met een centrale differentie (−·−).

Op dezelfde manier kan de achterwaartse differentie gedefinieerd worden:

f(x) − f(x− h)

h, h > 0 .

Hiervoor geldt dat de afbreekfout gegeven wordt door Ra(h) = h2f

′′

(ξ) met ξ tussen x enx− h. De nauwkeurigheid is vergelijkbaar met de voorwaartse differentie.

Merk op dat de fouten een verschillend teken hebben. Dit brengt ons op het idee om deformules te middelen zodat de fouten tegen elkaar wegvallen (Waarom?). Het resultaat vande 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 afgeleidevan f bestaat dan wordt de afbreekfout in de centrale differentie:

R2(h) = f′

(x) − f(x+ h) − f(x− h)

2h,

gegeven door

R2(h) = −h2

6f

′′′

(ξ) ,

met ξ tussen x−h en x+h. Om dit te bewijzen ontwikkelen we f in x in een Taylorpolynoommet restterm en gebruiken we de tussenwaardestelling. Merk op dat de fout in de centraledifferentie benadering veel sneller naar nul gaat als functie van h dan bij de voorwaartseformule.

27

Page 34: Numerieke Methoden voor Differentiaalvergelijkingen

Voorbeeld 3.2.2 (afrondfouten)

We gaan de afgeleide van de functie ex benaderen in het punt x = 1. De afgeleide is gelijkaan e = 2.71828.... We berekenen de afgeleide met de centrale differentie formule en rekenenmet 6 cijfers. De gebruikte getallen staan in Tabel 3.1 en de benaderingen in Tabel 3.2. Voor

x exp(x)

0.8000 2.225540.9000 2.459600.9900 2.691230.9990 2.715560.9999 2.718011.0000 2.718281.0001 2.718551.0010 2.721001.0100 2.745601.1000 3.004161.2000 3.32011

Tabel 3.1: De gebruikte waarden

h benadering fout

0.2000 2.7364 -0.018140.1000 2.7228 -0.004510.0100 2.7185 -0.000210.0010 2.7200 -0.001710.0001 2.6999 0.01828

Tabel 3.2: De resultaten met de centrale dif-ferentie formule

dalende h wordt de benadering eerst beter, maar daarna verslechtert hij. Deze verslechteringwordt 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 ishoogstens 5 · 10−6. De relatieve fouten zijn dan hoogstens 5 · 10−6/2.7 ≈ 2 · 10−6. Eenbovengrens voor de absolute fout in bovenstaand verschil is 10 · 10−6, hetgeen een relatievefout in het verschil veroorzaakt van

10−5/0.00564 ≈ 2 · 10−3 .

Deze fout is 1000 maal zo groot als de maximale relatieve fout in de functiewaarden. Diteffect wordt sterker naar mate h kleiner wordt.

Het bovenstaande voorbeeld laat zien dat de te bereiken nauwkeurigheid voor de bepaling vande afgeleide met een differentieformule begrensd is. We zullen dit voor de centrale differentieverder analyseren. Door het verkleinen van de stapgrotte h zal de fout R2(h) kleiner worden,echter de bovengrens S2(h) van de fout tengevolge van afrondfouten zal toenemen. Er is duseen optimale waarde van h waarbij de totale fout |R2(h)|+S2(h) het kleinst is. Deze waardevan h is onbekend maar men kan wel een benadering hiervoor vinden.

Stel dat de functiewaarden een afrondfout bevatten van hoogstens ε. Dit levert een bovengrensvoor de fout S2(h) = ε

h (waarom?) in de numerieke benadering van f′

(1). De totale foutwordt dus gemajoreerd door de grootheid ϕ(h), die gegeven wordt door:

ϕ(h) =ε

h+h2

6m ,

28

Page 35: Numerieke Methoden voor Differentiaalvergelijkingen

waarbij m een bovengrens is voor |f ′′′

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

ϕ heeft een minimum 3

98ε

2m voor hopt = 3

3εm (leid dit zelf af). Voor ons voorbeeld

staat ϕ(h), S2(h) en |R2(h)| getekend in Figuur 3.3. Voor m = e volgt hopt = 0.017 enϕ(hopt) = 0.00043. Merk op dat de fout in de buurt van hopt niet veel varieert, zodat eenstapgrootte 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 mogelijkeaanpakken om dit te verbeteren:

- de afrond- of meetfout in de functiewaarden verkleinen,

- overgang op een hogere orde differentieformule. In dit geval is de afbreekfout R(h)vaak kleiner dan bij een lage orde formule voor grotere waarden van h. Voor groteh neemt het effect van afrondfouten af.

2. Vaak worden differentieformules gebruikt voor het oplossen van differentiaalvergelijking-en. In dit geval wil men niet de afgeleide nauwkeurig bepalen maar de oplossing. Hetgedrag ten opzichte van afrondfouten is dan meestal gunstiger.

3. Het effect van afrondfouten is het grootst als de fout in de functiewaarden groot is. Ditis vaak het geval bij metingen zoals aan de muis. In het geval van een door de com-puter gegenereerde tabel is de afrondfout meestal een stuk kleiner dan bij meetfouten.Desalniettemin voor kleine h is hij altijd merkbaar.

0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.10

1

2

3

4

5

6x 10

−3

Figuur 3.3: De grafiek van de totale fout ϕ (—), de afbreekfout |R2(h)|(−·−) en de afrondfoutS2(h) (- - -).

29

Page 36: Numerieke Methoden voor Differentiaalvergelijkingen

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 hogerenauwkeurigheid (denk aan afrondfouten) of met roosterpunten, die niet equidistant verdeeldzijn. In deze paragraaf zullen we een methode presenteren om differentieformules af te leiden.

Stel er zijn n+1 verschillende roosterpunten x0, ..., xn gegeven. Gevraagd: bepaal de coefficien-ten αi zodanig dat de orde (k) van de fout:

|f ′

(x) −Q(h)| = O(hk)

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

Q(h) =

n∑

i=0

αifi, waarbij fi = f(xi) .

De aanpak gaat als volgt: ontwikkel elke fi in een Taylorpolynoom van voldoend hoge graadmet x als steunpunt. Bepaal α0, ..., αn zodanig dat de orde van de fout maximaal is. Wezullen twee voorbeelden uitwerken:

Centrale differentieIn dit voorbeeld kiezen we x−1 = x− h, x0 = x en x1 = x+ h. Taylorontwikkeling geeft:

f(x+ h) = f(x) + hf′

(x) +h2

2f

′′

(x) +h3

3!f

′′′

(x) +O(h4)

f(x) = f(x)

f(x− h) = f(x) − hf′

(x) +h2

2f

′′

(x) − h3

3!f

′′′

(x) +O(h4)

De voorwaarden voor α−1, α0 en α1 zijn nu:

f(x) : α−1 + α0 + α1 = 0 ,

f′

(x) : −hα−1 + hα1 = 1 ,

f′′

(x) : h2α−1 + h2α1 = 0 .

Oplossing van dit stelsel geeft α−1 = −12h , α0 = 0 en α1 = 1

2h waarmee we de reeds bekendeformule:

Q(h) =f(x+ h) − f(x− h)

2h

verkrijgen. Merk op dat de fout bij deze formule O(h2) is.

Eenzijdige differentieformule van de orde 2Stel dat de afgeleide gewenst is aan de rand van je meetgebied. Bovendien is een orde 2 van deafbreekfout gewenst. Kies x0 = x, x1 = x+h en x2 = x+2h en bepaal de Taylorontwikkeling.

f(x) = f(x) ,

f(x+ h) = f(x) + hf′

(x) +h2

2f

′′

(x) +O(h3) ,

f(x+ 2h) = f(x) + 2hf′

(x) + 2h2f′′

(x) +O(h3) .

30

Page 37: Numerieke Methoden voor Differentiaalvergelijkingen

We verkrijgen nu de volgende voorwaarden:

f(x) : α0 + α1 + α2 = 0 ,

f′

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

f′′

(x) : h2

2 α1 + 2h2α2 = 0 .

Oplossing van dit stelsel geeft α0 = −32h , α1 = 2

h en α2 = −12h . De afbreekfout van de verkregen

eenzijdige differentieformule

Q(h) =−3f(x) + 4f(x+ h) − f(x+ 2h)

2h(3.1)

is O(h2).

3.4 Relatie tussen differentieformules en interpolatie

In paragraaf 3.3 hebben we een algemene manier besproken om differentieformules af te leiden.Echter een duidelijk nadeel is dat we een stelsel vergelijkingen moeten oplossen waarbij hetaantal onbekenden toeneemt naarmate de orde van nauwkeurigheid toeneemt.

In deze paragraaf zullen we een totaal andere aanpak volgen. In paragraaf functiewaardenmet steunpunten behandeld. Dit interpolatiepolynoom kan natuurlijk ook gezien worden alseen benadering van de oorspronkelijke functie. Het lijkt dus voor de hand te liggen, datde afgeleide van het interpolatiepolynoom ook een benadering vormt voor de afgeleide vande functie. Vanuit deze redenering zullen we op een alternatieve wijze differentieformulesafleiden.

We herhalen de formule voor Lagrange interpolatie. Veronderstel dat x0, x1, ..., xn verschillendzijn en f ∈ Cn+1[a, b]. Dan geldt:

f(x) =

n∑

k=0

f(xk)Lkn(x) + (x− x0)...(x− xn)fn+1(ξ(x))

(n+ 1)!,

waarbij ξ(x) ∈ [a, b]. Differentieren van deze uitdrukking geeft:

f′

(x) =n∑

k=0

f(xk)L′

kn(x) +d

dx[(x− x0)...(x − xn)]

fn+1(ξ(x))

(n+ 1)!

+(x− x0)...(x− xn)d

dx

fn+1(ξ(x))

(n+ 1)!

De foutschatting is nu een gecompliceerde uitdrukking tenzij x gelijk genomen wordt aan eenvan de steunpunten. Voor x = xj wordt de formule voor de afgeleide:

f′

(xj) =n∑

k=0

f(xk)L′

kn(xj) +n∏

k=0k 6=j

(xj − xk)fn+1(ξ(x))

(n+ 1)!.

Voorbeeld 3.4.1 (voorwaartse differentie)

31

Page 38: Numerieke Methoden voor Differentiaalvergelijkingen

Voor n = 1, x = x0 en x1 = x0 + h geldt:

L01(x) = x−x1x0−x1

, L′

01(x) = −1h ,

L11(x) = x−x0x1−x0

, L′

11(x) = 1h .

De formule is dan: f′

(x0) = − 1hf(x0) + 1

hf(x0 + h) + h2f

′′

(ξ). Dit is precies de formule voorde voorwaartse differentie.

3.5 Differentieformules voor hogere afgeleiden

In de inleiding hebben we een voorbeeld gezien waarbij het bepalen van de snelheid en deversnelling uit gemeten plaatswaarden nodig is. De versnelling is gelijk aan de tweede afgeleidevan de plaats naar de tijd.

Hogere afgeleiden kunnen benaderd worden op dezelfde manier als de methoden waarmee deeerste afgeleide benaderd is. We beperken ons hier tot het bepalen van de tweede afgeleidedoor herhaald toepassen van de formules voor de eerste afgeleide. Voor de numerieke bepalingvan de 2e afgeleide hebben we minimaal 3 punten nodig (waarom?). Stel we willen de 2eafgeleide benaderen met 3 punten, die op een equidistante afstand liggen:

x - h x x + h

x - h12

12

x + h

Het ligt voor de hand om de 2e afgeleide te benaderen door het verschil te nemen van de eersteafgeleide in de punten x+h en x−h. Echter bij toepassing van centrale differenties betekentdit, dat wij de functie ook in x + 2h en x − 2h nodig hebben. We kunnen dit ondervangendoor de hulppunten x± 1

2h in te voeren. Centrale differentie geeft:

f′

(x+ 12h) − f

(x− 12h)

h

als benadering van f′′

(x). Op de beide eerste orde afgeleiden passen we opnieuw een centraledifferentie toe:

1

h(f(x+ h) − f(x)

h− f(x) − f(x− h)

h) .

Vereenvoudiging van deze formule geeft:

Q(h) =f(x+ h) − 2f(x) + f(x− h)

h2.

Met behulp van Taylorpolynomen volgt voor de afbreekfout:

f′′

(x) −Q(h) =−h2

12f (4)(ξ) .

Merk op dat het effect van afrondfouten nu nog ernstiger is. Een bovengrens voor de fout tengevolge van afrondfouten is:

S(h) =4ε

h2.

32

Page 39: Numerieke Methoden voor Differentiaalvergelijkingen

Voor het oplossen van differentiaalvergelijkingen is het soms nodig om een benadering tevinden voor (pf

)′

waarbij p een gegeven functie is. Analoog aan bovenstaande kunnen wede volgende benadering van (pf

)′

opschrijven:

(pf)′

(x+ 12h) − (pf)

(x− 12h)

h.

Opnieuw toepassen van centrale differenties geeft:

p(x+ 12h)(f(x+ h) − f(x)) − p(x− 1

2h)(f(x) − f(x− h))

h2.

3.6 Richardson’s extrapolatie

3.6.1 Inleiding

In paragraaf 3.2 is aangetoond dat de fout in de voorwaartse differentiebenadering afhangtvan f

′′

. Meestal is f′′

onbekend zodat de gegeven foutschatting onbruikbaar is in de praktijk.Richardson’s extrapolatie kan gebruikt worden om een schatting te geven van de gemaaktefout. Daarnaast kan de extrapolatie gebruikt worden om met een lagere orde methode eenhogere nauwkeurigheid te halen. Deze extrapolatie kan gebruikt worden als de vorm van defout bekend is. Stel de formule N(h) is bedoeld om een onbekende waarde M te benaderen.Neem aan dat de fout in deze benadering de vorm

M −N(h) = K1hα1 +K2h

α2 + .... (3.2)

heeft, waarbij Ki ∈ IR ongelijk aan nul is en voor αi ∈ IN geldt: 0 ≤ α1 < α2.....

In deze paragraaf zal Richardson’s extrapolatie toegepast worden op differentieformules, ech-ter de methode kan ook voor andere benaderingsmethoden (interpolatie, numerieke integratieetc) gebruikt worden, zolang de fout van de vorm (3.2) is.

Als voorbeeld van het gebruik van Richardson’s extrapolatie zullen we in paragraaf 3.6.2 eenfoutschatting geven als de αi onbekend zijn. Daarna zullen we in paragraaf 3.6.3 laten zienhoe we een hogere nauwkeurigheid kunnen verkrijgen als de αi bekend zijn. Natuurlijk kanin beide toepassingen Richardson’s extrapolatie gebruikt worden zowel als de αi bekend, ofals de αi onbekend zijn.

3.6.2 Schatting van de fout in de praktijk

In de voorgaande paragraven is er vaak een uitdrukking gegeven voor de fout in de differentie-formules. Deze uitdrukking bevat vaak een hogere afgeleide van de functie. Echter als we deeerste afgeleide niet weten, hoe zouden we dan een hogere afgeleide kunnen bepalen? Kortomde gegeven schattingen zijn vaak theoretisch van belang, maar in de praktijk onbruikbaar.We zullen daarom een bruikbare methode geven met behulp van Richardson’s extrapolatie.

Voor h klein genoeg kunnen we (3.2) benaderen door

M −N(h) = Khα . (3.3)

33

Page 40: Numerieke Methoden voor Differentiaalvergelijkingen

Voor een gegeven h kunnen we N(h) uitrekenen zodat (3.3) nog 3 onbekenden bevat: M,Ken α. Het idee is nu om N(h), N(h2 ) en N(h4 ) te bepalen. Dit geeft 3 vergelijkingen met 3onbekenden:

M −N(h) = Khα ,

M −N(h

2) = K(

h

2)α ,

M −N(h

4) = K(

h

4)α (3.4)

Door de vergelijkingen van elkaar af te trekken houden we 2 onbekenden over:

N(h

2) −N(h) = Khα(1 − (

1

2)α) ,

N(h

4) −N(

h

2) = K(

h

2)α(1 − (

1

2)α) . (3.5)

Het delen van deze uitdrukkingen geeft:

N(h2 ) −N(h)

N(h4 ) −N(h2 )= 2α . (3.6)

Hieruit kan α bepaald worden. Invullen van α in (3.5) geeft een benadering voor K. Beideconstanten invullen in (3.4) geeft een schatting voor de fout M −N( h4 ).

Voorbeeld 3.6.1 (praktische foutschatting)

Stel we benaderen de afgeleide van ex in hetpunt 1 met behulp van de voorwaartse dif-ferentie. Het exacte antwoord is: M = e =2.71828. De resultaten voor h = 0.1, h2 en h

4staan in Tabel 3.3.

h Qh0.1 2.85880.05 2.78740.025 2.7525

Tabel 3.3: De eerste orde afgeleide van ex metde voorwaartse differentie

Als we deze resultaten invullen in (3.6) dan krijgen we

2.7874 − 2.8588

2.7525 − 2.7874= 2.0458 .

Zoals verwacht is de waarde van α bijna gelijk aan 1. Hiermee kunnen we K bepalen uit(3.5):

K =2.7525 − 2.7874

0.05(1 − 12)

= −1.3936 .

De foutschatting is nu K h4 = −0.0348 terwijl de echte fout gelijk is aan:

e−N(h

4) = −0.0343 .

34

Page 41: Numerieke Methoden voor Differentiaalvergelijkingen

In dit voorbeeld is de foutschatting heel betrouwbaar.

Om een betere benadering te vinden zou de foutschatting opgeteld kunnen worden bij debenadering:

N(h

4) +K

h

4= 2.7177 .

Dit is inderdaad een hele goede benadering echter we kunnen hiervoor nu geen foutschattingmeer geven.

De vraag zou kunnen zijn: waarom gaan we in bovenstaand voorbeeld niet uit van α = 1; ditvolgt 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 ingewikkeldersituatie. De volgende complicaties kunnen zich voordoen:

- Het is onbekend of hogere afgeleiden bestaan en/of begrensd zijn.

- Het uiteindelijke antwoord is een combinatie van verschillende benaderingsmethoden.De invloed van deze benaderingen op α is niet altijd duidelijk.

- Tijdens het implementeren van het algoritme in een computerprogramma zijn foutengemaakt.

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’sextrapolatie dan gebruiken om nauwkeuriger formules te bepalen. Als voorbeeld zullen we devoorwaartse differentie beschouwen. De fout in de voorwaartse differentieformule blijkt doorgebruik van hogere orde Taylorpolynomen geschreven te kunnen worden als:

f′

(x) −Qv(h) = K1h+K2h2 + ... . (3.7)

Als we de differentie ook uitrekenen voor h2 dan geldt:

f′

(x) −Qv(h

2) = K1

h

2+K2(

h

2)2 + ... . (3.8)

Als we nu (3.8) met 2 vermenigvuldigen en (3.7) hier van aftrekken dan geldt:

f′

(x) − (2Qv(h

2) −Qv(h) = −1

2K2h

2 + ... .

Hieruit volgt dat de differentieformule

2Qv(h

2) −Qv(h) =

2f(x+ h2 ) − f(x)h2

− f(x+ h) − f(x)

h

=−3f(x) + 4f(x+ h

2 ) − f(x+ h)

h,

een afbreekfout O(h2) heeft. Deze formule is gelijk aan (3.1) met h/2 in plaats van h.

35

Page 42: Numerieke Methoden voor Differentiaalvergelijkingen

3.7 Samenvatting

In dit hoofdstuk zijn de volgende begrippen behandeld:

- differentie methode voor de eerste afgeleide

- het effect van meetfouten

- differentie methode voor hogere afgeleiden

- Richardson’s extrapolatie

- foutschatting in de praktijk.

- verhogen nauwkeurigheid

36

Page 43: Numerieke Methoden voor Differentiaalvergelijkingen

3.8 Opgaven

1. Bewijs voor f ∈ C3[x− h, x+ h], dat de afbreekfout bij centrale differenties O(h2) is.

2. Stel dat de positie van een schip bepaald kan worden met een meetfout van hoogstens10 meter. Verder veronderstellen we dat de werkelijke plaats van het schip tijdens hetop gang komen geven wordt door de functie S(t) = 0.5at2, waarbij S in meters ent in seconden uitgedrukt wordt. De snelheid wordt benaderd met een achterwaartsedifferentie 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 snelheidminimaal is. Hoe groot is de fout?

3. Gegeven f(x), f(x+h) en f(x+2h). Bepaal een formule om f ′(x) te benaderen waarbijde fout minimaal is.

4. Gegeven de functie f(x) = sinx, x ∈ [0, π]. Bepaal f ′(1) met behulp van een centraledifferentie voor h = 0.1. Geef een schatting van de fout via Richardson’ s foutschatting.

37

Page 44: Numerieke Methoden voor Differentiaalvergelijkingen

Hoofdstuk 4

Niet-lineaire vergelijkingen

4.1 Inleiding

In dit hoofdstuk geven we numerieke methoden voor het bepalen van x, die voldoet aan deniet-lineaire vergelijking f(x) = 0.

Als voorbeeld nemen we de drukval in een stromende vloeistof. Bij lage stroomsnelheden isde stroming laminair terwijl bij hoge snelheden de stroming turbulent genoemd wordt. HetReynoldsgetal kan gebruikt worden om te zien of een stroming turbulent is. Voor een stromingin een ronde pijp met diameter D(m) wordt het Reynoldsgetal gegeven door

Re =Dv

ν,

waarbij v (m/s) de gemiddelde vloeistofsnelheid is en ν (m2/s) de viscositeit is van de vloei-stof. Als het Reynoldsgetal kleiner is dan 2100 dan is de stroming laminair, terwijl alsRe ≥ 3000 dan is er een turbulente stroming.

Voor een turbulente stroming wordt het drukverschil tussen de uit- en inlaat gegeven door

Puit − Pin =ρwLv2

2gD,

hierbij is w de wrijvingsfactor, ρ (kg/m3) is de soortelijke dichtheid, L (m) is de lengte eng (m/s2) is de valversnelling. Als de vloeistof deeltjes bevat (zand, papiervezels) dan voldoetde wrijvingsfaktor w aan de vergelijking:

1√w

=ln(Re

√w) + 14 − 5.6

k

k,

waarbij k een parameter is, die bekend is uit experimenten.

In dit hoofdstuk zullen methoden behandeld worden om w te bepalen uit deze vergelijking,als de waarden van Re en k gegeven zijn.

4.2 Een eenvoudige nulpuntsmethode

BisectieDe eerste methode, de Bisectie methode, is gebaseerd op de tussenwaarde stelling 1.6.1. Stel f

38

Page 45: Numerieke Methoden voor Differentiaalvergelijkingen

is een continue functie gedefinieerd op een interval [a, b] waarbij f(a) en f(b) een tegengesteldteken hebben. Volgens de tussenwaarde stelling bestaat er een getal p in (a, b) waar f(p) = 0.We nemen aan dat er slechts een zo’n p is. In de methode wordt het interval steeds gehalveerdwaarbij in elke stap het interval gekozen wordt waar p in ligt.

We starten de methode met a1 = a en b1 = b en nemen voor p1 het gemiddelde van a1 en b1:

p1 =1

2(a1 + b1) .

Als f(p1) = 0 dan zijn we klaar, anders heeft f(p1) hetzelfde teken als f(a1) of f(b1). Alsf(p1)f(a1) > 0 dan nemen we a2 = p1 en b2 = b1 anders a2 = a1 en b2 = p1. Daarna herhalenwe de procedure met het interval [a2, b2].

StopcriteriumDe Bisectie methode is een iteratieve methode. Dat betekent dat een gebruiker op moet gevenwanneer de methode moet stoppen. De volgende stopcriteria kunnen gebruikt worden

|pn − pn−1||pn|

≤ ε ,

of|f(pn)| < ε .

ConvergentieDe Bisectie methode kan traag convergeren. Het kan ook gebeuren dat |pi−1 − p| |pi − p|.Een groot voordeel is dat de methode altijd convergeert naar een oplossing. De Bisectiemethode wordt vaak gebruikt om een goede startoplossing te genereren voor efficientere 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 rijpn die convergeert naar een nulpunt p van f waarbij

|pn − p| ≤ b− a

2n, n ≥ 1 .

Bewijs:Voor elke n ≥ 1 hebben we bn − an = 1

2n−1 (b − a) en p ∈ (an, bn). Omdat pn = 12(an + bn)

volgt

|pn − p| 51

2(bn − an) =

b− a

2n.

AfrondfoutenAls van een functie f de berekende waarden f een afrondfout ε hebben dan kan men niet hetechte nulpunt p bepalen, immers elk punt van de verzameling

I = x ∈ [a, b] | |f(x)| < ε

zou het (of een) nulpunt van f kunnen zijn. Een dergelijk interval noemt men een onbetrouw-baarheidsinterval. Het heeft bijvoorbeeld geen zin om als stopcriterium

|f(pn)| < ε

39

Page 46: Numerieke Methoden voor Differentiaalvergelijkingen

te nemen als ε < ε gekozen is. Grote kans dat het algoritme dan altijd blijft itereren. Metbehulp van het Taylorpolynoom blijkt dat als p een enkelvoudig nulpunt is van f en f

(p) 6= 0dan is I ongeveer gelijk aan

I ≈ [p− ε

|f ′

(p)| , p+ε

|f ′

(p)| ] .

Merk op dat als |f ′

(p)| dicht bij 0 ligt, het bepalen van p een slecht gesteld probleem is.

4.3 Vaste punt iteratie

Een vast punt van een gegeven functie g is een getal p zodanig dat g(p) = p. In deze paragraafbeschouwen we het vinden van oplossing voor een vast punt probleem en het verband tussendeze problemen en het vinden van nulpunten.

Het vinden van een nulpunt en vast punt problemen zijn als volgt gerelateerd: als we hetnulpunt p zoeken zodat f(p) = 0, dan kunnen we een niet unieke functie g definieren alsg(x) = x− f(x) of g(x) = x+

f(x). Aan de andere kant als g een vast punt heeft in p, danheeft de functie gedefinieerd door f(x) = x− g(x) een nulpunt in p.

In de volgende stelling geven we voldoende voorwaarden voor de existentie en eenduidigheidvan een vast punt.

Stelling 4.3.1 1. Als g ∈ C[a, b] en g(x) ∈ [a, b] voor alle x ∈ [a, b] dan heeft g een vastpunt in [a, b].

2. Als bovendien g′

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

|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 geldtg(a) > a en g(b) < b. De functie h(x) = g(x) − x is continu op [a, b] en h(a) > 0 enh(b) < 0. Uit de tussenwaarde stelling 1.6.1 volgt er is een p zodat h(p) = 0, dus p iseen vast punt van g.

2. Stel |g′

(x)| ≤ k < 1 en er zijn twee vaste punten p en q waarbij p < q. Uit demiddelwaardestelling volgt er is een ξ ∈ [p, q] zodat

g(p) − g(q)

p− q= g

(ξ) .

Dan volgt|p− q| = |g(p) − g(q)| = |g′

(ξ)||p− q| < |p− q| ,dit is een tegespraak, dus p = q en het vaste punt is uniek.

40

Page 47: Numerieke Methoden voor Differentiaalvergelijkingen

Om een vast punt van een functie g te benaderen, kiezen we een startwaarde p0 en bepalen pndoor middel van pn = g(pn−1) voor n ≥ 1. Als de rij convergeert naar p en g is een continuefunctie dan geldt

p = limn→∞

pn = limn→∞

g(pn−1) = g( limn→∞

pn−1) = g(p) ,

zodat p een vast punt is van g. Dit noemen we de vaste punt (of Picard) iteratie.

VoorbeeldVoor het bepalen van het nulpunt van de functie f(x) = x3 + 3x − 4, gebruiken we dehulpfunctie:

g(x) =4

x2 + 3

in onze vaste punt methode. Deze functie is bepaald via de volgende stappen:

f(x) = 0, x3 + 3x− 4 = 0

x3 + 3x = 4 → x(x2 + 3) = 4 → x =4

x2 + 3

In Figuur 4.1 staat het iteratieproces getekend, waarbij gestart is met x0 = 0.

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8

2

p0

g(p0)

p1

g(p1)

p2

g(p2)

p3

g(p3)

hg

Figuur 4.1: Grafische voorstelling van de vaste punt methode

Convergentie van de methode volgt uit de Vaste Punt Stelling.

Stelling 4.3.2 Stel g ∈ C[a, b], g(x) ∈ [a, b], als x ∈ [a, b] en |g ′

(x)| ≤ k < 1 voor x ∈ [a, b].Dan geldt dat de vaste punt iteratie convergeert naar p voor elke waarde p0 ∈ [a, b].

41

Page 48: Numerieke Methoden voor Differentiaalvergelijkingen

Bewijs:Onder de gegeven voorwaarden heeft g een uniek vast punt p. Uit de middelwaarde stellingvolgt:

|pn − p| = |g(pn−1) − g(p)| = |g′

(ξ)||pn−1 − p| ≤ k|pn−1 − p| .Met inductie volgt

limn→∞

|pn − p| ≤ limn→∞

kn|p0 − p| = 0 ,

dus pn convergeert naar p.

De bovenstaande stelling kan ook gebruik worden om een goed stopcriterium te geven.Merk op dat voor m > n ≥ 1 geldt

|pm − pn| = |pm − pm−1 + pm−1 + ...+ pn+1 − pn|≤ |pm − pm−1| + |pm−1 − pm−2| + ...+ |pn+1 − pn|≤ km−n|pn − pn−1| + ...+ k|pn − pn−1|= (k + ...+ km−n)|pn − pn−1| .

Omdat limm→∞

pm = p geldt

|p− pn| = limm→∞

|pm − pn| 5 k∞∑

i=0

ki|pn − pn−1| =k

1 − k|pn − pn−1| .

Dit betekend dat als we stoppen wanneer

|pn − pn−1| ≤1 − k

kε ,

dan geldt |p− pn| ≤ ε.

4.4 De Newton-Raphson methode

De Newton-Raphson methode is een van de krachtigste en bekendste numerieke methodenvoor het oplossen van een niet-lineaire vergelijking f(x) = 0. We zullen de methode uitleggenaan de hand van een Taylorpolynoom.

Veronderstel f ∈ C2[a, b]. Laat x ∈ [a, b] een benadering zijn van de oplossing p zodanig datf

(x) 6= 0 en veronderstel dat |x− p| klein is. Beschouw het eerste graads Taylorpolynoom:

f(x) = f(x) + (x− x)f′

(x) +(x− x)2

2f

′′

(ξ(x)) ,

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

0 = f(x) + (p− x)f′

(x) +(p− x)2

2f

′′

(ξ(x)) .

Omdat we aangenomen hebben dat |p− x| klein is geldt:

0 ≈ f(x) + (p− x)f′

(x) .

42

Page 49: Numerieke Methoden voor Differentiaalvergelijkingen

Als we hieruit p oplossen krijgen we

p ≈ x− f(x)

f ′(x).

Dit motiveert de Newton-Raphson methode, die start met een beginbenadering p0 en een rijpn genereert volgens

pn = pn−1 −f(pn−1)

f ′(pn−1), voor n ≥ 1 .

VoorbeeldStel we willen het positieve nulpunt bepalen van de functie f(x) = x2−2. Het exacte antwoordis p =

√2 = 1.41421. We nemen als startpunt p0 = 1. De vergelijking van de raaklijn is nu

h(x) = −1 + 2(x− 1).

De nieuwe benadering van het nulpunt p1 is nu:

p1 = 1 − −1

2= 1.5.

Zo doorgaande vinden we:p1 = 1.50000p2 = 1.41666p3 = 1.41421

Hieruit blijkt dat de oplossing al na 3 stappen gevonden is. De procedure voor de eersteiteratie staat uitgelegd in Figuur 4.2.

−1 0 1 2

1

−1

2

−2

p0

f(p0)

p1

f(x) = x2−2raaklijn

Figuur 4.2: De Newton-Raphson methode

We kunnen dezelfde stopcriteria gebruiken als bij de bisectie methode:

|pn − pn−1||pn|

< ε of |f(pn)| < ε .

43

Page 50: Numerieke Methoden voor Differentiaalvergelijkingen

In de stelling hierna geven we het verband tussen de Newton-Raphson iteratie en een vastepunt methode.

Stelling 4.4.1 Laat f ∈ C2[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 pn genereert, die naar p convergeert voor elkep0 ∈ [p− δ, p+ δ].

Bewijs:Beschouw Newton’s methode als de vaste punt iteratie pn = g(pn−1) met

g(x) = x− f(x)

f ′(x).

We proberen eerst een interval [p−δ, p+δ] te vinden zodat |g ′

(x)| ≤ k < 1 voor (p−δ, p+δ).Omdat f

(p) 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

g′

(x) = 1 − (f′

(x))2 − f(x)f′′

(x)

(f ′(x))2=f(x)f

′′

(x)

(f ′(x))2.

Omdat f ∈ C2[a, b] is g(x) ∈ C1[p− δ1, p+ δ1]. Merk op dat g′

(p) = 0 omdat f(p) = 0. Daarg′

continu is, bestaat er een δ < δ1 zodat

|g′

(x)| ≤ k < 1 voor alle x ∈ [p− δ, p+ δ] .

Als laatste moeten we laten zien dat g : [p− δ, p+ δ] → [p− δ, p+ δ]. Uit de middelwaarde-stelling volgt

|g(x) − g(p)| = |g′

(ξ)||x− p| voor ξ tussen x en p .

Omdat x ∈ [p− δ, p+ δ] geldt |x− p| < δ en dus

|g(x) − g(p)| = |g(x) − p| < |x− p| < δ .

Hiermee is de stelling bewezen.

Om een goede vergelijking van convergentie mogelijk te maken voeren we de volgende definitiein.

DefinitieStel pn∞n=0 is een rij die convergeert naar p, met pn 6= p voor alle n.

Als er positieve constantes λ en α bestaan met

limn→∞

|pn+1 − p||pn − p|α = λ , (4.1)

dan convergeert pn naar p met orde α en asymptotische constante λ.

In het algemeen convergeert een hogere orde methode sneller dan een lagere orde methode. Dewaarde van de asymptotische constante is minder belangrijk. Twee gevallen zijn belangrijk

- als α = 1 dan noemen we het proces lineair convergent,

44

Page 51: Numerieke Methoden voor Differentiaalvergelijkingen

- als α = 2 dan noemen we het proces kwadratisch convergent.

Het is eenvoudig om in te zien dat elke convergerende vaste punt methode tenminste lineairconvergent is.

Voor Newton Raphson merken we op

0 = f(p) = f(pn) + (p− pn)f′

(pn) +(p− pn)

2

2f

′′

(ξn) , ξn ∈ (pn, p) .

Volgens de definitie geldt0 = f(pn) + (pn+1 − pn)f

(pn) .

Aftrekken geeft

pn+1 − p = (pn − p)2f

′′

(ξ)

2f ′(pn).

Dit is inderdaad van de gedaante (4.1) met α = 2 en λ = f′′

(p)

2f′(p)

, zodat Newton Raphson

kwadratisch convergent is.

Er zijn allerlei varianten op de Newton Raphson methode bekend. We zullen deze alleennoemen.

Secant methode (Koorden Newton)

Vervang f′

(pn−1) door f(pn−1)−f(pn−2)pn−1−pn−2

. Voordeel hiervan is dat f′

niet bepaald behoeft teworden.

Regula Falsi methodeStel er zijn twee benaderingen gegeven p0 en p1 zodanig dat f(p0) · f(p1) < 0. Het schemaom p te benaderen is nu:

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 = qstap 5 p1 = p

q1 = q

4.5 Stelsels niet-lineaire vergelijkingen

Een stelsel van niet-lineaire vergelijkingen heeft de vorm

f1(x1, ..., xn) = 0 ,...

fn(x1, ..., xn) = 0 .

45

Page 52: Numerieke Methoden voor Differentiaalvergelijkingen

We noteren dit ook alsF (x) = 0 . (4.2)

De Newton-Raphson methode voor (4.2) wordt gegeven door

x(p) = x(p−1) − J(x(p−1))−1F (x(p−1)) .

Hierbij wordt J(x) de Jacobiaan matrix genoemd, die gedefinieerd is als:

J(x) =

∂f1(x)∂x1

. . . ∂f1(x)∂xn

......

∂fn(x)∂x1

. . . ∂fn(x)∂xn

.

Als het exact uitrekenen van∂fj

∂xk(x) onmogelijk is, dan kunnen we de partiele afgeleiden

vervangen door eindige differentie benaderingen. Bijvoorbeeld

∂fj∂xk

(x) ≈ fj(x + ekh) − fj(x)

h,

waarbij ek de ke eenheidsvector is. Dit noemen we een quasi-Newton methode.

4.6 Samenvatting

In dit hoofdstuk zijn de volgende begrippen behandeld:

- Bisectie methode

- stopcriteria

- convergentie

- vaste punt iteratie (Picard)

- Newton Raphson

- Secant methode, Regula Falsi methode

- stelsels niet-lineaire vergelijkingen

46

Page 53: Numerieke Methoden voor Differentiaalvergelijkingen

4.7 Opgaven

1. Stel f(x) = 3(x + 1)(x − 12)(x − 1). Gebruik de Bisectie methode op de volgende

intervallen om p3 te bepalen: [-2 1.5] en [-1.25 2.5].

2. We beschouwen de vaste punt methoden: pn =20pn−1+21/p2n−1

21 en pn = pn−1 −p3n−1−21

3p2n−1.

Beantwoord voor beide methoden de volgende vragen. Laat zien dat het vaste punt(21)

13 is. Geef een schatting van de convergentie snelheid. Bepaal p3 met p0 = 1.

3. We gaan een methode afleiden voor het bepalen van een nulpunt van f gebaseerd opinterpolatie.

(a) Stel er zijn twee startwaarden gegeven p0 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) = x2 − 2 met p0 = 1 enp1 = 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 hetvolgende niet-lineaire stelsel op te lossen: x2

1 − x2 − 3 = 0 en −x1 + x22 + 1 = 0 .

Vergelijk de benadering met de exacte oplossing (2, 1).

47

Page 54: Numerieke Methoden voor Differentiaalvergelijkingen

Hoofdstuk 5

Numerieke integratie

5.1 Introduktie

Voor het bepalen van volume, massa, lengte enz. is het nodig om de integraal van een functieuit te rekenen. Vaak is het onmogelijk om van een integrand de primitieve te vinden. Omdan 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 vaneen vrachtwagen (Figuur 5.1). De vorm van de spoiler wordt beschreven door een sinusfunctiemet 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 afmetingvan 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

l =

0.8∫

0

1 +

(

dy

dt

)2

dt =

0.8∫

0

1 + (cos t)2dt .

Deze integraal is niet eenvoudig te bepalen. We zullen in dit hoofdstuk laten zien hoe degezochte lengte bepaald kan worden met behulp van numerieke integratie.

5.2 Eenvoudige numerieke integratieformules

Na een herhaling van de definitie van een integraal zullen we een aantal eenvoudige integra-tieregels geven. Hiervan zal de benaderingsfout en het effect van afrondfouten onderzochtworden.

DefinitieEen partitie P van [a, b] is een eindig aantal punten xk waarbij a = x0 < x1... < xn = b. Eenbijbehorende strooiing T is een verzameling tussenpunten tk zodat xk−1 ≤ tk ≤ xk. De lengtevan een interval geven we aan met hk = xk − xk−1 en de maaswijdte m(P ) = max

1≤k≤nhk. De

48

Page 55: Numerieke Methoden voor Differentiaalvergelijkingen

1 2 3 4 5 6

−1

−0.5

0

0.5

1

1.5

2

2.5

3

Lengte

Hoo

gte

NumeriekeIntegratie B.V.

Figuur 5.1: Vrachtwagen met spoiler op de cabine

Riemannsom voor een functie f die continu is op [a, b] is nu gedefineerd als:

R(f, P, T ) =n∑

k=1

f(tk)hk .

Kies een rij verdelingen P1, P2, ... en bijbehorende strooiingen Tn zodanig dat m(Pn) → 0 danconvergeert

R(f, Pn, Tn) naar een limiet I =

b∫

a

f(x)dx .

Numerieke integratieregels lijken veel op de Riemannsom. Het belangrijkste verschil is degewenste efficientie bij numerieke integratie.

De RechthoekregelNeem een equidistante verdeling zodat de knooppunten gegeven worden door: xk = 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

IR = h[f(a) + f(a+ h) + ...+ f(b− h)] .

Stelling 5.2.1 Zij f een differentieerbare functie op [a, b]. Stel M1 is het maximum van |f ′ |op [a, b] dan geldt:

|b∫

a

f(x)dx− IR| ≤1

2M1(b− a)h

49

Page 56: Numerieke Methoden voor Differentiaalvergelijkingen

Bewijs:We beschouwen eerst het interval [xk−1, xk]. Uit een Taylor ontwikkeling volgt:

f(x) = f(xk−1) + (x− xk−1)f′

(ξ(x)) met xk−1 ≤ ξ(x) ≤ xk .

Hieruit volgt:

|xk∫

xk−1

[f(x) − f(xk−1)]dx| ≤M1

xk∫

xk−1

(x− xk−1)dx ,

zodat

|xk∫

xk−1

f(x)dx− hf(xk−1)| ≤1

2M1h

2 .

Voor de totale fout geldt dus:

|b∫

a

f(x)dx− IR| ≤n∑

k=1

|xk∫

xk−1

f(x)dx− hf(xk−1)| ≤1

2M1h

2n =1

2M1(b− a)h .

Voorbeeld(spoiler)Voor het voorbeeld genoemd in de introductie willen we de lengte van de vlakke plaat bena-deren met een fout van 1 cm. Als we de Rechthoekregel toepassen betekent dit dat

1

2M10.8h ≤ 0.01 .

De afgeleide van de integrand f(t) =√

1 + (cos t)2 wordt gegeven door:

f′

(t) =− cos t sin t√

1 + (cos t)2=

−12 sin 2t

1 + (cos t)2.

Hieruit volgt |f ′ | ≤ M1 ≤ 12 zodat een stapgrootte h = 0.05 voldoende zou moeten zijn. De

integraal is 1.0759 m in 5 cijfers nauwkeurig. Voor n = 16 geeft de Rechthoekregel 1.0807zodat de fout inderdaar kleiner is dan 1 cm.

De nauwkeurigheid van de Rechthoekregel is O(h). Hierna wordt een methode gegeven, diemet dezelfde hoeveelheid werk, een nauwkeuriger antwoord geeft.

MidpuntregelNeem een equidistante verdeling zodat de knooppunten gegeven worden door: xk = kh, k =0, 1, ..., n en h = b−a

n . De middenpuntenxk+xk−1

2 worden als strooipunten gekozen. DeRiemannsom wordt dan gegeven door:

Im = h[f(a+1

2h) + f(a+

3

2h) + ...+ f(b− 1

2h)] .

50

Page 57: Numerieke Methoden voor Differentiaalvergelijkingen

Stelling 5.2.2 Zij f een tweemaal differentieerbare functie op [a, b]. Stel M2 is het maximumvan |f ′′ | op [a, b] dan geldt:

|b∫

a

f(x)dx− Im| ≤1

24M2(b− a)h2 .

Bewijs deze stelling zelf.(Hint: ontwikkel f rond

xk+xk−1

2 in een Taylorpolynoom van de graad 1).

Voorbeeld (spoiler)In Tabel 5.1 zijn de fouten gegeven voor verschillende waarden van de stapgrootte h. Opgrond van de theorie verwachten we dat de fout bij de rechthoeksregel afneemt met een factor

h rechthoeksregel Midpuntregel0.8 − 0.055 − 0.01170.4 − 0.0336 − 0.00280.2 − 0.0182 − 0.000680.1 − 0.0094 − 0.000170.05 − 0.0048 − 0.000043

Tabel 5.1: De fout voor verschillende waarden van h.

2 en die bij de Midpuntregel met een factor 4 als h gehalveerd wordt. De resultaten zijn inovereenstemming met onze verwachtingen.

Ook bij numerieke integratie kunnen meet- en afrondfouten een belangrijke rol spelen. Neemaan dat de functiewaarden verstoord zijn met een fout ε:

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

Als we de integraal benaderen met de Rechthoekregel dan geldt:

|b∫

a

f(x)dx− h

n−1∑

i=0

f(xi)| ≤1

2M1(b− a)h+ h

n−1∑

k=0

ε(xk) .

Onder de aanname |ε(x)| ≤ εmax volgt:

|b∫

a

f(x)dx− IR| ≤ (1

2M1h+ εmax)(b− a) .

Merk op dat het geen zin heeft om h veel kleiner te kiezen dan 2εmaxM1

.

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 integrandeen afrondfout ε(x) = 10−3. In Figuur 5.2 zien we het effect van de afrondfouten: de totalefout blijft groter dan 0.8×10−3. Verder heeft het geen zin om de stapgrootte kleiner te kiezen

51

Page 58: Numerieke Methoden voor Differentiaalvergelijkingen

10−4

10−3

10−2

10−1

100

10−5

10−4

10−3

10−2

10−1

100

stapgrootte

fout

Met afrondfoutenZonder afrondfouten

Figuur 5.2: De fout in de bepaling van de lengte van de vlakke plaat.

dan 4εmax = 4 · 10−3.

Als laatste kan voor de numerieke bepaling van een integraal I onderscheid gemaakt wordentussen een goed en een slecht gesteld probleem. Neem aan dat de fout begrensd wordt doorde ongelijkheid

|f(x) − f(x)| ≤ |f(x)|ε .Een bovengrens voor de relatieve fout in het antwoord is nu

|b∫

af(x)dx−

b∫

af(x)dx|

b∫

af(x)dx

b∫

a|f(x)|dx

b∫

af(x)dx

· ε .

Definieer KI =

bR

a

|f(x)|dx

bR

a

f(x)dx

als het conditiegetal van de integraal I. Als KI 1 dan is het

numeriek bepalen van I een slecht gesteld probleem.

Voorbeeld (winst/verlies)De winst of het verlies per dag van een autofabrikant is afhankelijk van het seizoen. In dewinter worden minder auto’s verkocht dan in de zomer. In de winter zijn de kosten hoger dande inkomsten en wordt er dus verlies geleden. We veronderstellen de volgende winstformule(in miljard $) in het eerste kwartaal:

wlente(t) = 0.01 + sin(πt− π

2) , t ∈ [0, 1]

52

Page 59: Numerieke Methoden voor Differentiaalvergelijkingen

en in het derde kwartaal:

wherfst(t) = 0.01 + sin(πt+π

2) , t ∈ [0, 1] .

De totale winst in het eerste kwartaal (Wlente) is gelijk aan:

Wlente =

1∫

0

wlente(t)dt .

In beide kwartalen bedraagt de winst 0.01 (is 10 miljoen $). Omdat

1∫

0

|wlente(t)|dt ' 0.63

is KI = 63 en is het bepalen van de integraal een slecht gesteld probleem. Als we beideintegralen bepalen met de Rechthoekregel krijgen we voor n = 50 de antwoorden:

Wlente = −0.01 ,

Wherfst = 0.03 .

De kleine stapgrootte h = 0.02 is niet voldoende klein om de winst correct te bepalen.

5.3 Newton Cotes formules

In deze paragraaf zullen we algemene integratieregels beschrijven. We beginnen met de Tra-peziumregel en we geven het verband tussen numerieke integratie en interpolatie. Daarnabehandelen we integratieregels die gebaseerd zijn op hogere orde interpolatie. Als een bijzon-der geval daarvan beschouwen we de Newton Cotes formules.

De TrapeziumregelLaat a en b twee punten in R zijn, a < b en f een continue functie op [a, b]. Laat p het lineaireinterpolatiepolynoom van f op a en b zijn (zie paragraaf 2.2):

p(x) =b− x

b− af(a) +

x− a

b− af(b) .

We nemen nub∫

ap(x)dx als benadering voor

b∫

af(x)dx:

b∫

a

p(x)dx =b− a

2(f(a) + f(b)) . (5.1)

Deze benadering heet de Trapeziumregel, omdat (5.1) gelijk is aan het oppervlak van hettrapezium met hoekpunten (a, 0), (b, 0), (b, f(b)) en (a, f(a)). Merk op dat de Trapeziumregelook aan de orde geweest is in paragraaf 6.3 bij het oplossen van beginwaarde problemen.

53

Page 60: Numerieke Methoden voor Differentiaalvergelijkingen

De resttermBij lineaire interpolatie op a en b hebben we de volgende afbreekfout

f(x) − p(x) =1

2(x− a)(x− b)f

′′

(ξ(x)) , (5.2)

waarbij we ξ(x) schrijven in plaats van ξ om de afhankelijkheid van ξ ten aanzien van x tebenadrukken. Als we de linker- en rechterterm van (5.2) integreren dan krijgen we:

b∫

a

f(x)dx− b− a

2(f(b) + f(a)) =

1

2

b∫

a

(x− a)(x− b)f′′

(ξ(x))dx . (5.3)

Deze restterm kan men schatten met behulp van de volgende stelling:

Stelling 5.3.1 Zij f ∈ C2[a, b]. Dan is er een η ∈ [a, b] zo dat

b∫

a

f(x)dx− b− a

2(f(a) + f(b)) =

−(b− a)3

12f

′′

(η) .

Bewijs: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]:

m

b∫

a

(x− a)(b− x)dx ≤b∫

a

(x− a)(b− x)f′′

(ξ(x))dx

≤ M

b∫

a

(x− a)(b− x)dx ,

zodat er een µ ∈ (m,M) is waarvoor geldt

b∫

a

(x− a)(b− x)f′′

(ξ(x))dx = µ

b∫

a

(x− a)(b− x)dx =µ(b− a)3

6.

Omdat f′′

continu is, is er een η ∈ [a, b] zodat µ = f′′

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

Als we de Trapeziumregel gebruiken om een integraal te benaderen dan is de fout meestalgroter dan de gewenste nauwkeurigheid. Een nauwkeuriger antwoord kan verkregen wordenmet de gerepeteerde Trapeziumregel. In dit geval verdeelt men het interval in n delen tergrootte h = b−a

n . Op elk deelinterval [xk−1, xk] met xk = a+kh wordt dan de Trapeziumregeltoegepast:

xk∫

xk−1

f(x)dx =h

2[f(xk) + f(xk−1)] −

h3

12f

′′

(ηk) ,

54

Page 61: Numerieke Methoden voor Differentiaalvergelijkingen

met xk−1 ≤ ξk ≤ xk. Dus

b∫

a

f(x)dx = h[1

2f(x0) + f(x1) + ...+ f(xn−1) +

1

2f(xn)]

−h3

12

n∑

k=1

f′′

(ξk) . (5.4)

Omdat voor een continue functie f′′

geldt:

minkf

′′

(ξk) ≤1

n

n∑

k=1

f′′

(ξk) ≤ maxk

f′′

(ξk)

bestaat er een ξ ∈ [a, b] zodatn∑

k=1

f′′

(ξk) = nf′′

(ξ) .

Dit invullen in (5.4) geeft

b∫

a

f(x)dx = IT (h) − b− a

12h2f

′′

(ξ) ,

waarbij IT (h) = h[ 12f(x0) + f(x1) + ...+ 12f(xn)] .

Opmerkingen

1. De Restterm bij de gerepeteerde Trapeziumregel is O(h2), terwijl de Rechthoekregel eenrestterm O(h) heeft. Bij beiden methoden wordt dezelfde hoeveelheid werk gebruikt.De Trapeziumregel heeft dus duidelijk de voorkeur.

2. De gerepeteerde Trapeziumregel kan ook als volgt geınterpreteerd worden. Stel s is delineaire spline benadering van f op a = x0, ..., xn = b. Dan geldt

IT (h) =

b∫

a

s(x)dx .

Voorbeeld (winst/verlies)We hebben de winst uit het voorbeeld gegeven in paragraaf 5.2 ook benaderd met de Trape-ziumregel. Voor n = 50 krijgen we de antwoorden:

Wlente = 0.01 en Wherfst = 0.01 .

Merk op dat de resultaten nu exact zijn.

Algemene kwadratuurformulesWe hebben gezien dat lineaire interpolatie aanleiding geeft tot de Trapeziumregel. Als weandere interpolatieformules gebruiken krijgen we verschillende integratieregels.

55

Page 62: Numerieke Methoden voor Differentiaalvergelijkingen

Laat x0, ..., xm ∈ [a, b] gegeven zijn. Zij p het Lagrange interpolatiepolynoom van f op de

punten x0, ..., xm. We nemen danb∫

ap(x)dx als benadering voor

b∫

af(x)dx. Omdat p(x) =

m∑

k=0

f(xk)Lkm(x) geldt

b∫

a

p(x)dx =m∑

k=0

wkf(xk) ,

met als coefficienten

wk =

b∫

a

Lkm(x)dx ,

die blijkbaar onafhankelijk van f zijn. We noemenm∑

k=0

wkf(xk) de bij x0, ..., xm behorende

interpolatoire kwadratuurformule voorb∫

af(x)dx. De xk heten de steunpunten en wk de

gewichten van de kwadratuurformule.

Stelling 5.3.2 Als f een polynoom van hoogstens graad m is, dan is elke m+ 1-punts inter-polatoire kwadratuurformule exact:

b∫

a

f(x)dx =m∑

k=0

wkf(xk) .

Bewijs:Uit stelling 2.3.1 volgt dat f samenvalt met zijn Lagrange interpolatiepolynoom op x0, ..., xmen dus geldt

b∫

a

f(x)dx =

b∫

a

p(x)dx .

Omgekeerd geldt:

Stelling 5.3.3 Wanneer x0, .., xm en w0, ..., wm gegeven getallen zijn en er geldt

b∫

a

p(x)dx =

m∑

k=0

wkp(xk) ,

voor alle polynomen p van de graad ≤ m, dan ism∑

k=0

wkf(xk) de bij x0, ..., xm behorende

interpolatoire kwadratuurformule voorb∫

af(x)dx.

56

Page 63: Numerieke Methoden voor Differentiaalvergelijkingen

Bewijs:Zij p het interpolatiepolynoom op x0, ..., xm van f . De vraag is dan of geldt

b∫

a

p(x)dx =

m∑

k=0

wkf(xk)?

Dit is zo omdatb∫

a

p(x)dx =m∑

k=0

wkp(xk) =m∑

k=0

wkf(xk) .

We kunnen deze stelling ook gebruiken om de gewichten wk uit te rekenen als de puntenx0, ..., xm gegeven zijn. Neem voor p(x) achtereenvolgens 1, x, ..., xm. Dit levert een stelselvan m + 1 vergelijkingen in de m + 1 onbekenden wk op. Men kan aantonen dat dit stelseleenduidig oplosbaar is.

MidpuntregelAls we de nulde orde interpolatie van f nemen in het punt m = 1

2 (a + b) dan vinden we als

kwadratuurformule voorb∫

af(x)dx:

(b− a)f(m) .

Dit noemen we de Midpuntregel. Deze regel is nauwkeuriger dan men op het eerste gezichtzou verwachten. Als f ∈ C2[a, b] dan geldt

f(x) = f(m) + (x−m)f′

(m) +1

2(x−m)2f

′′

(ξ(x))

enb∫

a

f(x)dx = (b− a)f(m) +1

2

b∫

a

(x−m)2f′′

(ξ(x))dx .

Omdat (x−m)2 ≥ 0 is kunnen we afleiden

b∫

a

f(x)dx− (b− a)f(m) =(b− a)3

24f

′′

(ξ) .

Voorbeeld (winst/verlies)Als we de winst of het verlies uitrekenen met de gerepeteerde Midpuntregel

h[f(a+1

2h) + ...+ f(b− 1

2h)] ,

dan krijgen we voor n = 50

Wlente = 0.01 en Wherfst = 0.01 .

Newton-Cotes formulesLaat x0, ..., xm equidistant in [a, b] liggen met x0 = a en xm = b. De kwadratuurformules,

57

Page 64: Numerieke Methoden voor Differentiaalvergelijkingen

die ontstaan door integratie van het m-de orde interpolatiepolynoom pm van f noemt menNewton-Cotes formules.

Voor de resttermen van deze formules geldt de volgende stelling:

Stelling 5.3.4 Voor de restterm Rm van de Newton Cotes kwadratuurformules voor het be-

naderen vanb∫

af(x)dx geldt:

als m even is en f ∈ Cm+2[a, b] dan

Rm = Cm

(

b− a

m

)m+3

f (m+2)(ξ) met

Cm =1

(m+ 2)!

m∫

0

t2(t− 1)...(t −m)dt ;

als m oneven is en f ∈ Cm+1[a, b] dan

Rm = Dm

(

b− a

m

)m+2

f (m+1)(ξ) met

Dm =1

(m+ 1)!

m∫

0

t(t− 1)...(t −m)dt .

SimpsonregelWe kiezen nu als steunpunten x0 = a, x1 = 1

2(a+ b) en x2 = b. De integratieregel is dan

b− a

6[f(x0) + 4f(x1) + f(x2)] .

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.

5.4 Gauss formules∗

De integratieregelsm∑

k=0

wkf(xk) hebben we afgeleid door de steunpunten xk van te voren te

kiezen en vervolgens de wk te bepalen zodat de regel exact is voor polynomen van de graad≤ m. Men zou echter ook de vraag kunnen stellen bepaal alle wk en xk zo dat polynomenvan een zo hoog mogelijke graad nog exact worden geıntegreerd, in de hoop dat dit ookvoor willekeurige functies tot betere resultaten zal leiden. Door te eisen dat 1, x, ..., x2m+1

exact worden geıntegreerd ontstaat er een stelsel van 2m+2 niet-lineaire vergelijkingen in de2m+2 onbekenden wk en xk. Men kan aantonen dat dit stelsel oplosbaar is. De resulterendekwadratuurformules heten Gauss formules. Voor de m + 1 punts Gauss formule geldt devolgende restterm:

R =(b− a)2m+3((m+ 1)!)4

(2m+ 3)((2m + 2)!)3f (2m+2)(ξ) .

58

Page 65: Numerieke Methoden voor Differentiaalvergelijkingen

Voorbeeld (2 punts Gauss formule)Stel dat we c0, c1, x0 en x1 willen bepalen zo dat de integratieformule

1∫

−1

f(x)dx ≈ c0f(x0) + c1f(x1)

het exacte resultaat geeft als f een polynoom is van de graad 3. We kiezen voor f de functies1, x, x2 en x3 zodat c0, c1, x0 en x1 moeten voldoen aan

f(x) = 1 ⇒ c0 + c1 =

1∫

−1

1dx = 2 ,

f(x) = x⇒ c0x0 + c1x1 =

1∫

−1

xdx = 0 ,

f(x) = x2 ⇒ c0x20 + c1x

21 =

1∫

−1

x2dx =2

3,

f(x) = x3 ⇒ c0x30 + c1x

31 =

1∫

−1

x3dx = 0 .

Het is eenvoudig om in te zien dat de oplossing van dit stelsel gegeven wordt door

c0 = 1 , c1 = 1 , x0 =−√

3

3en x1 =

√3

3,

zodat de integratieformule gegeven wordt door

1∫

−1

f(x)dx ≈ f

(

−√

3

3

)

+ f

(√3

3

)

.

Voorbeeld (vergelijken methoden)

In Tabel 5.2 staan de resttermen als men ter berekening vanπ∫

0

sinxdx een zeker aantal punten

investeert in Trapezium, Simpson en 5-punts Gauss. Opvallend is dat 5-punts Gauss enkel-voudig toegepast reeds zo’n goed resultaat geeft, alsmede dat halvering van het interval bij5-punts Gauss de nauwkeurigheid zo snel doet toenemen.

5.5 Samenvatting

In dit hoofdstuk zijn de volgende begrippen behandeld:

- Numerieke integratie

- rechthoekregel

59

Page 66: Numerieke Methoden voor Differentiaalvergelijkingen

aantal aantalmethode 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

Tabel 5.2: Vergelijking verschillende integratiemethoden.

- midpuntregel

- gerepeteerde regels

- Newton Cotes formules

- Trapeziumregel

- Simpsonregel

- Gauss formules

60

Page 67: Numerieke Methoden voor Differentiaalvergelijkingen

5.6 Opgaven

1. We willen de volgende integraal bepalen:

1∫

−1

[(10x)3 + 0.001]dx.

(a) De relatieve afrondfout in de functiewaarden is kleinder dan ε. Bepaal de relatievefout in de integraal ten gevolge van de afrondfouten.

(b) We nemen de gerepeteerde midpuntregel als numerieke integratie methode en ε =4 ∗ 10−8. Geef een redelijke waarde voor de stapgrootte h.

2. Bepaal1∫

0.5

x4dx met de Trapeziumregel. Schat de fout en vergelijk deze schatting met de

echte fout. Bereken de integraal ook met de gerepeteerde Trapeziumregel met h = 0.25.Schat de fout met Richardson’ s foutschatting.

61

Page 68: Numerieke Methoden voor Differentiaalvergelijkingen

Hoofdstuk 6

Numerieke tijdsintegratie voorbeginwaarde problemen

6.1 Inleiding

Een beginwaarde probleem is meestal een wiskundige beschrijving (differentiaalvergelijking)van een tijdsafhankelijk probleem. De voorwaarden, die nodig zijn om een unieke oplossingte 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. Doorde traagheid van het water komt de stroming geleidelijk op gang. Als dit stromende watergebruikt wordt om electriciteit op te wekken, dan is het van belang om te weten hoe lang hetduurt, voordat de turbines op vol vermogen werken.

Een beschrijving van dit proces wordt gegeven door de niet-lineaire differentiaalvergelijking

dq

dt= p(t) − aq2 ,

met beginvoorwaardeq(0) = 0 .

Hierin is q(m3/s) de afvoer, p is de drijvende kracht (kracht/lengte

dichtheidofwel N/m

kg/m3 = m3/s2) en

aq2 is de wrijvingskracht. De drijvende kracht is onder andere afhankelijk van het waterpeilin het stuwmeer. Als we veronderstellen dat p(t) constant is (p(t) = p0) dan is een analytischeoplossing bekend namelijk

q =

p0

atanh(t

√ap0) .

De numerieke oplossing kan voor willekeurige functies p bepaald worden.

6.2 Theorie van beginwaarde problemen

In deze paragraaf zullen we een korte samenvatting geven van de theorie van beginwaardeproblemen. Voor het bepalen van een numerieke oplossing van een beginwaarde probleem is

62

Page 69: Numerieke Methoden voor Differentiaalvergelijkingen

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 verzamelingD ⊂ R

2, als er een constante L > 0 bestaat zo dat

|f(t, y1) − f(t, y2)| ≤ L|y1 − y2|,

voor alle (t, y1), (t, y2) ∈ D. De constante L wordt de Lipschitz constante genoemd.

Als de functie f differentieerbaar is in de variabele y dan geldt, dat f(t, y) Lipschitz continuis in de variabele y als geldt:

|∂f∂y

(t, y)| ≤ L, voor alle (t, y) ∈ D.

Niet alleen het bestaan van een unieke oplossing is van belang, maar ook de vraag hoe eenoplossing verandert als er kleine verstoringen aangebracht worden in de beginvoorwaarden ofde differentiaalvergelijking. We voeren daarom het begrip goed gesteld probleem in.

Definitie 6.2.2 Het beginwaarde probleem

dy

dt= f(t, y), a ≤ t ≤ b, y(a) = ya,

heet goed gesteld als

1. Het probleem een unieke oplossing heeft;

63

Page 70: Numerieke Methoden voor Differentiaalvergelijkingen

2. Voor elke ε > 0, bestaat er een positieve constante k, zodat als |ε0| < ε en δ(t) is continumet |δ(t)| < ε op [a, b] dan bestaat er een unieke oplossing z(t), zodat

dz

dt= f(t, z) + δ(t), a ≤ t ≤ b, z(a) = ya + ε0,

waarbij z voldoet aan de ongelijkheid:

|z(t) − y(t)| < kε, voor alle a ≤ t ≤ b.

De volgende stelling geeft aan wanneer een beginwaarde probleem goed gesteld is.

Stelling 6.2.1 Veronderstel dat D = (t, y)|a ≤ t ≤ b,−∞ < y <∞ en dat f(t, y) continuis. Als f Lipschitz continu is in de variabele y dan is het beginwaarde probleem

dy

dt= f(t, y), a ≤ t ≤ b, y(a) = ya,

goed gesteld.

6.3 Eenstaps methoden

In tegenstelling tot het voorbeeld in paragraaf 6.1 is het voor vele in de praktijk voorkomendedifferentiaalvergelijkingen onmogelijk de oplossing analytisch te bepalen. Voor niet–lineairedifferentiaalvergelijkigen bestaat daarvoor in elk geval geen algemene theorie. Weliswaarbestaan er algemeen toepasbare technieken om bepaalde qualitatieve eigenschappen van deoplossing op te sporen maar deze geven meestal onvoldoende quantitatieve informatie. Hier-voor moet je je toevlucht nemen tot numerieke methoden welke de oplossing approximeren.Praktisch alle numerieke methoden zijn ontworpen voor eerste orde differentiaalvergelijkingen.Numerieke methoden die direct op hogere orde differentiaalvergelijkingen werken bestaan welmaar worden vrijwel niet toegepast. Hogere orde differentiaalvergelijkigen worden eerst om-geschreven naar een eerste orde stelsel en daarop wordt dan de numerieke methode toegepast.Numerieke methoden voor stelsels worden later in dit college behandeld. Eerst gaan we de ap-proximatie van scalaire eerste orde differentiaalvergelijkingen van het type y ′ = f(t, y), t > t0en y(t0) = y0 bekijken, te beginnen met de voorwaartse methode van Euler, de meest een-voudige integratie methode.

De voorwaartse methode van Euler

Bij de afleiding van de voorwaartse methode van Euler (Euler Voorwaarts) is het inzichtelijkgebruik 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. Een bepaaldeoplossingskromme 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:

y(t) = y0 +

∫ t

t0

y′(t)dt = y0 +

∫ t

t0

f(t, y(t))dt. (6.1)

64

Page 71: Numerieke Methoden voor Differentiaalvergelijkingen

Dit is een integraalvergelijking omdat de onbekende functie y(t) onder het integraaltekenvoorkomt. De integraalvergelijking is analytisch niet minder moeilijk op te lossen dan dedifferentiaalvergelijking maar vormt wel een beter aanknopingspunt voor diverse vormen vanapproximatie van de oplossing. De meest eenvoudige approximatie ontstaat door de integraal∫ tt0f(t, y(t))dt in (6.1) te vervangen door t − t0 maal de waarde van de integrand in het

startpunt (zie Figuur 6.2):

y(t) ≈ y0 + (t− t0)f(t0, y0), t > t0. (6.2)

De rechterzijde stelt de raaklijn aan de oplossingskromme in het startpunt voor. De raaklijnzal de exacte kromme in het algemeen niet volgen en slechts voor korte tijd, zeg h0, een goedebenadering vormen. Daarom willen we vanaf t1 = t0+h0 de richting van de lijn (6.2) aanpassenaan de veranderde richting van de exacte oplossingskromme. De nieuwe approximatielijn startin het approximatiepunt dat we als (t1, w1) aanduiden (zie Figuur 6.3); w1 volgt door in derechterzijde van (6.2) t1 = t0 + h0 voor t in te vullen:

w1 = y0 + h0f(t0, y0). (6.3)

De vergelijking voor de tweede approximatielijn wordt, evenals die voor de eerste, afgeleid uitde integraalformulering voor de oplossing, dit keer voor de ’naburige’ oplossingskromme doorhet punt (t1, w1). Analoog aan (6.3) hebben we voor t2 = t1 + h1:

w2 = y1 + h1f(t1, w1). (6.4)

Voortzetting van deze procedure leidt tot een reeks van approximatiepunten (tn, wn) (n=0,1,2,. . . )met tn+1 = tn + hn en

yn+1 = yn + hnf(tn, yn), (6.5)

waarbij t0 en w0 = y0 gegeven zijn. Meetkundig stelt dit een stuksgewijs lineaire approximatievan de exacte oplossingskromme voor, het zogenaamde Eulerpolygoon.

De essentie van de approximatie wordt gevormd door de discrete set van punten (t0, w0),(t1, w1), (t2, w2), . . . (dat deze verbonden geacht kunnen worden door rechte lijnstukjes iseigenlijk niet zo interessant).

Als er geen bijzondere redenen zijn om het anders te doen kent men aan de stapgroottenh1, h2, . . . dezelfde waarde h toe; men spreekt dan van een approximatie met equidistantestapgrootte h. Bij een equidistante Euler–approximatie gaat (6.5) over in

wn+1 = wn + hf(tn, wn). (6.6)

In dit dictaat worden uitsluitend equidistante integratiemethoden gebruikt.

Enkele numerieke experimenten

Het gedrag van de afbreekfout op de tijdstippen t0, t1, . . . als functie van de stapgrootte vormtsteeds het centrale thema bij de analyse van numerieke methoden voor differentiaalvergelij-kingen. Deze paragraaf bevat een inleidende studie aan de hand van een aantal numeriekeexperimenten met de voorwaartse methode van Euler toegepast op het waterafvoerprobleem

q′ = 50 − 2q2(t ≥ 0), q(0) = 0. (6.7)

65

Page 72: Numerieke Methoden voor Differentiaalvergelijkingen

0.2 0.4 0.6 0.8 1 1.2 1.40

5

10

15

t

f(y(t

))

t n tn +h

y(t n )

y(t n +h)

Figuur 6.2: Een-punts approximatie van de integraal in (6.1)

0 0.2 0.4 0.6 0.8 1 1.20.5

0.6

0.7

0.8

0.9

1

1.1

1.2

1.3

1.4

1.5

t

y

w1

y(t1)

t1

w2

y(t2)

t2

w3

y(t3)

t3

EXACT

Figuur 6.3: Approximatie met Euler over meerdere stappen (- -: naburige oplossingskrommenin de diverse approximatiepunten)

66

Page 73: Numerieke Methoden voor Differentiaalvergelijkingen

In de volgende paragrafen zullen we de gevonden resultaten op theoretische wijze trachten teverklaren.Toegepast op de waterafvoervergelijking wordt (6.6):

wn+1 = wn + h(50 − 2w2n), w0 = 0. (6.8)

In Figuur 6.4 zijn twee numerieke benaderingen, berekend met (6.8) voor de stapgroottenh = 0.01, resp. h = 0.05, vergeleken met de analytische oplossing op het interval [0, 0.4]. Vande analytische oplossing

q(t) = 5 tanh(10t), (6.9)

is bekend dat hij vanaf 0 monotoon toeneemt en naar de asymptotische waarde 5 convergeertvoor grote t.

Een paar dingen vallen meteen op. Voor beide stapgrootten is de afbreekfout in het begin heelklein, 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 stapgrootteduidelijk beter dan die met de grotere. In het asymptotische gebied verdwijnt de afbreekfoutvoor beide stapgrootten, voor zover we dat in de figuur kunnen waarnemen tenminste.

Als we voornamelijk geınteresseerd zijn in de asymptotische waarde van de oplossing is diteen uitnodiging om de stapgrootte verder op te voeren omdat dat een winst in efficiencyoplevert. In Figuur 6.5 zien we de resultaten van berekeningen met oplopende stapgrootten.Zolang h < 0.1 dempt de in het middengebied geaccumuleerde afbreekfout weg als je in hetasymptotische gebied komt; dat gaat heel snel als h duidelijk kleiner is dan 0.1 maar heeftmeer tijd (integratiestappen) nodig naarmate h dichter bij 0.1 gekozen wordt. Kies je h ook

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.40

0.5

1

1.5

2

2.5

3

3.5

4

4.5

5

5.5

t

Q

: h= 0.01

: h= 0.05

Figuur 6.4: De Eulerfout bij q′ = 50 − 2q2 voor twee waarden van h

maar iets groter dan 0.1 dan dempt de afbreekfout niet meer weg: voor h zeer weinig groterdan 0.1 blijven de approximatiepunten nog in een bepaald patroon rond de asymptotischewaarde schommelen; voor stapgrootten groter dan ongeveer h = 0.105 echter verwijdert denumerieke approximatie zich in de loop van het integratieproces van de asymptotische waarde;

67

Page 74: Numerieke Methoden voor Differentiaalvergelijkingen

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

1

2

3

4

5

6

t

Q

h = 0.08

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

1

2

3

4

5

6

t

Q

h = 0.09

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

1

2

3

4

5

6

t

Q

h = 0.099

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

1

2

3

4

5

6

t

Q

h = 0.1

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

1

2

3

4

5

6

t

Q

h = 0.101

0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 20

1

2

3

4

5

6

t

Q

h = 0.105

Figuur 6.5: Stabiele en instabiele approximaties met Euler

de snelheid van verwijdering neemt sterk toe met toenemende h. Je kunt stellen dat h = 0.1de omslag van bruikbare naar onbruikbare approximaties scherp markeert.

Het beschreven verschijnsel wordt (numerieke) instabiliteit genoemd en de h–waarde waarbijde omslag van (bruikbare) stabiele naar (onbruikbare ) instabiele approximaties plaatsvindtwordt de stabiliteitsgrens genoemd. In een volgende paragraaf zullen we het verschijnselstabiliteit op theoretische wijze nader verklaren.

De achterwaartse methode van Euler

De achterwaartse methode van Euler (Euler Achterwaarts) ontstaat als we de integraal∫ t1t0f(t, y(t))dt in (6.1) te vervangen door t1 − t0 maal de waarde van de integrand in het

eindpunty(t1) ≈ y0 + (t1 − t0)f(t0, y1).

De numerieke benadering wordt dan:

w1 = w0 + h0f(t0, w1). (6.10)

Merk op dat de onbekende w1 nu ook in het rechterlid voorkomt. We noemen daarom deachterwaartse methode van Euler een impliciete methode. Oplossing van (6.10) is tamelijktriviaal zolang f lineair van y afhangt. Daar hebben we niet zoveel aan want lineaire diffe-rentiaalvergelijkingen kunnen we ook wel analytisch oplossen. Juist voor de numeriek gezieninteressante niet–lineaire differentiaalvergelijkingen is oplossing van w1, hoewel veel eenvou-diger dan oplossing van y(t1) uit de integraalvergelijking (6.1), niet–triviaal. In het algemeen

68

Page 75: Numerieke Methoden voor Differentiaalvergelijkingen

0.2 0.4 0.6 0.8 1 1.2 1.40

5

10

15

t

f(y(

t))

t n tn +h

y(t n)

y(tn+h)

Figuur 6.6: Approximatie van de integraal in (6.1) d.m.v. de trapeziumregel

zal hiervoor een numerieke niet–lineaire solver moeten worden ingezet. Ten opzichte van EulerVoorwaarts is dit een nadeel omdat het veel rekentijd kan kosten.

Als we een impliciete tijdsintegratie methode gebruiken voor het oplossen van een beginwaardeprobleem,

y′

= f(t, y) , t ∈ [0, T ] ,

y(0) = y0

dan moet er in elk tijdstip een niet-lineaire vergelijking opgelost worden. Als voorbeeld nemenwe Euler Achterwaarts, bepaal wj+1 uit

wj+1 − hf(tj+1, wj+1) = wj .

Als startoplossing kiest men vaak w(0)j+1 = wj terwijl de iteranden w

(n)j+1 bepaald worden uit

w(n−1)j+1 met behulp van een van de methoden genoemd in Paragraaf 4.2, 4.3 of 4.4. Omdat

wj vaak een goede beginschatting is zijn er vaak maar enkele iteraties nodig.

De Trapeziumregel

Andere numerieke methoden kunnen afgeleid worden door de integraal in (6.1) met nauw-keuriger integratieregels te benaderen. Als eerste komt in aanmerking de Trapeziumregel (zieFiguur 6.6):

y(t1) ≈ y0 +h

2[f(t0, y0) + f(t1, y(t1))]. (6.11)

69

Page 76: Numerieke Methoden voor Differentiaalvergelijkingen

Gelijkstellen van linker– en rechterlid geeft een formule voor de approximatie w1 van de exactewaarde y(t1):

w1 = w0 +h

2[f(t0, w0) + f(t1, w1)]. (6.12)

Merk op dat ook de Trapeziumregel een impliciete methode is. Het aanpassen van dezemethode 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 w1 in hetrechterlid van (6.12) met behulp van Euler Voorwaarts. Dan ontstaat de volgende zogenaamdepredictor–corrector formule:

predictor: w1 = w0 + hf(t0, w0),

corrector: w1 = w0 +h

2[f(t0, w0) + f(t1, w1)]. (6.13)

Gegeven w0 kunnen we de predictor w1 uitrekenen waarna het resultaat ingevuld wordt in decorrector; hiermee is een geheel expliciete formule voor w1 ontstaan.De volgende stappen kunnen we op hetzelfde principe baseren. Dit geeft de predictor–corrector formule:

predictor: wn+1 = wn + hf(tn, wn), (6.14)

corrector: wn+1 = wn +h

2[f(tn, wn) + f(tn+1, wn+1)]. (6.15)

Gegeven wn (uitgerekend in de vorige stap) kunnen we de predictor wn+1 uitrekenen waarnahet resultaat ingevuld wordt in de corrector; hiermee is een geheel expliciete formule ontstaandie als de Modified Euler-methode wordt aangeduid.

Laten we deze methode toepassen op de volgende differentiaalvergelijking

y′ = −10[y − (1 + sin(t/2))] +1

2cos(t/2), y(0) = 1. (6.16)

De oplossing van deze vergelijking is y(t) = 1+sin(t/2), zoals men eenvoudig door substitutiekan nagaan.

De approximatie blijkt (binnen de resolutie van de Figuur 6.7) voor stapgrootten tot aanh = 0.18 vrijwel perfect. Bij h = 0.2 zie je een afbreekfout aan de toppen van de perodiekeoplossing ontstaan. Voor de iets grotere stappen h = 0.201 en h = 0.202 blijkt de afbreekfoutal heel sterk te zijn toegenomen. Voor h = 0.207 blijkt de approximatie totaal onbruikbaarte zijn geworden. Evenals bij de Euler Voorwaarts benadering van de waterafvoervergelijkingblijkt 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 rangevan stapgrootten. De resultaten staan in Figuur 6.8. Bij Euler Voorwaarts lijkt het iets langergoed te gaan, maar bij h = 0.207 is het ook helemaal mis. Het verschil is in feite volkomenmarginaal; we kunnen wel stellen dat ook bij Euler Voorwaarts de stabiliteitsgrens op h = 0.2ligt.

70

Page 77: Numerieke Methoden voor Differentiaalvergelijkingen

0 5 10 15 20 25 30 35 40 45 50−1

−0.5

0

0.5

1

1.5

2

2.5

3

t

Q

methode van Heun met h= 0.18

0 5 10 15 20 25 30 35 40 45 50−1

−0.5

0

0.5

1

1.5

2

2.5

3

t

Q

methode van Heun met h= 0.2

0 5 10 15 20 25 30 35 40 45 50−1

−0.5

0

0.5

1

1.5

2

2.5

3

t

Q

methode van Heun met h= 0.201

0 5 10 15 20 25 30 35 40 45 50−1

−0.5

0

0.5

1

1.5

2

2.5

3

t

Q

methode van Heun met h= 0.202

0 5 10 15 20 25 30 35 40 45 50−1

−0.5

0

0.5

1

1.5

2

2.5

3

t

Q

methode van Heun met h= 0.207

Figuur 6.7: Stabiele en instabiele approximaties van (6.16) met de Modified Euler-methode

0 5 10 15 20 25 30 35 40 45 50−1

−0.5

0

0.5

1

1.5

2

2.5

3

t

Q

methode van Euler met h= 0.18

0 5 10 15 20 25 30 35 40 45 50−1

−0.5

0

0.5

1

1.5

2

2.5

3

t

Q

methode van Euler met h= 0.2

0 5 10 15 20 25 30 35 40 45 50−1

−0.5

0

0.5

1

1.5

2

2.5

3

t

Q

methode van Euler met h= 0.201

0 5 10 15 20 25 30 35 40 45 50−1

−0.5

0

0.5

1

1.5

2

2.5

3

t

Q

methode van Euler met h= 0.207

0 5 10 15 20 25 30 35 40 45 50−1

−0.5

0

0.5

1

1.5

2

2.5

3

t

Q

methode van Euler met h= 0.22

Figuur 6.8: Stabiele en instabiele approximaties van (6.16) met Euler Voorwaarts

71

Page 78: Numerieke Methoden voor Differentiaalvergelijkingen

Er is wel een opvallend verschil tussen beide methoden in de manier waarop de afbreekfoutgroeit in de loop van het integratieproces. Dat zie je heel duidelijk bij h = 0.207. Bij EulerVoorwaarts oscilleren de approximaties rond de exacte oplossing terwijl ze bij de ModifiedEuler allemaal aan een kant ervan liggen. Met andere woorden, bij Euler Voorwaarts alterneerthet teken van de afbreekfout per stap terwijl dit bij de Modified Euler gelijk blijft.

6.4 Foutvoortplanting bij de methode Euler Voorwaarts

In deze paragraaf willen we de resultaten van de numerieke experimenten uit de vorige para-graaf theoretisch verklaren, te beginnen met de voorwaartse methode van Euler. Recapitule-rend, deze methode approximeert de vergelijking

y′ = f(t, y), y(t0) = w0

volgenswn+1 = wn + hf(tn, wn). (6.17)

De globale afbreekfout op tijdstip tn+1 wordt gedefinieerd als het verschil van de exacte ende 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

0 0.2 0.4 0.6 0.8 1 1.20.5

0.6

0.7

0.8

0.9

1

1.1

1.2

1.3

1.4

1.5

t

y

t n

w n

e n

y(t n )

t n+1

w n+1z n+1

y(t n+1 )EXACT

Figuur 6.9: Opsplitsing van de Euler Voorwaarts-afbreekfout

en en en+1 te relateren.

72

Page 79: Numerieke Methoden voor Differentiaalvergelijkingen

Het punt (tn+1, wn+1) ligt op de lijn die raakt aan de door (tn, wn) gaande naburige oplos-singskromme. We beginnen met een hulppunt (tn+1, zn+1) te kiezen op de lijn die in tn raaktaan de exacte oplossingskromme y(t). De situatie is geıllustreerd in Figuur 6.9. Analytischwordt de waarde van zn+1 gegeven door

zn+1 = y(tn) + hf(tn, y(tn)). (6.19)

Het hulppunt verdeelt het lijnstuk (y(tn+1), wn+1) (de afbreekfout) in twee stukken. Analy-tisch correspondeert met deze verdeling de (van de figuur onafhankelijke) opsplitsing

en+1 = y(tn+1) − wn+1 = (y(tn+1) − zn+1) + (zn+1 − wn+1). (6.20)

Het eerste deel geeft aan hoe goed de raaklijn de exacte oplossing tijdens de stap (tn, tn+1)volgt en staat los van de in de voorgaande stappen geaccumuleerde afbreekfout en. Eenanalytische uitdrukking in termen van de oplossing en zijn afgeleiden volgt door de exacteoplossing y(tn+1) in een Taylorreeks rond het punt tn te ontwikkelen en daarvan (6.19) af tetrekken:

y(tn+1) − zn+1 = y(tn) + hy′(tn) +h2

2y′′(ξn+1) − [y(tn) + hf(tn, y(tn))]

=h2

2y′′(ξn+1), ξn+1 ∈ (tn, tn+1). (6.21)

De afhankelijkheid van de tweede afgeleide van de oplossing is niet verwonderlijk: de nauw-keurigheid van de raaklijnapproximatie hangt natuurlijk samen met de kromming van deoplossingscurve die op zijn beurt weer samenhangt met de tweede afgeleide.

Opmerking.Men kan bovenstaand resultaat ook in een iets andere vorm presenteren door de Taylorreeks voor y(tn+1) alsoneindig voortlopende reeks van machten van h te schrijven:

y(tn+1) − zn+1 =h2

2y′′(ξn+1) =

h2

2y′′(tn) +

h3

6y′′′(tn) +

h4

24y′′′′(tn) + . . . (6.22)

Als y(tn+1) − zn+1 door de stapgrootte wordt gedeeld ontstaat de definitie van de lokaleafbreekfout τn+1. De lokale afbreekfout van de voorwaartse methode van Euler is dus volgens(6.21):

τn+1 =y(tn+1) − zn+1

h=h

2y′′(ξn+1). (6.23)

Het tweede deel van de afbreekfout, zn+1 −wn+1 in (6.20), geeft aan hoe de in de voorgaandestappen geaccumuleerde afbreekfout en wordt doorgegeven naar het punt tn+1. Afhankelijkvan het richtingsverschil tussen de raaklijnen aan de exacte en de naburige oplossingskrommenwordt en versterkt of gedempt doorgegeven.

Analytisch (trek (6.17) en (6.19) van elkaar af):

zn+1 − wn+1 = en + h[f(tn, y(tn)) − f(tn, wn)]. (6.24)

Combineren we (6.24) en (6.23) in (6.20) dan resulteert de afbreekfoutrelatie

en+1 = en + h[f(tn, y(tn)) − f(tn, wn)] + hτn+1, (6.25)

73

Page 80: Numerieke Methoden voor Differentiaalvergelijkingen

met τn+1 gegeven door (6.23), terwijl we en + h[f(tn, y(tn))− f(tn, wn)] in deze beschouwinghet doorgavedeel zullen noemen.

OpmerkingTer onderscheid van de lokale afbreekfout wordt en vaak de globale afbreekfout genoemd. Delokale afbreekfout is een samenstellend deel van de (globale) afbreekfoutrelatie. Wanneer wein 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 integratieprocesontwikkelt als gevolg van het samenspel van bij elke stap toegevoegde afbreekfout en doorgavevan de in de voorgaande stappen geaccumuleerde globale afbreekfout, maar de niet-lineaireterm 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 dezevergelijkingen 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λnen

= (1 + hλn)en.

Bij een lineaire differentiaalvergelijking manifesteert het doorgavedeel zich door middel vaneen 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 inde vorm van een reeks:

eN = (1 + hλ)eN−1 + hτN

= (1 + hλ)2eN−2 + (1 + hλ)hτN−1 + hτN...

= (1 + hλ)Ne0 + (1 + hλ)N−1hτ1 + (1 + hλ)N−2hτ2 + . . . + (1 + hλ)hτN−1 + hτN .

Veronderstellend dat de beginvoorwaarde foutloos geımplementeerd wordt, mogen we e0 nulstellen en volgt:

eN = (1 + hλ)N−1hτ1 + (1 + hλ)N−2hτ2 + . . .+ (1 + hλ)hτN−1 + hτN . (6.27)

De reeks (6.27) geeft precies aan hoe de afzonderlijke afbreekfouten bijdragen aan de globaleafbreekfout na N integratiestappen. Elke afbreekfout in (6.27) is voorzien van een macht vande versterkingsfactor 1 + hλ waarvan de exponent is gelijk is aan het aantal stappen dat ligttusssen de laatste stap en de stap waarin de betreffende afbreekfout werd gemaakt.

Bepalend voor het uiteindelijk effect van de afbreekfouten is natuurlijk of de versterkings-factor, absoluut gezien, groter of kleiner dan 1 is. In het eerste geval wordt elke afbreekfoutexponentieel groeiend doorgegeven met als gevolg dat de globale afbreekfout, als som van aldeze doorgegeven afbreekfouten, exponentieel groeit met N . In het tweede geval dempt debijdrage van elke afbreekfout exponentieel met het aantal integratiestappen weg en kunnenwe afschatten:

| eN |≤ h | τ1 | +h | τ2 | + . . .+ h | τN |= Nhτ. (6.28)

74

Page 81: Numerieke Methoden voor Differentiaalvergelijkingen

waarbij hτ de gemiddelde afbreekfout over het integratie interval is. Hieruit blijkt dat deglobale afbreekfout niet sneller dan ruwweg lineair met het aantal integratiestappen N kantoenemen 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 globaleafbreekfout voornamelijk bepaald worden door een paar van de laatst gemaakte afbreekfouten:steeds worden nieuwe gemaakt en oude worden weggedempt. Dat houdt in dat de globaleafbreekfout op de verschillende tijdstippen t = Nh (N toenemend) zich ruwweg gedraagtals de afbreekfouten in de buurt (’vlak voor’) t = Nh, dus ruwweg als de tweede afgeleidevan de oplossing ter plekke, afgezien van een zeker na-ijl effect. Neemt in de loop van hetintegratieproces de tweede afgeleide van de oplossing toe dan zal de globale afbreekfout opsoortgelijke wijze toenemen. Komen we in een gebied waar de tweede afgeleide weer afneemtdan zal ook de globale afbreekfout weer afnemen. Een typisch voorbeeld hiervan zagen webij 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. Dedrastische omslag in het gedrag van de afbreekfout die bij h = 0.1 optreedt is een gevolg vanoverschrijding van de grens | 1 + hλ |= 1. Om te laten zien dat dat bij h = 0.1 gebeurt moetde voorwaarde | 1 + hλ |< 1 naar een voorwaarde voor h vertaald worden.

We moeten onderscheid maken tussen positieve en negatieve λ. Voor positieve λ is de ver-sterkingsfactor voor elke h > 0 groter dan 1 en zal de globale afbreekfout bijgevolg voorelke stapgrootte exponentieel groeien. Dit lijkt heel onprettig maar we moeten twee dingenin ogenschouw nemen; (i) de exacte oplossing van y ′ = λy + g(t) zal voor positieve λ ookexponentieel stijgen dus de relatieve afbreekfout kan beperkt blijven, (ii) vergelijkingen vanhet type y′ = λy + g(t) komen zeer weinig voor in de fysica en de techniek omdat de gewonefysische mechanismen een dempende werking hebben; wiskundige modellering daarvan leidttot differentiaalvergelijkingen met oplossingen die op den duur uitdempen. Om de problemenwaar wij in geınteresseerd te analyseren volstaat naar lineaire vergelijkingen met negatieve λen dalende oplossingen kijken.

Voor negatieve λ kan wel aan | 1 + hλ |< 1 worden voldaan. Merk op dat 1 + hλ voornegatieve λ 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 destabiliteitsvoorwaarde

h <−2

λ=

2

| λ | . (6.29)

OpmerkingOmdat onder deze voorwaarde de afbreekfouten in de loop van het integratieproces monotoonwegdempen spreekt men in de literatuur wel over absolute stabiliteit. Let wel dat het begripabsolute stabiliteit alleen van toepassing is op negatieve waarden van λ.

Laten we voorgaande stabiliteitstheorie toepassen op de Euler Voorwaarts-approximatie vande vergelijking

y′ = −10[y − (1 + sin(t/2))] +1

2cos(t/2), y(0) = 1. (6.30)

Dit is een lineaire vergelijking y′ = λy + g(t) met λ = −10. Toepassing van (6.29) leidt totde stabiliteitsvoorwaarde h < 0.2, goed overeenkomend met de experimentele bevindingen inde vorige paragraaf.

75

Page 82: Numerieke Methoden voor Differentiaalvergelijkingen

6.5 Stability of initial-value problems

StabilityA general definition of stability is: small changes or perturbations in the initial conditionsproduce correspondingly small changes in the subsequent approximations. Phenomena whichhave unstable behavior are: buckling of a column under compression and resonance of a bridgedue to wind forces. In this supplement we only consider stable applications.

Suppose that the initial condition y0 is perturbed with ε0. The perturbed solution y satisfies:

y′ = f(t, y) with y(0) = y0 + ε0.

The difference of the exact and perturbed solution is defined as ε: ε(t) = y(t) − y(t). Aninitial-value problem is stable if

|ε(t)| is bounded for all t > 0.

If |ε(t)| is not bounded for all t, we call the initial-value problem unstable. An initial-valueproblem is absolutely stable if

limt→∞

|ε(t)| = 0.

Stability of a linear initial-value problemConsider the linear initial-value problem

y′ = λy + g with y(0) = y0. (6.31)

It is easily seen that ε satisfies the test equation :

ε′ = λε with ε(0) = ε0. (6.32)

The solution ε of (6.32) is given by ε(t) = ε0eλt. This implies that a linear initial-value

problem is stable if and only if λ ≤ 0.

Stability of a one-step difference methodConsider two numerical solutions of (6.31): wj with initial condition w0 = y0 and vj withinitial condition v0 = y0 + ε0. The difference method is stable if

|εj | is bounded for all j

and absolutely stable iflimj→∞

|εj | = 0 .

It appears that εj = vj − wj is the numerical solution of the test equation. It is easy to seethat every one-step method applied to the test equation gives

εj+1 = Q(hλ)εj , (6.33)

where Q(hλ), the amplification factor, depends on the numerical method: for Forward EulerQ(h) = 1 + hλ and for the Modified Euler method Q(h) = 1 + hλ+ 1

2(hλ)2. By induction itfollows that εj = [Q(hλ)]jε0. So a numerical method is stable if and only if

|Q(hλ)| ≤ 1 . (6.34)

76

Page 83: Numerieke Methoden voor Differentiaalvergelijkingen

For the Forward Euler method we have Q(h) = 1 + hλ. Suppose that λ ≤ 0 then thedifferential equation is stable. Inequality (6.34) can be written as:

−1 ≤ 1 + hλ ≤ 1 ,

which is equivalent to−2 ≤ hλ ≤ 0 .

Since h > 0 and λ ≤ 0 it follows that h ≤ 2|λ| .

For the Modified Euler method the condition |Q(hλ)| ≤ 1 leads to the inequalities:

−1 ≤ 1 + hλ+1

2(hλ)2 ≤ 1.

The left-hand inequality is equivalent to the inequality

0 ≤ 2 + hλ+1

2(hλ)2.

Since the equation 2 + hλ+ 12(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

hλ+1

2(hλ)2 ≤ 0,

1

2(hλ)2 ≤ −hλ.

Division of the inequality by the positive number hλ2

2 shows that

h ≤ −2

λ=

2

|λ| .

Note that the stability criteria for Euler Forward and Modified Euler are the same, althoughthe amplification factors are different, see also Figure 6.10.

For Backward Euler the amplification factor is given by Q(h) = 11−hλ . So for stability h

should be such that:

−1 ≤ 1

1 − hλ≤ 1 .

It is easy to see that these inequalities hold for all h ≥ 0 because λ ≤ 0. This implies thatthe Backward Euler method is always stable as long as λ ≤ 0.

Example (linear problem)Consider the initial-value problem:

y′

= −10y , t ∈ [0, 1] ,y(0) = 1 .

The exact solution is given by y(t) = e−10t. From the theory it follows that Forward Euler isstable if h ≤ 0.2. In Figure 6.11 the perturbations are plotted for the step sizes h = 1

3 ,16 and

112 with ε0 = 10−4. The method is indeed unstable if h = 1

3 because |εj | > |εj−1|. For theother values of h we see that the perturbations decrease.

77

Page 84: Numerieke Methoden voor Differentiaalvergelijkingen

−1−2−30

1

−1

Euler VoorwaartsModified Euler

Figuur 6.10: The amplification factors of Euler Forward and the Modified Euler method asfunction of hλ

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

−2

−1

0

1

2

3

4

5

6x 10

−4

t

Per

turb

atio

n

h = 1/3 h = 1/6 h = 1/12

Figuur 6.11: Forward Euler applied to y′

= −10y

Stability of a nonlinear initial-value problemFor a general initial-value problem we investigate the stability properties for the linearizedproblem. So the initial-value problem

y′

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

78

Page 85: Numerieke Methoden voor Differentiaalvergelijkingen

is linearized by using the linear approximation around (t, y):

f(t, y) ≈ f(t, y) + (y − y)∂f

∂y(t, y) + (t− t)

∂f

∂t(t, y) .

If (t, y) is close to (t, y) equation (6.35) can be approximated by

y′

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

∂y(t, y) + (t− t)

∂f

∂t(t, y) .

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

stability condition depends on the values of y and t.

Example (nonlinear problem)A simple model of a transient flow is given by

y′ = −ay2 + p, y(0) = 0.

In this example f(t, y) = −ay2 + p. After linearization one obtains

λ =∂f

∂t(t, y) = −2ay0.

This implies that the initial-value problem is stable for all positive a and y0. The ForwardEuler method is stable if

h ≤ 1

ay0.

Note that the bound on the step size decreases if y0 increases.

6.6 Afbreekfout en consistentie

Om het verschil tussen de exacte en de numerieke oplossing te schatten definieren we opnieuwde begrippen: consistentie, stabiliteit en convergentie. Elke eenstaps methode is te schrijvenals

wj+1 = wj + hφ(wj+1, wj , tj+1, tj , h) .

Als φ niet afhangt van wj+1 dan noemen we de methode expliciet, anders impliciet. Dezenotatie zullen we gebruiken om een aantal begrippen te definieren.

Lokale afbreekfoutDe lokale afbreekfout τj+1 is gedefinieerd als

τj+1 =yj+1 − zj+1

h, (6.36)

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 denumerieke methode.

79

Page 86: Numerieke Methoden voor Differentiaalvergelijkingen

ConsistentieEen methode heet consistent als

limh→0

τj = 0 ,

waarbij in de limiet j zo gekozen wordt, dat jh constant is. We noemen een methode vanorde p als ej = O(hp).

Lokale afbreekfout bij de testvergelijkingAls we een eenstaps methode toepassen op de testvergelijking dan volgt uit (6.33)

τj+1 =yj+1 −Q(hλ)yj

h. (6.38)

De exacte oplossing van de testvergelijking wordt gegeven door

yj+1 = ehλyj . (6.39)

Substitutie van (6.39) in (6.38) geeft

τj+1 =ehλ −Q(hλ)

hyj .

De grootte van de lokale afbreekfout wordt dus bepaald door het verschil tussen de verster-kingsfaktor en de exponentiele functie. Om dit verschil te bepalen maken we gebruik van deTaylor-ontwikkeling van ehλ:

ehλ =

r−1∑

i=0

1

i!(hλ)i +O(hr) . (6.40)

Als we 6.40) vergelijken met Q(hλ) = 1 + hλ dan volgt dat Euler Voorwaarts een lokaleafbreekfout van de orde 1 heeft. De Modified Euler methode heeft volgens Q(hλ) = 1 + hλ+12(hλ)2 een lokale afbreekfout van de orde 2 en is dus nauwkeuriger.

Voor de achterwaartse methode van Euler volgt uit Q(hλ) = 11−hλ dat

Q(hλ) = 1 + hλ+ (hλ)2 +O(h3) ,

zodat de lokale afbreekfout bij Euler Achterwaarts ook van de orde 1 is. Bij de Trapeziumregelis de orde van de lokale afbreekfout gelijk aan 2.

Lokale afbreekfout voor de algemene vergelijkingVoor een eenstaps methode geldt

τj+1 =yj+1 − (yj + hφ(yj , tj , h))

h. (6.41)

Taylorontwikkeling van yj+1 geeft

yj+1 = yj + hy′

j +h2

2y′′

j +O(h3) . (6.42)

Omdat y voldoet aan de differentiaalvergelijking geldt:

y′

= f(t, y) (6.43)

80

Page 87: Numerieke Methoden voor Differentiaalvergelijkingen

eny′′

= ft + fyf . (6.44)

Combinatie van (6.41), (6.42), (6.43) en (6.44) geeft

τj+1 = fj +h

2(ft + fyf)j − φ(yj , tj , h) +O(h2) .

Bij de voorwaartse methode van Euler is φ(yj, tj , h) = f(tj, yj) en is de afbreekfout van deorde 1. Dit kunnen we als volgt bewijzen. Uit (6.41) en (6.42) volgt

τj+1 = y′

j +O(h) − φ(yj , tj , h)

Omdat voor Euler Voorwaarts φ(yj, tj , h) = f(tj, yi) volgt uit (6.43) τj+1 = O(h).

Foutrelatie voor de Modified Euler

De methode wordt gegeven door

wn+1 = wn + hf(tn, wn), (6.45)

wn+1 = wn +h

2[f(tn, wn) + f(tn+1, wn+1)]. (6.46)

Voor het bepalen van de lokale afbreekfout vervangen we in de formules (6.45), (6.46) denumerieke waarde wn door de exacte waarde y(tn), dus

zn+1 = y(tn) + hf(tn, y(tn)), (6.47)

zn+1 = y(tn) +h

2[f(tn, y(tn)) + f(tn+1, zn+1)]. (6.48)

Eerst bewijzen we dat de lokale afbreekfout van de Modified Euler methode de grootte O(h2)heeft door aan te tonen dat van de Taylorreeksontwikkelingen van y(tn+1) en zn+1 de termenvan orde 1, h en h2 tegen elkaar wegvallen.

De laatste term van (6.48) wordt rond het punt (tn, y(tn)) ontwikkeld in een Taylorreeks (intwee variabelen omdat beide variabelen verschoven worden):

f(tn+1, zn+1) = fn + h(∂f

∂t)n + (zn+1 − y(tn))(

∂f

∂y)n +

1

2h2(

∂2f

∂t2)n +

+1

2(zn+1 − y(tn))

2(∂2f

∂y2)n + h(zn+1 − y(tn))(

∂2f

∂t∂y)n

+ . . . (6.49)

Volgens (6.47) geldt zn+1 − y(tn) = hf(tn, y(tn)) = hfn. Dat houdt in dat de laatste driegespecificeerde termen van (6.49) de grootte–orde h2 hebben (en dat de stippeltjes voor termenvan O(h3) en hoger staan). We zullen de termen met tweede en hogere machten van hniet nodig hebben en specificeren ze verder niet meer. Substitutie van de uitdrukking voorzn+1 − y(tn) in de derde term van (6.49) resulteert in:

f(tn+1, zn+1) = fn + h[∂f

∂t+ f

∂f

∂y]n +O(h2).

81

Page 88: Numerieke Methoden voor Differentiaalvergelijkingen

Substitutie van deze uitdrukking in (6.48) geeft:

zn+1 = y(tn) + hfn +h2

2[∂f

∂t+ f

∂f

∂y]n +O(h3). (6.50)

Op dit punt wordt de differentiaalvergelijking y ′(t) = f(t, y) gebruikt. Door differentiatienaar t, onder gebruik van de kettingregel, volgt

y′′(t) =dy′

dt=df(t, y(t))

dt=∂f

∂t+∂f

∂y

dy

dt= [

∂f

∂t+ f

∂f

∂y](t, y). (6.51)

Door substitutie van deze uitdrukking, na evaluatie in t = tn, gaat (6.50) over in:

zn+1 = y(tn) + hy′(tn) +h2

2y′′(tn) +O(h3). (6.52)

We zien dat de eerste drie termen precies de eerste drie termen van de Taylorontwikkeling

y(tn+1) = y(tn) + hy′(tn) +h2

2y′′(tn) +O(h3) (6.53)

zijn; ze verdwijnen als we het verschil van de twee ontwikkelingen nemen:

y(tn+1) − zn+1 = O(h3). (6.54)

Na deling door h volgtτn+1 = O(h2). (6.55)

6.7 Convergentie

Laat yj en wj respectievelijk de exacte en numerieke oplossing zijn op t = tj. Bij het bepalenvan een numerieke benadering is het van belang om te weten hoe groot de globale afbreekfoutej = yj − wj is.

ConvergentieEen schema heet convergent als voor de globale afbreekfout ej geldt:

limh→0

ej = 0 , waarbij jh constant is.

We laten nu zien dat stabiliteit en consistentie convergentie impliceren.

Theorem 6.7.1 If the numerical method is stable and consistent then the numerical solutionconverges to the exact solution for h → 0. Furthermore the global error ej and the localtruncation error τj(h) have the same rate of convergence.

ProofWe only prove the theorem for the test equation y

= λy. The following recurrence holds forthe global error ej :

ej = yj −Q(hλ)wj−1

= yj −Q(hλ)yj−1 +Q(hλ)ej−1

= hτj +Q(hλ)ej−1 . (6.56)

82

Page 89: Numerieke Methoden voor Differentiaalvergelijkingen

Repeating this argument one obtains

ej =

j−1∑

l=0

[Q(hλ)]lhτj−l .

From the stability follows

|ej | ≤j−1∑

l=0

|Q(hλ)|lh|τj−l| ≤j−1∑

l=0

h|τj−l| ≤ max1≤l≤j−1

|τl| ,

where we used that jh ≤ 1. This implies that the rate of convergence of the global error isidentical to that of the local truncation error. Furthermore the global error goes to zero ifh→ 0 because the method is consistent.

Waarom hogere orde methoden?Het gebruik van een hogere orde methode is vaak zinvol. We laten dit zien aan de hand vande Voorwaartse en de Modified methode van Euler. Neem aan dat de globale afbreekfoutbegrensd is door:

|yj − wj | ≤ h Euler Voorwaarts ,

|yj − wj | ≤ h2 Modified Euler .

Om de hoeveelheid werk te bepalen, tellen we het aantal functie evaluaties. Bij Euler Voor-waarts is een functie evaluatie per tijdstap nodig en bij Modified Euler twee. In de volgendetabel geven we de stapgrootte en aantal functie evaluaties, dat nodig is om een voorgeschrevenprecisie te halen. Uit de tabel blijkt dat een hogere orde methode de voorkeur heeft, als er

Euler Voorwaarts Modified Euler|yj − wj | h functie evaluaties h functie evaluaties

10−1 10−1 10 1/3 610−2 10−2 100 10−1 2010−4 10−4 10000 10−2 200

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 weldat de exacte oplossing voldoende glad is.

De vierde orde methode van Runge-Kutta

In deze paragraaf definieren we de vierde orde methode van Runge-Kutta. We hebben geziendat hogere orde methoden tot een grote besparing kunnen leiden. Later blijkt dat deze me-thode ook aantrekkelijke stabiliteits eigenschappen heeft. We geven hier de formules en eenintuıtieve verificatie op basis van de integraalformulering:

wn+1 = wn +1

6[k1 + 2k2 + 2k3 + k4], (6.57)

83

Page 90: Numerieke Methoden voor Differentiaalvergelijkingen

waarbij de predictoren k1 t/m k4 gegeven worden door

k1 = hf(tn, wn) (6.58)

k2 = hf(tn +1

2h,wn +

1

2k1)

k3 = hf(tn +1

2h,wn +

1

2k2)

k4 = hf(tn + h,wn + k3).

De corrector is gebaseerd op de Simpson regel als benadering van de integraal∫ tn+1

tnf(t, y(t))dt.

De Simpsonregel approximeert volgens:∫ tn+1

tnf(t, y(t))dt ≈ h

6 [y(tn)+4y(tn+ 12h)+ y(tn+h)]

De Simpson regel is nauwkeuriger dan de Trapezium regel en de midpoint rule die aan tweedeorde Runge Kutta methoden ten grondslag liggen.

De waarden voor y(tn + 12h) en y(tn + h) moeten voorspeld worden. Uit de gebruikte eerste

argumenten van f in bovenstaande predictor formules kun je afleiden dat k2 en k3 beiden eenpredictie voor y(tn + 1

2h) moeten vormen (kennelijk wordt de middelste term in de Simpsonregel in twee helften gesplitst) en dat k4 een predictie voor y(tn + h) vormt.

Bovenstaande Runge–Kutta (afkorting RK4) methode kan door middel van Taylorreeksenstrict afgeleid worden, met als bijproduct een uitdrukking voor de lokale afbreekfout die vande 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 testvergelijkingenwaarvoor de orde van de lokale afbreekfout en de versterkingsfactor betrekkelijk simpel af teleiden zijn.

Toepassing van de formules (6.57) en (6.58) op y ′ = λy resulteert namelijk in

wn+1 = [1 + hλ+1

2(hλ)2 +

1

6(hλ)3 +

1

24(hλ)4]wn.

Zoals bij de afleiding voor de Modified Euler opgemerkt kun je hieruit direct de versterkings-factor aflezen, namelijk

Q(hλ) = 1 + hλ+1

2(hλ)2 +

1

6(hλ)3 +

1

24(hλ)4. (6.59)

Opgave. Laat zien dat een niet–homogene testvergelijking dezelfde versterkingsfactor heeft.

Ook de lokale afbreekfout kan gemakkelijk uitgerekend worden voor de testvergelijking. Degrootheid zn+1 wordt weer gedefinieerd door in (6.57) en (6.58) wn door y(tn) te vervangen.Substitutie van f(t, y) = λy leidt tot zn+1 = Q(hλ)y(tn). De exacte oplossing van y′ = λy intn+1 wordt gegeven door y(tn+1) = ehλy(tn), zoals men vrij eenvoudig kan nagaan. Dit leidttot:

y(tn+1) − zn+1 = [eλh −Q(hλ)]y(tn). (6.60)

De rechterzijde van (6.59) bestaat precies uit de eerste vijf termen van de reeksontwikkelingvan eλh naar machten van λh zodat van de coefficient van y(tn) in (6.60) slechts vijfde enhogere machten van h overblijven. Na deling door h volgt dat de lokale afbreekfout O(h4) is.

84

Page 91: Numerieke Methoden voor Differentiaalvergelijkingen

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 enModified Euler, alleen de versterkingsfactor is anders. Aan (6.59) ziet men direct dat Q(hλ)voor positieve λ voor elke h groter is dan 1 en dat onvermijdelijk exponentiele foutgroei op-treedt.

In het negatieve λ–geval eisen we voor stabiliteit dat

−1 < 1 + hλ+1

2(hλ)2 +

1

6(hλ)3 +

1

24(hλ)4 < 1. (6.61)

Noem voor het gemak hλ = x; met deze notatie volgt uit de linker ongelijkheid van (6.61):2 + x + 1

2x2 + 1

6x3 + 1

24x4 > 0. Aan deze ongelijkheid is voor elke x voldaan. Dat ziet men

door naar de extremen van het vierde graads polynoom P (x) = 2 + x+ 12x

2 + 16x

3 + 124x

4 tekijken. De extremen worden aangenomen in de nulpunten van P ′(x), dus voor die waarden xvan x waarvoor geldt: P ′(x) = 1 + x+ 1

2 x2 + 1

6 x3 = 0. De waarde van een extreem van P (x)

wordt gevonden door zo’n x in P (x) te substitueren en de relatie P ′(x) = 0 te gebruiken:P (x) = 2 + x+ 1

2 x2 + 1

6 x3 + 1

24 x4 = 1 + (1 + x+ 1

2 x2 + 1

6 x3) + 1

24 x4 = 1 + 1

24 x4. Aangezien

1 + 124 x

4 voor elke x positief is zijn alle extremen van P (x) positief, dus ook de minima.Bijgevolg is P (x) positief voor elke x en daarmee is het beweerde bewezen.

Uit de rechter ongelijkheid van (6.61) moet de stabiliteitsvoorwaarde voor h volgen. Dezeongelijkheid is identiek met x + 1

2x2 + 1

6x3 + 1

24x4 < 0, oftewel x(1 + 1

2x + 16x

2 + 124x

3) < 0welke, vanwege x = hλ < 0, equivalent is met 1 + 1

2x + 16x

2 + 124x

3 > 0. Een onderzoek vanhet polynoom 1 + 1

2x + 16x

2 + 124x

3 toont aan dat dit slechts een nulpunt bezit en wel voorx ongeveer gelijk aan -2.8. Rechts van dit nulpunt is het polynoom positief en links ervannegatief. Hieruit volgt dat moet gelden x = hλ > −2.8, oftewel

h <−2.8

λ=

2.8

| λ | , (6.62)

opdat aan de stabiliteitsconditie −1 < Q(hλ) < 1 is voldaan.

De stabiliteitsgrens ligt voor RK4 iets hoger dan voor Euler Voorwaarts en Modified Euler.De iets grotere ruimte voor de stapgrootte keuze die daardoor bij RK4 ontstaat is echtermarginaal en heeft vrijwel geen praktische betekenis.

De volgende tabel geeft een overzicht van de stabiliteitsvoorwaarden en afbreekfouten van dedrie behandelde methoden.

methode versterkingsfactor stab. voorwaarde lokalebij reele negatieve λ afbreekfout

Euler Voorwaarts 1 + hλ h < 2|λ|

h2y

′′(ξ)

Modified Euler 1 + hλ+ 12h

2λ2 h < 2|λ| O(h2)

Runge–Kutta 1 + hλ+ 12h

2λ2 + 16h

3λ3 + 124h

4λ4 h < 2.8|λ| O(h4)

85

Page 92: Numerieke Methoden voor Differentiaalvergelijkingen

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 belangrijkerol.

Afschatting van de afbreekfoutWe hebben een bovengrens voor de Euler Voorwaarts afbreekfout afgeleid. Deze bovengrens isevenredig met h terwijl de evenredigheidscoefficient een functie is van een LipschitzconstanteL voor het rechterlid f(t, y) van de differentiaalvergelijking, een bovengrens M voor de tweedeafgeleide van de oplossing en de lengte van het integratie-interval. Deze afschatting toont aandat de globale afbreekfout naar nul gaat als h naar nul gaat, oftewel dat de voorwaartse me-thode van Euler convergent is, voor een uitgebreide klasse van differentiaalvergelijkingen, nl.die met rechterleden f(t, y) welke aan de Lipschitz voorwaarde voldoen. Theoretisch gezieneen belangrijk en fundamenteel resultaat want een methode die niet convergent is natuurlijkonbruikbaar.

Helaas geeft de bovengrens in de voor ons interessante gevallen, dat zijn differentiaalverge-lijkingen met dalende (of in elk geval niet exponentieel stijgende) oplossingen, geen enkeleindicatie over de werkelijke afbreekfout omdat de evenredigheidscoefficient van h voor dezeklasse van differentiaalvergelijkingen veel en veel te ruim bemeten is. Het is voldoende naarde testvergelijkingen te kijken om te zien hoe dat zit.

Omdat de Lipschitzconstante voor een testvergelijking gelijk is aan | λ | is er geen onder-scheid tussen positieve en negatieve λ en is verder geldig voor willekeurige stapgrootte. Voorpositieve λ en voor instabiele approximaties in het negatieve λ-geval stijgt de afbreekfoutexponentieel met het aantal stappen omdat de versterkingsfactor groter is dan 1. Om dezegevallen te dekken in de afbreekfoutafschatting moet de evenredigheidscoefficient exponentieeloplopen met de lengte van het integratie-interval. Als we ons beperken tot stabiele integratievan testvergelijkingen met negatieve λ kan de grens veel scherper gesteld worden omdat deversterkingsfactor kleiner dan 1 blijft.

De globale afbreekfout in de limiet h→ 0 voor het negatieve λ-gevalMet het oog op een uniforme behandeling recapituleren we de afbreekfoutrelaties voor de driebehandelde methoden, waarbij en = yn − wn:

en+1 = Q(hλ)en + hτn+1, (6.63)

met:Q(hλ) = 1 + hλ (Euler Voorwaarts), (6.64)

Q(hλ) = 1 + hλ+h2

2λ2 (Modified Euler), (6.65)

Q(hλ) = 1 + hλ+h2

2λ2 +

h3

6λ3 +

h4

24λ4 (RK4). (6.66)

Herhaalde toepassing van (6.63) (met e0 = 0) geeft:

eN = Q(hλ)N−1hτ1 + Q(hλ)N−2hτ2 + . . .+ Q(hλ)hτN−1 + hτN . (6.67)

86

Page 93: Numerieke Methoden voor Differentiaalvergelijkingen

Voor stabiele stapgrootten zijn de versterkingsfactoren kleiner dan 1 in absolute waarde engeldt:

| eN |≤ hΣN−10 | τn+1 | . (6.68)

Deze schatting is voor stabiele approximaties in het negatieve λ-geval veel adequater. Omdatanderszijds de versterkingsfactoren voor h→ 0 naar 1 naderen is (6.68) ook geen overschattingvan de afbreekfout. In deze limiet worden de afbreekfouten niet gedempt en hebben we gewoonmet de optelsom van afbreekfouten te maken:

limh→0

eN = limh→0

hΣN−10 τn+1 (6.69)

We moeten afspreken wat met deze limiet bedoeld wordt. Het heeft weinig zin de limiet h→ 0te nemen terwijl N vast wordt gehouden: dan krimpt het integratie interval in tot nul. Jekrijgt alleen iets zinvols als je het integratie-interval (0,t) vasthoudt. Dus Nh = t=constantterwijl h→ 0 en het aantal rooster punten N gaat omgekeerd evenredig met h naar oneindig.

In de aldus opgevatte limiet gaat het rechterlid van (6.69) over in een integraal over (0, t),immers hΣN−1

0 τn+1 is niets anders dan de Riemann-som voor∫ t0 τ(t)dt, waarbij τ(t) opgevat

moet worden als de continue versie van de lokale afbreekfout. Voor de Euler Voorwaartsmethode bijvoorbeeld zouden we τ(t) = h

2y′′(t) moeten invullen in

∫ t0 τ(t)dt hetgeen leidt tot

limh→0

e(t, h) =h

2

∫ t

0y′′(t)dt.

De notatie eN is hier door e(t, h) vervangen om aan te geven dat naar de afbreekfout op eenvast (maar overigens willekeurig) tijdstip t kijken, als functie van de stapgrootte.

Voor andere methoden zou een uitdrukking voor de limietfout op soortgelijke wijze kunnenvolgen, maar dat heeft weinig zin want evaluatie is in pricipe toch niet mogelijk omdat deoplossing onbekend is. Wel belangrijk, en direct uit

∫ t0 τ(t)dt af te leiden, is dat de globale

afbreekfout op dezelfde manier van h afhangt als de lokale afbreekfout. We schrijven

limh→0

e(t, h) = K(t) hp. (6.70)

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 envierde orde Runge-Kutta methoden is p=1, 2, resp. 4.

De evenredigheidsconstante van hp bestaat uit integralen over (0, t) van bepaalde afgeleidenvan de oplossing. Deze worden in (6.70) op een hoop geveegd en met K(t) aangeduid. Zoalseerder gezegd heeft het geen zin om te proberenK(t) aan de oplossing te relateren omdat dezeonbekend is. Het idee is K(t) te gaan schatten aan de hand van bepaalde numeriek berekendegrootheden en daarvoor zullen we alleen de afhankelijkheid (6.70) van de afbreekfout van hin de limiet voor verdwijnende h nodig hebben.

De afbreekfout bij niet–lineaire differentiaalvergelijkingenNa linearisatie van de afbreekfoutrelatie kan bovenstaande theorie ook op niet–lineaire dif-ferentiaalvergelijkingen worden toegepast. De expansie van de afbreekfout blijft in wezendezelfde, afgezien van de variabiliteit van de versterkingsfactoren, en de redenering verandertniet onder deze uitbreiding. Laten we eens experimenteel verifieren dat de Euler Voorwaarts

87

Page 94: Numerieke Methoden voor Differentiaalvergelijkingen

afbreekfout bij de waterafvoervergelijking inderdaad lineair met h naar nul gaat. De exacteoplossing 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 hetpunt t = 0.2 getabelleerd voor steeds gehalveerde stapgrootten, startend met h = 0.01. Letop 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 zijnwat de duidelijkheid van de verschijnselen ten goede komt; in principe zou elke andere waardevan t gekozen kunnen worden. In de vierde kolom is het quotient van de afbreekfout en h

h y(0.2, h) y(0.2) − y(0.2, h) (y(0.2) − y(0.2, h))/h (6.77)

0.010000000 4.86599176380252 -0.04585386 -4.5853860.005000000 4.84332116375693 -0.02318326 -4.636652 -0.022670600.002500000 4.83178659464220 -0.01164869 -4.659477 -0.011534570.001250000 4.82597571717546 -0.00583781 -4.670253 -0.005810360.000625000 4.82306008128045 -0.00292218 -4.675489 -0.002915630.000312500 4.82159979736355 -0.00146189 -4.678070 -0.001460280.000156250 4.82086904907235 -0.00073114 -4.679351 -0.000730740.000078125 4.82050352459794 -0.00036562 -4.679990 -0.00036552

Tabel 6.2: Numerieke oplossing van y ′ = 50−2y2 in t=0.2, met behulp van Euler Voorwaarts

uitgerekend. Dit quotient blijkt weinig te varieren over de getoonde range van h–waarden enlijkt voor h→ 0 naar een constante waarde te gaan. Met andere woorden, voor niet te groteh blijkt de afbreekfout praktisch lineair met h af te nemen. Numerieke experimenten metallerlei differentiaalvergelijkingen laten zien dat dit steeds het geval is, afgezien van die (in depraktijk weinig voorkomende) gevallen waar de oplossing van de differentiaalvergelijking nietaan bepaalde continuiteitseisen voldoet.

Foutschatting door middel van stapgrootte halveringDat de afbreekfout in bovenstaand voorbeeld voor niet zeer kleine h niet helemaal lineairis met h houdt verband met het feit dat men de Riemann-som hΣN−1

0 τn+1 alleen door de

integraal∫ t0 τ(t)dt mag vervangen in de limiet h→ 0; de Riemann-som en de integraal ver-

schillen voor kleine doch niet infinitesimale h met een bedrag dat van h afhangt. We schrijvendienovereenkomstig:

e(t, h) = K(t, h) hp, limh→0

K(t, h) = K(t). (6.71)

Het idee is dat K(t, h) vrijwel onafhankelijk van h wordt (en wel gelijk aan K(t)) indien hmaar voldoende klein wordt gekozen. Dat wordt aangegeven door de schrijfwijze:

e(t, h) ≈ K(t)hp voor voldoende kleine h. (6.72)

Op basis van deze approximatieve gelijkheid gaan we zonder enige kennis van de exacte op-lossing een schatting voor K(t) in een willekeurig te kiezen punt t geven op basis van tweenumerieke approximaties. De eerste approximatie werkt met stapgrootte h (N stappen) ende tweede met stapgrootte 1

2h (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

Page 95: Numerieke Methoden voor Differentiaalvergelijkingen

Neem aan dat h zo klein is dat (6.72) goed opgaat (we zullen nog aangeven hoe dat gecon-troleerd kan worden). Dan geldt:

e(t, h) = y(t) − y(t, h) ≈ K(t)hp (6.73)

en, omdat (6.72) beter opgaat naarmate h kleiner wordt, zal zeker gelden

e(t,h

2) = y(t) − y(t,

h

2) ≈ K(t)(

h

2)p, (6.74)

Aftrekken van twee bovenstaande vergelijkingen levert

y(t,h

2) − y(t, h) ≈ K(t)hp(1 − (

1

2)p), (6.75)

waaruit de waarde van K(t) volgt:

K(t) ≈ y(t, h2 ) − y(t, h)

hp(1 − (12)p)

. (6.76)

Merk op dat dit vergelijkbaar is met Richardson foutschatting, die behandeld is in Paragraaf3.6. Vullen we deze schatting voor K(t) in in (6.73) dan ontstaat een afbreekfoutschattingvoor de approximatie met h en bij invulling in (6.74) ontstaat een afbreekfoutschatting voorde approximatie met h/2. Omdat het zinvoller is de afbreekfout in de meest nauwkeurigeapproximatie te schatten substitueren we (6.76) in (6.74):

y(t) − y(t,h

2) ≈ 1

2p − 1[y(t,

h

2) − y(t, h)]. (6.77)

We zien dat de orde van de methode zich in de afbreekfoutschatting manifesteert via de factor1

2p−1 .

Laten we deze formule toepassen op de Euler Voorwaarts approximaties uit kolom tweevan tabel 6.2 voor het waterafvoerprobleem. De resultaten voor paren (h, 1

2h) met h =0.05, 0.025, 0.00125,. . . staan in de vijfde kolom van de tabel en kunnen vergeleken wordenmet de afbreekfouten in de vierde kolom die berekend zijn als het verschil van de numeriekeen de exacte oplossing. De geschatte afbreekfouten blijken heel dicht in de buurt van de exactberekende te liggen, en wel dichter naarmate h kleiner wordt. Dat is ook logisch want hoekleiner h hoe beter aan (6.72) voldaan is.

In de praktische situatie dat de oplossing niet bekend is bestaat geen directe controle op dekwaliteit van de afbreekfoutschatting. We weten niet in hoeverre voor een bepaalde h goedaan 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 kanworden verkregen door nogmaals stapgroottehalvering toe te passen (h→ h/2 → h/4). Weschrijven: y(t) − y(t, h/4) ≈ K(h/4)p waaruit door aftrekking van (6.74) volgt

y(t, h/4) − y(t, h/2) ≈ K(h

4)p. (6.78)

Deze relatie en (6.75) kunnen gecombineerd worden tot:

y(t, h/2) − y(t, h)

y(t, h/4) − y(t, h/2)≈ K(h2 )p

K(h4 )p≈ 2p. (6.79)

89

Page 96: Numerieke Methoden voor Differentiaalvergelijkingen

Indien we voor zekere h voor de drie opeenvolgende approximaties y(t, h),

y(t, h2 ), y(h4 ) vinden dat de grootheid y(t,h/2)−y(t,h)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 waterafvoerwaarbij y2 in het rechterlid vervangen is door y2.1. Van deze vergelijking is geen analytischeoplossing bekend. Tabel 6.3 geeft de numerieke approximaties van de oplossing op t = 0.2 vooreen zelfde reeks van h–waarden als in Tabel 6.2. De resultaten in kolom vier laten zien datvanaf h=0.00125 de afbreekfout als lineair in h beschouwd kan worden. In de praktijk worden

h y(0.2,h) (6.77) (6.79)

0.01000000000 4.5599137109260.00500000000 4.543116291062 -0.016797410.00250000000 4.534384275071 -0.00873201 1.92365880.00125000000 4.529943322643 -0.00444095 1.96624840.00062500000 4.527705063356 -0.00223825 1.98410990.00031250000 4.526581601705 -0.00112346 1.99228810.00015625000 4.526018801777 -0.00056279 1.99620070.00007812500 4.525737136254 -0.00028166 1.99811430.00003906250 4.525596237317 -0.00014089 1.99906060.00001953125 4.525525771331 -0.00007046 1.9995311

Tabel 6.3: Numerieke oplossing van y ′ = 50 − 2y2.1 in t=0.2. met Euler Voorwaarts

afbreekfoutschattingen meestal op de volgende wijze toegepast. Je eist dat de afbreekfoutop een zeker tijdstip binnen een bepaalde marge ε blijft en je wilt een stapgrootte bepalenwaarvoor dat het geval is.

Eerst probeer je een stapgrootte te vinden die een kans maakt aan de gevraagde eis te voldoen.Je zou de keuze kunnen baseren op kennis van het globale verloop van de oplossing en op eenidee over het aantal punten dat nodig is de oplossing visueel te herkennen als je deze in diepunten plot. Bijvoorbeeld, voor een sinus op het interval (0,π) heb je toch al gauw 10 a 20punten nodig.

Te beginnen met zo’n stapgrootte voer je de integratie driemaal uit met telkens gehalveerdestapgrootte, en kijkt of aan de lineariteitstest (6.79) is voldaan. Zo niet dan halveer je hnogmaals en voert de test opnieuw uit voor de laatste drie approximaties. Zodra de testpositief uitvalt bereken je een schatting voor de afbreekfout volgens (6.77) uit de laatstetwee approximaties. Is de geschatte afbreekfout niet kleiner dan de marge dan ga je doormet stapgroottehalvering tot je wel binnen de marge uitkomt. De schattingen zelf wordendaarbij steeds nauwkeuriger uitgevoerd omdat steeds beter aan de lineariteitstest (6.79) wordtvoldaan 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 numeriekeoplossingen in het punt t=1 zijn hieronder getabelleerd.

90

Page 97: Numerieke Methoden voor Differentiaalvergelijkingen

Bepaal de orde p van de globale afbreekfout O(hp) van beide methoden.

h methode 1 methode 2

0.1 0.752790 0.7107910.05 0.750686 0.7309120.025 0.750180 0.740587

6.9 Numerieke methoden voor stelsels differentiaalvergelijkin-

gen

Er is eigenlijk heel weinig verschil tussen de behandeling van een differentiaalvergelijkingvoor een onbekende functie en een stelsel van k differentiaalvergelijkingen voor k onbeken-de functies. Numerieke methoden voor stelsels worden op eenzelfde wijze afgeleid als in hetscalaire geval; bij consequent gebruik van de vectornotatie is er eigenlijk niet eens verschilin de formules. Dat geldt ook voor de afbreekfoutrelatie; de stabiliteitstheorie en de analysevan de globale afbreekfout zijn dan ook niet veel meer dan een generalizatie van de theorievoor het scalaire geval. De theorievorming voor stelsels is weer gecentreerd rond de lineairevergelijkingen met constante coefficienten, de zg. teststelsels y′ = Ay + g(t). In de theorieblijken de eigenwaarden van de matrix A de grootheid λ in y ′ = λy+ g(t) te vervangen. Hetenige essentieel nieuwe aspect waarmee rekening gehouden moet worden is het voorkomenvan complexe eigenwaarden.

De voorwaartse methode van Euler voor stelselsDe werkwijze is dezelfde als voorheen, nu toegepast op elk van de differentiaalvergelijkingenafzonderlijk. Voor de i-de component: wi,n+1 ligt op de raaklijn in tn aan de i-de oplos-singskromme door het vorige numerieke punt (tn, wn) (deze kromme ligt in de buurt van deexacte i-de oplossingskromme yi(t)). Onder gebruikmaking van de i–de differentiaalvergelij-king y′i = fi(t, y1, y2, . . . , yk) volgt:

wi,n+1 = win + hfi(tn, w1n, w2n, . . . , wkn). (6.80)

Voor elk van de componenten kan een dergelijke formule opgeschreven worden. In vectorno-tatie worden deze formules samengevat als:

wn+1 = wn + hf(tn,wn). (6.81)

De Euler Voorwaarts formule voor stelsels is gewoon een vectoriele copie van die voor hetscalaire geval.

Als we een impliciete methode gebruiken zoals Euler Achterwaarts, dan moet er elke tijdstapeen 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 wordenafgeleid. 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

Page 98: Numerieke Methoden voor Differentiaalvergelijkingen

wordt weer opgesplitst volgens

ei,n+1 = (yi(tn+1) − zi,n+1) + (zi,n+1 − wi,n+1), (6.83)

waarbij zi,n+1 gevonden wordt door de Eulerformule in de punten (tn, yi(tn)) (i=1,2,. . . ,k)van de exacte oplossingskrommen toe te passen:

zi,n+1 = yi(tn) + hfi(tn, y1(tn), y2(tn), . . . , yk(tn)).

Door aftrekking van (6.80) volgt voor het doorgavedeel:

zi,n+1 − wi,n+1 = ein + h[fi(tn, y1(tn), y2(tn), . . . , yk(tn))

− fi(tn, w1n, w2n, . . . , wkn)]. (6.84)

Een uitdrukking voor de afbreekfout,

τi,n+1 =yi(tn+1) − zi,n+1

h(6.85)

volgt, precies als in het scalaire geval, door de Taylorontwikkelingen van yi(tn+1) en zi,n+1

rond het punt t = tn van elkaar af te trekken. Men verifiere dat

τi,n+1 =1

2hy′′i (ξi,n+1), ξi,n+1 ∈ (tn, tn+1). (6.86)

Na invullen van (6.84) en (6.86) in (6.83) (voor i=1,2,. . . ,k) resulteert de vectoriele versie vande scalaire afbreekfoutrelatie:

en+1 = en + h[f(tn,y(tn)) − f(tn,wn)] + hτ n+1, (6.87)

waarbij de afbreekfoutvector gegeven wordt door:

τn+1 =1

2hy′′(ξn+1), ξn+1 ∈ (tn, tn+1). (6.88)

De problemen die de afbreekfoutrelatie in deze vorm voor de verdere analyse oplevert zijnvan dezelfde aard als in het scalaire geval. Voor niet–lineaire f(t,y) moet het doorgavedeelweer gelinearizeerd worden door middel van een Taylorontwikkeling, nu voor een functie vanmeerdere variabelen:

fi(tn, w1n, w2n, . . . , wkn) = fi(tn, y1(tn), y2(tn), . . . , yk(tn))

+ (w1n − y1(tn))(∂fi∂y1

)n

+ (w2n − y2(tn))(∂fi∂y2

)n

+ . . .

+ (wkn − yk(tn))(∂fi∂yk

)n,

92

Page 99: Numerieke Methoden voor Differentiaalvergelijkingen

waarbij de beneden–index n bij de partiele afgeleiden staat voor evaluatie in het punt (tn, y1(tn), y2(tn), . . . , yk(tn)).Enige reorganisatie van deze uitdrukking levert:

fi(tn, y1(tn), y2(tn), . . . , yk(tn)) − fi(tn, w1n, w2n, . . . , wkn) =

(∂fi∂y1

)ne1n + (∂fi∂y2

)ne2n + . . .+ (∂fi∂yk

)nekn =

(

∂fi∂y1

∂fi∂y2

. . .∂fi∂yk

)

n

e1ne2n...ekn

.

In vectorvorm:

f(tn,y(tn)) − f(tn,wn) =

∂f1∂y1

∂f1∂y2

. . . ∂f1∂yk

∂f2∂y1

∂f2∂y2

. . . ∂f2∂yk

......

...∂fk

∂y1∂fk

∂y2. . . ∂fk

∂yk

n

en. (6.89)

De matrix is de Jacobiaan van de vectorfunctie f(t,y) in het punt (tn, 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):

en+1 = (I + hJn)en + hτ n+1. (6.90)

Hogere orde beginwaarde problemenEen hogere orde beginwaarde probleem wordt beschreven door de differentiaalvergelijking

y(n) = f(t, y, y(1), ..., y(n−1)) , (6.91)

met beginvoorwaarden

y(0) = y0, y′

(0) = y′

0, ..., y(n−1)(0) = y

(n−1)0 ,

waarin y(k) een korte schrijfwijze is voor dkydtk

.

Een manier om dit probleem op te lossen is de volgende transformatie:

x1 = y ,

x2 = y(1) ,...

xn = y(n−1) .

Hiermee gaat (6.91) over in het volgende eerste orde stelsel

x′

1 = x2 ,

...

x′

n−1 = xn ,

x′

n = f(t, x1, ..., xn) ,

93

Page 100: Numerieke Methoden voor Differentiaalvergelijkingen

met beginvoorwaarden x1(0) = y0, ..., xn(0) = y(n−1)0 .

Voorbeeld (mathematische slinger)De vergelijking van de mathematische slinger wordt gegeven door

ψ′′

+ sinψ = 0 ,

met beginvoorwaarden ψ(0) = ψ0 en ψ′

(0) = 0. Het bijbehorende eerste orde stelsel volgt uitx1 = ψ en x2 = ψ

:

x′

1 = x2 ,

x′

2 = − sinx1 ,

met beginvoorwaarden x1(0) = ψ0 en x2(0) = 0. Als we de voorwaartse methode van Eulergebruiken dan geldt:

xj+11 = xj1 + hxj2 ,

xj+12 = xj2 − h sin xj1 .

6.10 Stabiliteit van numerieke methoden voor teststelsels

De analogie van het scalaire en vectoriele geval strekt zich verder uit tot de numerieke sta-biliteitsanalyse. Ook voor stelsels is deze gecentreerd rond lineaire differentiaalvergelijkingenmet constante coefficienten, de klasse van teststelsels:

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

Voor een teststelsel gaat (6.90) over in:

en+1 = (I + hA)en + hτ n+1, (6.93)

immers A is de Jacobiaan van f(t,y) = Ay + g(t). I+hA wordt de versterkingsmatrix vande methode van Euler Voorwaarts genoemd.

De vectoriele afbreekfoutrelatie (6.93) wordt geanalyseerd door ontkoppeling met behulp vande 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 en en en+1 op dezelfde wijzegetransformeerd worden omdat A constant is, dan ontstaat, na vermenigvuldiging met S−1:

ηn+1 = S−1(I + hA)Sηn + S−1hτ n+1 = (I + hS−1AS)ηn + hS−1τn+1. (6.94)

Uit de lineaire algebra is bekend dat de gelijkvormigheidstransformatie met S de matrix Adiagonaliseert: S−1AS = Λ, waarbij Λ een diagonaalmatrix is met de eigenwaarden van Aop de hoofddiagonaal: Λ= Diag(λ1, λ2, . . . , λk).

Ontbinden we verder nog de afbreekfoutvector τ n+1 langs de eigenvectoren,

τn+1 =

k∑

i=1

αi,n+1vi = Sαn+1, (6.95)

94

Page 101: Numerieke Methoden voor Differentiaalvergelijkingen

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

ηn+1 = (I + hΛ)ηn + hαn+1. (6.96)

N.B. De getallen αi,n+1 zijn de componenten van de afbreekfoutvector t.o.v. de basis dereigenvectoren.

Eenvoudig is in te zien dat geldt:

I + hΛ = Diag(1 + hλ1, 1 + hλ2, . . . , 1 + hλk) (6.97)

en dat componentsgewijs uitschrijven van (6.96) bijgevolg levert:

ηi,n+1 = (1 + hλi)ηi,n + hαi,n+1 (i = 1, 2, . . . , k). (6.98)

Blijkens deze relatie hangt de i–de component van de getransformeerde afbreekfoutvector optijdstip tn+1 alleen via de i–de component af van de getransformeerde afbreekfoutvector optijdstip tn, en niet via de andere componenten zoals dat bij de oorspronkelijke afbreekfout-vector en+1 het geval was. Daarom noemen we de afbreekfoutrelatie (6.96) ontkoppeld.

De hierboven gegeven ontkoppelingsprocedure kan alleen worden uitgevoerd indien A diago-nalizeerbaar is. Uit de lineaire algebra is bekend dat hiervoor noodzakelijk en voldoende isdat A een volledig stel van k lineair onafhankelijke eigenvectoren heeft. Deze voorwaardegarandeert tevens dat de afbreekfoutvector τ n+1 altijd langs de eigenvectoren ontbonden kanworden. De in deze paragraaf behandelde theorie is naar niet–diagonalizeerbare matrices uitte breiden maar wordt dan wat gecompliceerder.

De afbreekfoutrelatie (6.98) laat een eenvoudige conclusie toe: indien alle factoren 1 + hλiin absolute waarde kleiner dan 1 zijn dempen alle componenten van de getransformeerdeafbreekfoutvector en even goed alle componenten van de oorspronkelijke afbreekfoutvector,immers beiden zijn verbonden via de van n onafhankelijke matrix S door de relatie en = Sηn.Omgekeerd zal exponentiele groei van een of meer van de componenten van η exponentielegroei van een van de componenten van e tot gevolg hebben. Voor absolute stabiliteit van deEuler-oplossing van een stelsel moeten we dus eisen:

| 1 + hλi |< 1, i = 1, 2, . . . , k. (6.99)

Ten opzichte van het scalaire geval komt bij het uitwerken van (6.99) een nieuw aspect naarvoren: de eigenwaarden van de matrix kunnen complex zijn en de versterkingsfactor 1 + hλikan bijgevolg ook complex zijn. De linkerzijde van (6.99) moet dan ook geınterpreteerdworden als de modulus van het complexe getal 1 + hλi; zo opgevat garandeert (6.99) dat allecomponenten van de afbreekfout wegdempen in de loop van het integratieproces, voor zowelcomplexe als reele eigenwaarden.

Noemen we λ = µ + iν (deze formulering omvat het reele geval, nl. voor ν = 0) dan geldt:| 1+hλ |=| (1+hµ)+ ihν |. Omdat de modulus van een complex getal de wortel uit som vande kwadraten van het reeel 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

Page 102: Numerieke Methoden voor Differentiaalvergelijkingen

Aan (6.100) kan niet worden voldaan zodra een eigenwaarde met een positief reeel deel voor-komt, met als gevolg dat de afbreekfout voor elke h onbegrensd gaat groeien, net als bijscalaire testvergelijkingen met positieve λ.

Alleen stelsels waarvan alle eigenwaarden een negatief reeel deel hebben kunnen stabiel geıntegreerdworden. Dat zijn de stelsels met dempende oplossingen welke men in de praktijk normaalgesproken tegen komt.

De bijbehorende stabiliteitsvoorwaarde voor h volgt door naar de vergelijking (1 + hµi)2 +

h2ν2i = 1 te kijken. De niet–nul wortel van deze kwadratische vergelijking in h (h = −2µi

µ2i +ν2

i

)

scheidt groei en demping van de i–de component van de afbreekfout. De integratie van hetstelsel is stabiel indien h voldoet aan:

h < mini

2 | µi |µ2i + ν2

i

i = 1, 2, . . . , k. (6.101)

Waarschuwing: Maak niet de fout in geval van een complexe eigenwaarde de ’reele’ stabili-teitsvoorwaarde h < 2

|λ| toe te passen, en vervolgens in deze formule | λ | als de modulus van

λ te interpreteren. De afleiding van de voorwaarde h < 2|λ| uit (6.99) is alleen geldig voor

reele λ, niet voor complexe λ. Voor complexe λ moet je met (6.101) werken

Heel inzichtelijk is het de vergelijking | 1 + hλ |=√

(1 + hµ)2 + h2ν2 = 1 af te beelden in hetcomplexe 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λ binnendeze cirkel geldt dat de modulus van de versterkingsfactor kleiner is dan 1 en daarbuiten gro-ter. Het gebied binnen de cirkel wordt dan ook het stabiliteitsgebied van de methode van Eulergenoemd. 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 grafischbepaald worden. Je begint met een eigenwaarde λi in het hλ–vlak te markeren; je markeertdus 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 stabiliteitsgebieddan ga je h inkrimpen tot hλi binnen het stabiliteitsgebied komt te liggen. Inkrimpen vanh vanaf h = 1 betekent grafisch dat je langs een rechte lijn van het gemarkeerde punt naarde oorsprong loopt. Je kunt in veel gevallen met het blote oog al vrij nauwkeurig vaststellenvoor welke h de lijn de cirkel snijdt. Dit voer je uit voor elke eigenwaarde; de kleinste h dieje nodig had bepaalt de stabiliteitsgrens.

Uiteraard lukt deze operatie alleen als alle eigenwaarden een strikt negatief reeel deel hebben.Inkrimpen van h kan je nooit binnen het stabiliteitsgebied brengen bij een eigenwaarde meteen reeel deel dat positief of nul is, dit laatste omdat het stabiliteitsgebied aan de imaginaireas raakt. We besteden speciaal aandacht aan zuiver imaginaire eigenwaarden vanwege hetgrote praktisch belang. Differentiaalvergelijkingen met zuiver imaginaire eigenwaarden repre-senteren systemen zonder demping. Zulke systemen resulteren uit meer realistische modellennadat dempende mechanismen, zoals wrijving en warmte geleiding, in eerste benadering zijnverwaarloosd. Het overblijvende ongedempte model is vaak nog zo ingewikkeld dat het nu-meriek moet worden opgelost.

96

Page 103: Numerieke Methoden voor Differentiaalvergelijkingen

Modified Euler en Runge–Kutta voor stelselsDe 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, netals (6.81) dat is voor de voorwaartse methode van Euler, niets anders dan vectoriele copieenvan hun scalaire varianten. Hetzelfde geldt voor hun afbreekfoutrelaties. Voor homogeneteststelsels zijn de afbreekfoutrelaties voor alle drie de methoden te vangen onder de formule:

en+1 = G(hA)en + hτ n+1, (6.102)

met respectievelijk:GE(hA) = I + hA (Euler Voorwaarts), (6.103)

GH(hA) = I + hA +h2

2A2 (Modified Euler), (6.104)

GRK(hA) = I + hA +h2

2A2 +

h3

6A3 +

h4

24A4 (Runge–Kutta). (6.105)

De versterkingsmatrix wordt steeds gevonden door in de versterkingsfactor Q(hλ) van debetreffende 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:

ηn+1 = S−1G(hA)S ηn + hS−1τn+1. (6.106)

Elk van de drie versterkingsmatrices kan termsgewijs getransformeerd worden, immers

S−1(I + hA +h2

2A2 + . . .)S = I + hS−1AS +

h2

2S−1A2S + . . . (6.107)

Verder diagonaliseert de transformatie elke macht van A volgens:

S−1AkS = Λk, (6.108)

waarbij Λ de diagonaalvorm van A is. De transformatie laat kennelijk de vorm van het matrixpolynoom onveranderd en vervangt alleen het argument hA door hΛ: S−1G(hA)S = G(hΛ).Wordt verder de afbreekfoutvector weer langs de eigenvectoren van A ontbonden dan kan degetransformeerde afbreekfoutrelatie (6.106) worden geschreven als:

ηn+1 = G(hΛ)ηn + hαn+1. (6.109)

Het is niet moeilijk in te zien dat G(hΛ) een diagonaalmatrix is, en wel met de verster-kingsfactoren van de respectieve methoden als diagonaalelementen:

G(hΛ) = Diag[Q(hλ1), Q(hλ2), . . . , Q(hλk)]. (6.110)

Componentsgewijze oplossing van het ontkoppelde stelsel geeft:

ηi,n+1 = Q(hλi)ηi,n + hαi,n+1 (i = 1, 2, . . . , k). (6.111)

We concluderen dat voor absolute stabiliteit de versterkingsfactor Q(hλ) voor elk van de ei-genwaarden van A in absolute waarde kleiner moet zijn dan 1.

97

Page 104: Numerieke Methoden voor Differentiaalvergelijkingen

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 eigenwaardenvan 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, komende verschillen tussen de drie methoden naar voren. Evenals bij Euler Voorwaarts wordt metstabiliteitsgebieden 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 endie van de impliciete methoden in Figuur 6.13. Een stabiliteitsgebied kan als volgt gebruiktworden: stel λi is een complexe eigenwaarde, dan moet h zo klein genomen worden dat hλibinnen het stabiliteitsgebied valt. Het stabiliteitsgebied van Modified Euler lijkt erg veel

Euler voorwaarts

1−1−2−3 0

1

2

−1

−2

Modified Euler

1−1−2−3 0

1

2

−1

−2

Figuur 6.12: Stabiliteitsgebieden van de expliciete methoden

op dat van Euler. Beide methoden kennen voor een gegeven stelsel differentiaalvergelijkingendan ook vrijwel dezelfde stapgrootte beperking. Met name geldt voor beide methoden datstelsels 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 methodevoorwaardelijk stabiel is. Tevens merken we op dat de methode ook stabiel kan zijn in hetgeval van y

= Ay met een matrix A, die zuiver imaginaire eigenwaarden heeft. De eerderdoor ons behandelde expliciete methoden zijn altijd instabiel voor een dergelijk stelsel.

Stabiliteit van een algemeen stelselVoor stelsels van de vorm

x′

= f(t,x) , x(0) = x0 ,

98

Page 105: Numerieke Methoden voor Differentiaalvergelijkingen

Euler achterwaarts

1 2−1−2 0

1

2

−1

−2

Trapeziumregel

1 2−1−2 0

1

2

−1

−2

Figuur 6.13: Stabiliteitsgebied van de impliciete methoden

gelden lokaal dezelfde eigenschappen als voor stelsels van het type (6.92). De rol van A wordtdan ingenomen door de matrix van partiele afgeleiden van f gegeven door

∂f1∂x1

. . . ∂f1∂xk

......

∂fk

∂x1. . . ∂fk

∂xk

.

Voorbeeld (stabiliteit mathematische slinger)We beschouwen de stabiliteit van de numerieke oplossing van de vergelijking van de mathe-matische slinger:

ψ′′

+ sinψ = 0 , ψ(0) = ψ0 en ψ′

(0) = 0 .

We kunnen dit schrijven als het stelsel

x′

1 = x2 = f1(t, x1, x2) ,

x′

2 = − sinx1= f2(t, x1, x2) .

De matrix van afgeleiden is nu[

0 1− cos x1 0

]

.

Als we aannemen dat −π2 < ψ0 <

π2 dan zijn de eigenwaarden

λ1,2 = ±i√cos x1 .

Merk op dat de voorwaartse methode van Euler en de methode van Modified Euler instabielzijn voor elke h. De Trapeziumregel is stabiel en de achterwaartse methode van Euler leidt tot

99

Page 106: Numerieke Methoden voor Differentiaalvergelijkingen

Runge−Kutta

1−1−2−3−4 0

1

2

3

−1

−2

−3

Figuur 6.14: Stabiliteitsgebied van de Runge-Kutta methode RK4

demping van de slingerbeweging. In een volgende paragraaf zullen we een expliciete methodebehandelen, die wel stabiel is voor stelsels met imaginaire eigenwaarden.

De orde van de globale afbreekfout bij Euler, Modified Euler en RK4De vectoriele afbreekfout wordt voor elk van de drie methoden componentsgewijs afgeleid,op dezelfde wijze als in het scalaire geval (analoog aan de afleiding van (6.86) voor EulerVoorwaarts). Dat houdt automatisch in dat elke component van de afbreekfoutvector de-zelfde grootte–orde heeft als de scalaire afbreekfout, dus O(h), O(h2) en O(h4) voor EulerVoorwaarts, Modified Euler en RK respectievelijk. Deze grootte-orde verandert niet ondertransformatie met de matrix S omdat deze niet van h afhangt zodat uit

ηi,n+1 = Q(hλi)ηi,n + hαi,n+1 (i = 1, 2, . . . , k) (6.112)

volgt, op dezelfde wijze als in het scalaire geval, dat de componenten van de globale ge-transformeerde afbreekfout η(t, h) dezelfde grootte-orde hebben als de lokale afbreekfout. Bijterugtransformatie met de matrix S blijft diezelfde orde van grootte weer behouden. Voorkleine maar niet infinitesimale h geldt dus

ei(t, h) ≈ Ki(t)hp (i = 1, 2, . . . , k). (6.113)

De details van deze beschouwing zijn verder niet interessant omdat de onbekende evenredig-heidsconstanten Ki(t) door stapgroottehalvering uit de numerieke resultaten geschat zullenworden, op dezelfde wijze als in het scalaire geval. Dit leidt tot:

yi(t) − yi(t,h

2) ≈ 1

2p − 1[yi(t,

h

2) − yi(t, h)] (i = 1, 2, . . . , k), (6.114)

100

Page 107: Numerieke Methoden voor Differentiaalvergelijkingen

waarbij p de orde van de gebruikte methode is.

De afbreekfout wordt voor iedere component afzonderlijk geschat op basis van de numeriekedata voor die betreffende component. De numerieke data voor de andere componenten spelendaarbij geen rol.

6.11 Stijve differentiaalvergelijkingen

Stijve differentiaalvergelijkingen (stiff systems) beschrijven problemen waarbij inschakelver-schijnselen optreden. Hun oplossing is de som van een snel uitdempend deel, de transient, eneen langzaam varierend deel. De transient is na korte tijd ’uitgewerkt’; daarna blijft alleenhet langzaam varierend deel van de oplossing over, de (quasi-)stationaire oplossing.Stijfheid kan in verscheidene vormen voorkomen. Wat voor consequenties stijfheid voor dekeuze van een numerieke methode heeft leggen we uit aan de hand van de meest eenvoudigeverschijningsvorm van stijfheid, namelijk die bij scalaire eerste orde niet-homogene testverge-lijkingen.

Om de discussie te vergemakkelijken schrijven we testvergelijkingen in de gedaante y ′ =λ(y−F (t))+F ′(t). De oplossing met beginvoorwaarde y(0) = y0 is y = (y0−F (0))eλt+F (t),zoals meteen door substitutie is na te gaan. Deze schrijfwijze is handig omdat je uit de dif-ferentiaalvergelijking direct de oplossing kunt aflezen en omgekeerd bij elke keuze van λ eneen particuliere oplossing F (t) de bijbehorende testvergelijking kunt opschrijven. Als λ sterknegatief is en F (t) voldoende glad hebben we met een stijf probleem te maken. De transientis (y0 − F (0))eλt en F (t) is de quasi-stationaire oplossing.

Voor een foutbeschouwing recapituleren we de reeksontwikkeling voor de globale afbreekfoutna N stappen:

eN = QN−1hτ1 +QN−2hτ2 +QN−2hτ3 + . . .+QhτN−1 + hτN . (6.115)

Bij stabiele integratie wordt elke afbreekfout met een factor Q (| Q |< 1) gereduceerd. Dezeexponentiele demping zorgt ervoor dat afbreekfouten die in het begin gemaakt zijn steedsminder zwaar gaan wegen ten opzichte van de laatst gemaakte afbreekfouten welke nog nietzo 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 afbreekfoutenter plaatse, al zal er vanwege verder terug gemaakte afbreekfouten die nog niet helemaal zijnweggedempt altijd een zeker ’naijleffect’ zijn; van dit ’naijleffect merk je minder naarmate dedempingsfactor Q dichter bij nul ligt.

Het waterafvoerprobleem demonstreert dit foutgedrag heel goed: in het asymptotische gebiedwordt de oplossing glad (heel kleine afgeleiden) zodat elke methode daar kleine afbreekfoutenmaakt (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 hetasymptotische gebied dalen en op den duur zelfs volledig wegdempen omdat de afbreekfoutennaar nul gaan.

Stijve problemen vertonen een soortgelijke karakteristiek. In het gebied van de transient maakje relatief grote afbreekfouten maar daarna worden ze veel kleiner vanwege de gladheid van de

101

Page 108: Numerieke Methoden voor Differentiaalvergelijkingen

quasi-stationaire oplossing. De globale afbreekfout die zich aan deze afbreekfouten aanpastwordt kleiner na passage van het transient gebied, en kan zelfs onnodig klein zijn als je destapgrootte klein in verhouding tot de gladheid van F (t) kiest. Dat is natuurlijk inefficientvooral 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 nietoverschrijden want dan worden de afbreekfouten niet meer gedempt. Bij de integratiemetho-den die tot nu toe aan de orde zijn gekomen is deze A

|λ| , met A = 2 voor Euler Voorwaartsen tweede orde RK en 2.8 voor vierde orde RK. Dit is tevens ongeveer de afmeting van hetinschakelgebied, zoals blijkt uit het feit dat de e-macht eλt in een tijdsinterval A

|λ| met een

factor e−A gereduceerd wordt. Op grond van stabiliteitseisen is de maximale stapgrootte bijde 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 wordtgeapproximeerd, met steeds dezelfde F (t), daarbij λ steeds meer negatief kiezend en telkensde maximale stapgrootte gebruikend. De nauwkeurigheid waarmee de quasi-stationaire op-lossing F (t) bepaald wordt zal (noodzakelijkerwijs) toenemen met | λ | omdat de maximalestapgrootte afneemt met | λ |. Vanaf zekere λ wordt die nauwkeurigheid groter dan een be-paalde tolerantie die verlangd wordt. De stabiliteitseis wordt dan meer beperkend voor destapgrootte dan de nauwkeurigheidseis. Dit is de essentie van het verschijnsel stijfheid.

Uit voorgaande beschrijving maakt duidelijk dat stijfheid niet door λ alleen wordt bepaaldmaar dat het eerder het eerder gaat om de relatie tussen λ en de gladheid van F (t): naarmateF (t) gladder is treedt stijfheid vanaf kleinere | λ | op. Het is in feite de verhouding tussen detijdschalen 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 eisendie men aan de nauwkeurigheid van de quasi-stationaire oplossing stelt bepalen mede of eentestvergelijking met gegeven λ en F (t) al of niet stijf genoemd moet worden. Bovendien hangtstijfheid samen met de gebruikte integratiemethode. De maximale stapgrootte is ongeveerdezelfde voor Euler Voorwaarts en RK4 maar RK4 zal de quasi-stationaire oplossing bij dezestapgrootte veel nauwkeuriger approximeren dan Euler Voorwaarts en dus voor een gegeventestvergelijking eerder tot de qualificatie stijfheid aanleiding geven.

Problemen die stijfheid vertonen m.b.t. een van de tot nu toe behandelde methoden kunnenhet beste geıntegreerd worden met een methode met een stabiliteitsgebied dat zodanig ruimis dat daarbinnen de stapgrootte kan worden opgevoerd tot een waarde waarbij de quasi-stationaire oplossing nog met een redelijke nauwkeurigheid wordt benaderd. Dit brengt onsbij de impliciete methoden (zie hieronder).

In de praktijk hebben we meestal met stijfheid bij stelsels te maken (vandaar de naam stiffsystems). Daar heb je een vectoriele variant van stijfheid, namelijk als de particuliere oplos-sing glad is (normaal gesproken is dat het geval als het rechterlid glad is) en alle eigenwaardensterk 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, stelvoor een 2 × 2 homogene testvergelijking is een eigenwaarde -1 en de andere -10000. De op-

102

Page 109: Numerieke Methoden voor Differentiaalvergelijkingen

lossing is van het type c1ξ(1)e−t + c2ξ(2)e

−10000t, waarbij ξ(1) en ξ(2) de eigenvectoren van dematrix zijn en de integratieconstanten c1 en c2 door de begincondities van de twee variabelenbepaald worden. De term met e−10000t speelt nu de rol van transient; deze term verdwijntveel eerder dan de term met e−t. Deze laatste is glad t.o.v. de transient en speelt de rolvan quasi-stationaire oplossing. De transient blijft echter over het hele integratiegebied destabiliteitsvoorwaarde (h < 2/10000) bepalen waardoor verhinderd wordt dat de stapgrootteaangepast 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 metde particuliere oplossing te maken maar met de verhouding tussen de (absolute) grootte vande eigenwaarden.

Bij stelsels met complexe eigenwaarden heb je een vergelijkbare situatie als de reele delen vande eigenwaarden sterk in grootte verschillen.

Voorgaande overwegingen blijven van kracht voor niet-homogene stelsels, mits de particuliereoplossing min of meer dezelfde gladheid heeft als het langzaam varierende deel van de homo-gene oplossing.

Impliciete methodenEen impliciete methode is al geıntroduceerd bij de afleiding van de Modified Euler. Deze isgebaseerd op de Trapeziumregel:

wn+1 = wn +h

2[f(tn, wn) + f(tn+1, wn+1)].

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 opgelostom wn+1 te vinden. Dat leidt tot de Modified Euler. Doen we de concessie de vergelijking welop te lossen dan krijgen we daarvoor terug dat de aldus gedefinieerde methode, die onder denaam Trapezium- of Crank-Nicolson (CN) methode bekend staat, onbeperkt stabiel is. Dattonen we aan aan de hand van teststelsels. Voor een teststelsel y ′ = Ay + g(t). wordt demethode:

wn+1 = wn +h

2[Awn + g(tn) + Awn+1 + g(tn+1))].

Brengen we alle termen met wn+1 naar links:

(I− h

2A)wn+1 = (I +

h

2A)wn +

h

2[g(tn) + g(tn+1)].

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. Datis de veer die we moeten laten.

Om de versterkingsfactor van de Trapezium methode te vinden kunnen we ons tot homogeneteststelsels beperken. Ontkoppeling gebeurt op dezelfde wijze als voorheen (zie week 6 text)door transformatie van de afbreekfout met de matrix S der eigenvectoren. Dit leidt zoals menzelf kan nagaan tot het ontkoppelde stelsel

(I − h

2Λ)ηn+1 = (I +

h

2Λ)ηn.

103

Page 110: Numerieke Methoden voor Differentiaalvergelijkingen

Componentsgewijs oplossen geeft:

ηi,n+1 =1 + h

2λi

1 − h2λi

ηi,n.

De versterkingsfactor van de Trapezium methode is dus Q(hλ) =1+ h

1−h2λ. Met λ = µ+ iν geldt

| Q(h(µ+ iν)) | =| (1 + h

2µ) + h2νi |

| (1 − h2µ) − h

2νi |

=

(1 + h2µ)2 + (h2ν)

2

(1 − h2µ)2 + (h2ν)

2.

Voor eigenwaarden met negatief reeel deel (µ < 0) is de teller kleiner dan de noemer voor elkestapgrootte en de methode is stabiel voor elke stapgrootte, onbeperkt stabiel dus.

Een tweede veel gebruikte onbeperkt stabiele methode is Euler Achterwaarts. Deze kanweer uit de integraalformulering worden afgeleid door

∫ tn+1

tnf(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

wn+1 = wn + hf(tn+1, wn+1).

Voor een teststelsel wordt dit

wn+1 = wn + h(Awn+1 + g(tn+1)),

hetgeen herschreven kan worden als:

(I − hA)wn+1 = wn + hg(tn+1).

Voor homogene teststelsels resulteert ontkoppeling in de scalaire vergelijking

ηi,n+1 = (1 − hλi)−1ηi,n

voor de i-de component. Stabiele integratie wordt verkregen op voorwaarde dat de moduli vanalle 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 reeel deel µ. Dat geldt voor elke h endus is | (1 − hλi)

−1 |=| 1 − hλi |−1 voor elke stapgrootte kleiner dan 1 waarmee aangetoondis dat Euler Impliciet onbeperkt stabiel is.

Beide hier behandelde methoden hebben hun onbeperkte stabiliteit gemeen maar vertonenbij toepassing aanzienlijke verschil in gedrag zoals het volgende experiment laat zien. Geap-proximeerd is de scalaire testvergelijking y ′ = −100(y − cos t)− sin t met Euler Achterwaartsen Trapezium, in beide gevallen met stapgrootte 0.2. De afmeting van het transient gebiedis van de orde 0.01. Met de eerste stap stap je dus gewoon over dit gebied heen. Dat is nieterg als je niet in het preciese gedrag van de transient bent geınteresseerd hoewel de eersteafbreekfout erg groot zal zijn. Deze zal weggedempt moeten worden. Het gemak waarmeedit gebeurt verschilt erg voor beide methoden zoals te zien is in Figuur 6.15 en 6.16. Indeze figuren is de quasi-stationaire oplossing cos t weergegeven vanaf t = 0 zodat je goed het

104

Page 111: Numerieke Methoden voor Differentiaalvergelijkingen

effect van de genegeerde transient op de afbreekfout kunt zien. Men ziet de zeer gunstigeresultaten 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 beginfoutenzijn weggedempt. Probeer zelf eens dit verschil te verklaren aan de hand van figuur 3 waarde versterkingsfactoren van Euler Achterwaarts en de Trapezium methode als functie van hλzijn uitgezet.

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5−1.5

−1

−0.5

0

0.5

1

1.5

2

Figuur 6.15: Approximatie van y′ = −100(y−cos t)−sin t met de Trapezium methode; h=0.2

0 0.5 1 1.5 2 2.5 3 3.5 4 4.5−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Figuur 6.16: Approximatie van y′ = −100(y − cos t) − sin t met Euler Achterwaarts; h=0.2

105

Page 112: Numerieke Methoden voor Differentiaalvergelijkingen

SuperstabielEen numerieke methode heet superstabiel als

limhλ→−∞

|Q(hλ)| < 1 .

Uit Figuur 6.17 blijkt dat Euler achterwaarts superstabiel is, terwijl voor de Trapeziumregelgeldt:

limhλ→−∞

|Q(hλ)| = 1 .

Dit betekent dat beginverstoringen in de snelle componenten niet of zeer traag uitdempen

−10−20−30−40−50 0

1

−1

h λ

Euler AchterwaartsTrapeziumregel

Figuur 6.17: De versterkingsfactoren van Euler Achterwaarts en de Trapezium methode alsfunctie van hλ

bij het gebruik van de Trapeziumregel.

DiscussieIn 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 methodenmoet 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 stelselsvergelijkingen, kunnen de kosten toch sterk oplopen. Het is daarom vaak een kwestie vanwikken 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 tj. Hoewelsommige methoden gebruik maken van functie evaluaties in tussengelegen punten, wordt

106

Page 113: Numerieke Methoden voor Differentiaalvergelijkingen

deze informatie niet bewaard om te gebruiken in toekomstige benaderingen. Alle informatiegebruikt door deze methoden is verkregen binnen het interval waarover de oplossing benaderdwordt.

Omdat de benaderende oplossing beschikbaar is in de roosterpunten t0, t1, ..., tj voordat debenadering in tj+1 bepaald wordt, lijkt het redelijk om methoden te ontwikkelen, die dezeinformatie gebruiken. Deze methoden worden meerstaps methoden genoemd.

Adams-Bashforth methodeVoor de afleiding van de Adams-Bashforth methode gaan we uit van de Trapeziumregel

uj+1 = uj +h

2[f(tj, uj) + f(tj+1, uj+1)] (6.116)

We kunnen deze methode expliciet maken door f(tj+1, uj+1) te extrapoleren met behulp vanf(tj−1, uj−1) en f(tj, uj). Het lineaire interpolatiepolynoom wordt gegeven door

l(t) = f(tj, uj) + (t− tj)f(tj, uj) − f(tj−1, uj−1)

h.

Als we nu f(tj+1, uj+1) in (6.116) vervangen door l(tj+1), dan krijgen we de Adams-Bashforthmethode

uj+1 = uj +3

2hf(tj, uj) −

1

2hf(tj−1, uj−1) . (6.117)

Merk op dat per tijdstap slechts een functie evaluatie nodig is.

StabiliteitWe maken gebruik van de testvergelijking y

= λy. Voor de verstoring ε geldt de recursie

εj+1 = (1 +3

2hλ)εj −

1

2hλεj−1 . (6.118)

Dit is een differentievergelijking met constante coefficienten. Deze kunnen we oplossen doorte substitueren εj = czj . De karakteristieke vergelijking wordt

z2 − (1 +3

2hλ)z +

1

2hλ = 0 ,

met als oplossingen

z1 =1 + 3

2hλ+√D

2, (6.119)

z2 =1 + 3

2hλ−√D

2, (6.120)

waarbij D = 1 + hλ+ 94(hλ)2. De algemene oplossing van (6.118) is nu

εj = c1zj1 + c2z

j2 .

De constanten c1 en c2 volgen uit de beginvoorwaarden. Merk op dat de Adams-Bashforthmethode stabiel is wanneer

|z1,2(hλ)| ≤ 1 . (6.121)

107

Page 114: Numerieke Methoden voor Differentiaalvergelijkingen

−0.5−1 0

1

−1

z1z2

Figuur 6.18: De versterkingsfactoren z1 en z2 van de Adams-Bashforth methode

De wortels z1 en z2 zijn gegeven in Figuur 6.18. Merk op dat aan (6.121) voldaan is voorh ≤ 1

|λ| . De methode is dus voorwaardelijk stabiel.

AfbreekfoutMet behulp van Taylorontwikkeling volgt uit (6.119) en (6.121):

z1(hλ) = 1 + hλ+1

2(hλ)2 − 1

4(hλ)3 +O(h4) ,

z2(hλ) =1

2hλ+O(h2) .

De exacte oplossing van de testvergelijking is

ehλ = 1 + hλ+1

2(hλ)2 +

1

6(hλ)3 +O(h4) .

Merk op dat |z1(hλ)−ehλ|h ≈ 5

12h2|λ|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 differentiaalvergelijkingte maken, maar is een gevolg van de gekozen numerieke methode.

Vergelijking met de methode van Modified EulerWat betreft stabiliteit moet de stapgrootte bij Adams-Bashforth 2 maal zo klein genomenworden dan bij de methode van Modified Euler. Omdat Modified Euler per tijdstap 2 maalzoveel werk kost zijn de methoden op dit punt vergelijkbaar.

Wat betreft nauwkeurigheid kiezen we de stapgrootte zo dat de afbreekfout kleiner is dan eps.

108

Page 115: Numerieke Methoden voor Differentiaalvergelijkingen

Voor Adams-Bashforth geldt dan

h =

12eps

5|λ|3

en voor Modified Euler

h =

6eps

|λ|3 .

We kunnen met dezelfde hoeveelheid werk 2 stappen Adams-Bashforth doen ten opzichte van1 stap Modified Euler. Hiermee wordt het interval waarover we de oplossing benaderen bijAdams-Bashforth

96eps

10|λ|3 ,

en bij Modified Euler√

60eps

10|λ|3 ,

zodat Adams-Bashforth minder werk kost dan Modified Euler.

DiscussieMeerstaps methoden zijn minder populair dan Runge-Kutta methoden. Bij meerstaps metho-den treden opstartproblemen op, omdat de oplossing op meerdere tijdsniveaus bekend dientte zijn. Verder is de controle van de ’spurious roots’ een moeilijke zaak.

6.13 Samenvatting

In dit hoofdstuk zijn de volgende begrippen behandeld:

- eenstapsmethoden (Euler, Modified Euler, Trapezium)

- impliciete, expliciete methoden

- versterkingsfactor

- afbreekfout, consistentie

- stabiliteit, convergentie

- stelsels eerste orde beginwaarde problemen

- hogere orde beginwaarde problemen

- stabiliteit stelsels, stabiliteitsgebied

- stijve stelsels, superstabiel

- Runge-Kutta methoden

- meerstapsmethode (Adams-Bashforth)

109

Page 116: Numerieke Methoden voor Differentiaalvergelijkingen

6.14 Opgaven

1. Gebruik de Modified Euler methode om de oplossing te benaderen van het volgendebeginwaardeprobleem: y′ = 1 + (t − y)2, 2 ≤ t ≤ 3, y(2) = 1, met h = 0.5. De exacteoplossing wordt gegeven door y(t) = t+ 1

1−t . Bepaal de fout in de numerieke benadering.

2. Laat zien dat de lokale afbreekfout bij de midpuntregel O(h2) is. De midpuntregel wordtgegeven door:

wi+1 = wi + hf(ti +h

2, wi +

h

2f(ti, wi))

3. Bepaal de versterkingsfactor voor de Trapeziumregel. Schat hiermee de afbreekfoutvoor de testvergelijking. Laat zien dat de Trapeziumregel stabiel is voor alle h > 0, alsλ ≤0.

4. Gegeven het niet-lineaire beginwaardeprobleem: y ′ = 1 + (t− y)2. Geef de stabiliteits-voorwaarde voor de methode van Modified Euler in het punt t = 2 en y = 1.

5. Gegeven is de numerieke integratiemethode:

u∗ = un + βhf(tn, un), un+1 = u∗ + (1 − β)hf(tn + βh, u∗)

(a) Laat zien, dat de afbreekfout O(h) is voor elke waarde van β.

(b) Bepaal de versterkingsfactor van deze methode.

(c) Beschouw de niet-lineaire differentiaalvergelijking: y ′ = 2y− 4y2. Bepaal de maxi-male stapgrootte zodanig, dat de methode (met β = 1

2) stabiel is in de buurt vany = 1

2 .

6. Voer een stap uit met de voorwaartse Euler methode met stapgrootte h = 0.1 voor hetstelsel:

u′1 = −4u1 − 2u2 + et,

u′2 = 3u1 + u2,

met beginvoorwaarde u1(0) = 0 en u2(0) = −1.

7. Doe een stap met voorwaarts Euler voor de vergelijking y ′′ − 2y′ + y = tet − t mety(0) = y′(0) = 0 met stapgrootte h = 0.1. Bepaal de fout met de echte oplossing:y(t) = 1

6 t3et − tet + 2et − t− 2.

8. Stel we hebben de vergelijking voor de mathematische slinger: φ′′ + gLφ = 0 met φ(0) =

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

9. Gegeven het stelsel y′1 = 1195y1 − 1995y2, y1(0) = 2, y′2 = 1197y1 − 1997y2, y2(0) =−2. De exacte oplossing wordt gegeven door y1(t) = 10e−2t − 8e−800t, y2(t) = 6e−2t −8e−800t.

(a) Doe een stap met E.V. en E.A. met h = 0.1 en vergelijk met het exacte antwoord.

(b) Bepaal voor welke stapgrootte E.V. stabiel is.

(c) Doe een stap met E.V. en E.A. met h = 0.0001 en vergelijk met het exacte ant-woord. Conclusie?

110

Page 117: Numerieke Methoden voor Differentiaalvergelijkingen

10. Gegeven de differentiaalvergelijking y ′ = y − t2 + 1 en y(0) = 12 . Benader y(0.1) =

0.6574145 met E.V. met h = 0.025 en de RK methode met h = 0.1. Welke methodeverdient de voorkeur?

111

Page 118: Numerieke Methoden voor Differentiaalvergelijkingen

Hoofdstuk 7

De eindige differentie methode voorrandwaarde problemen

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 eenbegrensd gebied, waarbij de functie en/of zijn afgeleiden gegeven zijn in beide randpunten.

Stationair warmte probleemAls voorbeeld nemen we de temperatuurverdeling in een staaf (Figuur 7.1). De temperatuur

0 x x+∆ x L

Figuur 7.1: De vorm van de staaf

van de staaf geven we aan met T (x) (K). We nemen aan dat de temperatuur gegeven is inbeide 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/m3s). Bij dit voorbeeld zijn wegeınteresseerd in de temperatuur na lange tijd. Dit betekend dat de temperatuur stationairgeworden 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 volumetussen x en x+ ∆x (zie Figuur 7.1).

Door geleiding is er warmtetransport door de zijvlakken op x en x+ ∆x. Volgens de wet vanFourier wordt dit warmtetransport per oppervlak en per seconde gegeven door:

−λdTdx

,

112

Page 119: Numerieke Methoden voor Differentiaalvergelijkingen

waarbij λ (J/msK) de warmtegeleidingscoefficient genoemd wordt. De warmtebalans is nu:

−λAdTdx

(x) + λAdT

dx(x+ ∆x) +AQ(x)∆x = 0 .

Delen door A∆x geeft

−λdTdx (x+ ∆x) − dT

dx (x)

∆x+Q(x) = 0 .

Na het nemen van de limiet ∆x→ 0 krijgen we het volgende randwaarde probleem:

−λd2T

dx2(x) = −Q(x) 0 < x < L ,

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 een van de uiteinden gegeven in plaatsvan de temperatuur. Voor x = L leidt dit via de wet van Fourier tot de randvoorwaarde

λAdT

dx(L) = AqL ,

waarbij de warmtestroom qL (J/m2s) gegeven is.

7.2 De eindige differentie methode

De algemene vorm van een randwaarde probleem van de tweede orde in een dimensie wordtgegeven door

−(p(x)y′

)′

+ r(x)y′

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

met de randvoorwaarden

a0y(0) + b0y′

(0) = c0 en aLy(L) + bLy′

(L) = cL .

Hierbij is aangenomen dat p(x) > 0 en q(x) ≥ 0 voor alle x ∈ [0, L]. Deze problemenworden Sturm-Liouville problemen genoemd. Merk op dat het gegeven randwaarde probleemmeerdere oplossingen heeft als a0 = aL = 0. Voor de randvoorwaarden worden de volgendeaanduidingen gebruikt (we beperken ons tot x = 0):

Dirichlet randvoorwaarde: a0y(0) = c0 dus b0 = 0 ,

Neumann randvoorwaarde: b0y′

(0) = c0 dus a0 = 0 ,

Robbins randvoorwaarde: a0 6= 0 en b0 6= 0 .

De vergelijkingWe beschrijven de eindige differentie methode voor het probleem:

−y′′

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

y(0) = 0 en y(1) = 0 .

DiscretisatieWe delen het interval [0, 1] op in n+1 gelijke delen met lengte h = 1

n+1 . De knooppunten zijn

113

Page 120: Numerieke Methoden voor Differentiaalvergelijkingen

xj = jh voor j = 0, ..., n+ 1. de numerieke benadering van yj = y(xj) geven we aan met wj .Om de numerieke oplossing te bepalen wordt gebruik gemaakt van de differentiaalvergelijkingin het punt xj :

−y′′

j + qjyj = 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

h2+ qjwj = fj 1 ≤ j ≤ n . (7.2)

De waarde w0 en wn+1 in de randpunten volgen uit de randvoorwaarden

w0 = 0 en wn+1 = 0 . (7.3)

Het stelsel vergelijkingenHet differentieschema (7.2) en (7.3) geeft n+2 vergelijkingen voor de onbekenden w0, ..., wn+1.Als we w0 en wn+1 elimineren uit (7.2) dan krijgen we het stelsel

Aw = f , (7.4)

met A = K +M , waarbij K en M gegeven worden door:

K =1

h2

2 −1 ∅−1 2 −1

−1 2 −1

∅ . . .. . .

. . .

en M =

q1 ∅. . .

∅ . . .

qn−1

.

De vektoren w en f zijn: w =

w1...wn

en f =

f1...fn

.

7.3 Herhaling van enkele lineaire algebra begrippen

In deze paragraaf worden een aantal begrippen uit de lineaire algebra opgesomd, die gebruiktworden bij het bestuderen van het verschil tussen de numerieke uj en de exakte oplossing yjvan het randwaarde probleem.

ConditieDe geschaalde Euclidische norm van een vector is gedefinieerd als:

‖x‖ =

1

n

n∑

i=1

x2i .

De natuurlijke, of afgeleide, matrix norm, die gerelateerd is aan de vectornorm ‖.‖ wordtgedefineerd als:

‖A‖ = max‖x‖=1

‖Ax‖.

We maken veel gebruik van de ongelijkheid ‖Ax‖ ≤ ‖A‖ ‖x‖.

114

Page 121: Numerieke Methoden voor Differentiaalvergelijkingen

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 .

Voor de relatieve fout geldt dan

‖∆x‖‖x‖ ≤ ‖A‖ ‖A−1‖‖∆b‖

‖b‖ .

De grootheid K(A) = ‖A‖ ‖A−1‖ wordt het conditiegetal genoemd. Voor een symmetrischematrix met eigenwaarden λ1, ..., λn geldt

‖A‖ = λmax = max1≤j≤n

|λj| en ‖A−1‖ =1

λmin=

1

min1≤j≤n

|λj |,

zodat K(A) = λmaxλmin

. Voor een schatting van het conditiegetal van een symmetrische matrix,is het van belang om de grootste en de kleinste eigenwaarden te kennen. Een handige stellinghierbij is:

De stelling van GershgorinDe eigenwaarden van de matrix A liggen in de vereniging van de cirkels

|z − aii| ≤n∑

j 6=ij=1

|aij| waarbij z ∈ C .

BewijsStel Avk = λkvk. Laat nu vki de in de modulus grootste component zijn van vk. Dan geldt:

(aii − λk)vki = −n∑

j 6=ij=1

aijvkj

zodat

|aii − λk| ≤n∑

j 6=ij=1

|aij ||vkj||vki|

≤n∑

j 6=ij=1

|aij |,

waarmee de stelling bewezen is.

7.4 Consistentie, stabiliteit en convergentie

We willen laten zien dat het verschil tussen de numerieke en de exakte oplossing naar nulgaat als de stapgrootte h naar nul gaat. Om dit aan te tonen zullen we een aantal begrippendefinieren.

AfbreekfoutDe afbreekfout εεε van het schema Aw = f is gedefinieerd als

εj = (Ay −Aw)j = (Ay − f)j , j = 1, ..., n ,

115

Page 122: Numerieke Methoden voor Differentiaalvergelijkingen

waarbij de componenten van y de exacte oplossing, gegeven worden door yj = y(xj).

Voor het stelsel gegeven door (7.4)−yj−1+2yj−yj+1

h2 +qjyj = fj geldt met de foutschatting voorde centrale differentie

εj = −y′′

j + qjyj − 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.

ConsistentieEen eindige differentie schema heet consistent als

limh→0

‖εεε‖ = 0 .

Uit (7.5) volgt ‖εεε‖ = O(h2) zodat stelsel (7.4) consistent is.

StabiliteitEen eindige differentie schema heet stabiel, als er een constante M bestaat, die niet afhangtvan h, zodanig dat

‖A−1‖ ≤M , voor h→ 0 .

Merk op dat stabiliteit impliceert dat het stelsel een eenduidige oplossing heeft. De matrix Auit (7.4) is symmetrisch. Dit betekent dat de eigenwaarden reeel zijn en

‖A−1‖ =1

λmin.

Als 0 < qmin ≤ q(x) ≤ qmax dan volgt uit de stelling van Gershgorin

qmin ≤ λj ≤ qmax +4

h2voor j = 1, ..., n .

Hieruit volgt ‖A−1‖ ≤ 1qmin

zodat het schema stabiel is.

Als q(x) = 0 voor alle x ∈ [0, 1], dan hebben we niets aan de stelling van Gershgorin voorhet schatten van de kleinste eigenwaarde (waarom niet?). Zonder bewijs merken we op datde eigenwaarden van A = K gegeven worden door

λj = (2 − 2 cos(n− j)hπ)/h2 , j = 1, ..., n .

Dit geeft

λmin = (2 − 2 cos hπ)/h2 = (4 sin2 hπ

2)/h2 ≈ π2 .

Dus ook voor q ≡ 0 geldt dat het schema stabiel is. Het conditiegetal van A is 4(πh)2

.

ConvergentieEen schema heet convergent als voor de globale fout y − w geldt

limh→0

‖y − w‖ = 0 .

In de volgende stelling wordt er een verband aangegeven tussen de begrippen: consistentie,stabiliteit en convergentie.

116

Page 123: Numerieke Methoden voor Differentiaalvergelijkingen

Stelling 7.4.1 Als een schema stabiel en consistent is, dan is het schema convergent.

Bewijs:De globale fout y − w voldoet aan het stelsel

A(y − w) = Ay −Aw = f + εεε− f = εεε ,

waar uit volgt: y − w = A−1εεε. Als we hiervan de norm nemen dan geldt:

‖y − w‖ ≤ ‖A−1‖ ‖εεε‖ .

Uit de stabiliteit en de consistentie volgt nu direct

limh→0

‖y − w‖ = 0 .

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

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

−y′′

= 25e5x , 0 < x < 1 ,

y(0) = y(1) = 0 .

Omdat er een warmtebron (25e5x) is, verwachten we dat de temperatuur y positief is. InFiguur 7.2 staat de grafiek van y en van de numerieke oplossingen bepaald met de stapgroot-ten: h = 1

4 ,18 en 1

16 . Er is een snelle convergentie van de numerieke oplossing naar de exacteoplossing. De behaalde nauwkeurigheid bij stapgrootte h = 1

16 is in een praktische situatiewaarschijnlijk voldoende.

Als een variatie op deze toepassing nemen we

−y′′

+ 9y = 25e5x , 0 < x < 1 ,

y(0) = y(1) = 0 .

De term 9y beschrijft afgifte van warmte aan de omgeving, die evenredig is met de tempe-ratuur. De exacte en numerieke oplossingen staan in Figuur 7.3. Merk op dat de maximaletemperatuur inderdaad lager is dan in het eerste voorbeeld (Figuur 7.2). Verder is er weinigverschil tussen het convergentiegedrag van beide problemen.

7.5 De conditie van de discretisatie matrix

Voor q(x) = 0, 0 ≤ x ≤ 1 hebben we gezien dat

λmin ' π2 en λmax ' 4

h2.

Dit betekent dat K(A) = 4π2h2 . Als h naar nul gaat, dan gaat de conditie van A naar

oneindig. Dit ziet er niet zo goed uit. In de praktijk valt het gedrag van de fout vaak mee.

117

Page 124: Numerieke Methoden voor Differentiaalvergelijkingen

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

10

20

30

40

50

60

70

80

x

y

Exact h=0.25 h=0.125 h=0.0625

Figuur 7.2: De exacte en numerieke oplossingen van het warmteprobleem

Bij de afleiding van de relatieve fout is uitgegaan van een pessimistische situatie. Voor eenrealistischer schatting kunnen we de volgende analyse gebruiken. De numerieke oplossingvoldoet aan

Aw = f .

Bij een verstoring ∆f geldtA(w + ∆w) = f + ∆f ,

zodat ∆w voldoet aan A∆w = ∆f . Hiermee leiden we af

‖∆w‖ = ‖A−1∆f‖ ≤ 1

λmin‖∆f‖ .

Voor de relatieve fout volgt dan

‖∆w‖‖w‖ ≤ 1

λmin

‖f‖‖w‖ · ‖∆f‖

‖f‖ .

De rol van K(A) is hierbij overgenomen door het ”effectieve” conditiegetal 1λmin

‖f‖‖w‖ . We

weten dat λmin ' π2 en in veel toepassingen is‖f‖‖w‖ begrensd als h naar nul gaat, zodat het

”effectieve” conditiegetal wel begrensd is.

7.6 Neumann randvoorwaarde

Tot nu toe hebben we randwaarde problemen bekeken met twee Dirichlet randvoorwaarden.Hoe moeten we een Neumann randvoorwaarde verwerken? We zullen deze vraag beantworden

118

Page 125: Numerieke Methoden voor Differentiaalvergelijkingen

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

5

10

15

20

25

30

35

40

45

x

y

Exact h=0.25 h=0.125 h=0.0625

Figuur 7.3: De exacte en numerieke oplossingen van het warmteprobleem met afkoeling

voor de voorwaardedy

dx(1) = 0 . (7.6)

DiscretisatieWe introduceren een virtueel punt xn+2 = (n+ 2)h = 1 + h. Voor j = n+ 1 geldt

−wn + 2wn+1 − wn+2

h2+ qn+1wn+1 = fn+1 . (7.7)

Discretisatie van (7.6) geeftwn+2 − wn

2h= 0 .

Hieruit volgt wn+2 = wn. Dit substitueren we in (7.7) en delen door 2:

−wn + wn+1

h2+

1

2qn+1wn+1 =

1

2fn+1 . (7.8)

Deling door 2 is uitgevoerd om een symmetrische matrix A te verkrijgen. Merk op dat devector w nu lengte n+ 1 heeft.

ConvergentieMet 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 vergelijkingO(h2). Betekent dit dat de globale fout O(h) is? Dit blijk mee te vallen, zoals we hieronderzullen zien.

119

Page 126: Numerieke Methoden voor Differentiaalvergelijkingen

We nemen q(x) = 0, 0 ≤ x ≤ 1. Het is bekend dat het resulterende stelsel stabiel is. Wesplitsen de afbreekfout in twee vectoren:

Ay = f + h2u + hv , met v =

0...0

vn+1

.

De globale fout e = y − w splitsen we ook e = e(1) + e(2), waarbij

Ae(1) = h2u en Ae(2) = hv .

Omdat A stabiel is geldt ‖e(1)‖ = O(h2). Voor e(2) merken we op dat

e(2)i = h3vn+1i , i = 1, ..., n + 1 .

Omdat hi ≤ 1 volgt ‖e(2)‖ = O(h2). Dus voor de globale fout geldt ‖e‖ = O(h2).

7.7 Het algemene probleem

Het algemene randwaarde probleem wordt gegeven door

−(py′

)′

+ ry′

+ qy = f , 0 < x < 1 ,

met randvoorwaardeny(0) = α en y

(1) = β .

Discretisatie in het punt xj geeft:

−pj+ 12(wj+1 − wj) + pj− 1

2(wj − wj−1)

h2+rj

wj+1 − wj−1

2h+qjwj = fj , j = 1, ..., n+1 . (7.9)

Merk op als rj 6= 0 dan is de discretisatie matrix niet symmetrisch. De randvoorwaarde voorx = 0 geeft w0 = α hetgeen gesubstitueerd kan worden in (7.9) voor j = 1. De randvoorwaardevoor x = 1 discretiseren we als volgt:

1

2(pn+ 3

2

wn+2 − wn+1

h+ pn+ 1

2

wn+1 − wnh

) = p(1)β .

Merk op dat links het gemiddelde genomen is van de benaderingen voor

pn+ 32

dy

dx(1 +

1

2h) en pn+ 1

2

dy

dx(1 − 1

2h) .

Dit gemiddelde is een benadering voor pn+1dydx(1) = p(1)β. Voor deze formulering is gekozen

omdat nu de term pn+ 32(wn+2 − wn+1) in (7.9) voor j = n + 1 vervangen kan worden door

−pn+ 12(wn+1 − wn) + 2hp(1)β.

120

Page 127: Numerieke Methoden voor Differentiaalvergelijkingen

7.8 Niet-lineaire randwaarde problemen

Een niet-lineair randwaarde probleem kunnen we schrijven als

−(py′

)′

+ g(y′

, y, x) = 0 , 0 < x < 1 ,

y(0) = 0 en y(1) = 0 .(7.10)

De algemene aanpak is dat (7.10) wordt opgelost met een iteratief proces waarin alleen lineairevergelijkingen opgelost worden. De lineaire randwaarde problemen lossen we op met methodenuit Hoofdstuk 7. De iteratieve methode genereert een rij iteranden y (0), y(1), y(2), ... zodanigdat y(n) → y, n→ ∞ met y de oplossing van (7.10).

PicardDe iteratiemethode van Picard werkt als volgt:

Kies een startfunctie y(0)(x)for n = 1 step 1 until nit dobegin

bepaal y(n) uit

−(py′

)′

= −g(y(n−1)′ , y(n−1), x) ,y(0) = 0 en y(1) = 0

end

Hierbij is nit het aantal iteraties dat wordt uitgevoerd.

Newton-RaphsonMet behulp van Taylor ontwikkeling volgt:

g(y′

, y, x) ' g(y(n−1)′ , y(n−1), x) + (y′ − y(n−1)′)r + (y − y(n−1))q

waarbij

r =∂g

∂y′(y(n−1)′ , y(n−1), x) en

q =∂g

∂y(y(n−1)′ , y(n−1), x) .

De Newton-Raphson methode is nu:

Kies een startfunctie y(0)(x)for n = 1 step 1 until nit dobegin

bepaal y(n) uit

−(py′

)′

+ ry′

+ qy = y(n−1)′r + y(n−1)q − g(y(n−1)′ , y(n−1), x)y(0) = 0 en y(1) = 0

end

121

Page 128: Numerieke Methoden voor Differentiaalvergelijkingen

7.9 De convectie-diffusie vergelijking

In de vorige paragraaf hebben we de discretisatie afgeleid voor het algemene randwaardeprobleem. We hebben hierbij centrale differenties toegepast. In toepassingen blijkt dit nietaltijd tot (physisch) acceptabele oplossingen te leiden. We illustreren dit aan de hand vanhet randwaarde probleem:

−y′′

+ vy′

= 0 , 0 < x < 1 ,

y(0) = 1 , y(1) = α ,

met v > 0. We kunnen dit interpreteren als een warmte transport probleem. Hierbij is erniet alleen transport door geleiding (diffusie) −y ′′

maar ook door stroming (convectie) vy′

.Bovenstaande vergelijking staat bekend als de convectie-diffusie vergelijking.

Centrale differentiesToepassen van centrale differenties geeft als stelsel

1

h2

2 −1 + vh2

−1 − vh2 2

. . . ∅

∅ . . .. . .

. . .

w1......wn

=1

h2

1 + vh2

0...0

(1 − vh2 )α

.

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 differentiesAls de voorwaarde vh < 2 tot hele kleine stapgroottes leidt, is het beter om upwind discreti-satie te gebruiken. Hierbij wordt vy

j benaderd door

vwj − wj−1

hals v ≥ 0 en

vwj+1 − wj

hals v < 0 .

Voorbeeld (convectie-diffusie)Om het verschil van centrale en upwind discretisatie te zien, beschouwen we het randwaarde-probleem

−y′′

+ vy′

= 1 , 0 < x < 1 ,

y(0) = y(1) = 0 .

Voor h = 0.1 zijn de oplossingen bepaald voor v = 10, 20 en 100 (zie Figuur 7.4, 7.5 en7.6). Voor v = 10 geldt vh < 2 en geeft centrale discretisatie een beter resultaat dan eenupwind discretisatie. Voor v = 20 geldt vh = 2. De numerieke oplossing voor de centraledifferentie hangt nu niet af van de randvoorwaarde in x = 1. Toevallig is in dit probleem denumerieke oplossing nog redelijk. Voor v = 100 zien we dat de oplossing bepaald via upwinddiscretisatie nog steeds een goede oplossing geeft terwijl centrale discretisatie oscillaties geeftin de oplossing. Bovendien treden er grote fouten op.

122

Page 129: Numerieke Methoden voor Differentiaalvergelijkingen

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.01

0.02

0.03

0.04

0.05

0.06

0.07

x

Tem

pera

tuur

ExactCentraalUpwind

Figuur 7.4: De oplossing van het convectie-diffusie probleem voor v = 10

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1−0.01

0

0.01

0.02

0.03

0.04

0.05

x

Tem

pera

tuur

ExactCentraalUpwind

Figuur 7.5: De oplossing van het convectie-diffusie probleem voor v = 20

7.10 Samenvatting

In dit hoofdstuk zijn de volgende begrippen behandeld:

123

Page 130: Numerieke Methoden voor Differentiaalvergelijkingen

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

0.002

0.004

0.006

0.008

0.01

0.012

0.014

0.016

x

Tem

pera

tuur

ExactCentraalUpwind

Figuur 7.6: De oplossing van het convectie-diffusie probleem voor v = 100

- model warmtetransport

- randwaarde probleem

- Dirichlet, Neumann, Robbins randvoorwaarde

- eindige differentie

- conditiegetal

- consistentie, afbreekfout

- stabiliteit

- convergentie, globale fout

- niet-lineair randwaarde probleem

- convectie-diffusie probleem

- upwind discretisatie

124

Page 131: Numerieke Methoden voor Differentiaalvergelijkingen

7.11 Opgaven

1. Gegeven de matrices A1 en A2:

A1 =

(

2 11 2

)

en A2 =

(

100 9999 100

)

Bepaal van beide matrices het conditiegetal. Bepaal de oplossing van A2x = b waarbijb = (199, 199). Neem ∆b = (1, 0). Schat ‖∆x‖ met behulp van het conditiegetal.Bepaal ∆x en vergelijk ‖∆x‖ met de schatting.

2. Gegeven het randwaarde probleem

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

(a) Discretisatie geeft een stelsel vergelijkingen A w = b. Geef A en b.

(b) Geef een schatting voor de grootste en de kleinste eigenwaarde van A.

(c) Geef een schatting van ‖∆w‖‖w‖ als ‖∆b‖

‖b‖ ≤ 10−4.

3. Gegeven het randwaarde probleem

−y′′(x) = sinx, x ∈ [0, π],

y(0) = 0, y(π) = 0.

Geef de exacte oplossing. Neem N = 2 en bepaal de numerieke oplossing wj . Berekenyj −wj , j = 1, 2.

4. Gegeven het randwaarde probleem

−y′′(x) + y(x) = 0, x ∈ [0, 1],

y(0) = 1, y′(1) = 0.

Discretizeer dit randwaarde probleem met de roosterpunten: x0 = 0, x1 = 27 , x2 =

47 , x3 = 6

7 en x4 = 87 . Geef de matrix A. Is de matrix symmetrisch of niet-symmetrisch?

Zijn de eigenwaarden positief?

125

Page 132: Numerieke Methoden voor Differentiaalvergelijkingen

Hoofdstuk 8

De instationaire warmtevergelijking∗

8.1 Inleiding

De tijdsafhankelijke temperatuurverdeling in een staaf kan beschreven worden met een para-bolische partiele differentiaalvergelijking. Om zo’n begin-, randwaarde probleem op te lossenmaken we gebruik van de methoden uit hoofdstuk 6 en 7. Omdat praktische voorbeelden aande orde zullen komen in het practicum, zullen we in dit hoofdstuk geen voorbeelden geven.

8.2 Afleiding van de instationaire warmtevergelijking

Als voorbeeld nemen we de temperatuurverdeling in een staaf (Figuur 8.1). De tempera-tuur geven we aan met T (x, t) (K). We nemen aan dat de temperatuur gegeven is in beide

0 x x+∆ x L

Figuur 8.1: De vorm van de staaf

uiteinden T (0, t) = Tl en T (L, t) = Tr. De warmteproductie in de staaf geven we aan metQ(x, t) (J/m3s). Voor het afleiden van de warmtevergelijking maken we gebruik van de wetvan behoud van energie toegepast op het controle volume tussen x en x + ∆x en van hettijdstip t tot t + ∆t. Volgens de wet van Fourier wordt de warmtestroomdichtheid gegevendoor −λ∂T∂x .

De energie balans is nu

ρcT (x, t+ ∆t)A∆x = ρcT (x, t)A∆x

−λ∂T∂x

(x)A∆t+ λ∂T

∂x(x+ ∆x)A∆t+Q(x)A∆x∆t ,

126

Page 133: Numerieke Methoden voor Differentiaalvergelijkingen

waarbij geldt: ρ(kg/m3) is de soortelijke massa, c(J/kgK) is de soortelijke warmte en λ(J/msK)is de warmtegeleidingscoefficient. Delen door A∆x∆t en herschikken van de termen geeft

ρcT (x, t+ ∆t) − T (x, t)

∆t= λ

∂T∂x (x+ ∆x, t) − ∂T

∂x (x, t)

∆x+Q .

Na het nemen van de limieten ∆x→ 0 en ∆t→ 0 krijgen we het volgende begin-, randwaardeprobleem:

ρc∂T

∂t= λ

∂2T

∂x2+Q , 0 < x < L , 0 < t ,

T (0, t) = Tl(t) en T (L, t) = Tr(t) , 0 ≤ t ,

T (x, 0) = T0(x) , 0 ≤ x ≤ L .

8.3 De gediscretiseerde vergelijking

Voor een eenvoudig warmteprobleem laten we zien hoe plaats- en tijdsdiscretisatie eruit komente zien. Er is hierbij een duidelijk verschil tussen een expliciete (Euler voorwaarts) en eenimpliciete (Euler achterwaarts) tijdsintegratie methode.

De vergelijkingAls warmteprobleem nemen we

∂y

∂t=∂2y

∂x2, 0 < x < 1 , 0 < t ≤ T

y(0, t) = yl(t) en y(1, t) = yr(t) , 0 ≤ t ≤ T

y(x, 0) = y0(x) , 0 ≤ x ≤ 1 .

(8.1)

Semi-discretisatieWe discretiseren (8.1) in de x-richting met behulp van de eindige differentie methode. Deel hetinterval [0, 1] op in n gelijke delen met lengte h. De knooppunten zijn xi = ih voor i = 0, ..., n.De numerieke benadering van y(xi, t) geven we aan met ui(t). De vector u(t) wordt gegevendoor u(t) = (u1(t), ..., un−1(t))

T . De waarden in de randpunten zijn weggelaten, omdat dezebekend zijn uit de randvoorwaarden. Gebruikmakend van de technieken uit hoofdstuk 7krijgen we het volgende stelsel eerste orde differentiaalvergelijkingen

du

dt= Ku + r , 0 < t ≤ T .

u(0) = y0 .(8.2)

De matrix K en vector r worden gegeven door

K =1

h2

−2 11 −2 1 ∅

. . .. . .

. . .

∅ 1 −2 11 −2

en r =1

h2

yl(t)0...0

yr(t)

.

Men spreekt hierbij van semi-discretisatie (of methode der lijnen), omdat er (vooralsnog) welin x maar niet in t wordt gediscretiseerd.

127

Page 134: Numerieke Methoden voor Differentiaalvergelijkingen

Tijdsintegratie (Euler voorwaarts)Het stelsel (8.2) kan in de tijd geıntegreerd worden met een van de methoden uit hoofdstuk 6.We kiezen eerst voor de voorwaartse methode van Euler. Stel we nemen m stappen in detijd ter lengte k = T

m en tj = jk. De numerieke oplossing geven we aan met wji , hetwelkeen benadering is van ui(tj) en dus van y(xi, tj). In inwendige roosterpunten geldt dan devolgende vergelijking

ωj+1i − ωjik

=ωji−1 − 2ωji + ωji+1

h2. (8.3)

De afbreekfout van deze differentievergelijking is

τi,j =k

2

∂2u

∂t2(xi, µj) −

h2

12

∂4u

∂x4(ξi, tj) , (8.4)

waarbij µj ∈ (tj , tj+1) en ξi ∈ (xi−1, xi+1). De methode is dus O(k + h2). Het is verstandigom k en h zo te kiezen dat beide componenten aan de rechterkant van (8.4) ongeveer evengroot zijn. Dit betekent dat als je de plaatsstap halveert, het voor de hand ligt om de tijdstap4 maal zo klein te nemen.

Merk op dat we ωj+1i eenvoudig kunnen bepalen via (8.3) immers

ωj+1i = (1 − 2k

h2)ωji +

k

h2(ωji−1 + ωji+1) , 1 ≤ i ≤ n− 1 , (8.5)

waarbij ωj+10 en ωj+1

n volgen uit de randvoorwaarden. Merk op dat de waarden in het roos-terpunt (xi, tj+1) afhangt van de waarden in de roosterpunten (xi−1, tj), (xi, tj) en (xi+1, tj).Deze punten zijn met een × aangegeven in Figuur 8.2. De waarden, die al bekend zijn uitde begin- en randvoorwaarden zijn aangegeven met een . In matrix vectornotatie geldtuj+1 = (I + kK)uj + krj .

StabiliteitOmdat Euler voorwaarts voorwaardelijk stabiel is, is het van belang om te bepalen hoe grootde tijdstap genomen kan worden zonder dat er instabiliteiten optreden. De matrix K uit (8.2)is symmetrisch, dus de eigenwaarden zijn reeel. Toepassing van de stelling van Gershgoringeeft

− 4

h2≤ λi ≤ 0 , voor 1 ≤ i ≤ n− 1 .

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 vanK gegeven. Hieruit blijkt

max |λi|min |λi|

≈ 4

π2h2.

Voor kleine waarden van h is (8.2) een stijf stelsel.

We weten dat Euler voorwaarts stabiel is als de tijdstap k voldoet aan

k ≤ 2

max |λi|≤ h2

2.

Merk op dat als de plaatsstap gehalveerd wordt, de tijdstap 4 maal zo klein genomen moetworden om te voldoen aan de stabiliteitsvoorwaarde. Voor kleine h kan het verstandiger zijn

128

Page 135: Numerieke Methoden voor Differentiaalvergelijkingen

tj+1

tj

xi

xi−1

xi+1

Figuur 8.2: De afhankelijkheid bij Euler voorwaarts

om over te stappen op de achterwaartse methode van Euler, die onvoorwaardelijk stabiel is.

Tijdsintegratie (Euler achterwaarts)Als we Euler achterwaarts toepassen dan krijgen we de formule

ωj+1i − ωjik

=ωj+1i−1 − 2ωj+1

i + ωj+1i+1

h2,

in inwendige roosterpunten. Ook hiervan is de afbreekfout O(k + h2). Voor het bepalen vanωj+1i moeten we nu het volgende lineaire stelsel oplossen

Ax = b , (8.6)

met A = (I − kK), x =

uj+11...

uj+1n−1

en b =

uj1...

ujn−1

+ k

h2

yl(tj)0...0

yr(tj)

.

Merk op dat A een matrix is met veel nullen. Toch kost het oplossen van (8.6) meer werk danhet bepalen van ωi,j+1 via (8.5). Een voordeel is wel, dat Euler achterwaarts onvoorwaardelijkstabiel is, zodat de tijdstap afgesteld kan worden op de gewenste nauwkeurigheid. Ook hierbijis een afweging nodig: goedkoop oplossen met veel tijdstappen (Euler voorwaarts) versus duuroplossen met weinig tijdstappen (Euler achterwaarts).

Nu hangt de waarde in het roosterpunt (xi, tj+1) af van de waarden in de roosterpunten(xi, tj), (xi−1, tj+1) en (xi+1, tj+1), zie Figuur 8.3.

129

Page 136: Numerieke Methoden voor Differentiaalvergelijkingen

tj+1

tj

xi

xi−1

xi+1

Figuur 8.3: De afhankelijkheid bij Euler achterwaarts

Tijdsintegratie (Trapezium)We kunnen ook de Trapezium regel gebruiken als tijdsintegratie methode. De uitwerkinghiervan gaat analoog. In de literatuur wordt de Trapeziumregel ook wel aangeduid als deCrank-Nicolson methode.

8.4 Samenvatting

In dit hoofdstuk zijn de volgende begrippen behandeld:

- instationaire warmtevergelijking

- semi-discretisatie

- afbreekfout

- stabiliteit

- Crank-Nicolson

130

Page 137: Numerieke Methoden voor Differentiaalvergelijkingen

Hoofdstuk 9

Optimization problems ∗

Optimization problems arise in all areas of science and engineering and are perhaps evenmore common in business and industry. Any design problem usually involves optimizingsome figure, such as cost or efficiency. Among all possible designs (i.e. configurations), oneusually aims at the configuration that best achieves some desired objective. Of course, theresult 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 thecost are minimal.

• Given some measurements on the voltage over a resistor and the current through thisresistor, 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 thissystem is minimal.

• Find the configuration of an optical set-up such that the light beam in this optical set-uphas the shortest path.

Often the designer formulates an optimization problem in mathematical terms. For someapplications one looks for a certain optimum subject to a constraint. As an example: adietitian might minimize the number of calories of a diet subject to meeting other nutritionalrequirements (such as for the amount of salt and sugar). The additional constraints maycomplicate matters considerably. This class of ’constrained optimization problems’ will notbe treated in the present text. This chapter is devoted to a mathematical formulation ofoptimization problems (without any constraints) and some classical numerical procedures tosolve optimization problems.

First a general mathematical formulation of an optimization problem is presented. Let x bean n dimensional vector, i.e. x = [x1 . . . xn] and f be a function of x. For problems withoutany constraints we will consider the following type

Given V ⊂ Rn, find x ∈ V such that f(x) ≤ f(y) for all y ∈ V. (9.1)

131

Page 138: Numerieke Methoden voor Differentiaalvergelijkingen

A typical example is the following

Find x ∈ R such that f(x) = x2 ≤ y2 = 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 squaressolutions. 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 detailson conditions for existence and uniqueness are omitted. We also remark that a maximizationproblem is based on the same principles as minimization problems just under replacing f(x)by −f(x).

9.1 Least squares for linear problems

Suppose that we have a table with measured values for the voltage (V ) and electric current(I), see Table 1. From this table and Ohm’s Law, which is V = IR, we want to determinethe resistance R such that its value agrees best with the data in Table 1.

V(V) I(A)

100 1.10200 2.15300 3.25400 4.30500 5.45

V = IR R =?Table 1: Input data for least squares problem.

The data in Table 1 imply the following set of linear equations:

1.10R − 100 = 02.15R − 200 = 03.25R − 300 = 04.30R − 400 = 05.45R − 500 = 0.

(9.3)

Of course, the above system is inconsistent: there is no value for R for which all the equationsare satisfied. For the sake of illustration and for convenience of notation, the above system isreplaced by the following set of relations

1.10R − 100 = r12.15R − 200 = r23.25R − 300 = r34.30R − 400 = r45.45R − 500 = r5.

(9.4)

1M.T. Heath, Scientific computing: an introductory survey, Mc Graw Hill, New York, second edition,(2002).

132

Page 139: Numerieke Methoden voor Differentiaalvergelijkingen

the quantities r1, . . . , r5 are called the residuals. Let us try to determine R such that the sumof the squares of the residuals is minimal. Mathematically, this is formulated as follows

Let ψ(R) :=5∑

i=1

r2i , find R such that ψ(R) is minimized. (9.5)

To achieve this minimum, we require

dψ(R)

dR= 0. (9.6)

Using the Chain Rule for differentiation, we obtain:

dψ(R)

dR=

d

dR

5∑

i=1

r2i =

5∑

i=1

2ridridR

. (9.7)

In our application we have dr1dR = 1.10, dr2

dR = 2.15, etc. Substitution into equation (9.7) anddivision by 2 gives

1.10(1.10R − 100) + 2.15(2.15R − 200) + . . .+ 5.45(5.45R − 500) = 0. (9.8)

This linear equation is solved for R to obtain R = 92.28Ω. This solution is referred to as theleast squares solution because the sum of the squares of the residuals is minimized.

Exercise 1 Show that d2ψdR2 > 0. This implies that indeed the minimum of the sum of the

squares of the residuals is found.

Exercise 2 Given the following table

M(kg) V(m3)

992 12008 22989 3

Table 2: Input data for least squares problem.

Let M = ρV , determine the least squares solution for the density ρ from Table 2.

9.1.1 n linear equations with m unknowns (n > m)

Now we consider a more general case n linear equations with m unknowns where n > m(hence more equations than unknowns)

a11x1 + . . .+ a1nxm = b1. . .an1x1 + . . .+ anmxm = bn

(9.9)

A compact notation, where A is the matrix with the coefficients and x ∈ Rn the solution

vector and b ∈ Rm the right hand side vector, is given by

Ax = b. (9.10)

133

Page 140: Numerieke Methoden voor Differentiaalvergelijkingen

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

(v, w) := vTw =

n∑

i=1

viwi ⇒ (v, w) = (w, v). (9.11)

Further, for a matrix B ∈ Rn×n, we have

(v,Bw) = vTBw = (BT v)Tw = (BT v, w). (9.12)

In the above equation we used (AB)T = BTAT for two matrices A and B. Further, we definethe norm of the real-valued vector x ∈ R

n by

||x|| =√

(x, x). (9.13)

We turn back to the least squares solution of problem (9.9) and rewrite the problem as

Find x ∈ Rn such that ||Ax− b|| ≤ ||Ay − b|| for all y ∈ R

n. (9.14)

Here y is an arbitrary vector in Rn. The vector y is replaced by y = x + tv where v is an

arbitrary vector and t ∈ R. Then from equation (9.14) follows that

(A(x+ tv) − b, A(x+ tv) − b) ≥ (Ax− b, Ax− b). (9.15)

for every t. Working out the left hand side gives

t2(Av,Av) + 2t(Av,Ax − b) + (Ax− b, Ax− b) ≥ (Ax− b, Ax− b). (9.16)

Hencet2(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 equationwith equation (9.9) yields

(v,AT (Ax− b)) = 0, for all v ∈ Rn. (9.18)

This implies that the vector AT (Ax− b) is orthogonal to all vectors in Rn. This implies that

AT (Ax− b) = ATAx−AT b = 0. By this we proved:

Theorem 9.1.1 A least squares solution of the m × n system Ax = b satisfies the m ×msystem ATAx = AT b.

The system ATAx = AT b is commonly referred to as the normal equations of the least squaresproblem.

134

Page 141: Numerieke Methoden voor Differentiaalvergelijkingen

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. Thisquantity is measured for several values of the independent variable such that the number ofmeasurements is (much) larger than the polynomial degree. The goal is to determine thecoefficients of the polynomial such that this approximates the set of measured data points aswell as possible. Let the physical quantity be given by y and the independent variable be t,then we require that

y(t) = p0 + p1t+ p2t2 + . . .+ pmt

m, (9.19)

approximates as well as possible the measurements hypothetically given by Table 3.

y0 y1 . . . ynt0 t1 . . . tn

This amounts to finding p0, . . . , pm such that the polynomial y coincides with the measureddata from Table 3 as well as possible. Substitution of these measured data into (9.19) yields

y0 = p0 + p1t0 + . . .+ pmtm0

y1 = p0 + p1t1 + . . .+ pmtm1

. . .yn = p0 + p1tn + . . .+ pmt

mn .

(9.20)

This represents a system of n equations with m + 1 unknowns p = [p0 . . . pm]T . In vector-

notation this reads as Qp = y, where Q =

1 t0 . . . tm01 t1 . . . tm11 tn . . . tmn

, n > m, where p is to be

determined. According to the previous section (Theorem 9.1.1) the least squares solution isgiven by the solution of

QTQp = QT y. (9.21)

9.2 Optimization of non linear problems

First an introduction into non-linear optimization problems is given in terms of conditionsfor the nature of minima or maxima. Subsequently the steepest descent method is describedand then a link with Newton’s method is presented.

9.2.1 Critical points

Let f(x1, . . . , xn) be a smooth function of the independent variables x1, . . . , xn ∈ R. Supposethat x1, . . . , xn gives the minimum value of f(x1, . . . , xn). In this section the following typeof problem is addressed:

Find x1, . . . , xn ∈ R such that f(x1, . . . , xn) ≤ 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 avector notation is used, where

x = [x1 . . . xn]T . (9.23)

135

Page 142: Numerieke Methoden voor Differentiaalvergelijkingen

From calculus it is known that the gradient of f (∇f) gives the direction of the maximumincrease of f(x1, . . . , xn) and that the magnitude of the gradient of f gives the value of themaximum increase. Then, it is clear that −∇f gives the direction of the maximum decrease off . This motivates that if x represents a value at which f has a (local) maximum or minimumthen 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. Notethat 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 secondorder Taylor expansion around point x is developed:

f(x) ≈ f(x) + (x− x)T∇f(x) +1

2

[

(x− x)T∇]2f(x) =

= f(x) + (x− x)T∇f(x) +1

2(x1 − x1)

2∂2f

∂x21

(x) + . . .+ (xn − xn)2 ∂

2f

∂x2n

(x)+

+2(x1 − x1)(x2 − x2)∂2f

∂x1∂x2(x) + . . . + 2(xn−1 − xn−1)(xn − xn)

∂2f

∂xn−1∂xn(x).

(9.25)

The last terms of the above equation involve the second order partial derivatives of thefunction f at the point x. It is interpreted as a quadratic form which contains the Hessianmatrix (or briefly the ’Hessian’) with all the second order partial derivatives of the functionf at x. Note further that in the above expression, terms of x − x of third and higher orderhave been neglected. Further, let H(x) denote the Hessian of f at x, i.e.

H(x) =

∂2f∂x2

1(x) . . . ∂2f

∂x1∂xn(x)

. . . . . . . . .∂2f

∂xn∂x1(x) . . . ∂2f

∂x2n(x)

. (9.26)

then, equation (9.25) is written in a more compact form by

f(x) ≈ f(x) + (x− x)T∇f(x) +1

2(x− x)TH(x)(x− x). (9.27)

Since ∂2f∂xi∂xj

(x) = ∂2f∂xj∂xi

(x) (we assume f to be a smooth function so that the second order

partial derivatives are continuous), we immediately see that H(x) is a symmetric matrix.

At this point some elementary properties from linear algebra of symmetric matrices are shortlyreviewed. Let A be a general symmetric matrix. A symmetric matrix is called positive definiteif and only if xTAx > 0 for all x 6= 0. A symmetric matrix is always diagonalizable, i.e. onecan write A = PDP T where P and D respectively represent a matrix whose columns consistof the eigenvectors of A and a diagonal matrix whose entries in the main diagonal representthe 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:

xTAx = xTPDP Tx = P TxTDP Tx = yTDy = λ1y21 + . . . + λny

2n, (9.28)

where y := P Tx. It can be seen easily that if λi > 0 for all i ∈ 1, . . . , n then xTAx > 0for all x 6= 0. It can be shown by a similar argument that a negative definite matrix, i.e.

136

Page 143: Numerieke Methoden voor Differentiaalvergelijkingen

xTAx < 0 for all x 6= 0, has negative eigenvalues only. Further, if the eigenvalues of A differin sign, the matrix is called indefinite: the expression xTAx can either be positive, negativeor zero for x 6= 0. Later these properties of symmetric matrices will be used for the HessianH.

Further, since ∇f(x) = 0, equation (9.25) turns into

f(x) = f(x) +1

2(x− x)TH(x)(x− x). (9.29)

This implies that if (x − x)TH(x)(x − x) > 0 for all x near x then f(x) is a local minimumand if (x− x)TH(x)(x− x) < 0 for all x near x then f(x) is a local maximum. With x near xit is meant that there is an ε > 0 for which ||x− x|| < ε. This means the following: Supposethat ∇f(x) = 0 then x is a critical point of f for which

1. If (x− x)TH(x)(x− x) > 0 for all x such that x 6= x (i.e. H(x) is positive definite) thenf(x) is a local minimum;

2. If (x − x)TH(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;

3. If (x− x)TH(x)(x− x) changes sign, then f(x) is a saddle point.

Since H(x) or shortly H is symmetric, it is clear that

1. If all eigenvalues of H are positive, then H is positive definite;

2. If all eigenvalues of H are negative, then H is negative definite;

3. If the eigenvalues of H differ in sign, then H is indefinite.

This gives us the following important conclusion for critical points of smooth functions:

Let f be a smooth function, then, at a critical point x, where ∇f(x) = 0, if H is

1. positive definite (all eigenvalues positive), then f(x) is a minimum;

2. negative definite (all eigenvalues negative), then f(x) is a maximum;

3. indefinite (eigenvalues differ in sign), then f(x) is a saddle point;

4. singular (at least one eigenvalue zero), then the test is inconclusive.

Voorbeeld 9.2.1 Let f(x1, x2) = x21 + x2

2 then it is immediately clear that (x1, x2) = (0, 0)gives a minimum. Now we use the test: ∇f = [2x1, 2x2]

T = 0 ⇔ x1 = 0 and x2 = 0. The

Hessian is given by H =

(

2 00 2

)

. The eigenvalues of H are both equal to 2, hence positive.

According to the above test it is concluded that x1 = 0 and x2 = 0 gives a minimum.

In the coming sections two classical numerical methods are presented and discussed for findinga (local) minimum of a function of n variables.

137

Page 144: Numerieke Methoden voor Differentiaalvergelijkingen

9.2.2 The method of steepest descent

As mentioned earlier the negative gradient gives the direction of the largest decrease of thefunction f . Therefore, we use this largest decrease, i.e. the steepest descent, of the functionf at consecutive iterates xk. Since the steepest descent method is based on the determinationof a minimum along a search direction, a minimization problem along a given search directionis formulated. Let s be a given search direction, then one seeks the minimum along the lineof 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 bya single variable minimization, i.e. φ(α) = f(x+ αs) then φ′(α) = 0. The maximum benefitfrom 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)Choose αk to minimize f(xk−1 + αksk) (do line search)xk = xk−1 + αksk

end

(9.31)

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 veryslowly. This is shown in the following example.

Voorbeeld 9.2.2 Given f(x1, x2) = 0.5x21 + 2.5x2

2, 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 φ′(α) = (−5)(5 − 5α) +5(1 − 5α)(−5) = 150α − 50 = 0. This means that α = 1

3 and herewith

x1 = [5 1]T − 1

3[5 5]T = [

10

3− 2

3]T .

A qualitative sketch of the convergence of consecutive iterations is shown in Figure 9.1.

Although convergence is slow, the method of steepest descent is robust for smooth functions.The speed of convergence is improved by the use of the conjugate gradient method, whichis based on the same principle as the method of steepest descent, except that the obtainedconsecutive search directions are corrected such that the components in the direction of theprevious search directions are removed. We do not treat the conjugate gradient methodany further. A faster converging, but unfortunately less robust, method is dealt with in thenext section. Finally, it is noted that the method converges to a (local) minimum and henceconvergence 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 shouldbe done with care.

138

Page 145: Numerieke Methoden voor Differentiaalvergelijkingen

Figuur 9.1: Illustration of the ’zigzag’ behaviour of the convergence of the method of themethod of the steepest descent.

9.2.3 Newton’s method for optimization

We saw that determining a maximum or minimum of a given smooth function f implies thedetermination of a critical point, i.e.

Find x ∈ Rn such that ∇f(x) = 0. (9.33)

This is a determination of a zero of a set of (nonlinear) functions, let F (x) = ∇f(x), then

∇f(x) = 0 ⇔ F (x) = 0. (9.34)

Here we determine x by the use of Newton’s method. Let xk be the iterates generated byNewton’s method for which limk→∞ ||xk − x|| = 0, then

J(xk−1)(xk − xk−1) = −F (xk−1), (9.35)

for a suitable start-vector x0. Here J(xk−1) denotes the Jacobian of F evaluated at xk−1, i.e.

J(xk−1) =

∂F1∂x1

(xk−1) . . . ∂F1∂xn

(xk−1)

. . . . . . . . .∂Fn

∂x1(xk−1) . . . ∂Fn

∂xn(xk−1)

. (9.36)

Since Fi(xk−1) = ∂f∂xi

(xk−1), equation (9.35) is rewritten using equation (9.36) to yield

H(xk−1)(xk − xk−1) = −∇f(xk−1), (9.37)

where H(xk−1) is the Hessian of f containing the second derivatives evaluated at xk−1. Equa-tion (9.37) is a system of linear equations (a matrix equation) which has to be solved. Forexistence and uniqueness of a solution of the above linear equation, it is necessary that H isnonsingular. In an algorithmic form we have the following (we define s = xk − xk−1):

x0 = initial guessfor k = 1, 2, . . .

Solve H(xk−1)sk = −∇f(xk−1) for skxk = xk−1 + sk (update solution)

end

(9.38)

139

Page 146: Numerieke Methoden voor Differentiaalvergelijkingen

Newton’s method is known to have a quadratic convergence, i.e.

||xk − x|| ≤ C||xk−1 − x||2, (9.39)

for a positive constant C. Since the convergence of the steepest descent method is known tobe linear (see preceeding section), Newton’s method is faster. A disadvantage of Newton’smethod 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 betterstarts with an other method (such as the steepest descent method) and then at the laterstages continue with Newton’s method, using its nice convergence properties. Examples ofsuch hybrid methods are beyond the scope of this course. Further, one would try to avoidthe determination of the Hessian matrix. Often, the choice between the several optimizationmethods comes down to a judgement of the various drawbacks and assets of the methods. Werefer to Heath to find a more comprehensive view over (deterministic) optimization strategies.

Exercise 3 Given f(x1, x2) = 0.5x21 + 2.5x2

2. Perform one step of the Newton iteration forfinding the mimimum of f . Take x0 = [5 1]T as the initial value. Compare your resultsto the results in Example 2, what do you observe. Explain your observations (what is theerror?).

140

Page 147: Numerieke Methoden voor Differentiaalvergelijkingen

Index

Lipschitz continu, 63goed gesteld probleem, 63

stabiliteitsvoorwaarde, 75

absolute fout, 3absolutely stable, 76achterwaartse differentie, 27Adams-Bashforth, 107afbreekfout, 26, 115afkappen, 4afrondfout, 3, 28amplification factor, 76

Bisectie, 38

centrale differentie, 27, 30, 32cijferverlies, 6conditiegetal, 115consistent, 80, 116convectie-diffusie vergelijking, 122convergent, 82convergentie, 116Crank-Nicolson, 130cubische spline, 21

differentievergelijking, 107Dirichlet, 113

eindige differentie, 113Euclidische norm, 114Euler Achterwaarts, 68Euler Voorwaarts, 64expliciet, 70extrapolatie, 16extrapoleren, 13

floating point getal, 3functie evaluatie, 83

Gauss formules, 58

Gershgorin, 115global error, 82globale afbreekfout, 72, 82

Hermite interpolatie, 17hogere orde beginwaarde, 93

impliciet, 68interpolatie, 11

Jacobiaan, 46

kwadratisch convergent, 45

Lagrange interpolatie, 13, 31lineair convergent, 44lineaire interpolatie, 11lokale afbreekfout, 73, 79

matrix norm, 114meerstaps methoden, 107Middelwaardestelling, 8Modified Euler, 70

Neumann, 113, 118Newton-Cotes, 58Newton-Raphson, 42niet-lineair stelsel, 45niet-lineaire vergelijking, 38nonlinear problem, 78

O-symbool, 7onbetrouwbaarheidsinterval, 39

principal root, 108

quasi-Newton, 46

randwaarde probleem, 112Regula Falsi, 45relatieve fout, 3Richardson’s extrapolatie, 33

141

Page 148: Numerieke Methoden voor Differentiaalvergelijkingen

Robbins, 113Rolle, 8

Secant, 45semi-discretisatie, 127splines, 20spurious root, 108stabiliteit, 116stable, 76stelsels differentiaalvergelijkingen, 91stopcriterium, 39superstabiel, 106

Taylorpolynoom, 8, 16test equation, 76Trapeziumregel, 69truncation error, 82Tussenwaardestelling, 8

upwind discretisatie, 122

vast punt probleem, 40versterkingsfactor, 74versterkingsmatrix, 94voorwaartse differentie, 26, 31

warmtevergelijking, 126

142