Approssimazione ed interpolazione numerica di dati e funzioni
Transcript
Approssimazione ed interpolazione numerica di dati e funzioni
Approssimazione ed interpolazione numerica di dati e funzioni Prof. M. Lucia Sampoli a.a. 2012/2013 Approssimazione In molti problemi matematici nasce l’esigenza di dover approssimare una funzione f(x), nota analiticamente oppure nota solo in un insieme discreto di punti, con una funzione più semplice, scelta in un insieme opportuno. La costruzione di tale funzione può avvenire secondo due approcci: 1. 2. DATI AFFETTI DA ERRORE : i dati vengono approssimati “nel loro insieme” migliore approssimazione DATI ESATTI: si cerca una funzione che passi per i valori assegnati interpolazione Classi di funzioni più usate per approssimare ed interpolare Polinomi Funzioni razionali Funzioni trigonometriche Funzioni polinomiali a tratti (funzioni splines) Criteri possibili per misurare l’errore E n 10 CRITERIO (errore in norma 1) min a0 , a1 ,, am E i i 1 i 1 max Ei 20 CRITERIO (errore in norma infinito) a min , a ,, a 0 1 m n 30 CRITERIO (errore in norma 2) min a0 , a1 ,, am E i 1 i 2 E i E 2 i 2 Il polinomio di migliore approssimazione (m.a.) ai minimi quadrati è quel polinomio che minimizza l’errore in norma 2. 15 10 5 Interpolazione fi 0 −5 −10 −1.5 −1 −0.5 xi 0 0.5 1 1.5 Dati (xi,fi), i=0,…,n con xi є[a,b], (xi sono chiamati punti fondamentali e sono assunti distinti xi≠xj per i ≠j) ed un insieme φj(x), j=0,…,n, definite in [a,b] e linearmente indipendenti, si tratta di determinare n tali che g ( x ) j j ( x ) n j 0 g ( xi ) j j ( xi ) fi , i 0, , n j 0 condizioni di interpolazione La scelta della classe delle funzioni φj(x) dipende dalle applicazioni ed è molto importante Se si sceglie di utilizzare polinomi allora φj(x) =xj j=0,…,n, n g ( x ) j x j Pn ( x ) j 0 Interpolazione polinomiale Le condizioni di interpolazione conducono alla risoluzione di un sistema lineare nelle incognite α0, α1, …, αn, 0 1 x0 2 x02 n x0n f 0 2 n 0 1 x1 2 x1 n x1 f1 0 1 xn 2 xn2 n xnn f n M = f 1 x0 1 x1 M 1 xn x02 x0n x12 x1n x12 xnn matrice di Vandermonde La matrice M risulta essere non singolare se e solo se xi ≠xj per i ≠j, essendo TEOREMA: Esiste un unico polinomio di grado massimo n che assume valori fi, i=0,…,n in corrispondenza di (n+1) punti distinti xi, i=0,…,n . Problemi di M: Malcondizionamento Punti “quasi coincidenti” (aritmetica finita) Polinomio interpolante nella forma di Lagrange Assegnati (xi,fi), i=0,…,n, si definiscono le basi di Lagrange 0 ( x ), 1 ( x ), , ,n ( x ) tali che ℓj(x) è un polinomio di grado n e 1 i j j ( xi ) 0 i j Il polinomio di grado n definito dalle basi di Lagrange coincide con il polinomio interpolante n Pn ( xi ) j ( xi ) f j 0 ( xi ) f 0 1 ( xi ) f1 i ( xi ) f i n ( xi ) f n f i j 0 Basi di Lagrange: j ( x ) ( x x0 )( x x1 ) ( x x j 1 )( x x j 1 )( x xn ) ( x j x0 )( x j x1 )( x j x j 1 )( x j x j 1 )( x j xn ) n cioe' j ( x) (x x ) i i 0 ,i j n (x i 0 ,i j j xi ) Esempio Assegnati i punti (-1,2), (1,1), (2,1), cerchiamo un polinomio del tipo 2 P2 ( x ) j ( x ) f j j 0 Calcoliamo le funzioni fondamentali di Lagrange: 0 ( x) ( x x1 )( x x2 ) 1 ( x 1)( x 2) ( x 1)( x 2) ( x0 x1 )( x0 x2 ) ( 1 1)( 1 2) 6 1 ( x ) ( x x0 )( x x2 ) ( x 1)( x 1) 1 ( x 1)( x 2) 2 ( x1 x0 )( x1 x2 ) (1 1)(1 2) 2 ( x) ( x x0 )( x x1 ) ( x 1)( x 1) 1 ( x 1)( x 1) ( x2 x0 )( x2 x1 ) ( 2 1)( 2 1) 3 In conclusione: 1 1 1 1 1 4 P2 ( x ) ( x 1)( x 2) 2 ( x 1)( x 2) 1 ( x 1)( x 2) 1 x 2 x 6 2 3 6 2 3 Unicità polinomio interpolante Errore Si tratta di stimare l’errore commesso nell’approssimazione con il polinomio interpolante fuori dai punti fondamentali ( xi , fi ) ( xi , f ( xi )), i 1,, n En ( x ) f ( x ) Pn ( x ), x xi i Se f C n 1[a, b] a x0 x1 xn b En ( x ) n1 ( x ) f ( n1) ( ) ]a, b[ ( n 1)! n 1 ( x ) ( x x0 )( x x1 )( x xn ) (b a )n1 M En ( x ) ( n 1)! M max f ( n1) ( x ) x[ a ,b ] 1 f ( x) 1 25 x 2 Esempio di Runge Costruiamo il polinomio interpolante su 6 10 e 15 punti equidistanti in [-1,1] 1.2 1.2 1 1 0.8 0.8 0.6 0.6 1.2 1 0.8 0.6 0.4 0.4 0.4 0.2 0.2 0.2 0 0 0 −0.2 −0.2 −0.2 −0.4 −1 −0.4 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 −0.4 −1 1 1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Il comportamento del polinomio interpolante peggiora al crescere del grado infatti le derivate di f crescono rapidamente all’aumentare di n Se i nodi vengono scelti opportunamente il risultato migliora 1.2 1.2 1.2 1 1 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0.8 0.6 0.4 0.2 0 0 0 −0.2 −0.2 −0.2 −0.4 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −0.4 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 −0.4 −1 −0.8 −0.6 −0.4 −0.2 0 0.2 0.4 0.6 0.8 1 Approssimazione Dati (xi,fi), i=0,…,n con xi є[a,b], si cerca una funzione g(x) che passi vicino ad essi Si tratta di misurare g( xk ) fk , k 0,...n Migliore approssimazione Si può pensare come differenza tra componenti di due vettori di Rk g( x1 ) f1 g( x ) f k k Teoricamente qualunque norma va bene, la più semplice è quella euclidea g( x1 ) f1 g( x ) f k k 2 k ( g( x q 1 q ) fq )2 problema della migliore approssimazione nel senso dei minimi quadrati Polinomio di m.a. ai minimi quadrati Si tratta di minimizzare n min a0 , a1 ,, am ( f i 1 2 m 2 a a x a x a x 0 1 i 2 i i m i ) min F ( a0 , a1 , , am ) a0 , a1 ,, am Derivando rispetto ad a0, a1, …, am ed uguagliando a zero (sistema di equazioni normali) n F 0 2 ( f i a0 a1 xi a2 xi2 am xim ) 0 a0 i 1 n F 0 2 ( f i a0 a1 xi a2 xi2 am xim ) xi 0 a1 i 1 n F 0 2 ( f i a0 a1 xi a2 xi2 am xim ) xim 0 a m i 1 Si ottiene un sistema lineare Polinomio di m.a. ai minimi quadrati (2) na0 a1 xi a2 xi2 am xim fi 2 3 m a0 xi a1 xi a2 xi am xi fi xi m m 1 m 2 2m m a x a x a x a x f x 0 1 i 2 i m i i i i In forma matriciale Ma=f La matrice M risulta Simmetrica per costruzione Invertibile e definita positiva Può essere malcondizionata (si considerano basi ortogonali/ortonormali rispetto al prodotto scalare) Osservazione L’interpolazione e’ un caso particolare di approssimazione, quando il grado del polinimio e’ uguale al numero dei punti -1. Osservazione Aumentando il grado del polinomio possono sorgere problemi dovuti all’oscillazione dei polinomi 1.2 1.2 1 data 1 5th degree 6th degree 8th degree 10th degree 1 0.8 0.8 0.6 0.6 0.4 0.4 0.2 0.2 0 0 −0.2 −10 data 1 spline −0.2 −10 −5 0 5 −5 10 Si ricorre alle funzioni polinomiali a tratti (spline) 0 5 10 Polinomiali a tratti IDEA: usare interpolanti polinomiali di grado basso, spezzando l’intervallo in considerazione in tanti sottointervalli ed interpolando in ciascun sottointervallo solo pochi punti. Non è necessario che gli estremi dei sottointervalli coincidano con punti di interpolazione. Se è cosi’ splines interpolanti nei nodi Caso più semplice lineare a tratti (polinomio di grado 1 in ciascun sottointervallo). A volte funziona meglio del polinomio interpolante! Funzioni splines Assegnati l’intervallo [a,b] ed i nodi a=y0,…yn=b una funzione spline di grado m e nodi y è una funzione polinomiale a tratti tale che S m , y ( x ) Pm x [ yi , yi 1 ] m 1 ( ) [ a , b] S x C m, y I parametri da determinare sono (m+1) n I vincoli da imporre per la regolarità (nei nodi interni) ( j) ( j) S ( x ) S lim m,y lim m,y ( x) x yi j 0, , m 1, i 1, , n 1 x yi In totale abbiamo (m+1) n-m(n-1)=n+m (dimensione dello spazio delle splines di grado m, con continuità m-1 definite su n+1 nodi) B-splines Base stabile per lo spazio delle splines (base usata in tutte le applicazioni industriali) Le funzioni di base possono essere definite per ricorrenza a partire dalla funzione se x [ yi , yi 1 ) 1 Bi ,0 0 se x yi , x yi 1 yi m 1 x x yi Bi ,m ( x) Bi ,m 1 ( x) Bi 1,m 1 ( x) yi m yi y y i m 1 i 1 Le B-spline sono funzioni tutte positive: Bi ,m ( x) 0, x ( yi , yi m 1 ) Sono funzioni a supporto compatto: supp Bi ,m ( x) [ yi , yi m ] Formano una partizione dell’unità Bi,m ( x) 1 i Splines interpolanti nei nodi In generale i nodi della spline possono non coincidere con i punti di interpolazione, se invece coincidono sottoinsieme delle splines interpolanti nei nodi In questo caso le n+1 condizioni di interpolazione riducono il numero dei parametri liberi : n+m-(n+1)=m-1 Tra le splines interpolanti nei nodi le più usate sono quelle cubiche per le quali restano da determinare due condizioni ulteriori. Le scelte più comuni: 1. 2. 3. Spline naturali :s”(a)=s”(b)=0. Spline periodiche: s’(a)=s’(b), s(a)=s(b). Spline “not a knot” (default Matlab): s(t1),s(tn-1) є C3.