INTEGRAZIONE NUMERICA Francesca Pelosi Dipartimento di Matematica, Università di Roma “Tor Vergata” CALCOLO NUMERICO a.a. 2008–2009 http://www.mat.uniroma2.it/∼pelosi/ INTEGRAZIONE NUMERICA – p.1/20 INTEGRAZIONE NUMERICA Data una f integrabile su [a, b] consideriamo I[f ] := Z b f (x)dx a In alcuni casi non si conosce la primitiva Anche quando si conosce la primitiva questa può essere troppo complicata (mentre f può essere più semplice) ES: R 1 dt 1+t2 = arctan(x) La funzione da integrare può essere data non in forma analitica, ma per punti ⇒ Si cercano metodi numerici in grado di fornire una approssimazione di un integrale in termini di un numero finito di valori della funzione integranda ⇒ FORMULE DI QUADRATURA INTEGRAZIONE NUMERICA – p.2/20 INTEGRAZIONE NUMERICA Supponiamo di conoscere (o di poter valutare) la funzione integranda f (x) in punti distinti {x0 , x1 , . . . , xn } (scelti o prefissati) in [a, b] Costruiamo formule del tipo In+1 [f ] ' Z b f (x)dx, In+1 [f ] := a n X wi f (xi ) i=0 xi , i = 0, 1, . . . , n: nodi della formula di quadratura wi , i = 0, 1, . . . , n: pesi della formula di quadratura Si definisce l’errore di quadratura associato alla formula su n + 1 punti: En+1 [f ] = I[f ] − In+1 [f ]. INTEGRAZIONE NUMERICA – p.3/20 INTEGRAZIONE NUMERICA ⇒ IDEA IMMEDIATA: Approssimare f (x) con il polinomio di grado n interpolante la funzione nei nodi {xi , i = 0, 1, . . . , n} (unico se i nodi sono distinti): Z ⇒ b f (x)dx = a Z b (Ln (x) + en (x))dx = a Z b Ln (x)dx + a Z b en (x)dx a dove Ln (x) è il polinomio inerpolante i punti (x0 , f (x0 )), . . . , (xn , f (xn )), ⇒ Formule interpolatorie Se rappresentiamo Ln (x) nella forma di Lagrange Qn n j=0 (x − xj ) X (n) (n) j6=i Ln (x; f ) = f (xi )`i (x), con `i (x) = Qn , (x − x ) i j j=0 i=0 i = 0, 1, . . . , n j6=i Z b f (x)dx = a = Z b Ln (x)dx+ a n X i=0 Z b en (x)dx = a f (xi ) Z b a (n) `i (x)dx + Z Z n bX a i=0 (n) f (xi )`i (x)dx+ Z b en (x)dx a b en (x)dx a INTEGRAZIONE NUMERICA – p.4/20 FORMULE INTERPOLATORIE Da cui si ottiene un approssimazione dell’integrale con la formula di quadratura: Z b Z b Z b n n X X (n) f (x)dx ' Ln (x)dx = f (xi ) `i (x)dx = wi f (xi ) a a i=0 a i=0 ESEMPIO: Consideriamo i punti (a, f (a)) e (b, f (b)) e sostituiamo alla funzione il polinomio di grado 1 (la retta) che passa per i punti dati w0 = Z w1 = b a Z (1) `0 (x)dx b a = (1) `1 (x)dx Z = b x−b 1 (x − b) dx = a−b 2 a−b a Z b a # 2 b a x−a 1 (x − a) dx = b−a 2 b−a 1 (a − b) 2 b−a =− = 2 a−b 2 # 2 b a 1 (b − a) 2 b−a = = 2 b−a 2 Da cui si ottiene la Regola dei Trapezi Z b f (x)dx ' I2 [f ] = a b−a [f (a) + f (b)] 2 INTEGRAZIONE NUMERICA – p.5/20 FORMULE INTERPOLATORIE ESEMPIO: Consideriamo i punti (−h, f (−h)), (0, f (0)) e (h, f (h)) e sostituiamo alla funzione il polinomio di grado 2 che passa per i punti dati w0 = w1 = Z Z h h (2) `0 (x)dx −h (2) `1 (x)dx −h w2 = Z = h (2) = Z h −h `2 (x)dx = −h Z Z h −h x(x − h) 1 dx = 2h2 2h2 1 3 1 x − x2 h 3 2 (x + h)(x − h) 1 dx = −h2 h2 h 1 3 1 x + x2 h 3 2 −h x(x + h) 1 dx = 2h2 2h2 Da cui si ottieneZla Regola di Simpson h f (x)dx ' I3 [f ] = −h h = −h 1 − x3 + h 2 x 3 h h 3 = −h h −h = 4 h 3 h 3 h [f (−h) + 4f (0) + f (h)] 3 e su un generico intervallo [a, b]: Z b a a+b b−a f (x)dx ' I3 [f ] = f (a) + 4f + f (b) 6 2 INTEGRAZIONE NUMERICA – p.6/20 FORMULE INTERPOLATORIE TRAPEZI SIMPSON f(a) f(b) a b a (a+b)/2 b INTEGRAZIONE NUMERICA – p.7/20 Grado di precisione La precisione di una formula di quadratura è legata alla bontà con cui I n+1 [f ] R approssima I[f ] = ab f (x)dx, pertanto in generale è dipendente dalla funzione integranda. Si esamina per quale classe di funzioni è esatta (cioè I n+1 [f ] = I[f ]) DEFINIZIONE: Una formula di quadratura ha grado di precisione k se è esatta quando la funzione integranda è un polinomio di grado k , ed esiste almeno un polinomio di grado k + 1 per cui l’errore risulti non nullo (Tale definizione è giustificata dal teorema di Weierstrass. ) Vale il teorema seguente TEOREMA: Le formule di quadratura interpolatorie costruite su n + 1 nodi, hanno grado di precisione almeno n. Deriva dall’espressione dell’errore di interpolazione en (x) = f (x) − Ln (x) = ωn+1 (x)f [x0 , x1 , . . . , xn , x], tenendo presente che f [x0 , x1 , . . . , xn , x] = 0 per f ∈ IPn . INTEGRAZIONE NUMERICA – p.8/20 Grado di precisione ES: La formula di Simpson ha grado di precisione 3: la formula è esatta per f (x) = x0 : Rh 0 h 0 x dx = x] −h = 2h ⇔ I3 [x ] = −h h [1 3 h [f (−h) 3 + 4f (0) + f (h)] = + 4 + 1] = 2h f (x) = x1 Rh 1 −h x dx = f (x) = x2 Rh 2 −h x dx = h [(−h)2 3 + = 0 ⇔ I3 [x] = x3 h = 23 h3 3 −h h2 ] = 23 h3 f (x) = x3 Rh 3 −h x dx = h [−h3 3 x2 h 2 −h x4 h 4 −h h [f (−h)+4f (0)+f (h)] 3 ⇔ I3 [x2 ] = = 0 ⇔ I3 [x3 ] = h [f (−h) 3 h [f (−h) 3 = h [−h+h] 3 =0 + 4f (0) + f (h)] = + 4f (0) + f (h)] = + h3 ] = 0 mentre non è esatta per f (x) = xr con r ≥ 4 Rh 4 x5 h = 25 h5 < I3 [x4 ] = h [f (−h) + 4f (0) + f (h)] = −h x dx = 5 3 −h h [(−h)4 3 + h4 ] = 2 5 h 3 INTEGRAZIONE NUMERICA – p.9/20 Formule di quadratura su nodi equidistanti NEWTON-COTES (tipo chiuso) : , consideriamo i punti equispaziati: Dato [a, b] posto h = b−a n xi = a + ih, i = 0, . . . , n cerchiamo l’espressione dei pesi delle formula interpolatoria corrispondente: n X wi f (xi ) : i=0 wi = Z xn x0 (n) `i (x)dx = Z xn x0 Qn j=0 j6=i Qn j=0 j6=i (x − xj ) (xi − xj ) dx utilizziamo il cambiamento di variabili x = a + th da cui dx = hdt: wi = h Z n 0 Qn j=0 (a + th − (a + jh)) j6=i Qn j=0 j6=i (a + ih − (a + jh)) dt = h Z n 0 Qn j=0 j6=i Qn j=0 j6=i (t − j)h (i − j)h dt = hαi INTEGRAZIONE NUMERICA – p.10/20 Formule di quadratura su nodi equidistanti Quindi una formula di Newton-Cotes su [a, b] generico può essere scritta nella forma: n X b−a In+1 [f ] = h αi f (xi ), h = n i=0 dove gli αi sono pesi in [0, n]. Poichè gli αi non dipendono da h ma solo da n, sono stati tabulati su delle tabelle al variare di n (nelle tabelle si sfutta la simmetria centrale degli α i ovvero αi = αn−i ) n α0 1 1 2 1 3 3 8 14 45 95 288 2 3 4 5 α1 α2 α3 Errore 1 3 (2)(η) − 12 h f 4 3 9 8 64 45 375 288 1 5 (4)(η) − 90 h f 3 5 (4)(η) − 80 h f 24 45 250 288 8 − 945 h7 f (6)(η) 275 − 12096 h7 f (6)(η) INTEGRAZIONE NUMERICA – p.11/20 Errore Formule di quadratura Per formule di tipo interpolatorio: En+1 = Z b (f (x)−Ln (x))dx = a Z b en (x)dx = a Per formule di Newton-Cotes con h = En+1 = = Z n 0 Z b a n Y Z b a f (n+1) (ξ) (x−x0 ) · · · (x−xn )dx (n + 1)! b−a : n n f (n+1) (ξ) Y (x − (a + jh))dx (n + 1)! j=0 f (n+1) (ξ) hn+2 (t − j)h hdt = (n + 1)! (n + 1)! j=0 3 ES: per la formula dei trapezi: E2 = − h2! t(1 − t) ≥ 0in [0, 1]. R1 0 Z n 0 = x=a+th dx=hdt f (n+1) (ξ) n Y (t − j)dt j=0 f (2) (ξ)t(1 − t)dt dove INTEGRAZIONE NUMERICA – p.12/20 Errore Formule di quadratura Studiando meglio l’integrale si può ottenere il seguente (se la funzione non cambia segno si può applicare il teorema della media integrale) TEOREMA: Data una formula di quadratura di Newton-Cotes sui nodi x i = a + ih, con h= b−a , n i = 0, . . . , n, si ha per l’errore le seguenti espressioni per n pari e f ∈ C n+2 [a, b] : f (n+2) (η)hn+3 En+1 [f ] = (n + 2)! Z 0 n n Y t(t − j)dt j=0 per n dispari e f ∈ C n+1 [a, b] : f (n+1) (η)hn+2 En+1 [f ] = (n + 1)! Z 0 n n Y (t − j)dt j=0 dove η, η ∈ [a, b] = [x0 , xn ]. INTEGRAZIONE NUMERICA – p.13/20 Errore Formule di quadratura Le formule di quadratura con n pari (numero dispari di nodi) hanno grado di precisione n + 1 Es: la formula di Simpson n = 2 ha grado di precisione 3 in quanto l’errore coinvolge la derivata f (4) (η) che è nulla per f ∈ IP3 Le formule di quadratura con n dispari (numero pari di nodi) hanno grado di precisione n Es: la formula dei Trapezi n = 1 ha grado di precisione 1, in quanto l’errore coinvolge la derivata f (2) (η) che è nulla per f ∈ IP1 ⇒ È più conveniente usare formule con n pari. INTEGRAZIONE NUMERICA – p.14/20 Convergenza Dal teorema di Weierstrass discende anche il seguente TEOREMA: Sia {In+1 [f ]} una successione di formule di quadratura tali che I n+1 [f ] abbia grado di precisione almeno n, ed equilimitate (i.e. ∃C : kI n+1 k < C, ∀n). Allora si ha lim In+1 [f ] = I[f ] n→∞ DIM: Poichè la formula di quadratura ha grado di precisione almeno n si ha che In+1 [p] = I[p], ∀p ∈ IPn , ne segue En+1 [f ] = I[f ] − In+1 [f ] = I[f ] − I[p] + In+1 [p] − In+1 [f ] = I[f −p]−In+1 [f −p] ⇒ |En+1 [f ]| ≤ (kIk+kIn+1 k)kf −pk ≤ (kIk+C)kf −pk Per il Teorema di Weierstrass ∃p ∈ IPn convergente a f ⇒ En+1 [f ] → 0 TEOREMA: Data una famiglia di formule di quadratura interpolatorie I n+1 [f ] tali che ∃H : tale che Pn i=0 |wi | < H . Allora lim En+1 [f ] = 0 n→∞ P Per formule interpolatorie si ha n i=0 wi = b − a (essendo esatte su f (x) = 1 R P si ha b − a = ab dx = I[1] = n i=0 wi · 1) INTEGRAZIONE NUMERICA – p.15/20 Formule Composite (Newton-Cotes) Contrariamente a quanto potrebbe sembrare “a prima vista” non conviene usare formule di Newton-Cotes di grado di precisione via via crescente I pesi tendono a crescere in modulo e ad essere di segno alterno, dando luogo a rilevanti errori di arrotondamento (per es. errori di cancellazione) Per avere la convergenza e contemporaneamente w i ≥ 0 conviene considerare n basso e h piccolo, ossia suddividere [a, b] in N sottointervalli [zk , zk+1 ], k = 0, . . . , N e su ciascuno applicare una formula di quadratura con basso grado (di precisione) Z b f (x)dx = a N −1 Z z X k+1 k=0 zk f (x)dx ' N −1 X (k) In+1 [f ] k=0 (k) In+1 può essere ad esempio la formula di Newton-Cotes con n + 1 nodi in [zk , zk+1 ] INTEGRAZIONE NUMERICA – p.16/20 Formula Composita dei Trapezi [zk , zk+1 ] = [a + k b−a , a + (k + 1) b−a ] N N Z b f (x)dx ' a ⇒ ITN [f ] := N −1 X k=0 (zk+1 − zk ) (f (zk+1 − f (zk )) 2 " (b − a) f (a) + 2N N −1 X k=1 2f (zk ) + f (b) # INTEGRAZIONE NUMERICA – p.17/20 Formula Composita di Simpson [zk , zk+1 ] = [a + k b−a , a + (k + 1) b−a ] N N Z b f (x)dx ' a k=0 ⇒ ISN [f ] := a=z0 N −1 X z1 (zk+1 − zk ) 2 " (b − a) f (a) + 6N z2 4 1 f (zk ) + f 3 3 N −1 X 2f (zk ) + 4 k=1 zk+1 + zk 2 N −1 X k=0 z3 f 1 + f (zk+1 ) 3 zk+1 + zk 2 + f (b) # z4=b INTEGRAZIONE NUMERICA – p.18/20 Grado di precisione (Formule composite) Il grado di precisione delle formule composite è lo stesso delle corrispondenti formule di Newton-Cotes “semplici” Si può facilmente dimostrare che (b − a) |ETN [f ]| ≤ 12 b−a N 2 kf (2) k∞ (b − a) N |ES [f ]| ≤ 180 b−a 2N 4 kf (4) k∞ Per funzioni sufficientemente regolari si ha quindi N lim |En+1 [f ]| = 0 N →∞ INTEGRAZIONE NUMERICA – p.19/20 Implementazione In pratica è importante determinare un valore adeguato del numero di suddivisioni dell’intervallo che bisogna fare. Si parte da N piccolo e si aumenta iterativamente il numero di suddivisioni, stimando l’errore in modo automatico: N2 N1 |In+1 [f ] − In+1 [f ]| Di solito è conveniente considerare N 2 = 2N 1, per sfruttare le valutazioni di f N 1 [f ] fatte per costruire In+1 Le formule composite con suddivisione uniforme dell’intervallo di integrazione sono ormai superate, tranne in casi particolari (funzioni periodiche). Si usano formule di tipo adattivo: Quando la funzione integranda presenta delle irregolarità c’è la necessità di addensare nodi nelle vicinanze delle irregolarità L’intervallo viene suddiviso in sottointervalli di ampiezza diversa Si usano molti nodi solo dove necessario Per capire dove infittire la sequenza dei nodi si usano stime dell’errore. INTEGRAZIONE NUMERICA – p.20/20