INTERPOLAZIONI CON SPLINE Assegnati gli n +1valori che la funzione f assume nei nodi x i, si costruisce un interpolazione polinomiale a tratti. In ognuno degli intervalli [x i 1,x i ] il polinomio interpolatore (di grado m<n) assume diversi coefficienti che vengono fissati in modo da garantire la continuità di tutte le derivate (fino alla m 1) in corrispondenza dei nodi. È uno dei metodi più usati. Di particolare interesse sono le Spline cubiche in cui m =3.
INTERPOLAZIONI CON SPLINE CUBICHE In ogni intervallo T i =[x i 1,x i ], la funzione è approssimata da un polinomio s i (x) del terzo ordine e la sua derivata seconda varia linearmente. Se M i 1 e M i sono valori (incogniti!) che la derivata seconda assume agli estremi, allora all interno dell intervallo s i (x) =(x i x)m i 1 +(x x i 1 )M i h i h i = x i x i 1 Integrando due volte in x, s (x) = x x i 1 s dx s(x) = x x i 1 s dx
INTERPOLAZIONI CON SPLINE CUBICHE s i (x) = (x i x) 2 M i 1 +(x x i 1 ) 2 M i 2h i + C i s i (x) = (x i x) 3 M i 1 +(x x i 1 ) 3 M i +C i (x x x1 )+D i 6h i A partire da queste espressioni, le constanti C i,d i e M i si trovano imponendo il passaggio per i punti x i,f i, e la continuità della derivata prima nei nodi interni. Dalla seconda segue che s i (x i 1 )= h2 i 6 M i 1+D i e dovendo imporre il passaggio per f i 1, segue che D i = f i 1 h2 i 6 M i 1
INTERPOLAZIONI CON SPLINE CUBICHE Sempre dalla seconda, s i (x i )= h2 i 6 M i + C i h i + D i = f i da cui, usando il risultato precedente, C i = f i f i 1 h i h i 6 (M i M i 1 ) Per determinare le M i, in ogni nodo x i i polinomi s i (x i ) e s i+1 (x i ) abbiano la stessa derivata prima. Allora, dalla prima delle due segue h i 2 M i + (f i f i 1 ) h i + h i 6 (M i 1 M i )= h i+1 2 M i+1 + (f i+1 f i ) h i+1 + h i+1 6 (M i M i+1 )
INTERPOLAZIONI CON SPLINE CUBICHE... ovvero, per ogni i =1,..., n 1 h i 6 M i 1 + h i + h i+1 3 M i + h i 6 M i+1 = f i+1 f i h i+1 f i f i 1 h i Agli estremi? Generalmente si assume M 0 = M n = 0 (spline cubiche naturali). La matrice associata è simmetrica, tridiagonale, a diagonale dominante e gli elementi sulla diagonale sono positivi definita positiva regolare, da cui esistenza e unicità della soluzione. Il sistema può essere facilmente risolto con l algoritmo di Thomas.
INTERPOLAZIONE AI MINIMI QUADRATI Spesso si ha una funzione f data per punti (ad es. il risultato di misura sperimentale). Si ha quindi una sequenza di m valori della funzione, f 1,f 2,..., f m, assunti in corrispondenza di altrettanti valori della variabile x 1,x 2,..., x m (x può essere il tempo, o una distanza...) Diagrammando questi dati ci si accorge che i punti sembrano avere un andamento regolare (ad esempio una retta o una parabola...) oppure èla fisica del fenomeno osservato che induce a pensarlo Viene illustrato il procedimento assumendo m =5eprovando ad interpolare con una retta di equazione a 0 +a 1 x. L estensione al caso generale viene fatta successivamente.
INTERPOLAZIONE AI MINIMI QUADRATI Il problema è quindi trovare i coefficienti a 0 ed a 1 in modo che la retta a 0 +a 1 x passi per f 1 in x = x 1, per f 2 in x = x 2,..., per f 5 in x = x 5. Si tratterebbe di risolvere il sistema di 5 equazioni nelle due incognite a 0,a 1 : a 0 + x 1 a 1 = f 1 a 0 + x 2 a 1 = f 2 a 0 + x 3 a 1 = f 3 a 0 + x 4 a 1 = f 4 a 0 + x 5 a 1 = f 5 1 x 1 1 x 2 1 x 3 1 x 4 1 x 5 a 0 a 1 = f 1 f 2 f 3 f 4 f 5
INTERPOLAZIONE AI MINIMI QUADRATI Per quanto detto riguardo la soluzioni di sistemi sovradeterminati, si cerca la retta tale che la somma delle distanze (al quadrato) di tutti i punti dalla retta assuma il valore minimo. Per la soluzione si calcola la matrice A T A 1 1 1 1 1 x 1 x 2 x 3 x 4 x 5 1 x 1 1 x 2 1 x 3 1 x 4 1 x 5 = 1 (x 1 + x 2 + x 3 + x 4 + x 5 ) (x 1 + x 2 + x 3 + x 4 + x 5 ) (x 2 1 + x2 2 + x2 3 + x2 4 + x2 5 )
INTERPOLAZIONE AI MINIMI QUADRATI... e il vettore A T B 1 1 1 1 1 x 1 x 2 x 3 x 4 x 5 f 1 f 2 f 3 f 4 f 5 = (f 1 + f 2 + f 3 + f 4 + f 5 ) (f 1 x 1 + f 2 x 2 + f 3 x 3 + f 4 x 4 + f 5 x 5 ) A questo punto il problema è ridotto alla soluzione di un sistema di due equazioni in due incognite. Da notare: la dimensione del sistema finale NON dipende dal numero di valori di f!
INTERPOLAZIONE AI MINIMI QUADRATI Nel caso più generale si avranno m valori della funzione f 1,..., f m per corrispondenti valori x 1,..., x m della variabile e si vorranno interpolare con un polinomio a 0 + a 1 x + a 2 x 2 +.. + a n x n (con n<m). Si procede in modo analogo, costruendo una matrice A di m righe ed n colonne ed un vettore B di m righe A = 1 x 1 x 2 1.. xn 1 1 x 2 x 2.. xn 2.......... 1 x m x 2 m.. x n m B = f 1 f 2.. f m
INTERPOLAZIONE AI MINIMI QUADRATI.. e procedendo allo stesso modo: A T A = s 0 s 1 s 2.. s n s 1 s 2 s 3.. s n+1.......... s n s n+1 s n+2.. s 2n A T B = v 0 v 1.. v n dove s k = m i=1 x k i e v k = m i=1 f i x k i Si otterrà un sistema di n eq. in n incognite. Generalmente n è piccolo (< 10) mentre m può essere anche molto grande.
INTERPOLAZIONE TRIGONOMETRICA -TRASFORMATA DI FOURIER Molto usata per funzioni periodiche. Se f è periodica in x [0, 2π), sipuò scrivere f(x) t n (x) = a 0 2 + n k=1 (a k cos kx + b k sin kx) Per valutare il k-esimo coefficiente ( a k iconk =0, 1,.., n o b k con k =1,..., n) sipuò moltiplicare a destra easinistra per la corrispondente funzione seno o coseno e integrare tra 0 e 2π, ottenendo quindi a k = 1 π 2π 0 f(x)coskx dx b k = 1 π 2π 0 f(x)sinkx dx
INTERPOLAZIONE TRIGONOMETRICA -TRASFORMATA DI FOURIER Se funzione f è data in m nodi equispaziati (generalmente m 2n +1) i coefficienti possono essere valutati attraverso le a k = 2 m m m i=1 f i cos kx i b k = 2 m i=1 f i sin kx i Nel testo si giunge a queste espressioni con un approccio ai minimi quadrati. È possibile ottenere lo stesso risultato utilizzando semplici formule di quadratura, come vedremo in seguito.
DERIVAZIONE NUMERICA Data la serie di dati f i,x i,coni =1,.., n, si vuole valutare (in modo approssimato) la derivata della funzione f (assunta continua e con derivate continue). Per semplicità si assume che i nodi siano equispaziati, x i x i 1 = h per ogni i. Per valutare la derivata prima nel generico nodo i, sipuò usare uno sviluppo di Taylor per valutare la funzione in x i+1 e in x i 1 : f i+1 = f i + f i h + f i h 2 2 + f i f i 1 = f i f i h + f i h 2 2 f i h 3 h 4 6 + f i iv 24... h 3 h 4 6 + f i iv 24...
DERIVAZIONE NUMERICA Sottraendo la seconda dalla prima si ottiene ovvero f i+1 f i 1 = f i 2h + f h3 3 +... f i = f i+1 f i 1 2h f h2 6 +... Per h sufficientemente piccolo, l espressione data fornisce l espressione della derivata prima calcolata alle differenze finite centrate
DERIVAZIONE NUMERICA Sempre a partire dagli sviluppi dati, sommando le due equazioni si ottiene da cui f i+1 + f i 1 =2f i + f h 2 + f iv i h 2 h 4 12 +... f i = f i+1 2f i + f i 1 h 2 fi iv 12 +... Per h sufficientemente piccolo, l espressione data fornisce l espressione della derivata seconda calcolata alle differenze finite centrate
DERIVAZIONE NUMERICA Le formule date consentono di calcolare le derivate per tutti i punti interni ma non consentono di calcolare le derivate per i =0oper i = n, per i quali non è disponibile un valore precedente (f 1 ) o successivo (f n+1 ) della funzione. Procedendo allo stesso modo si ricavano le seguenti espressioni f i = f i+2 +4f i+1 3f i 2h + f h2 3 +... f i = f i 2 4f i 1 +3f i 2h + f h2 3 +... che sono le espressioni delle derivate prime calcolate alle differenze finite in avanti e indietro