Integrazione Numerica •Data una funzione f integrabile su [a,b] consideriamo b f (x) dx I[f ] a E consideriamo il problema di valutare numericamente tale integrale. sua approssimazione. Perché? Non sempre è possibile esprimere la primitiva della funzione integranda in termini di funzioni elementari In alcuni casi non si conosce la primitiva 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 1 Supponiamo di conoscere (o di poter valutare) la funzione integranda f(x) in punti {xi } (scelti o prefissati), distinti in [a,b] Costruiamo formule del tipo b n f (x) dx w f (x ) i i 0 a i {xi } = nodi della formula di quadratura {wi } = pesi della formula di quadratura Dato che l’operatore integrazione è un funzionale lineare, tale formula ne preserva, tra l’altro, questa proprieta’ En 1[f ] I[f ] In 1[f ] errore di quadratura • IDEA IMMEDIATA: • Approssimare f(x) con il polinomio interpolante la funzione nei nodi {xi } di grado n (unico perche’ i nodi sono distinti) b b a a b b f (x) dx [L (f ; x) e (f ; x)] dx L (f ; x) dx e (f ; x) dx n dove n n a n a Ln (f ; xi ) f (xi ) 2 Formule interpolatorie • Se rappresentiamo Ln (f ; x) nella forma di Lagrange Ln (f ; x) n l (x)f (x ) i 0 i i b b b a a i 0 n b n b f (x) dx l (x)f (x ) dx e (f ; x) dx f (x ) l (x) dx e (f ; x) dx i i n i 0 a i i n a a wi • En 1 Le formule costruite in questo modo si chiamano formule di quadratura interpolatorie • ESEMPIO Consideriamo i punti (a,f(a)) e (b,f(b)) e sostituiamo alla funzione la retta che passa per i punti dati b f (x) dx a xb l0 (x ) ab xa l1( x ) ba ba [f (b) f (a)] 2 Regola dei Trapezi b 1(a b)2 ba w0 l0 (x ) dx 2 ab 2 a b w1 l1(x) dx a ba 2 3 Grado di precisione • La precisione di una formula di quadratura è legata alla bontà con cui In 1[f ] approssima I[f ] , pertanto in generale è dipendente dalla funzione integranda. • Si esamina per quale classe di funzioni e’ esatta (cioè In 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 En 1[f ] 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 . en f (x ) pn (x ) n 1(x ) f [x0 , x1,..., xn 1, x] b En 1[f ] I[f ] In 1[f ] b b f (x)dx p (x)dx n a a n 1 (x ) f [x0 , x1,..., xn 1, x] a tenendo presente f [x0 , x1,..., xn 1, x] 0 per f Pn 4 Convergenza • Dal teorema di Weierstrass discende anche il seguente Teorema: Sia In 1[f ] una successione di formule di quadratura tali che In 1[f ] abbia grado di precisione almeno n, ed equilimitate (i.e. c : In 1 c n ). Allora si ha lim In 1[f ] I[f ] n Dim. p Pn : In 1[p] I[p] En 1[f ] I[f ] In 1[f ] I[f ] In 1[p] I[p] In 1[f ] I[f p] In 1[f p] En 1[f ] ( I In 1 ) f p ( I c) f p Per Teorema di W. p convergente a f En 1[f ] 0 Teorema: Data unanfamiglia di formule di quadratura interpolatorie In 1[f ] tali che H : wi H Allora si ha i 0 lim En 1[f ] 0 n 5 Osservazione: In una formula di quadratura interpolatoria si ha (dim. per esercizio) n w i 0 i ba Corollario: Data f C [a, b], se i pesi di una formula di quadratura di grado di precisione n, sono tutti positivi allora lim In 1[f ] I[f ] n 6 • Tra le formule interpolatorie piu’ usate si possono mettere in evidenza due classi importanti: 1. Formule di Newton-Cotes: i nodi x0 , x1,..., xn sono prefissati nell’intervallo [a,b] e sono equispaziati. Queste formule hanno grado di precisione n o n+1 ed hanno i pesi wi facilmente ricavabili ed espressi con semplici numeri razionali. Hanno però lo svantaggio che per n>9 i non sono tutti dello stesso segno. wi 2. Formule gaussiane: i nodi x0 , x1,..., xn non sono prefissati a priori, ma assime ai pesi vengono ricavati in modo da massimizzare il grado di precisione che risulta di 2n+1. Queste formule, rispetto a quelle di Newton-cotes, hanno il vantaggio, oltre all’elevato grado di precisione, di avere i pesi sempre positivi ,al prezzo pero’ che l’espressione dei nodi e dei pesi e’ spesso non razionale. 7 Formule di Newton-cotes • Basate sul metodo di interpolazione di Lagrange con nodi equispaziati in [a,b]: xi x0 i h , i 1,..., n ; ba n se x0 a e xn b h FORMULE DI TIPO CHIUSO se x0 a h e xn b h h ba n2 FORMULE DI TIPO APERTO • I pesi, che dipendono solo da n e h (per tutte le formule interpolatorie), non dipendono dall’intervallo di integrazione [a,b] e sono esprimibili come b wi l dx a ( n) i xn ( xn h) n x0 ( x0 h) j 0, j i x xj xi x j n( n 1) dx 0( 1) t j h dt h j 0, j i i j n n( n 1) 0( 1) t j dt h i j 0, j i i j n i 8 Esempi • n=2 chiusa: SIMPSON ba ab ba , x2 b h 2 2 2 h 4h h w0 , w1 , w2 , 3 3 3 x0 a , x1 a b f (x) dx I3[f ] a h ab f ( a ) 4 f ( ) f ( b ) 3 2 • n=0 aperta: MIDPOINT x0 a h , h ba 2 w0 b a b f (x) dx I1[f ] (b a)f ( a ab ) 2 9 Errore per formule di N.-C. • Teorema: Sia f C n 2[a, b]con n pari, allora si ha f (n 2)( ) n 3 En 1[f ] h (n 2)! Se invece n e’ dispari, n 1 i n i 1 j 0 t (t j) dt f C n 1[a, b] f (n 1)( ) n 2 En 1[f ] h (n 1)! n 1 i n i 1 j 0 t (t j) dt dove i=1 per le formule di tipo chiuso, mentre i=0 per quelle di tipo aperto. • • A parita’ di numero di nodi formule aperte e formule chiuse hanno lo stesso grado di precisione. Per n pari (numero dispari di nodi) il grado di precisione e’ n+1 e non n (come invece si ha per n dispari) E’ piu’ conveniente usare formule con n pari. 10 Convergenza formule di N.-C. • Contrariamente a quanto potrebbe sembrare “a prima vista” non conviene usare formule di Newton-Cotes di grado di precisione via via crescente. • Teorema (Kusmin): Per ogni successione In 1[f ] di formule di quadratura interpolatorie costruite su un intervallo chiuso con nodi equidistanti si ha n lim wi(n 1) n i 0 • 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) 11 Condizionamento • In generale la quantita’ wi da’ una misura di quanto si amplifichino gli errori sui dati iniziali e quindi puo’ essere messa anche in relazione con il condizionamento del problema. • Supponiamo che a causa degli errori di arrodontamento si abbia: ~ ~ f j f (x j ) fl (f (x j )) f (x j ) j ~ I n 1[f ] In 1[f ] n n w (f (x ) ) w f (x ) i 0 i i i i i 0 i n w i 0 i n i wi , i 0 • L’errore effettivamente commesso e’ dato da ~ n ~ E n 1 I[f ] I n 1[f ] I[f ] wi f (xi ) i 0 n • Se I pesi sono positivi: w i 0 i n w i 0 i i n w i 0 i i max i En 1[f ] n w i 0 i i n i wi (b a) i 0 12 Formule composite • Idea: si suddivide l’intervallo di integrazione [a,b] in N sottointervalli di ampiezza uguale h formula di grado basso N b f (x)dx a N 1 z k 1 f (x )dx k 0 z k ba N N 1 I k 0 e su ciascuno di essi applicare una (k ) n 1 [f ], z k : k 0,..., N; z0 a, z N b • Le formule piu’ usate: N 1 z k 1 z k ba I [f ] (f (zk ) f zk 1 ) [f (a) 2f (zk ) f (b)] TRAPEZI 2 2 N k 0 k 1 N 1 N 1 N 1 z k 1 z k 1 z zk 4 z k 1 z k 1 ba N I3 [f ] ( f (zk ) f ( ) f zk 1 ) [f (a) 2 f (zk ) 4 f ( k 1 ) f (b)] 2 3 3 2 3 6N 2 k 0 k 1 k 0 N 2 N 1 SIMPSON Il grado di precisione delle formule composite e’ lo stesso delle corrispondenti formule di Newton-Cotes “semplici”. 13 Errore Si puo’ facilmente dimostrare: N 2 E (b a)3 (2) f 2 N [a, b] 1 12 5 N 3 E b a (4) N f 2 N [a, b] 1 90 Per funzioni sufficientemente regolari si ha quindi: lim EnN1[f ] 0 N 14 Implementazione • In pratica e’ importante determinare un valore adeguato del numero di suddivisioni dell’intervallo che bisogna fare. • Stima dell’errore in modo automatico valutando: InN11[f ] InN21[f ] • Di solito e’ conveniente considerare N2=2N1 • Nell’ipotesi in cui la derivata s-esima vari lentamente e’ possibile dare una stima dell’errore a partire da due formule composite con valori diversi di N s 1 s (b a) 1 f ( ) N ns 1 Ns s! Ns 2N (b a)s 1 1 f s ( ) 2N I[f ] I [f ] kn n s 1 (2N )s s ! (2N )s I[f ] I N [f ] kn 2N N I [f ] I [f ] s 2 N s s (2 1) 2N E [f ] I 2N [f ] I N [f ] s s 2 N 2s 1 Estrapolazione di Richardson 15 Formule adattive • Le formule composite con suddivisione uniforme dell’intervallo di integrazione sono ormai superate, tranne in casi particolari (funzioni periodiche, regola dei trapezi) • Si usano formule di tipo adattivo • Quando la funzione integranda presenta delle irregolarita’ c’e’ la necessita’ di addensare I nodi nelle vicinanze delle irregolarita’ • L’intervallo viene suddiviso in sottointervalli di ampiezza diversa • Viene applicata una formula base (non con molti nodi) addensando I nodi la’ dove e’ necessario. 16 Polinomi ortogonali • Uno spazio vettoriale G sul campo R dei reali, su cui è definito un prodotto scalare, è detto spazio di Hilbert se ogni successione di Cauchy di elementi di G è convergente ( spazio di Banach + prodotto scalare) • Data una funzione peso w(x) non negativa nell’intervallo (finito o infinito) (a,b) e non identicamente nulla ed un insieme pi (x)iN di polinomi, in cui pi (x) è di grado i, esso è uno spazio di Hilbert rispetto al prodotto scalare b pi , p j w(x)pi (x)p j (x)dx a • Un sistema di polinomi è detto ortogonale rispetto ad una funzione peso w(x) ed al prodotto scalare sopra definito se pi , p j 0 per i j • L’intervallo (a,b) e la funzione peso w(x) definiscono univocamente i polinomi pi (x), a meno di fattori costanti non nulli. 17 • Teorema: Sia q(x) un polinomio di grado n. Allora pi , q 0 per i n • Teorema: per ogni n>0 il polinomio ortogonale pn(x) possiede n zeri reali distinti e tutti contenuti in (a,b). Inoltre gli zeri di pn(x) si alternano con quelli di pn 1(x) ossia tra due zeri consecutivi di pn (x) esiste un solo zero di pn 1(x) • Teorema: Ogni sistema di polinomi ortogonali pi (x)iN soddisfa una relazione per ricorrenza a tre termini del tipo: pi 1(x) ( Ai x Bi )pi (x) Ci pi 1(x) 18 Formule Gaussiane • Nelle formule gaussiane i nodi non sono determinati a priori, ma sono scelti in modo da massimizzare il grado di precisione della formula Teorema: Una formula di quadratura di tipo interpolatorio costruita su n+1 punti ha grado di precisione almeno n ed al massimo 2n+1. Il grado massimo viene raggiunto se e solo se i nodi sono gli zeri dell’ (n+1)-esimo polinomio ortogonale rispetto alla funzione peso w(x)=1 b Si considera il resto nella forma di Newton En 1[f ] n 1(x) f [x0 , x1,...xn , x] dx a Per costruzione se f Pk con k n f [x0 , x1,...xn , x] 0 Vediamo ora f Pn r con r 0 f [x0 , x1,...xn , x] Pn r (n 1) r 1 b a b n 1 (x) pr 1 dx 0 n 1(x) x s dx 0 per s 0,1,...r 1 a se e solo se n 1e’ ortogonale allo spazio Pr 1 rispetto a b f , g f (x)g(x) dx a E’ sufficiente prendere come nodi gli zeri dell’(n+1)-esimo polinomio ortogonale r-1=n r=n+1. Il massimo grado di precisione ottenibile e’ 2n+1 19 Tutti i coefficienti di una formula interpolatoria In 1 di grado di precisione almeno 2n, sono tutti positivi Per quanto riguarda l’errore si ha che, se f C 2n 2(a, b) b f (2n 2)( ) 2 En 1[f ] qn 1(x)dx (2n 2)! a dove qn 1 e’ l’(n+1)-esimo polinomio ortogonale Le formule gaussiane classiche sono quelle associate ai classici polinomi ortogonali. Essi sono in generale definiti in [-1,1]. Se [a, b] [1,1] x 1 [(b a) t (b a)] 2 20 Formule di Gauss-Legendre • I polinomi di Legendre sono definiti per ricorrenza P0 (x ) 0 P1(x ) x 2n 1 n Pn 1(x ) x Pn (x ) Pn 1(x ) n 1 n 1 • Per queste formule si possono calcolare esplicitamente i nodi ed i pesi, per ogni n, e tabularli (nell’intervallo di riferimento [-1,1]) • Difficile implementazione per loro utilizzo in modo iterativo • I nodi sono tutti interni all’intervallo 21 Formule di Gauss-Lobatto • Si considerano gli zeri del polinomio n 1 Pn 1(x) aPn(x) bPn 1(x) dove a e b sono determinate in modo tale che n 1(1) n 1(1) 0 • Nei nodi sono inclusi gli estremi G L n 1 I n 1 2 [f ] (f (1) f (1)) w j f (x j ) n(n 1) j 1 ' • I nodi sono gli zeri di Pn 1( x )ed i pesi sono dati da wj 2 (Pn (x j ))2 n(n 1) • Le formule di Gauss-Lobatto hanno grado di precisione 2n-1 22 Formule gaussiane pesate b • Si studiano formule per approssimare w(x) f (x) dx a • Questi integrali sono utili quando si vuole integrare una funzione g(x) che presenta delle singolarità o dei punti di discontinuità nell’intervallo [a,b], ma può essere fattorizzata g(x)=w(x)f(x), in cui w(x) è una funzione di forma semplice contenente la singolarità di g(x), mentre f(x) è la parte regolare di g(x). • Si costruiscono formule interpolatorie generalizzando il procedimento visto finora (che corrisponde a w(x) 1) b b n In 1[f ] w( x ) pn (x )dx w(x ) l a a i 0 ( n) i (x )f (xi ) dx n w f (x ) i 0 i i b wi w(x )li(n)(x )dx a • La funzione peso deve essere tale da garantire l’esistenza degli integrali coinvolti e permettere la costruzione dei pesi 23 • Formule gaussiane pesate in cui i nodi sono scelti coincidenti con gli zeri dei polinomi ortogonali rispetto al prodotto scalare b f,g w w(x)f (x)g(x)dx a • Particolarizzando l’intervallo [a,b] e la funzione peso w(x) si hanno diverse formule: Gauss-Chebychev: [-1,1] w(x ) Gauss-Laguerre: [0, ), w(x) e Gauss-Hermite : (, ) x 1 1 x 2 ; T0 ( x) 1 T1(x ) x T (x ) 2 x T ( x) T ( x) n n 1 n 1 L0 ( x) 1 L1(x ) x (n 1)L (x ) (2n 1 x) L (x ) nL (x ) n 1 n n 1 w(x) e x 2 H0 (x ) 1 H1(x) 2 x H (x ) 2 x H (x ) 2nH (x ) n n 1 n 1 Tutti i nodi ed i pesi sono ottenibili da opportune tavole, tranne che per le formule di Gauss-Chebychev: x j cos( 2j 1 ), 2n 2 j 0,.., n; wj n 1 24