You are on page 1of 39

Numerieke Methoden voor

Differentiaalvergelijkingen
Answers of the exercises

C. Vuik, S. van Veldhuizen


2008

Technische Universiteit Delft


Faculteit Elektrotechniek, Wiskunde en Informatica
Delft Institute of Applied Mathematics
Copyright  2008 by Delft Institute of Applied Mathematics, Delft, The Netherlands.

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

1 Inleiding 1
1.1 Antwoorden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

2 Interpolatie 4
2.1 Antwoorden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Numeriek differentiëren 6
3.1 Antwoorden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 Niet-lineaire vergelijkingen 9
4.1 Antwoorden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

5 Numerieke integratie 13
5.1 Antwoorden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

6 Numerieke tijdsintegratie voor beginwaarde problemen 16


6.1 Antwoorden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

7 De eindige differentie methode voor randwaarde problemen 29


7.1 Antwoorden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

8 De instationaire warmtevergelijking∗ 35
8.1 Antwoorden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

9 Optimization problems ∗ 36
9.1 Antwoorden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

i
Hoofdstuk 1

Inleiding

1.1 Antwoorden
1. We merken op dat het nde orde Taylorpolynoom met steunpunt x = c van een (n + 1)
maal differentieerbare functie f (x) is gegeven als

(x − c)2 ′′ (x − c)n (n)


Pn (x) = f (c) + (x − c)f ′ (c) + f (c) + · · · + f (c).
2! n!
De schatting van de fout in x = d is dan | Pn (d) − f (d) |=| Rn (d) |, waarbij

(x − c)n+1 (n+1)
Rn (x) = f (ξ),
(n + 1)!

voor een ξ tussen x en c.


Het tweede orde Taylor polynoom van f (x) = x3 rond het steunpunt x = 1 is dan gelijk
aan
(x − 1)2 ′′
P2 (x) = f (1) + (x − 1)f ′ (1) + f (1) =
2!
= 1 + 3(x − 1) + 3(x − 1)2 .

Onmiddellijk volgt dat


P2 (0.5) = 0.25.

De schatting van de fout in x = 0.5 wordt gegeven door

(0.5 − 1)3 ′′′ (0.5 − 1)3


| R2 (0.5) |=| f (ξ) |=| 6 |= 0.125
3! 3!

De ‘echte’ fout kunnen we ook gemakkelijk bepalen door | P2 (0.5) − f (0.5) | uit te
rekenen. Er volgt dat de ‘echte’ fout gelijk is aan onze geschatte fout.

2. Merk eerst op dat f (i) (x) = ex voor alle i ∈ N. Er volgt dat f (i) (0) = 1 voor alle i ∈ N.
Dus het nde orde Taylorpolynoom van f (x) = ex rond x = 0 is
1 1
Pn (x) = 1 + x + x2 + · · · + xn .
2 n!

1
De fout Rn (x) voor x ∈ [0, 0.5] moet kleiner zijn dan 10−6 . We zoeken n dus zodanig
dat Rn (x) ≤ 10−6 voor x ∈ [0, 0.5], waarbij

(x)n+1 ξ
Rn (x) = e ,
(n + 1)!

voor een ξ tussen 0 en x.


Om ervoor te zorgen dat Rn (x) op het gehele interval kleiner is dan 10−6 moeten we n
vinden zodanig dat
(0.5)n+1 0.5
e ≤ 10−6 . (1.1)
(n + 1)!
Ga dit zelf na. Het ‘proberen’ van enkele n, bv. n = 5, 6, 7, . . . geeft dat n = 7 de
kleinste is waarvoor aan voorwaarde (1.1) wordt voldaan.

3. De functie f (x) = cos x kan worden benaderd door het polynoom P (x) = 1 − 12 x2 .
Wanneer we als steunpunt x = 0 nemen en vervolgens het derde orde Taylorpolynoom
bepalen, blijkt deze gelijk te zijn aan P (x). Zoals bekend zijn de eerste, tweede en derde
afgeleide van f (x)

f (x) = cos x
f ′ (x) = − sin x
f ′′ (x) = − cos x
f ′′′ (x) = sin x.

Het derde orde Taylorpolynoom van f (x) = cos x rond x = 0 is

x2 x3
P3 (x) = cos 0 − x sin 0 + cos 0 − sin 0 =
2 3!
1
= 1 − x2 = P (x).
2

Een bovengrens voor de fout is


1 4 (iv) 1
R4 (x) = x f (ξ) = x4 cos ξ,
4! 4!
voor een ξ tussen 0 en x. Omdat we een bovengrens willen vinden,
4 zoeken we dus een
bovengrens van R4 (x). Merk op dat | cos ξ |≤ 1 en x4 ≤ 12 voor x ∈ [− 21 , 12 ]. Een
bovengrens voor | R4 (x) | is
1 1 4
 
· 1 = 0.0026.
4! 2

4. Omdat x = 31 volgt dat f l(x) = 0.333 · 100 , omdat we met drie cijfers rekenen. Evenzo
volgt voor y = 75 dat f l(y) = 0.714 · 100 .
Ter illustratie zullen we f l(f l(x)+f l(y)) en x+y berekenen en vervolgens de afrondfout.
Aldus, er volgt

f l(x) + f l(y) = (0.333 + 0.714) · 100 = 1.047 · 100 .

2
Dus f l(f l(x) + f l(y)) is gelijk aan 1.05 · 100 ; we rekenen immers met 3 cijfers. De
afrondfout, ook wel absolute fout, wordt gegeven door
22
| f l(f l(x) + f l(y)) − (x + y) |=| 1.05 · 100 − |= 2.38 · 10−3 .
21

Op analoge wijze kunnen de overige berekeningen met floating point getallen ook worden
gemaakt. De antwoorden zijn in onderstaande tabel gegeven.

◦ f l(x ◦ y) x◦y absolute fout


22
+ 0.105 · 10 21 2.38 · 10−3
8
- −0.381 · 100 − 21 0.48 · 10−4
5
* 0.238 · 100 21 0.95 · 10−4
7
/ 0.466 · 100 15 0.66 · 10−3

3
Hoofdstuk 2

Interpolatie

2.1 Antwoorden
1. De functie f (x) = x1 heeft in x = 3 de waarde f (3) = 31 = 0.333333 . . . We gaan f (3)
benaderen met behulp van een tweede graads Lagrange polynoom met de steunpunten
x0 = 2, x1 = 2.5 en x2 = 4. Het tweede graads Lagrange polynoom van f (x) is gegeven
als
2
X
L2 (x) = f (xk )Lk2 (x) =
k=0
1 2 1
= L02 (x) + L12 (x) + L22 (x).
2 5 4
De benadering van f (3) is dan L2 (3), welke gegeven is als
1 2 1
L2 (3) = L02 (3) + L12 (3) + L22 (3).
2 5 4

Volgens de theorie van Lagrange kunnen de gewichten Li2 (x), i = 0, 1, 2, worden bere-
kend in x = 3 als volgt :

(3 − x1 )(3 − x2 ) (3 − 2.5)(3 − 4)
L02 (3) = = = −0.5,
(x0 − x1 )(x0 − x2 ) (2 − 2.5)(2 − 4)
(3 − x0 )(3 − x2 ) (3 − 2)(3 − 4) 4
L12 (3) = = = , en
(x1 − x0 )(x1 − x2 ) (2.5 − 2)(2.5 − 4) 3
(3 − x0 )(3 − x1 ) (3 − 2)(3 − 2.5) 1
L22 (3) = = = .
(x2 − x0 )(x2 − x1 ) (4 − 2)(4 − 2.5) 6

Er volgt dat L2 (3) gelijk is aan


1 2 4 1 1
L2 (3) = (−0.5) + · + · = 0.325.
2 5 3 4 6

2. (i) De kubische spline s van de functie f (x) = x is een interpolerende spline van graad
3 met de steunpunten x0 = 0, x1 = 1 en x2 = 2. Het gevolg is dat s een derde
graads polynoom is op de intervallen [0, 1] en [1, 2], waarbij in het knooppunt x = 1

4
er aansluitvoorwaarden gelden. In deze vraagstelling willen we s( 12 ) bepalen. Merk
op dat het genoeg is om dan de spline s0 (x) te bepalen.
Als in paragraaf 2.5 uit het boek wordt afgeleid is het voldoende om de vergelijking
 
f2 − f1 f1 − f0
2(h0 + h1 )b1 = 3 − (2.1)
h1 h0
voor b1 op te lossen. Zoals ook in deze paragraaf wordt afgeleid zijn b0 = b2 = 0.
Met het gegeven dat hi = xi+1 − xi en fi = f (xi ) volgt dat
2−1 1−0
 
2(1 + 1)b1 = 3 − ,
1 1
en dus dat b1 = 0.
Met de formule
1
a0 = (b1 − b0 )
3h0
volgt dat a0 = 0. Voor c0 volgt met
f1 − f0 2b0 + b1
c0 = − h0
h0 3
dat c0 = 1. En met dj = fj volgt d0 = 0. De spline s0 (x) op het interval [0, 1] is
dan
s0 (x) = a0 (x − x0 )3 + b0 (x − x0 )2 + c0 (x − x0 ) + d0 = x.
1
We zien dus dat de spline s in x = 2 exact is; s( 21 ) = 12 .
(ii) In het geval dat de functie f gelijk is aan f (x) = x2 , moeten we de vergelijking
 
f2 − f1 f1 − f0
2(h0 + h1 )b1 = 3 −
h1 h0
oplossen. Er volgt na invullen van de bekenden
4b1 = 6,
dus b1 = 1.5. Uit de theorie volgt dat b0 = b2 = 0. Tevens
1 1 1
a0 = (b1 − b0 ) = (1.5 − 0) = .
3h0 3 2
De coefficient c0 is gelijk aan
f1 − f0 2b0 + b1 1
c0 = − h0 = .
h0 3 2
We weten ook dat d0 = f0 = 0. De spline s0 (x) op het interval [0, 1] wordt dan
1 1
s0 (x) = x3 + x.
2 2
Er volgt :
1 5
s0 ( ) = .
2 16
De kubische spline is dus niet exact voor de functie f (x) = x2 ; f ( 21 ) = 14 .

5
Hoofdstuk 3

Numeriek differentiëren

3.1 Antwoorden
1. We merken ten eerste op dat f ∈ C 3 [x − h, x + h] betekend dat f drie maal continu
differentieerbaar op [x − h, x + h] is, d.w.z. de eerste, tweede en derde afgeleiden van f
zijn continu op [x − h, x + h].

Te bewijzen : | f ′ (x) − Q(h) |= O(h2 ), waarbij Q(h) gegeven is als


f (x + h) − f (x − h)
Q(h) = .
2h
De Taylorontwikkeling van f (x + h) rond het (steun)punt x met afbreekfout O(h3 ) is
h2 ′′
f (x + h) = f (x) + hf ′ (x) + f (x) + O(h3 ). (3.1)
2
Voor f (x − h) rond x hebben we de volgende ontwikkeling met afbreekfout O(h3 ) :
h2 ′′
f (x − h) = f (x) − hf ′ (x) + f (x) + O(h3 ). (3.2)
2
Ontwikkeling (3.2) aftrekken van (3.1) geeft :

f (x + h) − f (x − h) = 2hf ′ (x) + O(h3 ) (3.3)

Verder uitwerken van (3.3) levert


f (x + h) − f (x − h)
= f ′ (x) + O(h2 ).
2h
De orde van de fout wordt nu gegeven door

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


2h
(x−h)
|=
= | f (x) − f (x) − O(h2 ) |= O(h2 )
′ ′

2. De plaatsfunctie van het schip is S(t) = 0.5at2 . De snelheidsfunctie wordt bepaald met
een achterwaartse differentie met stapgrootte h, aldus
S(t) − S(t − h)
S ′ (t) ≈ .
h

6
Om de afbreekfout te bepalen ontwikkelen we S(t − h) met het Taylorpolynoom van
orde 1 rond het punt t;

h2 ′′
S(t − h) = S(t) − hS ′ (t) + S (ξ), (3.4)
2
met ξ tussen t − h en t. Met het feit dat S ′′ (t) = a en herschikken in (3.4) geeft

S(t) − S(t − h) 1
S ′ (t) − = ah.
h 2
De afbreekfout is dus 12 ah.
De meetfout in de snelheid kunnen we als volgt afleiden. Het is reeds bekend dat de
meetfout is de plaatsbepaling hoogstens 10 meter is. Dus de snelheid met meetfouten is
gelijk aan
S(t) ± 10 − S(t − h) ± 10
S ′ (x) ≈ .
h
20
Dit betekend dat de meetfout in de snelheid hoogstens h is.
De totale fout in de snelheid is de som van de afbreekfout en de meetfout. Met a = 0.004
is de totale fout, genoteerd met tf, gelijk aan
20
tf(h) = 0.002h + .
h
De fout is minimaal in het minimum van de functie tf. Voor positieve stapgrootte h is
het minimum h = 100. Dit kan worden bepaald door tf ′ (h), tf ′ (h) = 0.002 − h202 , gelijk
aan nul te stellen. De totale fout in de snelheid wordt daarmee gelijk aan tf(100)=0.4
m
s.

3. Gegeven zijn f (x), f (x + h) en f (x + 2h). We zoeken een Q(h) zodanig dat

| f ′ (x) − Q(h) |= O(hk ),

met k maximaal. Immers, ga zelf na dat voor k maximaal de fout minimaal is. Merk
hierbij nog op dat Q(h) gelijk is aan

Q(h) = α0 f (x) + α1 f (x + h) + α2 f (x + 2h). (3.5)

Taylorontwikkeling van f (x), f (x + h) en f (x + 2h) rond x geeft :

f (x) = f (x), (3.6)


h2
f (x + h) = f (x) + hf ′ (x) + f ′′ (x) + O(h3 ), (3.7)
2
4h2 ′′
f (x + 2h) = f (x) + 2hf ′ (x) + f (x) + O(h3 ). (3.8)
2
De waarden van α0 , α1 en α2 worden verkregen door (3.6), (3.7) en (3.8) in te vullen
in (3.5). Merk hierbij op dat de coefficienten voor f (x) en f ′′ (x) gelijk aan nul moeten

7
zijn. Uiteraard moet de coefficient voor f ′ (x) gelijk zijn aan 1. Dit geeft het volgende
3 × 3 stelsel :
α0 + α1 + α2 = 0,
hα1 + 2hα2 = 1, (3.9)
h2 2
2 α1 + 2h α2 = 0.
De oplossing van het stelsel (3.9) is
3

 α0 = − 2h
α = h2 .
 1 1
α2 = − 2h

Er volgt dat
−3f (x) + 4f (x + h) − f (x + 2h)
Q(h) = + O(h2 ).
2h
De afbreekfout bij de benadering van f ′ (x) m.b.v. bovenstaand schema is gelijk aan
O(h2 ).1

4. Daar de centrale differentie een fout van orde twee geeft, nemen we aan dat α = 2.
Als verklaring geven we het volgende. De formule N (h), hier de centrale differentie,
benadert de onbekende waarde M , hier f ′ (1), waarbij de fout de vorm

M − N (h) = Khα .

Aangezien de centrale differentie van orde twee is, volgt α = 2.


Omdat f (x) = sin x, h = 0.1 en f ′ (x) wordt benaderd met centrale differenties, volgt
dat
sin(1.1) − sin(0.9)
f ′ (1) ≈ N (0.1) = = 0.5394.
0.2
Ga na dat de fout, | cos 1 − sin(1.1)−sin(0.9)
0.2 |, gelijk is aan 0.9 · 10−3 . Er volgt voor
2h = 0.2 dat N (0.2) = 0.5376.
Met de formule
N (2h) − N (h)
K= ,
(2h)2 (1 − ( 12 )α )
vinden we met α = 2 en h = 0.1 dat K = 0.09. Er volgt

M − N (h) = Khα = 0.9 · 10−3 .

Dit is een goede benadering van de fout.

1
Deze fout is minimaal, daar we het niet voor elkaar kunnen krijgen meer hogere orde termen van de
Taylorontwikkeling mee te nemen. Dit komt doordat we slechts 3 variabelen hebben, α0 , α1 en α2 , en dus een
stelsel van maximaal 3 vergelijkingen op lossen

8
Hoofdstuk 4

Niet-lineaire vergelijkingen

4.1 Antwoorden
1. We gaan p3 bepalen op het interval [−2, 1.5]. Voordat we beginnen controleren we of
aan de voorwaarde dat f (a) = f (−2) en f (b) = f (1.5) verschillen van teken. Met
f (x) = 3(x + 1)(x − 12 )(x − 1) vinden we dat

1
f (a) = f (−2) = −22
2
3
f (b) = f (1.5) = 3 .
4

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


1
p1 = (a1 + b1 ) = −0.25.
2
Vervolgens berekenen we f (p1 ) = 2.10 6= 0. Omdat f (p1 )f (a1 ) < 0 kiezen we a2 = a1
en b2 = p1 . Het middelen van a2 en b2 geeft p2 = −1.125. Er volgt f (p2 ) = −1.295.
Omdat f (p2 )f (a2 ) > 0 kiezen we a3 = p2 en b3 = b2 . Middelen geeft p3 = −0.6875. Op
dezelfde manier kunnen we ook voor het interval [−1.25, 2.5] te werk gaan. Ga zelf na
dat dan p3 = 1.09375.

2. (i) We beginnen met


21
20pn−1 + p2n−1
pn = . (4.1)
21
Definieer de functie g(x) als
21
20x + x2
g(x) = .
21
Dan is (4.1) te schrijven als pn = g(pn−1 ). Het vaste punt is de waarde p waarvoor
geldt : g(p) = p. We moeten dus de vergelijking
21
20p + p2
p=
21

9
oplossen. Uitschrijven van de bovenstaande vergelijking levert
21
21p = 20p + .
p2

Herschikken van de onbekende p geeft p3 = 21 en dus dat


1
p = 21 3 .
1
Het vaste punt is dus p = 21 3 .
Een maat voor de convergentiesnelheid wordt gegeven door g′ (p). Ga na dat
20 2
g′ (x) = − ,
21 x3
en dus dat g′ (p) = 18
21 ≈ 0.8571.
Wanneer p0 gelijk aan 1 wordt genomen volgt m.b.v g(p0 ) de iterant p1 ,
21
20p0 + p20 20 + 21 41
p1 = = = = 1.9524.
21 21 21
Met p2 = g(p1 ) volgt
21
20 · 1.9524 + 1.95242
p2 = ≈ 2.1218.
21
Evenzo volgt
p3 ≈ 2.2428.

(ii) Als men nu g(x) definieert als

x3 − 21
g(x) = x − ,
3x2
dan is pn = g(pn−1 ). Ga na dat het vaste punt p = g(p) wordt gevonden door de
vergelijking
p3 − 21 = 0

op te lossen, waarbij de voorwaarde 3p2 6= 0 geldt. Wederom geldt p = 3 21.
De convergentiesnelheid wordt bepaald door g′ (p). De eerste afgeleide van g(x) is
2 14
g′ (x) = − .
3 x3
Er volgt dus dat g′ (p) = 0. Met behulp van Stelling 4.3.2 volgt dan dat de tweede
methode sneller convergeert.
Met p0 = 1 verkrijgen we de volgende iteranten pi , i = 1, 2, 3 :

p1 = 7.6667,
p2 = 5.2302 en
p3 = 3.7427.

10
3. (a) Het lineair interpolatiepolynoom l(x) wordt gegeven door
x − p0
l(x) = f (p0 ) + (f (p1 ) − f (p0 )) .
p1 − p0
Zie Hoofdstuk 2.
(b) Het nieuwe punt p2 is het punt waar l(p2 ) = 0. Er volgt dat de vergelijking
p2 − p0
f (p0 ) + (f (p1 ) − f (p0 )) = 0
p1 − p0
moet worden opgelost. Uitwerken geeft
(p1 − p0 )f (p0 )
p2 = p0 + .
f (p0 ) − f (p1 )

(c) Met behulp van de formule uit onderdeel (b) volgt dat
1f (1) 4
p2 = 1 + = .
f (1) − f (2) 3
Vervolgens verkrijgen we voor p3 :

( 43 − 2)f (2) 7
p3 = 2 + 4 = 5 = 1.4.
f (2) − f ( 3 )

4. We gaan het nulpunt van de functie f (x) = x − cos x op het interval x ∈ 0, π2 bepalen
 

met behulp van de methode van Newton Raphson.1 Met de start benadering p0 = 0
genereren we een rij {pn }N −4
n=0 , met N zodanig dat de fout kleiner is dan 10 , volgens

f (pn−1 )
pn = pn−1 − .
f ′ (pn−1 )

Als stopcriterium kunnen we nemen: stop als de 4 decimaal niet meer verandert in twee
opeenvolgende iteraties. Omdat Newton-Raphson kwadratisch convergeert betekent dit
dat de fout kleiner is dan 0.0001.
Elke iterant pn wordt dus bepaald met 4 decimalen (achter de komma). Startend met
p0 = 0 verkrijgen we
0 − cos 0
p1 = 0 + = cos 0 = 1.
1 + sin 0
De iterant p2 wordt
1 − cos 1
p2 = 1 + ≈ 0.7504.
1 + sin 1
Op eenzelfde manier volgen

p3 = 0.7391
p4 = 0.7391.

Omdat p3 en p4 identiek zijn, betekent dit dat de fout kleiner is dan 0.0001.
1
Merk op dat we de oplossing van de vergelijking x = cos x benaderen

11
5. Het stelsel dat we willen oplossen is
 2
x −y−3 = 0
.
−x + y 2 + 1 = 0

In vector notatie is dit gelijk aan F(x) = 0 met x = [x, y]T . De Jacobiaan van F(x) is
 
2x −1
J(x) = .
−1 2y

Met de startvector x(0) = [1, 1]T wordt de eerste iteratie

x(1) = x(0) − J(x(0) )−1 F(x(0) ) =


   −1  
1 2 −1 −3
= − =
1 −1 2 1
   2 1    8   
1 3 3 −3 3 2.6
= − 1 2 = 4 ≈ .
1 3 3 1 3 1.3
 
2.0980
Op eenzelfde manier vinden we voor x(2) = .
1.0784
Een laatste opmerking met betrekking tot het berekenen van de inverse van een 2 × 2
matrix. Als  
a b
A= ,
c d
en ad − bc 6= 0, dan is A inverteerbaar en A−1 gegeven als
 
−1 1 d −b
A = .
ad − bc −c a

Dit is beter bekend als de regel van Kramer voor 2 × 2 matrices.

12
Hoofdstuk 5

Numerieke integratie

5.1 Antwoorden
1. We willen de integraal
Z b
f (x)dx,
a

met a = −1, b = 1 en f (x) = (10x)3 + 0.001, uitrekenen. Als de relatieve fout in de


functiewaarden kleiner is dan ε, dus er wordt voldaan aan

|f (x) − fˆ(x)| ≤ |f (x)|ε,

kunnen we de volgende bovengrens voor de relatieve fout geven :


R
b Rb
a f (x)dx − a fˆ(x)dx

R
b
≤ Kε,
a f (x)dx

waarbij K het conditiegetal van de integraal is. Dit conditiegetal is gedefinieerd als
Rb
|f (x)| dx
K = Ra .
b
f (x)dx

a

Zie pagina 52 van het boek.

(a) De relatieve fout is Kε. Om het conditiegetal te bepalen moeten de volgende twee
integralen worden uitgerekend :
Z 1
(10x)3 + 0.001 dx

en
−1
Z 1
(10x)3 + 0.001 dx.

−1

Uitwerken van de eerste integraal geeft


Z 1
(10x)3 + 0.001 dx = 0.002.

−1

13
De tweede integraal moet worden opgesplitst in twee delen. Er volgt
Z 1 Z −0.01
(10x)3 + 0.001 dx = −(10x)3 − 0.001dx

−1 −1
Z 1
+ (10x)3 + 0.001dx = 500.
−0.01

500
De relatieve fout is gelijk aan 0.002 ε = 2.5 · 105 ε.
(b) Omdat de relatieve afrond fout in de functiewaarden kleiner (of gelijk) is aan ε, is
de absolute afrondfout gelijk aan

|fˆ(x) − f (x)| ≤ |f (x)|ε.

Met f (x) = (10x)3 + 0.001 volgt dat de absolute afrondfout van de integraal wordt
gegeven door Z 1 Z 1
|ε(10x)3 |dx = 2 ε(10x)3 dx = 2 · 10−5 ,
−1 0

wanneer we ε = 4 · 10−8 nemen.


De afbreekfout van de Midpuntregel wordt gegeven door
b−a 2
− h M,
24
waarbij M het maximum is van f ′′ (x), x ∈ [−1, 1]. De tweede afgeleide van f is
f ′′ (x) = 6000x. Er volgt dat de afbreekfout maximaal gelijk is aan

500h2 .

Wanneer de afrondfout en de afbreekfout met elkaar in ‘evenwicht’ zijn, hebben


we een goede benadering van de integraal. We moeten daarbij opmerken dat beide
fouten niet te voorkomen zijn (in dit geval) en dat we dus een redelijke benadering
hebben als ze gelijk zijn. Dit betekend dat de stapgrootte h zodanig gekozen moet
worden dat
500h2 = 2 · 10−5 .
Er volgt dat h ≈ 10−4 .
R1
2. De integraal 0.5 x4 dx wordt in deze opgave met de volgende methoden bepaald :

(i) Exact
(ii) Trapeziumregel
(iii) Gerepeteerde Trapeziumregel
R1
Wanneer 0.5 x4 dx exact wordt bepaald verkrijgen we

1
1 5 1
 
1
Z
4
x dx = x = (1 − (0.5)5 ) = 0.19375.
0.5 5 0.5 5

14
Met behulp van de trapeziumregel1 verkrijgen we
Z 1
1 − 0.5
x4 dx = (0.5)4 − 14 = 0.265625.

0.5 2

Een schatting van de fout kan worden bepaald met behulp van Stelling 5.3.1 uit het
boek.2 Met f ′′ (x) = 12x2 volgt dat een schatting van de fout wordt gegeven door

(1 − 0.5)3
 
− · max f (x) = −(0.5)3 = −0.125
′′
12 x∈[a,b]

De ‘echte’ fout is 0.19375-0.265625 = -0.0719.


Dezelfde integraal wordt ook berekend met de Gerepeteerde Trapeziumregel.3 Met
h = 0.25, dus x0 = 0.5, x1 = 0.75 en x2 = 1, wordt de integraal benaderd door
Z 1  
1 1
x4 dx = 0.25 (0.5)4 + (0.75)4 + 14 = 0.2119.
0.5 2 2

Met behulp van Richardson’s foutschatting wordt de fout geschat. Daarvoor moet
integraal m.b.v. de gerepeteerde Trapeziumregel ook met h2 = 0.125 worden benaderd.
Deze benadering is gelijk aan 0.1983. Uit de foutschatting volgt dat α = 2, dus

N ( 21 ) − N (h)
K= = −0.2901.
h2 (1 − ( 12 )2 )

Zie Hoofdstuk 3. Er volgt dat de schatting van de fout gelijk is aan

M − N (h) = Kh2 = −0.018.

De ‘echte’ fout is gelijk aan 0.0182 en dus is de schatting m.b.v. Richardson heel goed.

1
Trapeziumregel : Z b
b−a
f (x)dx ≈ (f (a) + f (b))
a 2
2
Stelling 5.3.1 Voor een η ∈ [a, b] geldt
Z b
b−a (b − a)3 ′′
f (x)dx − (f (a) + f (b)) = − f (η).
a 2 12

3
Gerepeteerde Trapeziumregel :
„ «
1 1
IT (h) = h f (x0 ) + f (x1 ) + · · · + f (xn−1 ) + f (xn ) ,
2 2
b−a
waarbij h = n
en xk = a + kh. Dan volgt voor de fout :
Z b
b − a 2 ′′
f (x)dx − IT (h) = − h f (ξ) met ξ ∈ [a, b].
a 12

15
Hoofdstuk 6

Numerieke tijdsintegratie voor


beginwaarde problemen

6.1 Antwoorden
1. De modified Euler-methode benadert de oplossing van een beginwaarde probleem y ′ =
f (t, y) als volgt :

Stel wn , de benadering/waarde van y(tn ), is bekend. Dan wordt wn+1 , de


benadering van y(tn+1 ) als volgt bepaald :

w n+1 = wn + hf (tn , wn ),
h
wn+1 = wn + (f (tn , wn ) + f (tn+1 , w n+1 )) .
2
In deze opgave is het beginwaarde probleem

y ′ = 1 + (t − y)2 ,

gedefineerd op het tijdsinterval [2, 3] met beginvoorwaarde y(2) = 1 (De functie f (t, y)
is nu gelijk aan 1 + (t − y)2 ). De exacte oplossing van dit probleem is
1
y(t) = t + .
1−t
Inderdaad geldt dat deze oplossing aan de DV voldoet en dat y(2) = 1.
Met een (tijd)stapgrootte h = 0.5 volgt dat voor 2 ≤ t ≤ 3 de volgende wi moeten
worden bepaald :

w0 ∼
= y(2),
w1 ∼
= y(2.5) en
w2 ∼
= y(3).

Onmiddellijk volgt dat w0 = y(2) = 1. De fout in dit punt is dus gelijk aan nul.

16
De benadering van y(t) op het tijdstip t = 2.5 volgt met de modified Euler-methode,

w 1 = w0 + hf (t0 , w0 ) =
= 1 + 0.5 1 + (2 − 1)2 =


= 1 + 0.5 · 2 = 2,
h
w1 = w0 + (f (t0 , w0 ) + f (t1 , w 1 )) =
2
= 1 + 0.25 2 + (1 + (2.5 − 2)2 ) =


= 1 + 0.25 · 3.25 = 1.8125.

De exacte oplossing y(t) geeft in t = 2.5 de waarde 1.8333. Hieruit volgt dat de fout
gelijk is aan 0.0208.
In de tweede stap van de modified Euler-methode verkrijgen we

w2 = 2.5488,
w2 = 2.4816.

De exacte oplossing geeft in t = 3 de waarde y(3) = 2.5. De fout is dus 0.0184. De


resultaten zijn samengevat in onderstaande tabel.

i tijdstip t y(t) wi fout


0 2 1 1 0
1 2.5 1.8333 1.8125 0.0208
2 3 2.5 2.4816 0.0184

2. De lokale afbreekfout τj+1 van de Midpuntregel is gedefinieerd als


yj+1 − zj+1
τj+1 = waarbij
h  
h h
zj+1 = yj + h f tj + , wj + f (tj , wj ) .
2 2

Zie paragraaf 6.6 van het boek met φ(yj , tj , h) = f (tj + h2 , wj + h2 f (tj , wj )) .


Taylor ontwikkeling van yj+1 rond yj geeft

h2 ′′
yj+1 = yj + hyj′ + y + O(h3 ).
2 j
Invullen van deze Taylorreeks in τj+1 geeft
h ′′ h h
τj+1 = yj′ + y − f (tj + , yj + f (tj , yj )) + O(h2 ). (6.1)
2 j 2 2
De tweede stap is om f (tj + h2 , wj + h2 f (tj , yj )) te ontwikkelen in een Taylorreeks rond
(tj , yj ). Dit geeft
h h h h
f (tj + , yj + f (tj , yj )) = f (tj , yj ) + ft (tj , yj ) + fy (tj , yj )yj′ + O(h2 ).
2 2 2 2

17
Het laatste ingredient dat we gebruiken is het feit dat y ′ = f (t, y). Voor de tweede
tijdsafgeleide van y volgt dan
y ′′ = ft + fy y ′ .
Dus geldt dat
yj′ = f (tj , yj ) (6.2)
en dat
yj′′ = (ft + fy y ′ )j = ft (tj , yj ) + fy (tj , yj )yj′ . (6.3)

Het invullen van de Taylorreeks van f (tj + h2 , wj + h2 f (tj , yj )) in (6.1) resulteert in

h ′′ h h
τj+1 = yj′ + yj − f (tj , yj ) − ft (tj , yj ) − fy (tj , yj )yj′ + O(h2 ). (6.4)
2 2 2
Om nu te laten zien dat de Midpuntregel van orde twee is, is het genoeg te laten zien
dat
h h h
yj′ + yj′′ − f (tj , yj ) − ft (tj , yj ) − fy (tj , yj )yj′ = 0. (6.5)
2 2 2
Met (6.2) en (6.3) volgt nu dat (6.5) klopt. De conclusie is dat de Midpuntregel van
orde twee is.

3. (i) De Trapeziumregel voor het oplossen van een beginwaardeprobleem is gegeven als

h
wn+1 = wn + (f (tn , wn ) + f (tn+1 , wn+1 )) . (6.6)
2
Merk daarbij op dat dit een impliciete methode is om de oplossing van het begin-
waarde probleem y ′ = f (t, y) te benaderen.
De versterkingsfactor Q(hλ) wordt als volgt afgeleid. Beschouw de testvergelijking
y ′ = λy. Toepassen van de Trapeziumregel op deze testvergelijking geeft een Q(hλ)
zodanig dat
wj+1 = Q(hλ)wj .
Toepassen van (6.6) op de testvergelijking y ′ = λy geeft :

h
wj+1 = wj + (λwj + λwj+1 ) (6.7)
2
Hergroeperen van wj+1 en wj in (6.7) levert
   
h h
1 − λ wj+1 = 1 + λ wj .
2 2

Er volgt dat
1 + h2 λ
wj+1 = wj ,
1 − h2 λ
en dus is
1 + h2 λ
Q(hλ) = .
1 − h2 λ

18
(ii) In paragraaf 6.6 van het boek vinden we dat de afbreekfout gelijk is aan

yj+1 − Q(hλ)yj
τj+1 = .
h
De exacte oplossing van de testvergelijking wordt gegeven door

yj+1 = ehλ yj .

Combineren van deze beide resultaten geeft dat de afbreekfout van de testverge-
lijking wordt bepaald door het verschil van de exponentiële functie en de verster-
kingsfactor Q(hλ), nl.
ehλ − Q(hλ)
τj+1 = yj . (6.8)
h
Het verschil tussen de exponentiële functie en de versterkingsfactor berekenen we
als volgt :
(1) Taylorontwikkeling van ehλ
(2) Taylorontwikkeling van 1−1h λ vermenigvuldigt met 1 + h2 λ
2
(3) Aftrekken : (1) − (2)
De Taylorontwikkeling van ehλ met steunpunt 0 is :

(λh)2
ehλ = 1 + λh + + O(h3 ). (6.9)
2
1
De Taylorontwikkeling van 1− h2 λ
met steunpunt 0 is :

1 1 1
h
= 1 + hλ + h2 λ2 + O(h3 ). (6.10)
1 − 2λ 2 4

1+ h2 λ
Met behulp van (6.10) volgt dat 1− h2 λ
gelijk is aan

1 + h2 λ 1
h
= 1 + hλ + (hλ)2 + O(h3 ). (6.11)
1− 2λ
2

Om nu ehλ − Q(hλ) te bepalen, trekken we (6.11) af van (6.9). Er volgt

ehλ − Q(hλ) = O(h3 ). (6.12)

De afbreekfout vinden we nu door (6.12) in te vullen in (6.8). We vinden dan

τj+1 = O(h2 ).

(iii) In paragraaf 6.5 (Stability of initial-value problems) wordt afgeleid dat een nume-
rieke methode stabiel is dan en slechts dan als

|Q(hλ)| ≤ 1.

19
De versterkingsfactor van de Trapeziumregel is

1 + h2 λ
Q(hλ) = .
1 − h2 λ

We moeten dus laten zien dat als λ ≤ 0 er volgt dat |Q(hλ)| ≤ 1 voor alle stap-
grootten h > 0.
Uit |Q(hλ)| ≤ 1 volgt dat er aan de volgende ongelijkheid moet worden voldaan

1 + h2 λ
−1 ≤ ≤ 1.
1 − h2 λ

Bovenstaande ongelijkheid vermenigvuldigen met 1 − h2 λ geeft

h h h
−1 + λ ≤ 1 + λ ≤ 1 − λ. (6.13)
2 2 2
Merk op dat (1 − h2 λ) ≥ 0, dus het teken in de ongelijkheid ‘klapt’ niet om. We
weten dat λ ≤ 0 en moeten dus alleen controleren voor welke waarden voor h aan
(6.13) wordt voldaan.
We beginnen met de linker ongelijkheid in (6.13), nl. −1+ h2 λ ≤ 1+ h2 λ. Als λ ≤ 0,
dan voldoet deze ongelijkheid voor alle h > 0.
Voor de rechter ongelijkheid van (6.13), nl. 1+ h2 λ ≤ 1− h2 λ, verkrijgen we hetzelfde
resultaat. Ook hier geldt dat er aan de ongelijkheid wordt voldaan voor alle h > 0.
De conclusie is dat de methode stabiel is voor alle h > 0 als λ ≤ 0.

4. We beschouwen het niet-lineaire beginwaardenprobleem y ′ = f (t, y) met

f (t, y) = 1 + (t − y)2 .

Om de stabiliteit van Modified Euler in het punt (t = 2, y = 1) te onderzoeken hebben


we de volgende resultaten nodig :

• Versterkingsfactor van Modified Euler


• Linearisatie van f (t, y).

De versterkingsfactor van Modified Euler is


1
Q(hλ) = 1 + hλ + h2 λ2 .
2
Zie paragraaf 6.4 van het boek.
De linearisatie van f (t, y) rond het punt (t, y) = (2, 1) is
∂f ∂f
f (t, y) ≈ f (2, 1) + (t − 2) (2, 1) + (y − 1) (2, 1) =
∂t ∂y
= 2 + 2(t − 2) − 2(y − 1) = −2y + 2t = −2y + g(t).

Het gelineariseerde beginwaardeprobleem is gelijk aan

y ′ = −2y + g(t).

20
Voor stabiliteit is het voldoende om de vergelijking y ′ = −2y te beschouwen. Merk op
dat dit de testvergelijking is met λ = −2. Modified Euler is stabiel als |Q(hλ)| ≤ 1 met
λ = −2. Dit geeft dat de methode stabiel is als voor de stapgrootte h geldt

−1 ≤ 1 − 2h + 2h2 ≤ 1.

Aan de linker ongelijkheid −1 ≤ 1 − 2h + 2h2 wordt voldaan als

h ≥ 0.

De rechter ongelijkheid ≤ 1 − 2h + 2h2 ≤ 1 als

h ≤ 1.

Dus de stabiliteitsvoorwaarde wordt gegeven door

0 ≤ h ≤ 1.

5. (a) De methode die in deze opgave wordt gebruikt is als volgt gedefinieerd

u∗ = un + βhf (tn , un ) (6.14)


∗ ∗
un+1 = u + (1 − β)hf (tn + βh, u ) (6.15)

We gaan te werk als bij het bepalen van de lokale afbreekfout van de Modified Euler
methode zie paragraaf 6.6 van het boek. Als eerste vervangen we de numerieke
waarde un door de exacte waarde yn , dus

z ∗ = yn + βhf (tn , yn ) (6.16)


∗ ∗
yn+1 = z + (1 − β)hf (tn + βh, z ) (6.17)

We beginnen met de Taylorontwikkeling van f (tn + βh, z ∗ ) rond het punt (tn , yn ) :
1
f (tn + βh, z ∗ ) = f (tn , un ) + βh(ft )n + (z ∗ − y(tn ))(fy )n + β 2 h2 (ftt )n +
2
1 ∗ 2 ∗
+ (z − y(tn )) (fyy )n + βh(z − y(tn ))(fty )n . (6.18)
2
Met behulp van (6.16) volgt dat (6.18) gelijk wordt aan

f (tn + βh, z ∗ ) = f (tn , yn ) + βh(ft + f fy ) + O(h2 ). (6.19)

Als we nu vervolgens (6.19) substitueren in (6.15) verkrijgen we

zn+1 = yn + βhf (tn , yn ) + (1 − β)hf (tn , yn ) + (1 − β)βh2 (ft + f ft )n + O(h3 ) =


= yn + hf (tn , yn ) + (1 − β)βh2 (ft + f ft )n + O(h3 ).

De Taylorontwikkeling van de exacte oplossing yn+1 wordt gegeven door


1
yn+1 = yn + hyn′ + h2 yn′′ + O(h3 ).
2

21
Gebruikmakend van het feit dat y ′ = f (t, y) volgt dat yn+1 − zn+1 gelijk is aan
 
1 2
yn+1 − zn+1 = 2
h − β(1 − β)h yn′′ + O(h3 ) = O(h2 ).
2

De laatste gelijkheid volgt door het feit dat 21 − β(1 − β) ongelijk aan nul is voor
alle β. Nu volgt eenvoudig dat de afbreekfout τn+1 door
yn+1 − zn+1
= O(h).
h

(b) De versterkingsfactor wordt bepaald door de methode toe te passen op de testver-


gelijking y ′ = λy. We verkrijgen met f (tn , un ) gelijk aan λun in (6.14) en (6.15) :

u∗ = un + βhλun
un+1 = u∗ + (1 − β)hλu∗ . (6.20)

Substitueren van u∗ in (6.20) geeft

un+1 = un + βhλun + (1 − β)hλ(un + βhλun ) =


= 1 + βhλ + (1 − β)hλ + β(1 − β)(hλ)2 un =


= 1 + hλ + β(1 − β)(hλ)2 un =


= Q(hλ)un .

De versterkingsfactor is Q(hλ) = 1 + hλ + β(1 − β)(hλ)2 .


(c) De niet-lineaire differentiaal vergelijking y ′ = f (y) met f (y) = 2y − 4y 2 moet
worden gelineariseerd rond y = 12 . Er volgt dat de linearisatie van f (y) rond y = 12
gegeven is als
1 1 1
f (y) ≈ f ( ) + (y − )f ′ ( ) = −2y + 1.
2 2 2
De gelineariseerde differentiaalvergelijking is dus y ′ = −2y + 1. Voor stabiliteit is
het voldoende om te kijken naar de vergelijking y ′ = −2y. Dit is de testvergelijking
met λ = −2.
De testvergelijking is stabiel als geldt :
1
|Q(hλ)| ≤ 1 voor λ = −2 en β = .
2
Invullen geeft dat voor de stapgrootte h geldt dat deze moet voldoen aan de on-
gelijkheid
−1 ≤ 1 − 2h + h2 ≤ 1.
Aan de rechterongelijkheid wordt voldaan als h ≤ 2. Aan de linker ongelijkheid vol-
doet deze voorwaarde ook (en we vinden geen strictere voorwaarde). De conclusie
is dat de methode stabiel is in dit punt als h ≤ 2.

6. Als het stelsel differentiaalvergelijkingen gegeven is als

y′ = f (y),

22
dan wordt de Euler Voorwaarts gedefinieerd met behulp van de benadering(svector)
(n) (n)
wn = [w1 , . . . , wt ]. De superscript (n) geeft aan dat de desbetreffende component
op tijdsniveau n genomen moet worden. De methode is dan gegeven als

wn+1 = wn + hf (tn , wn ).
(n) (n)
In ons geval is t = 2, wn = [w1 , w2 ] en
" #
(n) (n)
−4w1 − 2w2 + etn
f (wn ) = (n) (n) .
3w1 + w2

Met behulp van de beginvoorwaarden is de vector w0 bekend :


 
0
w0 = .
−1

De eerste stap met Euler Voorwaarts is dan

w1 = w0 + hf (w0 ) =
   
0 3
= + 0.1 · =
−1 −1
 
0.3
= .
−1.1

7. We gaan te werk als in Paragraaf 6.9, het deel over hogere orde beginwaarde proble-
men. Kort samengevat wordt hier gesteld dat men voor een hoger orde beginwaarde
probleem, dit probleem moet omschrijven naar een gekoppeld eerste orde stelsel diffe-
rentiaal vergelijkingen.
In ons geval hebben we een tweede orde beginwaarde probleem. We schrijven deze
differentiaal vergelijking om naar een stelsel van twee gekoppelde eerste orde differentiaal
vergelijkingen :  ′
y1 = y2
y2′ = −y1 + 2y2 + tet − t
met beginvoorwaarden 
y1 (0) = 0
.
y2 (0) = 0
Toepassen van Euler Voorwaarts met h = 0.1 geeft
" # " # " #
(1) (0) (0)
y1 y1 y2
(1) = (0) + 0.1 · (0) (0) =
y2 y2 −y1 + 2y2 + 0 · e0 − 0
 
0
= .
0

Er volgt dat de numerieke oplossing na één tijdstap gelijk is aan nul.


De exacte oplossing van dit probleem is 61 t3 et − tet + 2et − t − 2. Op t = 0.1 heeft de
exacte oplossing de waarde y(0.1) = 8.939 · 10−6 . De fout is dus gelijk aan de waarde
van exacte oplossing.

23
8. Een stelsel differentiaal vergelijkingen, geschreven als

x′ = Ax,

is stabiel als alle eigenwaarden van A een reëel deel kleiner of gelijk aan nul hebben.
In deze opgave bekijken we een mathematische slinger. De grootte van de hoek wordt
beschreven met de vergelijking
g
φ′′ + φ = 0. (6.21)
L
Dit tweede orde beginwaarden probleem kan ook als een stelsel van twee eerste orde
differentiaal vergelijkingen worden geschreven. Zie Paragraaf 6.9. Er volgt dat (6.21)
gelijk is aan  ′
φ1 = φ2
. (6.22)
φ′2 = − Lg φ1
Als we de vector φ definieren als  
φ1
ψ= ,
φ2
dan kan (6.22) worden geschreven als
 
0 1
ψ = Sψ met S = .
− Lg 0

De eigenwaarden van S worden berekend door

|S − λI|

gelijk aan nul te stellen. De eigenwaarden zijn de oplossing van de vergelijking


g
λ2 + = 0.
L
q
Er volgt dat λ1,2 = ±i Lg . Omdat het reëele deel van beide eigenwaarden gelijk is aan
nul, is het stelsel stabiel.

9. We bekijken het stelsel vergelijkingen


 ′
y1 = 1195y1 + 1995y2
,
y2′ = 1197y1 − 1997y2

met als beginvoorwaarden 


y1 (0) = 2
.
y2 (0) = −2
Op tijdsniveau t = nh definieren we de vector
" #
(n)
w1
wn+1 = (n) .
w2

Euler Voorwaarts is dan


wn+1 = wn + hf (wn ),

24
en Euler Achterwaarts
wn+1 = wn + hf (wn+1 ),
met " #
(n) (n)
1195w1 + 1995w2
f (wn ) = (n) (n) .
1197w1 − 1997w2

(a) Kies de stapgrootte h = 0.1. Met w0 = [2, −2]T volgt dat m.b.v. Euler Voorwaarts
w1 gelijk wordt aan

w1 = w0 + hf (w0 )
   
2 1195 · 2 + 1995 · (−2)
= + 0.1 · =
−2 1197 · 2 − 1997 · (−2)
 
640
= .
636.8

Met Euler Achterwaarts volgt dat het volgende stelsel vergelijkingen moet worden
opgelost : " # 
(1)    " (1) #
w1 2 1195 −1995 w1
(1) = + 0.1 · (1) (6.23)
w2 −2 1197 −1997 w2
Herschikken in (6.23) geeft
" # −1 
(1)   
w1 1195 −1995 2
(1) = I − 0.1 · =
w2 1197 −1997 −2
    
1 220.7 −199.5 2 8.23
= · =
97 119.7 −118.5 −2 4.90

Merk op : ‘De inverse matrix kan worden bepaald met de regel van Kramer’.
De exacte oplossing in t = 0.1 wordt gegeven door
   
y1 (0.1) 8.187
= .
y2 (0.1) 4.912

(b) Ga na dat het stelsel vergelijkingen


 ′
y1 = 1195y1 + 1995y2
,
y2′ = 1197y1 − 1997y2

te schrijven is als  
′ 1195 −1995
y = y = Ay,
1197 −1997
waarbij de vector y gedefinieerd is als
 
y1
y= .
y2

25
Zoals in Paragraaf 6.10 wordt afgeleid, is Euler Voorwaarts stabiel als voor alle
eigenwaarden geldt :
|1 + λi h| < 1, i = 1, 2, (6.24)
waarbij h de stapgrootte is.
We beginnen met het bepalen van de eigenwaarden van A. Aldus, de eigenwaarden
worden bepaald door
1195 − λ −1995

1197 −1997 − λ
gelijk aan nul te stellen. De volgende vierkantsvergelijking moet dan worden op-
gelost

λ2 + 802λ + 1600 = 0
m
(λ + 2)(λ + 800) = 0
m
λ = −2 of λ = −800.

Om aan (6.24) te voldoen is het voldoende om hieraan te voldoen voor λ = −800.


Ga na dat voor λ = −2 automatisch ook aan (6.24) wordt voldaan. We zoeken dus
alle h zodanig dat
|1 − 800λ| < 1.
Er volgt dat h < 0.0025.
(c) We doen dezelfde berekeningen als bij (a). Voor Euler Voorwaarts volgt

w1 = w0 + hf (w0 )
   
2 1195 · 2 + 1995 · (−2)
= + 0.0001 · =
−2 1197 · 2 − 1997 · (−2)
 
2.64
= .
−1.36

Voor Euler Achterwaarts moeten we het stelsel


" #   " (1) #
(1)  
w1 2 0.1195 −0.1995 w1
(1) = + (1) (6.25)
w2 −2 0.1197 −0.1997 w2

oplossen. Ga na dat de oplossing kan worden bepaald door


" #
(1)     
w1 1.1997 −0.1995 2 2.60
(1) = 0.9257 · =
w2 0.1197 0.8805 −2 −1.41

De exacte oplossing op t = 0.0001 wordt gegeven door


   
y1 (0.0001) 2.61
=
y2 (0.0001) −1.39

Beide methoden geven bij deze stapgrootte een even goed resultaat. Daarbij moe-
ten we wel opmerken dat de Euler Achterwaarts ‘duurder’ is in de rekentijd.

26
Conclusie : Bij een stijf stelsel geeft Euler Achterwaarts een goed antwoord voor
alle stapgrootten h, terwijl Euler Voorwaarts alleen goede resultaten geeft voor
(zeer kleine) stapgrootten, die moeten voldoen aan de stabiliteitsvoorwaarde.
10. De oplossing van de differentiaalvergelijking y ′ = y − t2 + 1 in t = 0.1 wordt in deze
opgave benaderd met zowel Euler Voorwaarts als de Runge Kutta 4 (RK4) methode. De
Euler Voorwaarts methode is inmiddels al bekend. De RK4 methode wordt beschreven
in Paragraaf 6.7 en is als volgt gedefinieerd
1
wn+1 = wn + [k1 + 2k2 + 2k3 + k4 ], (6.26)
6
waarbij de predictoren k1 , . . . , k4 worden gegeven door
k1 = hf (tn , wn ) (6.27)
1 1
k2 = hf (tn + h, wn + k1 ) (6.28)
2 2
1 1
k3 = hf (tn + h, wn + k2 ) (6.29)
2 2
k4 = hf (tn + h, wn + k3 ) (6.30)
(i) In het eerste deel benaderen we y(0.1) met behulp van de Euler Voorwaarts methode
met stapgrootte h = 0.025. Dit betekent dat we vier stappen van het schema
wn+1 = wn + h(wn − t2n + 1)
1
moeten uitvoeren. Met de beginvoorwaarde y(0) = w0 = 2 verkrijgen we de
volgende reeks van wi ’s :
w1 = w0 + h(w0 − 02 + 1) =
1 1
= + 0.025 · 1 = 0.5375,
2 2
w2 = w1 + 0.025(w1 − 0.0252 + 1) = 0.5759219
w3 = w2 + 0.025(w2 − 0.0502 + 1) = 0.6152574
w4 = w3 + 0.025(w3 − 0.0752 + 1) = 0.6554982
De benadering van y(0.1) wordt gegeven door w4 = 0.6554982.
(ii)Wederom gaan we y(0.1) benaderen. We doen dit met de RK4 methode, beschreven
door (6.26) t/m (6.30), met een stapgrootte van h = 0.1. Merk op dat in (6.27)
t/m (6.30) f (tn , wn ) = wn − t2n + 1.
We beginnen met het berekenen van de vier predictoren, waarbij y(0) = w0 = 21 .
Aldus
k1 = hf (t0 , w0 ) =
= h(w0 − t20 + 1) =
1
= 0.1( − 02 + 1) = 0.15
2
1
k2 = 0.1(w0 + k1 − 0.052 + 1) = 0.15725
2
1
k3 = 0.1(w0 + k2 − 0.052 + 1) = 0.1576125
2
k4 = 0.1(w0 + k3 − 0.12 + 1) = 0.1647613.

27
Dan volgt voor w1 :
1
w1 = w0 + [k1 + 2k2 + 2k3 + k4 ] =
6
1 1
= + · 0.9444863 = 0.6574144.
2 6
M.b.v. RK4 wordt de benadering van y(0.1) gegeven door w1 = 0.6574144.

De exacte oplossing van de differentiaalvergelijking is y(t) = − 21 et + t2 + 2t + 1. Op


t = 0.1 is de exacte oplossing dus y(0.1) = 0.6574145.
Conclusie : We zien dat de benaderingen van beide methoden goed zijn en de hoe-
veelheid werk ongeveer hetzelfde is. Omdat de fout in de benadering van RK4 gelijk
is aan 10−7 en bij Euler Voorwaarts gelijk aan 2 × 10−3 , verdient de RK4 methode de
voorkeur.

11. Om de orde van de fout te bepalen, maken we gebruik van de formule in paragraaf 6.7
van het boek: foutschatting als p onbekend is:

y(t, h/2) − y(t, h)


≈ 2p .
y(t, h/4) − y(t, h/2)

Voor de eerste kolom geeft dit


0.750686 − 0.752790
= 4.1581 ≈ 22 ,
0.750180 − 0.750686
dus de orde van methode 1 is 2. Voor de tweede kolom krijgen we
0.730912 − 0.710791
= 2.0797 ≈ 21 ,
0.740587 − 0.730912
dus de orde van methode 2 is 1.

28
Hoofdstuk 7

De eindige differentie methode voor


randwaarde problemen

7.1 Antwoorden
1. Het conditiegetal K(A) van een symmetrische matrix A is het quotient van de grootste
en kleinste eigenwaarde van A. Zie Paragraaf 7.3.
De matrix A1 is de symmetrische matrix
 
2 1
A1 = .
1 2
De eigenwaarden van A1 kunnen eenvoudig worden berekend door

2−λ 1
= λ2 − 4λ + 3 = (λ − 3)(λ − 1). (7.1)
1 2−λ
Gelijkstellen aan nul van (7.1) geeft de eigenwaarden λmax = 3 en λmin = 1. Er volgt
dat K(A1 ) = 3.
De matrix A2 is de symmetrische matrix
 
100 99
A1 = .
99 100
De eigenwaarden van A2 zijn λmax = 199 en λmin = 1. Er volgt dat het conditiegetal
van A2 gelijk is aan K(A2 ) = 199.
De oplosssing van het stelsel A2 x = b met b = [199, 199]T is eenvoudig in te zien. Deze
is namelijk gelijk aan x = [1, 1]T .
Stel nu dat de het rechterlid wordt verstoord met een fout ∆b = [1, 0]T . In Paragraaf
7.3 wordt dan de volgende schatting voor de norm van de verstoring van de oplossing x
afgeleid :
k∆bk
k∆xk ≤ K(A2 ) kxk . (7.2)
kbk
De norm van de vector x = [1, 1]T is
r
1 2 1 2
kxk = 1 + 1 = 1.
2 2

29
Op eenzelfde manier volgen
1
kbk = 199 en k∆bk = √ .
2
Substitueren in (7.2) levert
1
k∆xk ≤ √ ≈ 0.7071.
2
We zullen nu ∆x gaan bepalen en vervolgens k∆xk vergelijken met de geschatte bo-
vengrens. Als het rechterlid b wordt verstoord met ∆b = [1, 0]T , dan is ∆x te bepalen
uit
A2 (x + ∆x) = (b + ∆b), (7.3)
omdat x bekend is. Herschikken van bekenden en onbekenden in (7.3) geeft

A2 ∆x = (b + ∆b) − A2 x.

Met Gaussische eliminatie volgt dan dat ∆x gelijk is aan


 
0.5025
∆x = .
−0.4975
De norm van ∆x is
r
1 1
k∆xk = (0.5025)2 + (−0.4975)2 ≈ 0.5000.
2 2
Inderdaad is k∆xk kleiner dan 0.7071, zoals voorspeld.
Als laatste merken we op dat een kleine verstoring in het rechterlid leidt tot een grote
verstoring in de oplossing.

2. Het randwaardeprobleem zoals gegeven in de opgave kan worden omgeschreven als

 −y ′′ (x) + 2y(x) = 2x,


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

1
(a) Het interval [0, 1] wordt opgedeeld in m + 1 gelijke delen ter lengte h = m+1
(Men noemt zo een grid ook wel equidistant). De knooppunten zijn xj = jh voor
j = 0, 1, . . . , m + 1. De numerieke benadering van yj = y(xj ) noteren we met wj .
De tweede afgeleide in de DV discretiseren we met centrale differenties.
Om de DV te kunnen discretiseren gebruiken we de DV in het punt xj :

−yj′′ + 2yj = 2xj voor 1 ≤ j ≤ m. (7.4)

De discretisatie van (7.4) is gelijk aan


wj−1 − 2wj + wj+1
− + 2wj = 2jh. (7.5)
h2
Als j = 1 dan wordt (7.5) gelijk aan
w0 − 2w1 + w2
− + 2w1 = 2h, (7.6)
h2

30
waarbij w0 = 0 ten gevolge van de randvoorwaarde y(0) = 0. Er volgt dat voor
j = 1 we de volgende vergelijking hebben
2w1 − w2
+ 2w1 = 2h. (7.7)
h2
Voor alle 1 < j < m blijft (7.5) gelijk. Voor j = m verkrijgen we
wm−1 − 2wm
− + 2wm = 2mh. (7.8)
h2
Met m vergelijkingen en evenveel onbekenden kunnen we dit stelsel vergelijkingen
oplossen. Omdat het stelsel uitsluitend bestaat uit lineaire vergelijkingen, kunnen
we het in de vorm Aw = b schrijven. Met
 
w1
w =  ...  ,
 

wm

volgt dat
2
+2 − h12
 
h2
 − 12 2
+ 2 − h12 
h h2
 .. .. ..
 
. . .

 
 
A=
 

 
 
 
 
 − h12 2
h2 +2 − h12 
− h12 2
+2
h2

en dat  
2h
 4h 
..
 
b= .
 
 . 
 2(m − 1)h 
2mh
(b) Ten eerste kunnen we opmerken dat A symmetrisch is. Dit betekent dat alle
eigenwaarden van A reëel zijn.
Om de grootste en kleinste eigenwaarde van A te vinden gebruiken we de stelling
van Gershgorin.
Theorem 7.1.1 (Stelling van Gershgorin) De eigenwaarden van de matrix n×
n A liggen in de vereniging van cirkels (in het complexe vlak)
n
X
|z − aii | ≤ |aij |,
j6=ij=1

waarbij z ∈ C.

31
Toepassen van Gershgorin op de rijen k van A, voor 1 < k < m, geeft dat de
eigenwaarden liggen in de vereniging van cirkels
2 2
|z − 2
− 2| ≤ 2 .
h h
Voor de rijen 1 en m van A geldt dat
2 1
|z − 2
− 2| ≤ 2 .
h h
Dus alle eigenwaarden van A liggen in de vereniging van de cirkels
2 2
|z − 2
− 2| ≤ 2 en (7.9)
h h
2 1
|z − − 2| ≤ 2 , (7.10)
h2 h
in het complexe vlak.
Het blijkt dat de kleinste (reëele) eigenwaarde gelijk is aan λmin = 2 en de grootste
λmax = 2 + h42 .
(c) Omdat A symmetrisch is, is het conditiegetal van A gedefinieerd als
λmax
K(A) = .
λmin
In Paragraaf 7.3 wordt afgeleid dat
k∆wk k∆bk
≤ K(A) .
kwk kbk
Gegeven is dat
k∆bk
≤ 10−4 ,
kbk
en dus volgt dat

2 + h42
 
k∆wk k∆bk 2
≤ K(A) ≤ · 10−4 = 1+ 2 · 10−4 .
kwk kbk 2 h

3. De differentiaalvergelijking

−y ′′ (x) = sin x x ∈ [0, π],

tweemaal integreren geeft de algemene oplossing

y(x) = sin x + c1 x + c2 . (7.11)

Verwerken van de randvoorwaarden y(0) = y(π) = 0 geeft

y(0) = c2 = 0
y(π) = sinπ + c1 π + c2 = 0,

32
hetgeen c1 = c2 = 0 oplevert. De exacte oplossing van het randwaardeprobleem is dus
y(x) = sin x.
De numerieke oplossing wordt bepaald door N = 2 te nemen en de tweede afgeleide met
centrale differenties te benaderen. Door N = 2 te nemen, wordt het gebied in 3 stukken
opgehakt. De numerieke benadering bestaat dan uit de punten

y(0) ≈ w0 = 0 door de randvoorwaarde,


π
y( ) ≈ w1
3

y( ) ≈ w2
3
y(π) ≈ w3 = 0 door de randvoorwaarde.

We moeten dus het stelsel vergelijkingen

2w1 − w2 = sin( π3 )h2




−w1 + 2w2 = sin( 2π 2 ,


3 )h

waarbij h = π3 , oplossen. Met Gaussische eliminatie volgt dat de oplossing wordt gegeven
door

u1 = 0.9497
u2 = 0.9497.

Er volgt dat yj −wj , ook wel de globale fout genoemd, gelijk is aan -0.0837 voor j = 1, 2.

4. We bekijken het randwaardeprobleem

 −y ′′ (x) + y(x) = 0

y(0) = 0 ,
 ′
y (1) = 0
2
op het interval [0, 1]. Het rooster wordt gegeven door de punten xj = jh met h = 7
voor j = 0, 1, . . . , 4. De DV in het punt xj wordt gegeven door

−y ′′ (xj ) + y(xj ) = 0.

Discretisatie van bovenstaande vergelijking geeft


−wj−1 + 2wj − wj+1
+ wj = 0, 1≤j≤3 (7.12)
h2
waarbij wj ≈ y(xj ).
Voor j = 1 in (7.12) verkrijgen we met de randvoorwaarde w0 = 1
2w1 − w2 1
+ w1 = 2 .
h2 h
De randvoorwaarde y ′ (1) = 0 wordt als volgt gediscretiseerd :
w4 − w3
y ′ (1) = 0 = 0.
h

33
Dit resulteert voor j = 3 in (7.12) in
−w2 + w3
+ w3 = 0.
h2

Als we de vector van onbekenden definiëren als


 
w1
w =  w2  ,
w3

en het rechterlid gelijk aan de nulvector nemen, dan is de discretisatie van dit rand-
waardeprobleem Aw = f , met

2 + h2
 
−1 0
1
A = 2  −1 2 + h2 −1  .
h
0 −1 1 + h2

De matrix A is dus symmetrisch, hetgeen betekend dat alle eigenwaarden reëel zijn.
Toepassen van de Stelling van GershgorinS levert het feit dat de eigenwaarden liggen
binnen de vereniging van de cirkels C = 3i=1 Ci , met
 
2 ≤ 1

C1 : z −

2
+ 1 h2
h
 
2 2
C2 : z − 2
+ 1 ≤ 2 en
h h
 
1
C3 : z − 2
+ 1 ≤ 1.
h

Ga na dat alle eigenwaarden liggen in de vereniging van C2 en C3 . Alle (reëele) ei-


genwaarden binnen deze cirkels zijn groter dan 1, dus positief. De conclusie is dat A
uitsluitend positieve reëele eigenwaarden heeft.

34
Hoofdstuk 8

De instationaire warmtevergelijking∗

8.1 Antwoorden
Geen

35
Hoofdstuk 9

Optimization problems ∗

9.1 Antwoorden
Geen

36

You might also like