25 3 NUMERIEKE INTEGRATIE 3 3.a Numerieke Integratie Probleemstelling Gegeven een (voldoend gladde) functie f op een begrensd interval [a, b], bepaal een benadering voor de integraal I := Z b f (t) dt (3.1) a en geef een foutschatting voor de verkregen benadering. Een voor de hand liggende aanpak van dit probleem is het benaderen van f met een eenvoudig integreerbare functie, zoals een polynoom (zie hoofdstuk 1), en deze benadering exact te integreren. Voorbeelden: (1) Benader f met een lineair polynoom, f (x) = f (a) x−b x−a 1 + f (b) + (x − a) (x − b) f ′′ (ξx ) a b 2 en integreer, Z b a b−a 1 f (x) dx = (f (a) + f (b)) + 2 2 Z b (x − a) (x − b) f ′′ (ξx ) dx . a (3.2) Omdat (x − a) (x − b) definiet is op [a, b], mogen we op de restterm de middelwaardestelling van de integraalrekening toepassen: Er is een punt η in [a, b] zodat Z b a ′′ ′′ (x − a) (x − b) f (ξx ) dx = f (η) Z b (x − a) (x − b) dx . a Zo vinden we de trapeziumregel (met restterm) Z b f (x) dx = a b−a (b − a)3 ′′ (f (a) + f (b)) − f (η) . 2 12 (3.3) (2) Benader f met een stukje Taylorreeks op het midden van het interval, f (x) = f ( b+a ′ b+a 1 b + a 2 ′′ b+a ) + (x − )f( ) + (x − ) f (ξx ) , 2 2 2 2 2 integreer en gebruik opnieuw de middelwaardestelling (omdat (x − vinden we de middelpuntsregel (met restterm): Z b f (x) dx = (b − a) f ( a b+a 2 2 ) b+a (b − a)3 ′′ ) + f (η) 2 24 definiet is). Zo (3.4) voor zekere η ∈ [a, b]. In het algemeen vinden we zo een (lineaire) integratief ormule Σni=1 wi f (ti ) als benadering van een integraal, Z b a f (x) dx = n X wi f (ti ) + rest , (3.5) i=1 waar {t1 , · · · , tn } de steunpunten en {w1 , · · · , wn } de gewichten heten. Bij gegeven steun(n) punten kunnen we het gewicht wi bepalen door het i-de Lagrange-polynoom Li , cf. (1.2), te integreren (hetgeen i.h.a. veel werk is). Een eenvoudige methode om bij gegeven steunpunten de 26 3 NUMERIEKE INTEGRATIE gewichten te bepalen is de methode der onbepaalde coëfficiënten. Deze methode berust op het feit, dat interpolatie en dus ook integratie op n steunpunten exact is voor alle polynomen van graad kleiner dan n en dat het voldoende is gelijkheid in (3.5) te testen voor een basis in deze ruimte van polynomen: n X k wi (ti − a) = Z b (x − a)k dx = a i=1 (b − a)k+1 , k + 1 k = 0, · · · , n − 1 . (3.6) Als de steunpunten onderling verschillend zijn, ti 6= tj (i 6= j), dan is de matrix in het linkerlid van (3.6) een reguliere Vandermondematrix, cf (1.13b), en heeft het stelsel vergelijkingen dus een eenduidige oplossing. Natuurlijk geldt hier bij het uitrekenen van de gewichten eenzelfde bezwaar als bij interpolatie, n.l. dat deze matrix meestal zeer slecht geconditioneerd is (tenzij n heel klein is). Op grond van de restterm bij Lagrange-interpolatie (1.3) vinden we voor de rest in formule (3.5) de volgende foutschatting: | rest | ≤ 1 n! max a≤x≤b | f (n) (x) | Z n Y b a | x − ti | dx ≤ C (b − a)n+1 k f (n) k∞ , (3.7) j=1 waar C een constante is, die alleen van n en de keuze van de steunpunten afhangt maar niet van f . Het kan voorkomen dat de integratieformule, gevonden bij een zekere verzameling van n steunpunten, ook exact is voor sommige polynomen van hogere graad. Als we bijvoorbeeld op het interval [0 , 1] de drie volgende steunpunten kiezen, t1 = 0, t2 = 12 en t3 = 1, dan vinden we met behulp van de methode der onbepaalde coëfficiënten de vergelijkingen: w1 + w 2 + w 3 = 1 , 1 2 w2 + w 3 = 1 2 , 1 1 w2 + w 3 = . 4 3 De gewichten zijn dus w1 = w3 = 1/6 en w2 = 2/3. De gevonden integratieformule is de formule van Simpson. Deze formule is ook exact voor polynomen van graad 3 en zij is van orde 4. Hiervoor is dus een betere foutschatting dan (3.7) beschikbaar. Om in zo’n geval een betere foutschatting te vinden, gebruiken we de Reststelling van Peano: Stelling. Zij L een lineaire functionaal op C m ([a, b]) zo, dat Lf = 0, voor alle polynomen van graad kleinerdan m , (3.8) dan geldt LF = Z b f (m) (t) K(t) dt , K(t) := a 1 Lx (x − t)m−1 Y (x − t) . (m − 1)! (3.9) Hierin staat Lx (x − t)m−1 Y (x − t) voor de functionaal L toegepast op de functie x 7→ (x − t)m−1 Y (x − t) (als functie van x). Y is de Heaviside functie, Y (z) = 1 als z ≥ 0 en Y (z) = 0 als z < 0. Bewijs. Pas L toe op de Taylorontwikkeling van f in a f (x) = m−1 X j=0 f (j) (a) (x − a)j + j! Z x a (x − t)m−1 (m) f (t) dt . (m − 1)! Aangezien L verdwijnt op het polynomiale gedeelte van deze ontwikkeling, volgt de bewering onmiddellijk hieruit. 27 3 NUMERIEKE INTEGRATIE Opmerking. Een integratieformule, die exact is voor alle polynomen van graad kleiner dan m heet een formule van orde m. We kunnen deze stelling toepassen op de boven afgeleide formule van Simpson. Deze formule is ook exact voor polynomen van graad 3. We vinden: rest = L f = = R1 1 24 0 Aangezien R1 0 f (x) dx − f (4) (t) Z 1 hR 1 0 (x 1 6 (f (0) + 4f ( 21 ) + f (1)) − t)3 Y (x − t) dx − 32 ( 21 − t)3 Y ( 21 − t) − (x − t)3 Y (x − t) dx = K(t) := [ · · · ] = ( 1 4 1 4 1 (x − t)3 dx = t 0 vinden we Z (1 − t)4 − (1 − t)4 − 1 6 2 3 (1 − t)3 = ( 21 − t)3 − 1 6 (1 − t)3 = 1 12 1 12 1 6 i (1 − t)3 dt . 1 (1 − t)4 , 4 (1 − 3t) (1 − t)3 , t ≤ (3t − 2) t3 , t ≥ 1 2 1 2 , . Daar de “kern” K(t) negatief is voor alle t in het interval [0 , 1], mogen we de middelwaardestelling toepassen. Er is dus een ξ ∈ [0 , 1] zodat 1 (4) f (ξ) 24 rest = Z 1 K(t) dt = − 0 1 f (4) (ξ) . 2880 (3.10) Opmerking. In dit geval is het toevallig eenvoudiger de restterm voor de formule van Simpson af te leiden uit de restterm voor het kubische interpolatiepolynoom π van f , waarvoor geldt π(0) = f (0) , π( 12 ) = f ( 21 ) , π ′ ( 21 ) = f ′ ( 12 ) , π(1) = f (1) . Op grond van formule (1.5) voor de restterm van dit interpolatiepolynoom vinden we Z 1 f (x) − π(x) dx = 0 omdat x (x − 3.b 1 2 2 ) (x 1 24 Z 0 1 f (4) (ξx ) x (x − 12 )2 (x − 1) dx = − 1 f (4) (ξ) , 2880 − 1) negatief is op het gehele interval [0 , 1]. Gauss-integratie We vragen ons nu af wat de maximale orde is, die we met een integratieformule van de vorm Σni=1 wi f (ti ) kunnen bereiken. Voor de eenvoud van de formules nemen we aan dat het integratieinterval [−1 , 1] is. De integratieformule bevat 2n parameters, de gewichten wi en de steunpunten ti . Door substitutie van de polynomen 1, x, x2 , · · · , x2n−1 (met de methode der onbepaalde coëfficiënten) vinden we 2n niet-lineaire vergelijkingen voor de 2n parameters van de gezochte integratieformule. We zullen via een omweg laten zien dat deze vergelijkingen precies één oplossing hebben en dat de maximale orde van een n-punts formule dus 2n is. Zo’n formule van maximale orde heet een Gauss-formule. Bij een gegeven verzameling steunpunten {t1 , · · · , tn } kunnen we via het lineaire stelsel (3.6) de gewichten {w1 , · · · , wn } bepalen zo, dat de formule minstens van orde n is, Z 1 −1 f (x) dx = n X wj f (tj ) als f een polynoom van graad kleiner dan n is. j=1 Hiermee is de formule exact voor polynomen van graad kleiner dan n. Als de formule ook exact is voor polynomen met graad tussen n en 2n, dan moet dit in het bijzonder gelden voor de polynomen xk Pn (x), k = 0, · · · , n − 1 , Z 1 −1 k Pn (x) x dx = n X i=1 wi Pn (ti ) tki . (3.11) 28 3 NUMERIEKE INTEGRATIE Maar we weten ook dat het n-de Legendre polynoom loodrecht staat op alle polynomen van lagere graad, d.w.z. Z 1 Pn (x) xk dx = 0 , k = 0, · · · , n − 1 . −1 Dit betekent, dat het rechterlid van (3.11) nul is voor alle k, 0 ≤ k < n. Omdat de Vandermondematrix met elementen tki niet singulier is, impliceert dit, dat Pn (ti ) = 0, i = 1, · · · , n. Zonder expliciet aan een zeer slecht geconditioneerde Vandermondematrix te moeten rekenen, kunnen we de gewenste steunpunten dus vinden als de nulpunten van het n-de Legendre polynoom. Deze nulpunten zijn enkelvoudig en liggen alle binnen het interval (−1, 1). Bovendien zien we hieruit, dat er op dit interval precies één integratieformule bestaat van orde 2n met n steunpunten. Om de restterm van de gevonden n-punts Gaussformule te vinden voor een willekeurige functie f ∈ C 2n ([−1 , 1]) interpoleren we f met een polynoom π van graad 2n − 1 d.m.v. Hermiteinterpolatie op de nulpunten van {t1 , · · · , tn } van Pn . Hiervoor geldt volgens (1.5) f (x) = π(x) + n Y (x − ti )2 i=1 f (2n) (ξx ) . (2n)! Als we deze vergelijking integreren, de integraal over het polynoom π vervangen door de integratieformule en op de restterm de middelwaardestelling toepassen, vinden we: Z 1 f (x) dx = −1 n X f (2n) (ξx ) (2n)! wj f (tj ) + j=1 Z 1 n Y −1 i=1 (x − ti )2 dx . Omdat het polynoom Πni=1 (x − ti ) van gelijke graad is als Pn en dezelfde nulpunten heeft, zijn beide polynomen gelijk op een constante factor na. Deze vinden we uit de Rodrigues relatie voor Pn , Pn (x) = n 1 dn (2n)! (2n)! Y 2 n n (x − ti ) (x − 1) = x + termen van lagere orde = 2n n! dxn 2n (n!)2 2n (n!)2 i=1 De integraal in de restterm kunnen we hiermee alsvolgt uitrekenen: Z 1 n Y −1 i=1 22n (n!)4 (x − ti ) dx = ((2n)!)2 2 Z 1 −1 Pn (x)2 dx = 22n+1 (n!)4 . (2n + 1) ((2n)!)2 Zo vinden we dus de n-punts Gauss formule Z 1 f (x) dx = −1 n X wj f (tj ) + f (2n) (ξ) j=1 22n+1 (n!)4 . (2n + 1) ((2n)!)3 (3.12) De gewichten van een Gauss formule zijn positief, immers wi = Z 1 n Y −1 j=1, j6=i ( x − tj 2 ) dx > 0 , ti − t j (3.12a) daar de formule exact is voor alle polynomen van graad ≤ n. Overigens zal men nooit de gewichten met behulp van deze expressie uitrekenen. Via de recurrente betrekking voor de Legendre polynomen kan men voor de gewichten de volgende formule vinden: wi = (1 − t2i ) 2 . [Pn′ (ti )]2 (3.13) In de literatuur zijn ook aan een aantal andere typen integratieformules een naam verbonden: 29 3 NUMERIEKE INTEGRATIE Een n-punts Newton-Cotes formule (n ≥ 2) op het interval [a, b] is de formule met maximale orde op n equidistante steunpunten {t1 := a, t2 , · · · , tn := b}. Voor n > 6 zijn dit soort formules numeriek minder aantrekkelijk, omdat sommige gewichten dan negatief zijn. Voorbeelden zijn de trapeziumregel (n = 2) en de regel van Simpson (n = 3). Opgave 3.1: Laat zien dat de orde van zo’n formule n is voor even n en n + 1 voor oneven n. Een n-punts Lobatto formule (n ≥ 2) op het interval [a, b] is de formule met maximale orde op de n steunpunten {t1 := a, t2 , · · · , tn := b}, waarbij de steunpunten t2 , · · · , tn−1 zo gekozen worden, dat de orde maximaal is. De orde van zo’n n-punts formule is 2n − 2. De steunpunten ′ (als [a, b] = [−1, 1]) en ze liggen van deze formules zijn verbonden met de nulpunten van Pn−1 alle binnen het interval. De gewichten zijn altijd positief. De restterm heeft de vorm C f (2n−2) (ξ). Voorbeelden zijn opnieuw de trapeziumregel en de regel van Simpson. Een n-punts Radau formule (n ≥ 2) op het interval [a, b] verkrijgen we door ofwel t1 = a ofwel tn = b te kiezen en vervolgens de overige steunpunten en gewichten zo bepalen, dat de orde maximaal is. De orde van zo’n formule is 2n − 1 (in feite hebben we er twee, die elkaars gespiegelde zijn). Ook hier liggen de steunpunten binnen het integratie-interval en zijn de gewichten positief. De restterm heeft de vorm C f (2n−1) (ξ). 3.c Samengestelde integratieformules Als we de afbreekfout, die ontstaat door toepassing van een integratieformule op een functie, te groot vinden, kunnen we overgaan op een formule van hogere orde, maar ook kunnen we het integratie-interval in stukken verdelen en op ieder stuk afzonderlijk de integratieformule toepassen. Als voorbeeld kiezen we de samengestelde middelpuntsregel Mn . We verdelen het integratie-interval in n gelijke stukken van lengte h := (b − a)/n, Z b a f (x) dx = n X j=1 n X h h3 ′′ h f (a + jh − ) + f (ξj ) = Mn (f ) + Rn (f ) , 2 24 j=1 (3.14) waar ξj een punt is in het deelinterval [a + jh − h, a + jh]. We kunnen de afbreekfout Rn dus willekeurig klein maken, door h voldoend klein te kiezen. Evenals bij interpolatie is het ook hier vaak gunstiger de orde van de integratieformule beperkt te houden en de nauwkeurigheid tot de gewenste waarde op te voeren door de lengte van de deelintervallen, waarop deze wordt toegepast, te verkleinen. Een dergelijke strategie convergeert voor een grotere klasse van functies, dan integratie d.m.v. een serie (enkelvoudige) formules van steeds hogere orde. Bovendien heeft de restterm van een samengestelde formule op ieder deelinterval dezelfde vorm en kunnen we deze gebruiken om de afbreekfout te schatten. In het voorbeeld (3.14) is de restterm een Riemannsom voor de integraal van de tweede afgeleide, n X j=1 h f ′′ (ξj ) − Z b a f ′′ (x) dx → 0 , voor n → ∞ , 30 3 NUMERIEKE INTEGRATIE zodat we de rest ook kunnen schrijven als Rn = n X h3 j=1 24 f ′′ (ξj ) = 3 h2 ′ (f (b) − f ′ (a)) + o(h2 ) , 24 (h → 0) . (3.15) We concluderen hieruit dat de restterm in eerste benadering gelijk is aan een constante maal h2 , met een constante, die niet van h (maar wel van f ) afhangt, Rn = C h2 + o(h2 ) , (h → +0). Als de o(h2 )-term voldoend klein is t.o.v. C h2 , dan kunnen we C schatten door M te berekenen voor twee verschillende waarden van h (of n) en hieruit de onbekende integraal te elimineren: I = Mn + C h2 + o(h2 ) = M2n + C( h2 )2 + o(h2 ) . Aftrekken geeft: Mn − M2n = 3 C h2 + o(h2 ) 4 We zien hieruit, 1 1 C h2 + o(h2 ) = (Mn − M2n ) + o(h2 ). (3.16) 4 3 De belangrijke conclusie, die we hieruit kunnen trekken, is dat we de afbreekfout in M2n kunnen schatten door naast M2n ook Mn te berekenen. Dit geeft ons de mogelijkheid om een automatisch afbreekcriterium te formuleren, dat een benadering levert met vooraf voorgeschreven precisie onder de voorwaarde, dat de o(h2 )-term in (3.15) klein is: R2n = < kies startwaarde voor n > ; < bereken Mn > ; repeat n := 2 ∗ n; < bereken Mn >; until | Mn − Mn/2 | < eps . (3.17) Als formule (3.16) een goede schatting van de fout oplevert, dan kunnen we deze ook gebruiken om de verkregen benadering te verbeteren: I = M2n + 1 (M2n − Mn ) + o(h2 ). 3 (3.18) Dit proces heet extrapolatie. Opgave 3.2: Laat zien dat de algoritme (3.17) niet altijd het gewenste resultaat aflevert. Kies als voorbeeld f = (x − 41 )(x − 12 )(x − 34 ) en start met n = 1. 3 Het grote O-symbool en het kleine o-symbool zijn gedefinieerd alsvolgt. f (x) = O(g(x)) (x → a + 0) , als er een halfopen interval (a, a + δ] bestaat (met δ > 0) en een positieve constante C zodat | f (x) | ≤ C | g(x) | voor alle x ∈ (a, a + δ]. f (x) = o(g(x)) (x → a + 0) , als lim xa, x→a f (x) (x) = 0 , g of anders gezegd, als er bij iedere ε > 0 een δ > 0 bestaat, zodat | f (x) | ≤ ε | g(x) | voor alle x ∈ (a, a + δ]. 31 3 NUMERIEKE INTEGRATIE Opgave 3.3: Definieer P als het lineaire polynoom, dat voldoet aan P (h2 ) = Mn en P (h2 /4) = M2n . Laat zien, dat P (0) precies de extrapolatie van formule (3.18) levert, P (0) = M2n + 1 (M2n − Mn ) . 3 Conclusie: De afbreekfout is een functie van h2 . Deze functie benaderen we met een lineair polynoom (in h2 ). De waarde van dit polynoom in nul is de waarde van de extrapolatie. Extrapolatie is dus niets anders als een speciale vorm van polynoombenadering. Omdat de afbreekfout een functie van h2 is, spreken we in dit geval over h-kwadraat extrapolatie. Extrapolatie is een veelgebruikt hulpmiddel in de numerieke analyse om een berekende benadering te verbeteren (niet alleen voor integralen!). Extrapolatie kunnen we altijd toepassen als er een (asymptotisch) verband is tussen de fout en een diskretisatie-parameter (b.v. de lengte van het integratie-interval). Een ander voorbeeld is het volgende: Uit de Taylorontwikkeling van f (x ± h) van een voldoend gladde functie f vinden we voor de centrale differentie als benadering van de eerste afgeleide de formule 1 1 f (x + h) − f (x − h) = f ′ (x) + h2 f (3) (x) + Dh f := 2h 3 12h Z h f (5) (t) (x − t)4 dt , −h zodat f ′ (x) = Dh f + C h2 + O(h4 ) . (3.19) Van dit verband tussen de afbreekfout en de stapgrootte h kunnen we gebruik maken on de schatting van de afgeleide te verbeteren in het volgende getallenvoorbeeld. Voor de functiewaarden van log(x) in de buurt van x = 2 hebben we de volgende waarden, korrekt afgerond tot 5 decimalen (en dus met een afrondfout kleiner dan .000005): x 1.8 1.9 2.0 2.1 2.2 f(x) .58779 .64185 .69315 .74194 .78846 Voor de afgeleide f ′ (2) vinden we met centrale differenties de benaderingen (met tussen haakjes de uiterste grenzen voor de afrondfouten in de berekende waarden) D0.1 f|x=2 = .50045 (±.00005), D0.2 f|x=2 = .501675 (±.000025). De geschatte afbreekfout in D0.1 f|x=2 is dus 1 (D0.1 f|x=2 − D0.2 f|x=2 ) = −.00040633 (±.000025) 3 en als we D0.1 f|x=2 hiermee verbeteren vinden we f ′ (2) ≈ .50004 (±.000075) . Opgave 3.4: Ga na, dat de grenzen voor de afrondfouten in bovenstaande formules kloppen. Opgave 3.5: Stel dat we in bovenstaand voorbeeld ook f (2.3) en f (1.7) kennen, dan zouden we f ′ (2) ook op basis van D0.1 en D0.3 kunnen benaderen. Laat zien, dat de formule hiervoor is: f ′ (2) = Dh f + 1 (Dh f − D3h f ) + O(h4). 8 32 3 NUMERIEKE INTEGRATIE Aangezien we (3.19) voor voldoend gladde f verder kunnen ontwikkelen, f ′ (x) = Dh f + C1 h2 + C2 h4 + O(h6 ) , kunnen we uit beide schattingen voor f ′ (2) de h4 -term elimineren. Leid de formule hiervoor af. Overigens merken we op, dat de nauwkeurigheid van de boven gegeven waarden van ln(x) geen hogere orde extrapolatie rechtvaardigen. 3.d Romberg integratie Systematisch gebruik van extrapolatie bij numerieke integratie kan leiden tot een efficiënt integratieschema van hoge orde voor een grote klasse van functies. We zullen dat laten zien aan de hand van het integratieschema van Romberg. Dit gaat uit van de asymptotische-reeksontwikkeling van de samengestelde trapeziumregel. Als we het integratie-interval [a, b] verdelen in n deelintervallen van lengte h := (b − a)/n en op ieder deelinterval de trapeziumregel (3.3) toepassen, dan vinden we de samengestelde trapeziumregel Th := n−1 X h f (a + jh) . (f (a) + f (b)) + h 2 j=1 (3.20) Als f ∈ C 2k+1 ([a , b]), dan heeft Th een (asymptotische) reeksontwikkeling in even machten van h, Th = I + c1 h2 + c2 h4 + · · · + ck h2k + O(h2k+1 ) , I := Z b f (x) dx , (3.21) a waarin c1 , · · · , ck constanten zijn, die alleen afhangen van f (maar niet van h). Het bewijs hiervan zullen we geven in §3h over de sommatieformule van Euler-McLaurin. Op grond van het bestaan van deze reeks (waarvan we de coëfficiënten i.h.a. niet kennen) kunnen we herhaald extrapoleren en zo successievelijk de termen van orde h2 , h4 , etc. in de afbreekfout van de samengestelde trapeziumregel elimineren. T2h Th = = aftrekken geeft T2h − Th = I I + + 4c1 h2 c1 h2 + + 16c2 h4 c2 h4 + + 64c3 h6 c3 h6 + + ··· ··· 3c1 h2 + 15c2 h4 + 63c3 h6 + ··· Eliminatie (h2 -extrapolatie) van de term van orde h2 geeft dus Th1 := Th + 1 (Th − T2h ) = I − 4c2 h4 − 20c3 h6 + · · · = I + c12 h4 + c13 h6 + · · · 3 De afbreekfout in Th1 is weer een asymptotische reeks in machten van h2 beginnend met een term 1 en T 1 , van orde h4 . Deze term kunnen we op analoge wijze elimineren (h4 -extrapolatie) uit T2h h 1 T2h − Th1 = 15c12 h4 + 63c13 h6 + · · · , zodat Th2 := Th1 + 1 16 6 1 (Th1 − T2h ) = I − h + · · · = I + c23 h6 + c24 h8 + · · · 15 5 In het algemeen kunnen we zo de dominante term van orde h2k elimineren met Thk := Thk−1 + 4k 1 k−1 (T k−1 − T2h ). −1 h (3.22) 33 3 NUMERIEKE INTEGRATIE Door extrapolaties te berekenen van steeds hogere orde kunnen we het volgende driehoekige tableau van benaderingen opbouwen, T4h T2h 1 T2h Th Th1 Th2 Th/2 1 Th/2 2 Th/2 3 Th/2 ··· ··· ··· ··· (3.23) ··· De afbreekfout in de k-de kolom is van orde h2k , mits de geı̈ntegreerde functie voldoend glad is. In de praktijk kunnen we de elementen van dit tableau rij voor rij met weinig moeite berekenen uit het resutaat van de samengestelde trapeziumregel voor de stapgrootten h, h/2, h/4, · · · . Als we Th berekend hebben, kunnen we ons bij de berekening van Th/2 werk besparen door op te merken, dat Th/2 berekend kan worden uit Th en de waarden van f op ”nieuwe” steunpunten: Th/2 = = = h 1 2 f (a) + 2 h1 f (a) + 2 2 1 2 Th 1 2 1 2 f (b) + f (b) + 2n−1 X j=1 n−1 X f (a + jh/2) f (a + jh) + j=1 X h n−1 f (a + jh − h/2) . + 2 j=1 n X j=1 f (a + jh − h/2) De steunpunten van Th zijn ook steunpunten van Th/2 . In deze steunpunten behoeven we f niet opnieuw te evalueren (noch de functiewaarden in het geheugen te bewaren) voor de berekening van Th/2 . Door deze eigenschap is een extrapolatieschema gebaseerd op intervalhalvering voor de trapeziumregel zeer aantrekkelijk. Andere strategieën voor de keuze van de stapgrootte worden ook wel gebruikt, b.v. de rij h, h/2, h/3, h/4, h/6, h/8, h/12, h/16, · · · . Bij het rekenen op een rekenmachine in de gebruikelijke “floating point arithmetiek” wordt de “diepte” van de extrapolatie natuurlijk beperkt door (afrond- en afbreek)fouten bij de evaluatie van de te integreren functie en door afrondfouten in de berekende trapeziumsommen. Als de correctie k−1 Thk−1 − T2h kleiner wordt, dan de afrondfout in Thk−1 , dan heeft verder extrapoleren natuurlijk weinig zin, daar formule (3.22) dan haar praktische geldigheid heeft verloren. In het tableau (3.23) kunnen we dit i.h.a. goed zien aan het feit, dat de geschatte fout in de k-de kolom vanaf zekere k niet meer met een factor 22k afneemt. Tenslotte merken we op, dat we de extrapolaties in (3.23) beter met behulp van formule (3.22) kunnen berekenen dan met de (equivalente) formule Thk = k−1 4k Thk−1 − T2h , 4k − 1 omdat (3.22) i.h.a. een kleinere afrondfout induceert in Thk . 3.e Voorbeeld van het Rombergschema Een voorbeeld van de effectiviteit van het schema van Romberg voor het benaderen van de integraal van een (gladde) functie vinden we bij de berekening van een benadering van de integraal voor π, Z 0 1 4 dx = π , 1 + x2 met Rombergintegratie. In de eerste tabel zijn de benaderingen afgedrukt, verkregen met de trapeziumregel op 2k deelintervallen, en achtereenvolgens de h2 -, h4 -, h6 -, h8 - en h10 -extrapolaties hiervan. 34 3 NUMERIEKE INTEGRATIE k 1 2 3 4 5 6 7 t[0, k] 3.000000000000000 3.100000000000009 3.131176470588244 3.138988494491102 3.140941612041402 3.141429893174987 3.141551963485654 t[1, k] t[2, k] t[3, k] t[4, k] t[5, k] 3.133333333333340 3.141568627450994 3.141592502458721 3.141592651224840 3.141592653552848 3.141592653589214 3.142117647058839 3.141594094125907 3.141592661142582 3.141592653708045 3.141592653591644 3.141585783761897 3.141592638396816 3.141592653590038 3.141592653589797 3.141592665277742 3.141592653649624 3.141592653589797 3.141592653638256 3.141592653589740 In de tweede tabel zijn de verschillen afgedrukt tussen de bovenstaande berekende waarden en de exakte waarde π en de 2 log ervan. Het is duidelijk, dat de fouten in de eerste kolom met een faktor 4 afnemen bij verdubbeling van de stapgrootte h. Dit bevestigt het feit, dat de overwegende term in de fout gelijk is aan een constante maal h2 . In de tweede kolom verwachten we een afname van de fout met een faktor 16 (van de 2 log vermindert dan met 4), maar we vinden een afname met 26 , hetgeen erop wijst, dat de coëfficiënt van h4 in de asymptotische reeks voor de fout nul is. Inderdaad geldt f ′′′ (1) − f ′′′ (0) = 0 voor f (x) = 4/(1 + x2 ). Desalniettemin wordt in het (standaard) Romberg schema toch h4 -extrapolatie toegepast, met als resultaat, dat de fout niet daalt. De h6 -afhankelijkheid blijft echter wel bestaan, zodat de h6 -extrapolatie in de volgende kolom de fout inderdaad verder reduceert. In de vierde kolom zien we een h8 -afhankelijkheid en in de vijfde een (vage) h10 -afhankelijkheid. Extrapolatie van nog hogere orde heeft weinig zin, daar de verschillen in grootte vergelijkbaar zijn geworden met de afrondfouten. j k 1 2 3 4 5 6 7 0 fout -1.42e-001 -4.16e-002 -1.04e-002 -2.60e-003 -6.51e-004 -1.63e-004 -4.07e-005 1 2 3 4 5 2 log fout 2 log fout 2 log fout 2 log fout 2 log -2.8 -4.6 -6.6 -8.6 -10.6 -12.6 -14.6 -8.26e-003 -2.40e-005 -1.51e-007 -2.36e-009 -3.69e-011 -5.83e-013 -6.9 -15.3 -22.7 -28.7 -34.7 -40.6 5.25e-004 1.44e-006 7.55e-009 1.18e-010 1.85e-012 -10.9 -19.4 -27.0 -33.0 -39.0 -6.87e-006 -1.52e-008 2.42e-013 0.00e+000 -17.2 -26.0 -41.9 -332.2 1.17e-008 -26.4 5.98e-011 -34.0 0.00e+000 -332.2 fout 2 log 4.85e-011 -34.3 -5.68e-014 -44.0 In de praktijk beschikken we niet over de exakte waarde, maar we kunnen wel de fout schatten met de formule (t[j, i] − t[j, i − 1])/(4j+1 − 1). In de derde tabel worden deze schatting en de 2 log ervan afgedrukt. In deze tabel vertoont de afname van de fout hetzelfde patroon als in de vorige. j i 2 3 4 5 6 7 0 schatting 3.33e-002 1.04e-002 2.60e-003 6.51e-004 1.63e-004 4.07e-005 2 log 1 schatting 2 log 2 schatting 2 log 3 schatting -4.9 -6.6 -8.6 -10.6 -12.6 -14.6 5.49e-004 1.59e-006 9.92e-009 1.55e-010 2.42e-012 -10.8 -19.3 -26.6 -32.6 -38.6 -8.31e-006 -2.27e-008 -1.18e-010 -1.85e-012 -16.9 -25.4 -33.0 -39.0 2.69e-008 -25.1 5.96e-011 -34.0 -9.47e-016 -49.9 2 log 4 schatting 2 log -1.14e-011 -36.4 -5.85e-014 -44.0 5 schatting 2 log -1.18e-014 -46.3 In de vierde tabel worden het resultaat van de trapeziumregel op n deelintervallen, de fout en de 2 log van de fout nog eens bijeen gezet. n 1 2 4 8 16 32 64 trap-regel 3.000000000000000 3.100000000000009 3.131176470588244 3.138988494491102 3.140941612041402 3.141429893174987 3.141551963485654 fout -1.42e-001 -4.16e-002 -1.04e-002 -2.60e-003 -6.51e-004 -1.63e-004 -4.07e-005 2 log -2.8 -4.6 -6.6 -8.6 -10.6 -12.6 -14.6 In de vijfde tabel worden het resultaat van de trapeziumregel op n deelintervallen, de h-kwadraat extrapolatie ervan, de fout in deze extrapolatie en de 2 log van deze fout nog eens bijeen gezet. Zoals reeds opgemerkt, is deze fout toevallig van orde h6 . 35 3 NUMERIEKE INTEGRATIE n 1 2 4 8 16 32 64 3.f trap-regel 3.000000000000000 3.100000000000009 3.131176470588244 3.138988494491102 3.140941612041402 3.141429893174987 3.141551963485654 extrapolatie fout 2 log 3.133333333333340 3.141568627450994 3.141592502458721 3.141592651224840 3.141592653552848 3.141592653589214 -8.26e-003 -2.40e-005 -1.51e-007 -2.36e-009 -3.69e-011 -5.83e-013 -6.9 -15.3 -22.7 -28.7 -34.7 -40.6 Integratie met veranderlijke stapgrootte 1 Stel, dat we op het interval [0, 1] de integraal willen bepalen van de functie sin ( .01+x ) met een afbreekfout van ten hoogste ε := 10−6 . Als we hiervoor de samengestelde middelpuntsregel willen gebruiken met stapgrootte h (op n = 1/h deelintervallen), dan moeten we volgens (3.14) in ieder deelinterval eisen: n h3 X | f ′′ (ξj ) | ≤ 10−6 , ξj ∈ (jh − h, jh). 24 j=1 Aan deze voorwaarde is zeker voldaan, als h2 24 max 0 ≤ x ≤ 1 Met f ′′ (x) = − 2(.01 + x)−3 cos | f ′′ (x) | ≤ 10−6 . 1 1 − (.01 + x)−4 sin .01 + x .01 + x betekent dit k f ′′ k∞, [0, 1] ≤ 1.0210 8 , en dus h ≤ 510 − 7 . Met zo’n equidistant integratieschema zouden we dus twee millioen deelintervallen moeten ge1 ) ! Op het deelinterval [ 21 , 1] is de afbreekfout echter bruiken en evenveel evaluaties van sin ( .01+x veel kleiner en kunnen we volstaan met een veel grotere deelintervallengte h. Omdat k f ′′ k 1 ∞, [ 2 , 1] ≤ 32 , vinden we, dat h := .001 voldoend klein is om een fout van 510 − 7 (de helft van de toegestane fout over het gehele interval) te garanderen. Evenzo is op [ 41 , 21 ] een stapgrootte h := .0001 voldoende om een fout van 2.510 − 7 over dat deelinterval te garanderen. Opgave 3.6: Bepaal de stapgrootte h, waarmee de integraal, 02 | cos x | dx berekend moet worden om een afbreekfout van ten hoogste 10 − 8 te garanderen, als we een samengestelde tweepunts Gauss-formule gebruiken op equidistante deelintervallen. Aanwijzing: neem de foutschatting voor het deelinterval dat π/2 bevat apart. Beantwoord dezelfde vraag voor het geval dat het interval eerst wordt opgebroken in de stukken [0, π/2] en [π/2, 2]. R In feite is het gebruik van een uniforme stapgrootte dus geen slimme strategie voor integralen met een sterk wisselende gladheid. Veel beter lijkt het om de stapgrootte aan te passen aan de plaatselijke gladheid van de integrand: verdeel het integratie-interval in stukken van lengte hi die zo gekozen worden, dat de fout op het i-de deelinterval kleiner dan εhi is; de totale fout is dan hoogstens gelijk aan ε maal de intervallengte. In de praktijk willen we natuurlijk niet, dat we voor iedere integrand opnieuw een opdeling van het integratie-interval moeten opgeven. Een automatische strategie voor de keuze van de stapgrootte kunnen we baseren op het idee, dat we de afbreekfout kunnen schatten door twee verschillende integratieformules te gebruiken (of twee verschillende stapgrootten), zoals we reeds zagen in 3c. Als we dan een integraal over het interval [a, b] moeten benaderen met tolerantie van ten hoogste ε(b − a), dan kunnen we op een deelinterval [y, y + h] een fout toestaan van ten hoogste εh. Als de geschatte fout inderdaad kleiner dan εh is 36 3 NUMERIEKE INTEGRATIE op dat interval, dan accepteren we de gevonden benadering, tellen deze op bij het reeds berekende stuk en gaan verder met het volgende deelinterval. Als de gevraagde tolerantie niet gehaald wordt, verdelen we het interval in stukken, b.v. in [y, y + h/2] en [y + h/2, y + h], en passen de procedure toe op ieder van de stukken. Een voorbeeld van zo’n formulepaar zou trapezium- en middelpuntsregel kunnen zijn. Hiervan weten we immers, cf. (3.2-3), Z y+h f (x) dx = h f (y + h/2) + y h3 ′′ h h3 ′′ f (ξ) = (f (y) + f (y + h)) − f (η) , 24 2 12 zodat h6 (f (y) − 2f (y + h/2) + f (y + h)) een goede schatting is van de afbreekfout in de middelpuntsregel als benadering van de integraal over dit interval. We accepteren h f (y + h/2) dus als voldoend goede benadering voor de integraal over dit interval als deze (lokale) foutschatting kleiner is dan de (lokale) tolerantie εh en tellen dit op by het reeds berekende stuk van de integraal. Als de lokale fouttolerantie niet gehaald wordt, delen we het interval in de stukken [y, y + h/2] en [y + h/2, y + h] en passen we de formules toe op beide deelintervallen apart. Merk op dat we in een goede implementatie van deze methode bij intervalhalvering de functie alleen opnieuw hoeven te evalueren in de nieuwe middelpunten, omdat het oude midden, waar we de functie reeds kenden, randpunt van de beide deelintervallen geworden is. Overigens let niets ons om i.p.v. het resultaat van de middelpuntsregel, h f (y + h/2), het (nauwkeuriger) resultaat van Simpson’s regel, h 6 (f (y) + 4f (y +h/2) + f (y +h)), toe te voegen aan het reeds berekende stuk van de integraal, als de lokale fouttolerantie gehaald wordt (de benodigde functiewaarden hebben we toch al berekend). De implementatie van een dergelijke adaptieve integratiemethode is niet geheel triviaal. In de eerste plaats willen we het aantal functieëvaluaties minimaliseren. Dus moeten we een formule (of formulepaar) kiezen, waarvan de steunpunten zo geplaatst zijn, dat ze bij verfijning steunpunt blijven en de reeds berekende functiewaarde opnieuw gebruikt kunnen worden. Een adaptieve routine kan slechts aan één deelinterval tegelijk werken. Als de routine dus besluit een interval op te delen in stukken, dan moet de informatie betreffende de rest opgeborgen kunnen worden op een stapel. Ook moeten er grenzen worden ingebouwd, zodat er niet tot in het oneindige verfijnd wordt, als de lokale fouttest telkens negatief blijkt uit te vallen. De keuze voor een integratieroutine met zelfzoekende stapgroote of een samengestelde formule met vaste stapgrootte zal afhangen van de integrand, maar ook van het doel waarvoor geı̈ntegreerd wordt. Als er één integraal berekend moet worden, dan ligt een adaptieve methode voor de hand, waarbij alleen maar de maximaal toelaatbare fout behoeft te worden gespecificeerd. Als de integrand echter nog van andere parameters afhangt en als deze integraal voor een groot aantal waarden van deze parameters berekend moet worden, dan zou integratie met vaste stapgroote wel eens de voorkeur kunnen verdienen, omdat de afbreekfout dan een veel gladdere functie is van deze parameters. Bij een adaptieve methode immers kan de beslissing verfijnen of niet door een kleine parameterwijziging net anders uitvallen, hetgeen een sprong (discontinuı̈teit) veroorzaakt in de afbreekfout. Opgave 3.6: Schrijf een procedure voor de integratie van een gegeven functie op een gegeven interval met een voorgeschreven (geschatte) tolerantie met behulp van een adaptieve methode, gebaseerd op intervalhalvering en de regel van Simpson. (Schrijf eerst een recursieve versie; daarvoor is geen (expliciete) stapel nodig, omdat deze reeds aanwezig is in het recursiemechanisme.) 3.g Numerieke stabiliteit Als we een functie f in ieder punt x van het integratie-interval kunnen berekenen met een absolute fout δf (x), waarvoor geldt | δf (x) | ≤ d ∀ x ∈ [a, b] , (3.24) 37 3 NUMERIEKE INTEGRATIE dan vinden we voor de integraal over dat interval een (onvermijdelijke) absolute fout δI waarvoor we de volgende bovengrens vinden, | δI | = | Z b (f (x) + δf (x)) dx − a Z b f (x) dx | = | a Z b δf (x) dx | ≤ d | b − a | . (3.25) a Als we de integraal benaderen met een integratieformule (eventueel een samengestelde formule) met positieve gewichten, die exact is voor constanten, Z b a f (x) dx = n X wi f (ti ) + rest met wi > 0 ∀ i en n X wi = b − a , i=1 i=1 dan geldt voor het verschil tussen berekende en exacte waarde (afgezien van afrondfouten bij het sommeren) | n X wi δf (ti ) | ≤ d | b − a | . (3.26) i=1 Deze fout is van gelijke orde als de onvermijdelijke fout (3.25). Integratie met een formule met positieve gewichten is dus een numeriek stabiel proces. Opgave 3.7: In het integratieschema van Romberg bouwen we in feite een serie integratieformules Th , Th1 , Th2 , · · · van steeds hogere orde op de steunpunten {a + jh | j = 0, 1, · · · , n} met h := (b − a)/n. Laat zien dat Th1 overeenkomt met de samengestelde Simpsonregel en dus positieve gewichten heeft. Laat vervolgens zien dat alle extrapolaties in dit schema formules zijn met positieve gewichten: Thj = n X wij f (ti ) met wij > 0 , i=1 voor alle i en j . (Gebruik volledige induktie naar j.) We zien hieruit dat het Romberg schema numeriek stabiel is. 3.h De sommatieformule van Euler-McLaurin en de trapeziumregel De Bernoulli-polynomen Bi (i = 0, 1, · · · ) worden gedefinieerd door B0 = 1 , (3.27a) Bk′ = k Bk−1 , Z 0 k ≥ 1, (3.27b) k ≥ 1. (3.27c) 1 Bk (x) dx = 0 , Ze voldoen aan de volgende eigenschappen: Bk (1) − Bk (0) = Z 0 1 k Bk−1 (x) dx = 0 , Bk ( 21 − x) = (−1)k Bk ( 12 + x) , B2k+1 (1) = 0 = B2k+1 (0) , k ≥ 2, k ≥ 0, k ≥ 1. (3.28a) (3.28b) (3.28c) Deze laatste eigenschap (3.28c) kan natuurlijk niet gelden voor B1 , omdat dit polynoom van graad 1 dan minstens twee nulpunten zou hebben. Voor even k zijn de Bk in 0 en 1 gelijk en niet nul. Deze getallen worden gedefinieerd als de Bernoulli-getallen Bk , Bk := (−1)k+1 B2k (0) , k = 1, 2, · · · . (3.29) 38 3 NUMERIEKE INTEGRATIE Een bewijs voor (3.28a) vinden we door (3.27b) te integreren en (3.27c) toe te passen. We bewijzen de eigenschappen (3.28b-c) met volledige induktie naar de graad van Bk . Uit de definitie volgt onmiddellijk B1 (x) = x − 12 , (3.30) hetgeen voldoet aan (3.28b) (induktiebasis). Stel nu, dat (3.28b) waar is voor B2k−1 (induktiehypothese), dan kunnen we dit polynoom integreren, B2k (x) = Z x 2k B2k−1 (x) dx + c2k , 1 2 met een (vooralsnog) onbekende integratieconstante c2k . Omdat B2k−1 antisymmetrisch is t.o.v. het punt x = 12 , is B2k symmetrisch is t.o.v. dit punt ongeacht de waarde van c2k . Voor B2k+1 geldt dan B2k+1 (x) = Z x 1 2 (2k + 1) B2k (t) dt + c2k+1 = Z x Z 1 2 t 1 2 2k (2k + 1) B2k−1 (s) ds dt + c2k (x − 21 ) + c2k+1 Als we vervolgens eis (3.27c) toepassen en deze expressie integreren over het interval [0, 1], vinden we dat de integraal van de eerste twee termen nul is omdat de integranden antisymmetrisch zijn t.o.v. het punt x = 12 . De integratieconstante c2k+1 moet dus nul zijn om de integraal over het geheel nul te maken. Dit bewijst (3.28b) voor B2k en B2k+1 . Tenslotte is (3.28c) een gevolg van de antisymmetrie van B2k+1 en de gelijkheid van de functiewaarden in x = 0 en x = 1. Hiermee is (3.28) bewezen. Met behulp van de polynomen en de getallen van Bernoulli kunnen we nu een asymptotische ontwikkeling geven voor de afbreekfout in de samengestelde trapeziumregel: Stelling (Sommatieformule van Euler-McLaurin). Zij f ∈ C 2m+1 ([a, b]) en h := (b − a)/n met m en n geheel, dan is er een ξ ∈ [a, b] zodat Z n−1 X h f (a + jh) (f (a) + f (b)) + h 2 j=1 b f (x) dx = a + m X (−1)j j−1 (2j)! 2j Bj h (f (2j−1) (b) − f (3.31) (2j−1) (a)) + O(h 2m+1 f (2m+1) (ξ)). R Bewijs.Bekijk de integraal f dx op een deelinterval van lengte h, zeg op [0, h], en integreer partieel met gebruik van (3.27): Z h f (x) dx = 0 Z 0 = h x B0 ( ) f (x) dx = h h (f (0) + f (h)) − 2 " · x h B1 ( ) f (x) h h2 x B2 ( ) f ′ (x) 2 h ¸h #h0 − Z h 0 + 0 Z 0 h x h B1 ( ) f ′ (x) dx h h2 x B2 ( ) f ′′ (x) dx . 2 h Als we doorgaan met het partiëel integreren van de integraal vinden we als algemene formule: h2k (2k)! Z 0 h x B2k ( ) f (2k) (x) dx h = h2k+1 (2k + 1)! − · h2k+1 (2k + 1)! x B2k+1 ( ) f (2k) (x) h Z h 0 ¸h 0 x B2k+1 ( ) f (2k+1) (x) dx , h waarin de stokterm nul is wegens (3.28c). Nogmaals partiëel integreren geeft = − h2k+2 (2k + 2)! · x B2k+2 ( ) f (2k+1) (x) h ¸h 0 + h2k+2 (2k + 2)! Z 0 h x B2k+2 ( ) f (2k+2) (x) dx h 39 3 NUMERIEKE INTEGRATIE en door invullen van het Bernoulligetal wordt dit = − Bk+1 h2k+2 (2k+1) h2k+2 (f (h) − f (2k+1) (0)) + (2k + 2)! (2k + 2)! Z 0 h x B2k+2 ( ) f (2k+2) (x) dx . h In het totaal vinden we dus de asymptotische reeks Z 0 h f (x) dx = m X Bk h2k (2k+1) h (−1)k (f (0) + f (h)) + (f (h) − f (2k+1) (0)) 2 (2k)! Z h k=1 h2m+1 x + B2m+1 ( ) f (2m+1) (x)dx . (2m + 1)! 0 h Als we deze expressie uitschrijven voor ieder deelinterval (a + jh , a + jh + h), dan zien we dat alle afgeleiden op de interne deelpunten tegen elkaar wegvallen, zodat de gevraagde formule (3.31) overblijft. Opmerking: Formule (3.31) maakt de samengestelde trapeziumregel bijzonder aantrekkelijk voor periodieke functies, immers de afbreekfout gaat dan harder naar nul dan iedere macht van h. Deze eigenschap hebben we in feite al gebruikt bij de discretisatie van de Fouriertransformatie, zie (2.4). REFERENCES 112 References [1] M. Hestenes & E. Stiefel, Methods of conjugate gradients for solving linear systems, J. Research NBS, 49, pp. 409 – 436, 1952. [2] C. Lanczos, An iteration method for the solution of the eigenvalue problem of linear differential and integral operators, J. Research NBS, 45, pp. 255 – 282, 1950. [3] J.K. Reid, On the method of conjugate gradients for the solution of large sparse systems of linear equations, Proc. Conf. on Large Sparse Sets of Linear Equations, Academic Press, New York, 1971. [4] J.A. Meijerink and H.A. van der Vorst, An iterative solution method for linear systems of which the coefficient matrix is a symmetric M-matrix, Math.of Comp., 31, pp. 148 – 162, 1977. [5] G.H. Golub & C.F. Van Loan, Matrix Computations, The Johns Hopkins University Press, Baltimore, Maryland, USA, 1ste druk, 1983, 2de druk, 1988, 3de druk, 1995. [6] R. Bulirsch & J. Stoer, Introduction to Numerical Analysis, Springer Verlag, Berlin, 1977. (Ook verkrijgbaar in een goedkope duitstalige pocketeditie). [7] D. Kincaid & W. Cheney, Numerical Analysis, Brooks & Cole Publishing Company, Pacific Grove, California, USA, 1991; 2de druk, 1996.