Analisi dell'errore dei Polinomi interpolanti e applicazioni in 3D
Analisi dell'errore dei Polinomi interpolanti e applicazioni in 3D
Analisi dell'errore dei Polinomi interpolanti e applicazioni in 3D
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
1A.A. 2010/2011TESINA CALCOLO NUMERICO 2<strong>Analisi</strong> <strong>dell'errore</strong> <strong>dei</strong> <strong>Pol<strong>in</strong>omi</strong> <strong><strong>in</strong>terpolanti</strong> e<strong>applicazioni</strong> <strong>in</strong> <strong>3D</strong>Atzei AlessioLittarru Gaia
Indice1 Introduzione 32 Approssimazione di funzioni 42.1 Interpolazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 Interpolazione pol<strong>in</strong>omiale . . . . . . . . . . . . . . . . . . . . . . 52.2.1 <strong>Pol<strong>in</strong>omi</strong>o base canonica . . . . . . . . . . . . . . . . . . . 62.2.2 <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante di Lagrange . . . . . . . . . . . . . 72.2.3 <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante di Newton . . . . . . . . . . . . . 92.2.4 Errore di <strong>in</strong>terpolazione . . . . . . . . . . . . . . . . . . . 122.2.5 Osservazioni sull'errore e i tre teoremi fondamentali . . . 142.2.6 <strong>Pol<strong>in</strong>omi</strong>o di Chebychev . . . . . . . . . . . . . . . . . . . 152.2.7 Funzione di Runge . . . . . . . . . . . . . . . . . . . . . . 162.3 Applicazioni <strong>in</strong> Matlab con i pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> . . . . . . . . 172.3.1 Conclusioni . . . . . . . . . . . . . . . . . . . . . . . . . . 253 Interpolazione <strong>3D</strong> 283.1 Interpolazione di Lagrange <strong>in</strong> <strong>3D</strong> . . . . . . . . . . . . . . . . . . 283.1.1 Applicazione <strong>in</strong>terpolazione di Lagrange <strong>in</strong> <strong>3D</strong> . . . . . . 283.1.2 Funzione di Runge e pol<strong>in</strong>omio <strong>in</strong>terpolante <strong>in</strong> <strong>3D</strong> . . . . 314 Approssimazione ai m<strong>in</strong>imi quadrati 374.1 Caso discreto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2 Applicazione <strong>in</strong> Matlab . . . . . . . . . . . . . . . . . . . . . . . 392
Capitolo 1IntroduzioneSi presenta frequentemente la necessità di dover approssimare una funzionef(x)con un'altra funzione Φ(x). Per esempio, supponiamo di avere una leggesica che dipende da un parametro x. Siamo <strong>in</strong>teressati a conoscere l'andamentodella legge sica dopo aver misurato i valori <strong>in</strong> laboratorio. Risulta utiletrovare un'altra funzione passante per quei valori (x i , y i ) i=0,...,n tali che siabbia y i = f(x i ) che approssimi la funzione di partenza: si tratta di un problemadi <strong>in</strong>terpolazione. Accade <strong>in</strong>vece, che si conosca bene la funzione f(x)ma si vuole comunque approssimarla poichè si vuole risolvere un problema didicile risoluzione come per esempio il calcolo di un <strong>in</strong>tegrale o la risoluzione diun'equazione dierenziale. Si vuole pertanto sostituire la funzione con una suaapprossimazione che agevoli la risoluzione del problema. Un esempio è il calcolodi un <strong>in</strong>tegrale nel quale non si riesce a trovare la primitiva della funzione:ˆbaf(x)dx = F (b) − F (a) ≈ˆ baϕ(x)dx3
Capitolo 2Approssimazione di funzioni2.1 InterpolazioneConsideriamo le coppie di numeri sul piano reale(x i , y i ) i = 0, 1..., n (2.1)ossia si conosce una successione di n + 1 ascisse e n + 1 ord<strong>in</strong>atexyx 0 , x 1 , ..., x ny 0 , y 1 , ..., y nTabella 2.1: Coppie valoriSi cerca una funzione Φ = Φ(x) dipendente da x o , x 1 , ..., x n tale cheΦ(x i ) = y i per cui i=0,1,...,n (2.2)essendo y i <strong>dei</strong> valori assegnati. La funzione Φ <strong>in</strong>terpola i valori {y i } nei nodi{x i }.A seconda del tipo di funzione <strong>in</strong>terpolante si parla di approssimazione pol<strong>in</strong>omiale(Φ è un pol<strong>in</strong>omio algebrico), approssimazione trigonometrica(Φ è un pol<strong>in</strong>omiotrigonometrico), approssimazione composita o mediantespl<strong>in</strong>es (<strong>in</strong> questo casoΦ è localmente un pol<strong>in</strong>omio).Si consideri il caso di dati provenienti dal campionamento di una funzione <strong>in</strong>cognitaf(x). Si approssima f(x) tramite la comb<strong>in</strong>azione l<strong>in</strong>eare di n+1 funzioniϕ j (x), j = 0, ..., nΦ(x) =n∑a j ϕ j (x) (2.3)j=04
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 5Si devono trovare i coecienti a j imponendo le condizioni di <strong>in</strong>terpolazione (2.2)ottendo così il sistema di equazioni l<strong>in</strong>ear<strong>in</strong>∑ϕ j (x i ) · a j = y i , i = 0, ..., n,j=0che <strong>in</strong> term<strong>in</strong>i matriciali può essere visto così φa = y dove⎡⎤ϕ 0 (x 0 ) ϕ 1 (x 0 ) ... ϕ n (x 0 )ϕ 0 (x 1 ) ϕ 1 (x 1 ) ... ϕ n (x 0 )φ =. . .⎢ . . .⎥⎣ . . . ⎦ϕ 0 (x n ) ϕ 1 (x n ) ... ϕ n (x 0 )a =(a 0 , a 1 , ..., a n ) Ty = (y 0 , y 1 , ...y n ) T .La funzione che <strong>in</strong>terpola i dati (2.1) esiste ed è unica se e solo det(φ) ≠ 0 chiamatodeterm<strong>in</strong>ante di Haar. L'<strong>in</strong>sieme di funzioni che verica tale condizioneè detto sistema di Chebychev.2.2 Interpolazione pol<strong>in</strong>omialeI pol<strong>in</strong>omi sono utilizzati frequentemente per l'approssimazione di funzioni;a tal scopo si usa il pol<strong>in</strong>omio di Taylor, ossia una serie di Taylor troncata,che ben approssima la funzione <strong>in</strong> prossimità di un valore <strong>in</strong>iziale x 0 . Però ilTeorema di Weierstraiss permette una migliore capacità di approssimazione<strong>dei</strong> pol<strong>in</strong>omi ed aerma:Sia f ɛ C [a, b]. Per ogni ɛ > 0 esiste un <strong>in</strong>tero n ed un pol<strong>in</strong>omio P n tale che‖f − P n ‖ ∞< ɛ.Considerando che la norma <strong>in</strong>nito di una funzione è denita comeSi ottiene la seguente espressione‖f‖ ∞= maxxɛ[a,b] |f(x)| .‖f − P n ‖ ∞= maxxɛ[a,b] |f(x) − p n(x)| < ɛ.
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 6Il pol<strong>in</strong>omio oscilla <strong>in</strong>torno alla funzione f; ɛ è la massima distanza tra lafunzione e il pol<strong>in</strong>omio approssimante.Si può dimostrare che tale pol<strong>in</strong>omio di grado n che meglio approssima lafunzione f rispetto alla norma-∞ la <strong>in</strong>terpola <strong>in</strong>oltre su n + 1 punti e che ilposizionamento di tali punti è dicile da determ<strong>in</strong>are.Il problema dell'<strong>in</strong>terpolazione pol<strong>in</strong>omiale è così formulato: siano dati i punti(x i , y i ) i = 0, ..., n, si determ<strong>in</strong>ap n (x i ) = y ii=0,...,n.Teorema. Il pol<strong>in</strong>omio <strong>in</strong>terpolante esiste ed è unico se e solo se x i ≠ x j peri ≠ j. Tale teorema nasce come conseguenza della condizione det(φ) ≠ 0 chedeterm<strong>in</strong>a l'unicità <strong>dei</strong> pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong>.Senza dare dimostrazione del teorema si analizza al paragrafo 2.2.1 che trattail problema dell'<strong>in</strong>terpolazione usando la base canonica.2.2.1 <strong>Pol<strong>in</strong>omi</strong>o base canonicaData la base canonica { 1, x, x 2 , ..., x n} si esprime il pol<strong>in</strong>omio <strong>in</strong>terpolante comep n (x) =n∑a j x j . (2.4)Si impongono le condizioni di <strong>in</strong>terpolazione p n (x i ) = y i ottenendo il sistemal<strong>in</strong>eare Xa = y dato dacon matrice <strong>dei</strong> coecientij=0n∑a j x j i = y i, i = 0, ..., n (2.5)j=0⎡⎤1 x 0 x 2 0 ... x n 01 x 1 x 2 1 ... x n 1X =. . . .⎢. . . .. (2.6)⎥⎣. . . . ⎦1 x n x 2 n ... x n nTale matrice è detta di Vandermonde e si può dimostrare che il suo determ<strong>in</strong>ateha la seguente forma:det(X) =n∏i,j=0,i>j(x i − x j ).
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 7É immediato osservare che la tesi è vericata e che per x i ≠ x j con i ≠ j ildet(X) ≠ 0 e il pol<strong>in</strong>omio <strong>in</strong>terpolante esiste ed è unico.Questo approccio presenta diversi svantaggi:1. la matrice X risulta malcondizionata, k(X) >> 1, se alcuni <strong>dei</strong> nodi x isono molto vic<strong>in</strong>i;2. costo computazionale elevato O(n 3 );3. la rappresentazione <strong>in</strong> forma canonica è molto <strong>in</strong>stabile <strong>in</strong> quanto piccolierrori sui coecienti a j implicano grandi variazioni sui valori di p n (x).2.2.2 <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante di LagrangeIl pol<strong>in</strong>omio <strong>in</strong>terpolante è rappresentato utilizzando una base diversa da quellacanonica. La rappresentazione canonica (2.4) è la più semplice da utilizzare mada un lato richiede un alto costo computazionale per determ<strong>in</strong>are i coecienti.Siano dati(x i , y i ), i = 0, ..., n,i pol<strong>in</strong>omi caratteristici di Lagrange {L j (x)} n j=0espressi comeL j (x) =n∏k=0,k≠jx − x kx j − x 0= (x − x 0)...(x − x j−1 )(x − x j+1 )...(x − x n )(x j − x 0 )...(x j − x j−1 )(x j − x j+1 )...(x j − x n ) .(2.7)L j (x) sono tutti pol<strong>in</strong>omi di grado n, <strong>in</strong>vece nella base canonica i pol<strong>in</strong>omi sonodi grado crescente. Il pol<strong>in</strong>omio è ben denito <strong>in</strong> quanto il denom<strong>in</strong>atore nonsi annulla poiché tutti i nodi sono dist<strong>in</strong>ti <strong>in</strong>fatti deve vericare la seguenteproprietà di <strong>in</strong>terpolazioneL j (x i ) = δ ij ={1 i = j0 i ≠ j .Signica che Φ ij = ϕ j (x i ) = δ ij ossia la matrice Φ ij = I. Di conseguenza ipol<strong>in</strong>omi di Lagrange costituiscono un sistema di Chebychev.É possibile osservare la proprietà appena enunciata dalla gura 2.1 la qualeriporta il graco delle funzioni L j (x) corrispondenti alle ascisse di <strong>in</strong>terpolazione{1, 2, 3, 4, 5} (n = 4). Tali ascisse sono state ottenute campionando la funziones<strong>in</strong>(2πx) nei punti {x 1 , x 2 , x 3 , x 4 , x 5 } .Il pol<strong>in</strong>omio <strong>in</strong>terpolante di Lagrange assume la formap n (x) =n∑y j L j (x). (2.8)j=0
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 8Figura 2.1: <strong>Pol<strong>in</strong>omi</strong> caratteristici di LagrangeInterpola i dati assegnati poichép n (x i ) =n∑y j δ ij = y i , i = 0, ...n.j=0La valutazione <strong>in</strong> un punto del pol<strong>in</strong>omio di Lagrange richiede una complessitàcomputazionale pari a O(n 2 ) mentre la base canonica O(n 3 ) per il calcolo <strong>dei</strong>coecienti e O(n) per ogni valutazione. La base di Lagrange è meno <strong>in</strong>stabiledi quella canonica però se i nodi si avvic<strong>in</strong>ano x i ≈ x j tende a destabilizzarsi.Si vuole ora eettuare una sperimentazione numerica sull'<strong>in</strong>terpolazione utilizzandoil pol<strong>in</strong>omio di Lagrange. A tal ne è stata creata una funzione <strong>in</strong> Matlabche costruisce il pol<strong>in</strong>omio <strong>in</strong>terpolante di Lagrange secondo la denizione 2.8.Tale funzione crea <strong>in</strong>oltre una matrice che memorizza <strong>in</strong> ogni colonna i punt<strong>in</strong>ecessari per la costruzione <strong>dei</strong> pol<strong>in</strong>omi caratteristici. L'applicazione del listatocon i parametri <strong>in</strong>dicati più avanti ha prodotto la gura 2.2List<strong>in</strong>g 2.1: Funzione new_lag<strong>in</strong>t. <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante di Lagrange%FUNZIONE PER LA COSTRUZIONE DEL POLINOMIO INTERPOLANTE DI LAGRANGEVALUTATO IN m PUNTIfunction [ p , L]= new_lag<strong>in</strong>t ( x , t , f )%La f u n z i o n e f o r n i s c e l a v a l u t a z i o n e d e l pol<strong>in</strong>omio i n t e r p o l a n t e%ed una matrice che c o n t i e n e g l i n pol<strong>in</strong>omi c a r a t t e r i s t i c i
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 9m = length ( x ) ; %numero d e i p u n t i s c e l t i per v a l u t a r e l a f u n z i o n en= length ( t ) ; %numero d e i p u n t i d i i n t e r p o l a z i o n eL= zeros (m, n ) ; % i n i z i a l i z z a z i o n e d e l l a matrice mxnfor j =1:mp ( j ) =0;for k=1:nk_lr =[1: k−1 , k+1:n ] ;%u l t e r i o r e i n d i c e per e v i t a r e d i v i s i o n iper 0l r=prod( x ( j )−t ( k_lr ) ) /prod( t ( k )−t ( k_lr ) ) ;%pol<strong>in</strong>omio d il a g r a n g e c a l c o l a t o <strong>in</strong> un punto O(n^2)L( j , k )=l r ;p ( j )=p ( j )+f ( k ) ∗ l r ; %comb<strong>in</strong>azione l i n e a r e d e l l e f u n z i o n i l rendendL'algoritmo appena descritto nel listato è stato utilizzato impostando i seguentiparametri:• m = 201;• n = 4;• i nodi sono stati presi equispaziati• listato di riferimento : P rogramma 01.Figura 2.2: <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante di grado n = 42.2.3 <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante di NewtonIl pol<strong>in</strong>omio p n (x) che <strong>in</strong>terpola tutti i punti (x i , y i ) può essere scritto nellaseguente forma
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 10p n (x) = p n−1 (x) + g n (x) (2.9)dove g n (x) è un pol<strong>in</strong>omio di grado n, mentre p n−1 (x i ) = y i . Poichè si vuoleche g n (x) <strong>in</strong>terpoli gli stessi punti <strong>in</strong>terpolati da p n−1 allora si deve vericare lacondizionePertantog n (x i ) = 0, i = 0, ..., n − 1.n−1∏g n (x) = a n · ω n−1 (x) = a n (x − x i ).Dove a n è il coeciente del term<strong>in</strong>e di grado massimo del pol<strong>in</strong>imio g n , qu<strong>in</strong>didi p n . Si determ<strong>in</strong>a a n imponendo che p n <strong>in</strong>terpoli anche l'ultimo punto (x n , y n )ottenendo cosìi=0a n = y n − p n−1 (x n ).ω n−1 (x n )Risulta più utile rappresentare il coeciente di grado massimo di un pol<strong>in</strong>omioche <strong>in</strong>terpola una funzione f(x) nei punti di ascisse x 0 , ..., x n <strong>in</strong> questo modoa n = f[x 0 , ..., x n ],simbolo che <strong>in</strong>dica le differenze divise di ord<strong>in</strong>e n + 1.Si utilizza la formula ricorsiva di Neville ottenendo la seguente relazionef[x 0 , ..., x n ] = f[x 1, ..., x n ] − f[x 0 , ..., x n−1 ]x n − x 0, (2.10)tramite la quale si riesce a calcolare qualsiasi dierenza divisaf[x i ] = y i , i = 0, ..., n.Se si deve <strong>in</strong>terpolare <strong>in</strong> un solo punto allora il pol<strong>in</strong>omio <strong>in</strong>terpolante è unacostante, se si vuole <strong>in</strong>terpolare <strong>in</strong> due punti si haf[x i , x i+1 ] = f[x i+1] − f[x i ]x i+1 − x i.Si vuole trovare la relazione per <strong>in</strong>terpolare <strong>in</strong> n punti e tal proposito si sfruttalo schema delle differenze divise <strong>in</strong>dicato sotto.
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 11x 0 y 0 = f[x 0 ]f[x 0 , x 1 ]x 1 y 1 = f[x 1 ] f[x 0 , x 1 , x 2 ].f[x 1, x 2 ]...x 2 y 2 = f[x 2 ] f[x 1 , x 2 , x 3 ] ..f[x 2 , x 3 ] f[x 0 , ..., x n ]... . ... . ... .. . f[x n−2 , x n−1 , x n ]f[x n−1 , x n ]x n y n = f[x n ]Si tiene <strong>in</strong> memoria la tabella e supponendo <strong>in</strong> seguito di voler <strong>in</strong>serire un nuovopunto di <strong>in</strong>terpolazione (x n+1 , y n+1 ) è suciente <strong>in</strong>serire una nuova riga risparmiandocosì <strong>in</strong> calcoli aggiuntivi. Tramite le dierenze divise si può riscrivere ilpol<strong>in</strong>omiop n (x) = p n−1 (x) + f[x 0 , ..., x n ]ω n−1 (x)= p n−2 (x) + f[x 0 , ..., x n−1 ]ω n−2 (x) + f[x 0 , ..., x n ]ω n−1 (x)= . . .= f[x 0 ] + f[x 0 , x 1 ]ω 0 (x) + · · · + f[x 0 , ..., x n ]ω n−1 (x),trovando la forma di Newton del pol<strong>in</strong>omio <strong>in</strong>terpolantep n (x) = f[x 0 ] + f[x 0 , x 1 ](x − x 0 ) + f[x 0 , x 1 , x 2 ](x − x 0 )(x − x 1 ) + ·(2.11)· ·+ f[x 0 , ..., x n−1 ](x − x 0 ) · · · (x − x n−2 )+ f[x 0 , ..., x n ](x − x 0 ) · · · (x − x n−1 ).Dove è stata utilizzata la base di potenze traslateω j (x) = (x − x 0 )(x − x 1 ) · · · (x − x j ),che risulta simile alla base canonica. I coecienti hanno grado crescente comenella base canonica ma sono più semplici da calcolare.Si illustra la funzione <strong>in</strong> Matlab che costruisce il pol<strong>in</strong>omio <strong>in</strong>terpolante diNewton secondo la denizione 2.11. Tale funzione crea <strong>in</strong>oltre una matricetriangolare <strong>in</strong>feriore che memorizza le dierenze divise risultanti dall'espressione2.10.
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 12List<strong>in</strong>g 2.2: Funzione new_newton. <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante di Newton%COSTRUZIONE DEL POLINOMIO DI NEWTON VALUTATO IN m PUNTIfunction [ p ,N]=new_newton ( x , y , t )%output : p : pol<strong>in</strong>omio newton v a l u t a t o <strong>in</strong> m p unti% N: matrice con c a l c o l o d e l l e d i f f e r e n z e f i n i t em = length ( x ) ; %numero d e i p u n t i s c e l t i per v a l u t a r e l a f u n z i o n en= length ( t ) ; %numero d e i p u n t i d i i n t e r p o l a z i o n eN=zeros (n , n ) ; %i n i z i a l i z z o l a matrice quadrataN( : , 1 )=y ; %l a prima colonna sono l e o r d i n a t e d i i n t e r p o l a z i o n efor j =2:nfor i =2:ni f ( j>i ) N( i , j ) =0;elseN( i , j )= (N( i , j −1)−N( i −1, j −1) ) /( t ( i )−t ( i −j +1) ) ;endendendp=zeros (m, 1 ) ; %pol<strong>in</strong>omio i n t e r p o l a n t e newtonpr=zeros (n , 1 ) ;%c o e f f i c i e n t i d e l l a comb<strong>in</strong>azione l i n e a r epr ( 1 ) =1;for l =1:mfor k_r=2:npr ( k_r )= pr ( k_r−1) ∗( x ( l )−t ( k_r−1) ) ; %c o s t r u z i o n e base potenzet r a s l a t eendfor k=1:np ( l )=p ( l )+(N( k , k ) ∗ pr ( k ) ) ; %v a l u t a z i o n e pol<strong>in</strong>omio Newton <strong>in</strong> unpuntoendend2.2.4 Errore di <strong>in</strong>terpolazioneCon l'utilizzo di un pol<strong>in</strong>omio <strong>in</strong>terpolante si compie un errore e risulta utilecalcolarlo. Se si usano <strong>dei</strong> dati sperimentali (x i, x j ) i = 0, ..., n si può ipotizzareche esiste una funzione (o una legge sica) che li abbia prodotti pertanto y i =f(x i ). Se calcolo il pol<strong>in</strong>omio p n (x) nei dati forniti allora questo risulterà parialla funzione. É utile calcolare lo scarto tra i valori di f(x)e p n (x) per x ≠ x i .Sia f ɛ C n+1 [a, b] e sia p n il pol<strong>in</strong>omio di grado n che <strong>in</strong>terpola f sulle ascisse{x 0 , ..., x n }, cioèp n (x i ) = f(x i ), i = 0, ..., n.Per ogni x esiste un punto ξ x appartenente al più piccolo <strong>in</strong>tervallo che contienei punti {x, x 0 , ..., x n } tale che la funzione errore denita daE n (x) = f(x) − p n (x) = f (n+1) (ξ x )ω n (x) (2.12)(n + 1)!
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 13dove ω n (x) = (x − x 0 )(x − x 1 )...(x − x n ) è un pol<strong>in</strong>omio di grado n + 1.Nella gura 2.3 è rappresentato l'errore calcolato come dierenza f(x) − p(x) <strong>in</strong>tutti gli m punti usati per la rappresentazione, dove:• m = 201• listato di riferimento : P rogramma 01Figura 2.3: Errore pol<strong>in</strong>omio <strong>in</strong>terpolante di Lagrange con n=4Errore di <strong>in</strong>terpolazione per il pol<strong>in</strong>omio di NewtonIl formalismo di Newton consente di dare una rappresentazione alternativa perl'errore. Sia p(x) il pol<strong>in</strong>omio che <strong>in</strong>terpola la funzione f(x) <strong>in</strong> (n + 1) punti.Chiamiamo queste ascisse {x 0 , x 1 , ...., x n } . Supponiamo ora di voler aggiungereun punto di <strong>in</strong>terpolazione x ∈ R di coord<strong>in</strong>ate (x, f(x)) . Come noto dallateoria vista precedentemente non è necessario ricalcolare un nuovo pol<strong>in</strong>omio,ma esprimiamo p n+1 (z) semplicemente comep n+1 (z) = p n (z) + f[x 0 , x 1 , ...., x n , x] ω(z)Imponendo la condizione di <strong>in</strong>terpolazione <strong>in</strong> (x, f(x)) si hap n (x) + f[x 0 , x 1 , ...., x n , x]ω n (x) = f(x).
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 14É possibile ottenere la valutazione <strong>dell'errore</strong> utilizzando l'espressione appenavistaE n (x) = f(x) − p n (x) = f[x 0 , x 1 , ...., x n , x]ω n (x).Questa espressione è analoga alla 2.12 ma risulta più generale <strong>in</strong> quanto nonrichiede la dierenziabilità e nemmeno la cont<strong>in</strong>uità della funzione f(x). Forniscedunque una espressione eettivamente calcolabile per l'errore <strong>in</strong> un punto xpoichè essa non dipende da un punto <strong>in</strong>cognito ζ x .É <strong>in</strong>oltre evidente il legame tra le dierenze divise e la derivata di una funzione,per ogni x, esiste un punto ζ x ∈ I(x 0 .... x n , x) tale chef[x 0 , x 1 , ...., x n , x] = f (n+1) (ξ x )(n + 1)!se la funzione è derivabile (n + 1) volte le due valutazioni <strong>dell'errore</strong> dunqueco<strong>in</strong>cidono.2.2.5 Osservazioni sull'errore e i tre teoremi fondamentaliIl teorema 2.12 non pone alcuna limitazione riguardo al posizionamento del puntox; pertanto tale teorema ben si presta anche nei problemi di estrapolazione,ossia quando servono delle valutazioni del pol<strong>in</strong>omio <strong>in</strong>terpolante al di fuoridell'<strong>in</strong>tervallo che contiene i nodi.Risulta importante tenere conto delle seguenti <strong>in</strong>formazioni fornite dal teorema:1. il fattore ∣ ∣f (n+1) (ξ x ) ∣ ∣ può essere maggiorato da una costante, <strong>in</strong>fatti comeipotesi <strong>in</strong>iziale del teorema si è supposta la funzione f(x) derivabile (n+1)volte. Per un n sucientemente grande, il rapporto può essere dunque resopiccolo a piacere;2. il fattore ω n (x) è un pol<strong>in</strong>omio di grado (n + 1) e dipende dalla disposizione<strong>dei</strong> nodi {x i }. Per cui il posizionamento delle ascisse di <strong>in</strong>terpolazione<strong>in</strong>uenza l'andamento <strong>dell'errore</strong> che al crescere di n ha oscillazioni semprepiù ampie.La conseguenza fondamentale è che l'errore di <strong>in</strong>terpolazione non tende necessariamentea zero quando n tende all'<strong>in</strong>nito ma il pol<strong>in</strong>omio <strong>in</strong>terpolante potrebbeanche non essere più una buona approssimazione della funzione cont<strong>in</strong>ua.Teorema 1. Teorema di Faber. Per ogni distribuzione <strong>dei</strong> nodi esiste almenouna funzione f(x) ∈ C [a,b] tale che l'errore di <strong>in</strong>terpolazione ‖E n (f)‖ ∞nonconverga a zero per n → ∞.Teorema 2. Per ogni funzione cont<strong>in</strong>ua esiste comunque almeno una distribuzione<strong>dei</strong> nodi tale che l'errore di <strong>in</strong>terpolazione converga a zero per n →∞.
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 15Teorema 3. Teorema di Berste<strong>in</strong>. Se f(x) ∈ C[a,b] 1 e se le ascisse di <strong>in</strong>terpolazione{x i } n i=0sono gli zeri del pol<strong>in</strong>omio di Chebychev di grado (n + 1) alloral'errore di <strong>in</strong>terpolazione tende a zero per n → ∞.2.2.6 <strong>Pol<strong>in</strong>omi</strong>o di ChebychevF<strong>in</strong>o ad ora sono state utilizzate ascisse di <strong>in</strong>terpolazione equispaziate, siccometale posizionamento <strong>dei</strong> nodi non garantisce un errore di <strong>in</strong>terpolazione tendentea zero al crescere del numero delle ascisse e dunque del grado del pol<strong>in</strong>omio<strong>in</strong>terpolante, si è deciso di utilizzare anche i nodi di Chebychev e di proporrealcuni confronti con i nodi equispaziati.Il terzo <strong>dei</strong> tre teoremi presentati garantisce la convergenza <strong>dell'errore</strong> a zero se siutilizzano nodi di Chebychev. Ci saranno ovviamente <strong>dei</strong> limiti numerici anchea questo approccio che verranno trattati più avanti con degli esempi pratici; persemplicità si è partiti consideranto l'<strong>in</strong>tervallo di riferimento [−1, 1].Si dimostra che i nodi cercati saranno gli zeri del pol<strong>in</strong>omio di Chebychev digrado (n+1), T n+1 (x).Tale pol<strong>in</strong>omio può essere denito <strong>in</strong> vari modi, utilizziamo quello più conveniente:T n+1 (x) = cos[(n + 1)ϑ]con x = cos(ϑ) dove ϑ è una variabile di comodo denita nell'<strong>in</strong>tervallo [0, π].Si verica semplicemente comeT 0 (x) = cos(0) = 1T 0 (x) = cos(ϑ) = xT 0 (x) = cos(2ϑ) = 2 cos 2 ϑ − 1 = 2x 2 − 1.Risulta fondamentale che tale costruzione del pol<strong>in</strong>omio T n+1 (x) rende semplicela valutazione degli zeri, <strong>in</strong>fatti(n + 1)ϑ = π 2cos((n + 1)ϑ) = 0+ kπ =(2k + 1)π2da si ottiene ϑ = 2k+12n+2π per n = 0, ±1, ±2, ...Inne si sono trovati i valori delle ascisse di <strong>in</strong>terpolazionex k = cos ϑ k = cos( 2k + 1 π) con k = 0, 1, 2.....n.2n + 2É stato già precisato che l'<strong>in</strong>tervallo di riferimento è [−1, 1], qu<strong>in</strong>di se si voglionoottenere i nodi di Chebychev <strong>in</strong> un <strong>in</strong>tervallo qualsiasi [a, b] occorrerà applicarela trasformazione
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 16t = b − a22.2.7 Funzione di Rungex + b + a2 . (2.13)Tale funzione viene denita nell'<strong>in</strong>tervallo [−1, 1] ed ha la seguente espressionef(x) =11 + 25x 2 .Essa è una funzione <strong>in</strong>nitamente dierenziabile. L'errore di <strong>in</strong>terpolazionecorrispondente ai nodi equispaziati tende all'<strong>in</strong>nito, mentre l'errore di <strong>in</strong>terpolazionecon i nodi di Chebychev tende a zero. La gura 2.4 rappresenta lafunzione di Runge e i pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> di Lagrange valutati sia coi nodiequispaziati sia che con quelli di Chebychev.• listato di riferimento : P rogramma 02Figura 2.4: Interpolazione con Lagrange della funzione di RungeLa funzione di Runge mette <strong>in</strong> evidenza che l'utilizzo di nodi equispaziati nongarantisce la convergenza <strong>dell'errore</strong> a zero e il pol<strong>in</strong>omio <strong>in</strong>terpolante non risultapiù una buona approssimazione della funzione di partenza.
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 172.3 Applicazioni <strong>in</strong> Matlab con i pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong>Applicazione 1 : <strong>Pol<strong>in</strong>omi</strong> <strong><strong>in</strong>terpolanti</strong> di LagrangeLa prima applicazione mostra per una funzione f(x) i pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong>ottenuti variando il grado e la scelta <strong>dei</strong> nodi (equispaziati o di Chebychev).Una volta ssata la disposizione <strong>dei</strong> nodi, scegliamo il grado m<strong>in</strong>imo a cui siamo<strong>in</strong>teressati e il grado massimo, per semplicità rappresentiamo otto pol<strong>in</strong>omi perotto gradi dierenti; i parametri scelti <strong>in</strong>izialmente sono:• f(x) = s<strong>in</strong>(2πx)• n = 3 : 10• 201 punti per la visualizzazione e valutazione dell ′ errore• listato di riferimento : P rogramma 04.Figura 2.5: Nodi Equispaziati: pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> Lagrange con gradovariabileL'<strong>in</strong>tervallo di riferimento per la funzione <strong>in</strong> esame è [0, 1], quando si scelgonoi nodi di Chebychev è necesaria la trasformazione imponendo a = 0 e b = 1 eapplicando dunque la 2.13.Il graco <strong>dell'errore</strong> 2.7 è ottenuto calcolando la norma 2 del vettore erroreottenuto per ognuno <strong>dei</strong> 16 pol<strong>in</strong>omi rappresentati nei graci 2.6e2.7. Si potràdunque apprezzare come al variare del grado varia l'errore nel caso di nodiequispaziati e di Chebychev.
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 18Figura 2.6: Nodi Chebychev:pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> Lagrange con grado variabileFigura 2.7: Confronto errore al variare del grado del pol<strong>in</strong>omio <strong>in</strong>terpolante diLagrange e <strong>dei</strong> nodi
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 19Applicazione 2 :<strong>Pol<strong>in</strong>omi</strong> <strong><strong>in</strong>terpolanti</strong> di NewtonLa seconda applicazione realizzata mette a confronto per la funzione f(x) ipol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> di Newton ottenuti variando il grado e la scelta <strong>dei</strong> nodi(equispaziati o di Chebychev).Una volta ssata la disposizione <strong>dei</strong> nodi, si scelgono il grado m<strong>in</strong>imo e il gradomassimo; per semplicità sono stati rappresentati ancora una volta otto pol<strong>in</strong>omiper otto gradi dierenti; i parametri scelti <strong>in</strong>izialmente sono:• f(x) = s<strong>in</strong>(2πx)• n = 3 : 10• 201 punti per la visualizzazione e valutazione dell ′ errore• listato di riferimento : P rogramma 06.Figura 2.8: Nodi Equispaziati: pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> Newton con grado variabileUtilizzando la funzione ylim è stato ssato l'<strong>in</strong>tervallo di riferimento nell'assey. L'<strong>in</strong>tervallo scelto è stato [−2, 2].
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 20Figura 2.9: Nodi Chebychev:pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> Newton con grado variabileIl graco complessivo mostra ancora una volta come l'errore nel caso di nodi diChebychev sia m<strong>in</strong>ore di quello valutato nel caso di nodi equispaziati per ognipol<strong>in</strong>omio rappresentato.Figura 2.10: Confronto errore al variare del grado del pol<strong>in</strong>omio <strong>in</strong>terpolante diNewton e <strong>dei</strong> nodi
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 21Applicazione 3 : Funzione di Runge con Lagrange e NewtonPer la terza applicazione utilizziamo la funzione di Runge presentata alla sezione2.2.7.La costruzione <strong>dell'errore</strong> è stata fatta utilizzando sia i pol<strong>in</strong>omi di Lagrangeche di Newton ma siccome i risultati sono pressochè gli stessi si presentanosolo i graci relativi al pol<strong>in</strong>omio <strong>in</strong>terpolante di Lagrange; i parametri scelti<strong>in</strong>izialmente sono:• f(x) = 11+25x 2 nell'<strong>in</strong>tervallo di riferimento [−1, 1]• n = 3 : 10• 201 punti per la visualizzazione e valutazione dell ′ errore• listati di riferimento : P rogramma 09, P rogramma 10 .Figura 2.11: Nodi Equispaziati: pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> Lagrange con gradovariabile
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 22Figura 2.12: Nodi Chebychev:pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> Lagrange con gradovariabileFigura 2.13: Confronto errore al variare del grado del pol<strong>in</strong>omio <strong>in</strong>terpolante diLagrange e <strong>dei</strong> nodiLe gure 2.11, 2.12, 2.13 sono state prodotte dal listato nel P rogramma 09allegato alla tes<strong>in</strong>a.
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 23Applicazione 4 :presentateLimiti e osservazioni sulle <strong>applicazioni</strong>Le <strong>applicazioni</strong> precedenti dimostrano come l'errore ottenuto nel caso di nodi diChebychev sia sempre <strong>in</strong>feriore a quello ottenuto considerando nodi equispaziati,erano <strong>dei</strong> risultati prevedibili sostenuti anche dal 2.2.5.Aumentando ulteriormente il grado del pol<strong>in</strong>omio di Lagrange, l'errore valutatocoi nodi equispaziati staziona a valori molto elevati, mentre quello valutato co<strong>in</strong>odi di Chebychev è praticamente nullo:• n = 68 : 75• listati di riferimento : P rogramma 07, P rogramma 08,• P rogramma 11, P rogramma 12.Figura 2.14: Funzione seno, confronto errore al variare del grado e <strong>dei</strong> nodi delpol<strong>in</strong>omio <strong>in</strong>terpolante di LagrangeUtilizzando <strong>in</strong>vece i pol<strong>in</strong>omi di Newton, con la stessa funzione e lo stesso <strong>in</strong>tervallodi variazione del grado si ha che nel caso di nodi di Chebychev laconvergenza non è garantita e l'errore diventa addirittura superiore al caso d<strong>in</strong>odi equispaziati.Inne la gura 2.16 mostra come approssimando la funzione di Runge con il pol<strong>in</strong>omiodi Lagrange l'errore calcolato usando i nodi equispaziati è molto elevato,mentre quello coi nodi di Chebychev è praticamente nullo.
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 24Figura 2.15: Funzione seno, confronto errore al variare del grado del pol<strong>in</strong>omio<strong>in</strong>terpolante di Newtone <strong>dei</strong> nodiFigura 2.16: Confronto errore al variare del grado del pol<strong>in</strong>omio <strong>in</strong>terpolante diLagrange e <strong>dei</strong> nodi con la funzione di Runge
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 25Figura 2.17: Confronto errore al variare del grado del pol<strong>in</strong>omio <strong>in</strong>terpolante diNewton e <strong>dei</strong> nodi con la funzione di RungeApprossimando <strong>in</strong>vece la funzione di Runge con il pol<strong>in</strong>omio di Newton e mantenendola stessa variazione del grado del pol<strong>in</strong>omio ottengo la gura 2.17 doveentrambi gli errori convergono a valori alti tanto da far perdere di signicatol'<strong>in</strong>terpolazione stessa.Per concludere si noti come i nodi di Chebychev all'aumentare del grado, <strong>in</strong>prossimità del valore −1 siano talmente vic<strong>in</strong>i, da causare un eetto analogoa quelli equispaziati, <strong>in</strong>fatti i nodi di Chebychev a dierenza di quelli equispaziatisi dispongono molto più vic<strong>in</strong>i agli estremi dell'<strong>in</strong>tervallo tanto da risultarea parità di grado del pol<strong>in</strong>omio <strong>in</strong>terpolante più vic<strong>in</strong>i di quelli equispaziati. La gura2.18 mostra questo eetto per n = 75 estrapolata dallistato di riferimento : P rogramma 12.2.3.1 ConclusioniCon le sezioni precedenti si è visto come applicare correttamente i pol<strong>in</strong>omi diLagrange e di Newton, evidenziando per ognuno i limiti di applicazione.Si consideri il caso della funzione f(x) = s<strong>in</strong>(2πx) nell'<strong>in</strong>tervallo di riferimento[0, 1], <strong>in</strong>terpolata con il pol<strong>in</strong>omio di Newton scelto con un grado molto elevato.É stata ottenuta la gura 2.19 imponendo i seguenti parametri:• n = 75;• 51 punti per visualizzare la funzione
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 26Figura 2.18: <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante di Newton con n=75 e nodi di Chebychev• escursione asse y limitata all ′ <strong>in</strong>tervallo [−4, 4]• 76 nodi equispaziati• listato di riferimento : P rogramma 13Sia i pol<strong>in</strong>omi di Lagrange che quelli di Newton per come sono deniti, sonoutilizzati pr<strong>in</strong>cipalmente quando il numero <strong>dei</strong> punti di <strong>in</strong>terpolazione non ètroppo elevato. Si può notare, <strong>in</strong>dipendentemente dal tipo di nodi scelti, chequando il grado cresce <strong>in</strong> maniera troppo elevata il pol<strong>in</strong>omio diverge ( non<strong>in</strong>terpola nemmeno i punti <strong>in</strong> cui dovrebbe valere la condizione di appartenenza).Lo studio condotto fa emergere i problemi numerici che mostrano il limite diapplicazione di tali pol<strong>in</strong>omi. Se si vuole approssimare una funzione con unnumero di punti di <strong>in</strong>terpolazione elevato si ricorre ad un altra classe di funzioni,le funzioni SP LINE , che approssimano la funzione con pol<strong>in</strong>omi di grado bassoraccordati adeguatamente per soddisfare un numero di punti <strong><strong>in</strong>terpolanti</strong> moltogrande.
CAPITOLO 2. APPROSSIMAZIONE DI FUNZIONI 27Figura 2.19: Funzione seno approssimata con un pol<strong>in</strong>omio di Newton di gradon=75
Capitolo 3Interpolazione <strong>3D</strong>3.1 Interpolazione di Lagrange <strong>in</strong> <strong>3D</strong>In questo caso si è trattato di eettuare un'<strong>in</strong>terpolazione bidimensionale conproiezione lungo l'asse z. Siano date le coppie di punti (n x , n y ) che vanno aformare una griglia sul piano xy. Mentre nel paragrafo 2.2.2 si andavano acalcolare n pol<strong>in</strong>omi <strong>in</strong>terpolatori ora questi sono dati <strong>in</strong> questa formap nx,n y(x, y) =dove f i,j (x, y) = L i (x)L j (y).n∑x+1i=1n∑ y+1j=1z(x i , y j )f i,j (x, y), (3.1)3.1.1 Applicazione <strong>in</strong>terpolazione di Lagrange <strong>in</strong> <strong>3D</strong>É stata costruita una funzione per eettuare l'<strong>in</strong>terpolazione <strong>in</strong> <strong>3D</strong> <strong>in</strong> riferimentoal paragrafo 3.1.Sono stati impostati i seguenti parametri:• m = 41• n x = 4• n y = 4• nodi equispaziati sia per asse x che per asse y.• listati di riferimento : P rogramma 14, P rogramma 15La funzione errore è riportata <strong>in</strong> gura 3.2.28
CAPITOLO 3. INTERPOLAZIONE <strong>3D</strong> 29List<strong>in</strong>g 3.1: Funzione new_lag<strong>in</strong>t_<strong>3D</strong>%f u n c t i o n [ px , py , Lx , Ly ,P, Zf ]=new_lag<strong>in</strong>t_<strong>3D</strong> ( x , y , t_x , t_y , fx , f y )function [ P, Zf ]=new_lag<strong>in</strong>t_<strong>3D</strong> ( x , y , t_x , t_y , fx , f y )m = length ( x ) ;%numero d e i p u n t i s c e l t i per v a l u t a r e l a f u n z i o n en_x= length ( t_x ) −1;%numero d e i p u n t i d i i n t e r p o l a z i o n en_y= length ( t_y ) −1;%Si richiama l a f u n z i o n e new_lag<strong>in</strong>t per l a c o s t r u z i o n e d e i pol<strong>in</strong>omi%i n t e r p o l a n t i px , py e l e f u n z i o n i d i Lagrange Lx , Ly[ px , Lx]= new_lag<strong>in</strong>t ( x , t_x , f x ) ;[ py , Ly]= new_lag<strong>in</strong>t ( y , t_y , f y ) ;[ Xt , Yt]=meshgrid(t_x , t_y ) ;%Zt=z e r o s (n_y+1,n_x+1) ;Zf=(s<strong>in</strong> (2∗ pi ∗Xt ) . ∗ s<strong>in</strong> (2∗ pi ∗Yt ) ) ' ;P=zeros (m) ; %matrice quadrata contenente i l pol<strong>in</strong>omio i n t e r p o l a n t efor k=1:m %k i n d i c e r i g a matrice Pfor l =1:m %l i n d i c e colonnafor i =1:n_x+1 %i n d i c e r i g a matrice Zf contenente l af u n z i o n e Z%c a l c o l a t a nei p u n t i d i i n t e r p o l a z i o n efor j =1:n_y+1 % i n d i c e colonnaP( k , l )=P( k , l )+(Zf ( i , j ) ∗(Lx ( k , i ) ∗Ly ( l , j ) ) ) ;endendendendFigura 3.1: Funzione da <strong>in</strong>terpolare
CAPITOLO 3. INTERPOLAZIONE <strong>3D</strong> 30Figura 3.2: Funzione errore con n x = 4, n y = 4Osservazioni gura 3.3Come si vede nel listato, la funzione new lag<strong>in</strong>t <strong>3D</strong> è stata implementata perpermettere un campionamento <strong>dei</strong> nodi diverso per i due assi. In particolarenella gura <strong>in</strong> esame la scelta è stata la seguente:• n x = 60• n y = 65ovvero 61 punti di <strong>in</strong>terpolazioneovvero 66 punti di <strong>in</strong>terpolazioneIl fenomeno che si osserva nella gura è analogo a quello che avviene nell'approssimazionedi funzioni <strong>in</strong> 2D. All'aumentare del grado i pol<strong>in</strong>omi caratteristicidi Lagrange diventano sempre più <strong>in</strong>stabili specialmente quando calcolati pervalori vic<strong>in</strong>i agli estremi dell'<strong>in</strong>tervallo. Infatti per come sono deniti (equazione2.7), il rapporto <strong>in</strong>terno alla produttoria avrà un numeratore sempre piùgrande e un denom<strong>in</strong>atore sempre più piccolo al crescere del grado <strong>dei</strong> pol<strong>in</strong>omie dunque dell'<strong>in</strong>dice k. Per valori molto elevati come quelli <strong>in</strong> esame il valore<strong>dei</strong> pol<strong>in</strong>omi di Lagrange nei punti agli angoli della gura diventa estremamentegrande. L'eetto è stato tale da non permettere <strong>in</strong>izialmente la visualizzazionedella gura, per evitare questo sono stati <strong>in</strong>trodotti <strong>dei</strong> cicli for per limitare ivalori della matrice contenente i punti utili per la visualizzazione del pol<strong>in</strong>omio<strong>in</strong>terpolante nell'<strong>in</strong>tervallo [−2, 2], <strong>in</strong> questo modo è stato possibile rendere visibilela gura. In realtà le oscillazioni agli angoli sono dunque molto più ampieed evidenziano ancora una volta i limiti dell'<strong>in</strong>terpolazione di Lagrange quandoil numero <strong>dei</strong> nodi scelti è molto elevato.
CAPITOLO 3. INTERPOLAZIONE <strong>3D</strong> 31Figura 3.3: <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante n x = 60, n y = 653.1.2 Funzione di Runge e pol<strong>in</strong>omio <strong>in</strong>terpolante <strong>in</strong> <strong>3D</strong>I graci precedenti sono riferiti alla funzione f(x, y) = s<strong>in</strong>(2πx) s<strong>in</strong>(2πy) che nelcaso di identico campionamento degli assi equivale al s<strong>in</strong> 2 (2πx). Si consideri1 1ora la funzione f(x, y) =1+25x 2 1+25ye per semplicità si utilizzi lo stesso2campionamento degli assi, e dunque lo stesso grado del pol<strong>in</strong>omio <strong>in</strong>terpolanteper le due dimensioni. Siccome i nodi equispaziati scelti per la funzione di Rungenon danno una buona approssimazione sono state sviluppate due <strong>applicazioni</strong>.Applicazione 1Sono stati scelti i seguenti parametri:• m = 41 punti <strong>in</strong> cui si valutano la funzione• n = 10• nodi Chebychev• listato di riferimento : P rogramma 16, P rogramma 17.L'errore è calcolato come dierenza della matrice Z rappresentativa della funzionedi Runge <strong>in</strong> due variabili e della matrice P rappresentativa del pol<strong>in</strong>omio<strong>in</strong>terpolante. La matrice Z è ottenuta adoperando per prima cosa la funzione<strong>in</strong> matlab meshgrid(x, y) (dove x e y sono i due vettori di dimensione m) perottenere le matrici X e Y ; poi Z = (1./(1 + 25 ∗ X. 2 )). ∗ (1./(1 + 25 ∗ Y. 2 )).La funzione che si usa per rappresentare tali matrici <strong>in</strong> <strong>3D</strong> è surf(X, Y, Z),tale graco è <strong>in</strong> gura 3.4, <strong>in</strong> gura 3.5 è <strong>in</strong>vece rappresentato il pol<strong>in</strong>omio
CAPITOLO 3. INTERPOLAZIONE <strong>3D</strong> 32Figura 3.4: Funzione di Runge <strong>in</strong> due variabili<strong>in</strong>terpolante di grado 10 che si ottiene con la sequenza di comandi presente nelP rogramma 16 allegato alla tes<strong>in</strong>a; <strong>in</strong>ne <strong>in</strong> gura3.6 è riportato l'errore.Applicazione 2 In analogia alle funzioni <strong><strong>in</strong>terpolanti</strong> sviluppate nel capitolo2, si propone un confronto fra la funzione di Runge (<strong>in</strong> due variabili) <strong>in</strong>terpolatacon pol<strong>in</strong>omi coi nodi equispaziati e con pol<strong>in</strong>omi che utilizzano i nodidi Chebychev; il grado del pol<strong>in</strong>omio sarà fatto variare nell'<strong>in</strong>tervallo [5, 8] ritenutosuciente per mostrare come gli stessi fenomeni osservati nel capitolo2 si ripresent<strong>in</strong>o anche nel caso <strong>3D</strong>. La funzione di Runge è stata valutatanell'<strong>in</strong>tervallo [−1, 1] e tutti gli assi sono stati settati utilizzando il comandoaxis([−1 1 − 1 1 − 1 1]).Nella gura 3.7 sono presentati quattro pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> della funzione diRunge <strong>in</strong> due variabili, nella gura 3.8 è rappresentato l'errore. Nelle gure3.9 e 3.10 sono rappresentati rispettivamente i pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> valutatiutilizzando i nodi di Chebychev e il relativo errore valutato come spiegato nellaprima applicazione presentata.Sono stati riscontrati gli stessi problemi <strong>in</strong>contrati nel capitolo 2, all'aumentaredel grado del pol<strong>in</strong>omio <strong>in</strong>terpolante e dunque del numero di nodi si presentanodue situazioni dierenti a seconda della disposizione di essi:• Nodi equispaziati: all'aumentare del grado si può notare come le oscillazionidel pol<strong>in</strong>omio <strong>in</strong>terpolante aument<strong>in</strong>o e di come l'errore diventi semprepiù grande. La scelta <strong>dei</strong> nodi equispaziati non garantisce la convergenza<strong>dell'errore</strong> a zero e con tale disposizione risulta <strong>in</strong>utile avere molti punti di
CAPITOLO 3. INTERPOLAZIONE <strong>3D</strong> 33Figura 3.5: <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante con n = 10Figura 3.6: Funzione errore Z − P
CAPITOLO 3. INTERPOLAZIONE <strong>3D</strong> 34Figura 3.7: Nodi Equispaziati: pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong>campionamento. Pertanto conoscere meglio la funzione <strong>in</strong> term<strong>in</strong>i di puntida <strong>in</strong>terpolare non si traduce <strong>in</strong> una maggiore precisione del pol<strong>in</strong>omio<strong>in</strong>terpolante.• Nodi Chebychev: all'aumentare del grado si evidenziano i problemi numerici<strong>in</strong>contrati nel capitolo 2 . Nonostante ciò la scelta <strong>dei</strong> nodi di Chebychevgarantisce ancora una volta una approssimazione migliore rispetto a<strong>in</strong>odi equispaziati.
CAPITOLO 3. INTERPOLAZIONE <strong>3D</strong> 35Figura 3.8: Nodi Equispaziati:erroreFigura 3.9: Nodi Chebychev:<strong>Pol<strong>in</strong>omi</strong> <strong><strong>in</strong>terpolanti</strong>
CAPITOLO 3. INTERPOLAZIONE <strong>3D</strong> 36Figura 3.10: Nodi Chebychev: Errore
Capitolo 4Approssimazione ai m<strong>in</strong>imiquadratiIl pol<strong>in</strong>omio di migliore approssimazione per una funzione f è quel pol<strong>in</strong>omiodi grado n che m<strong>in</strong>imizza la norma <strong>dell'errore</strong>m<strong>in</strong> ‖p n − f‖ .p nɛ Π nDove utilizzando la norma <strong>in</strong>nito si parla di migliore approssimazione uniformee l'espressione assume questa forma‖p n − f‖ ∞= maxxɛ [a,b] |p n(x) − f(x)| ,<strong>in</strong>vece il pol<strong>in</strong>omio che m<strong>in</strong>imizza la norma di L 2 [a, b] è così dato(ˆ b‖p n − f‖ 2= [p n (x) − f(x)] 2 dxachiamato di migliore approssimazione nel senso <strong>dei</strong> m<strong>in</strong>imi quadrati.Tra i due problemi quello più utilizzato, per l'approssimazione di funzioni, èl'ultimo <strong>in</strong> quanto richiede un m<strong>in</strong>or costo computazionale.) 124.1 Caso discretoIn diversi problemi la funzione da approssimare è conosciuta tramite un certonumero di valori aetti da errore. Data la forte presenza di errori sui dati non hasenso <strong>in</strong>terpolare ma si eettua un'approssimazione ai m<strong>in</strong>imi quadrati tramiteuna discretizzazione della norma-2.37
CAPITOLO 4. APPROSSIMAZIONE AI MINIMI QUADRATI 38Si consider<strong>in</strong>o la ascisse {x 0 , x 1 , ..., x m } degli m + 1 punti per i quali sono notii valori {y 0 , y 1 , ..., y m } pertanto y i = f(x i ). Fissato un numero naturale n ≤ mper ogni p n ɛ Π n si considera la norma‖p n − f‖ 2=( m∑i=0[p n (x) − f(x)] 2 ) 12. (4.1)Si vuole determ<strong>in</strong>are il pol<strong>in</strong>omio p ∗ n(x) di grado n che risolva il problema dim<strong>in</strong>imom<strong>in</strong>p nɛ Π n‖p n − f‖ 2 2 , (4.2)poichè i problemi sono equivalenti si m<strong>in</strong>imizza il quadrato della norma.Se m = n la soluzione co<strong>in</strong>cide con il pol<strong>in</strong>omio <strong>in</strong>terpolante, se m > n <strong>in</strong>vecefornisce la miglior approssimazione nel senso <strong>dei</strong> m<strong>in</strong>imi quadrati rispetto allanorma discreta (4.1).Si esprime la formula e poi la si m<strong>in</strong>imizza; usando la base canonica si ottienep n (x i ) =n∑a j x j i = (Xa) i, i = 0, ..., m,j=0dove a = (a 0 , ..., a n ) T ɛ R n+1 è il vettore <strong>dei</strong> coecienti del pol<strong>in</strong>omio e X è lamatrice di Vandermonde rettangolare di dimensione (m + 1) × (n + 1)Qu<strong>in</strong>di si può scrivere⎡⎤m‖p n − f‖ 2 2 = ∑ n∑⎣ a j x j i − y ⎦ii=0⎡⎤1 x 0 x 2 0 · · · x n 01 x 1 x 2 1 · · · x n 1X = ⎢⎣...⎥. ⎦ .1 x m x 2 m · · · x n mj=02=m∑[(Xa) i − y i ] 2 = ‖Xa − y‖ 2 2 ,pertanto il problema (4.2) è equivalente alla risoluzione del problemai=0m<strong>in</strong> ‖Xa −a ɛ R y‖2 n 2 ,cioè alla risoluzione nel senso <strong>dei</strong> m<strong>in</strong>imi quadrati del sistema l<strong>in</strong>eare sovradeterm<strong>in</strong>atoX T Xa = X T y (4.3)oppure usando la fattorizzazione Cholesky della matrice X T X o la fattorizzazioneQR della matrice X.
CAPITOLO 4. APPROSSIMAZIONE AI MINIMI QUADRATI 39Figura 4.1: Approssimazione ai m<strong>in</strong>imi quadrati per alcuni valori di n4.2 Applicazione <strong>in</strong> MatlabQuesto capitolo aggiuntivo ha l' obiettivo di esplorare alcune funzioni matlabutili per risolvere <strong>dei</strong> problemi ai m<strong>in</strong>imi quadrati. Supponiamo di avere lafunzione f(x) = s<strong>in</strong>(πx) e di disturbarla <strong>in</strong> N = 50 punti con delle variazionirandom, <strong>in</strong> modo da avere non più un s<strong>in</strong>(πx) ma una funzione simile disturbata.L'obiettivo è quello di approssimare tale funzione disturbata non piùconsiderando i punti di <strong>in</strong>terpolazione ma nel senso <strong>dei</strong> m<strong>in</strong>imi quadrati.In particolare sono state utilizzate le due funzioni: polyt e polyval.• polyfit(t, b, n): crea il pol<strong>in</strong>omio di grado n che approssima il pol<strong>in</strong>omionel senso <strong>dei</strong> m<strong>in</strong>imi quadrati.• polyval(a, x): calcola il valore del pol<strong>in</strong>omio negli m punti scelti per lavisualizzazione.Il programma matlab di riferimento è il P rogramma 18.É stato possibile implementare l'algoritmo soprastante tramite l'uso di funzionifornite da Matlab. In particolare sono state utilizzate le due funzioni: polyt epolyval.• Polyt: generalmente è usata per costruire il pol<strong>in</strong>omio <strong>in</strong>terpolante ma<strong>in</strong> questo caso il risultato non è un pol<strong>in</strong>omio che passa per i punti dati,ma un pol<strong>in</strong>omio che cerca di ricostruire l'<strong>in</strong>sieme <strong>dei</strong> dati.• Polyval: permette di determ<strong>in</strong>are il pol<strong>in</strong>omio <strong>in</strong> determ<strong>in</strong>ati punti.
CAPITOLO 4. APPROSSIMAZIONE AI MINIMI QUADRATI 40Figura 4.2: Graco dell' errore al variare del gradoLa gura 4.1 mostra la valutazione del pol<strong>in</strong>omio <strong>in</strong>terpolante per diversi valoridel grado n , l'errore associato a tali pol<strong>in</strong>omi è riportato <strong>in</strong> scala logaritmicanella gura 4.2.
Elenco delle gure2.1 <strong>Pol<strong>in</strong>omi</strong> caratteristici di Lagrange . . . . . . . . . . . . . . . . . 82.2 <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante di grado n = 4 . . . . . . . . . . . . . . . 92.3 Errore pol<strong>in</strong>omio <strong>in</strong>terpolante di Lagrange con n=4 . . . . . . . . 132.4 Interpolazione con Lagrange della funzione di Runge . . . . . . . 162.5 Nodi Equispaziati: pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> Lagrange con gradovariabile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.6 Nodi Chebychev:pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> Lagrange con grado variabile 182.7 Confronto errore al variare del grado del pol<strong>in</strong>omio <strong>in</strong>terpolantedi Lagrange e <strong>dei</strong> nodi . . . . . . . . . . . . . . . . . . . . . . . . 182.8 Nodi Equispaziati: pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> Newton con grado variabile. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.9 Nodi Chebychev:pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> Newton con grado variabile 202.10 Confronto errore al variare del grado del pol<strong>in</strong>omio <strong>in</strong>terpolantedi Newton e <strong>dei</strong> nodi . . . . . . . . . . . . . . . . . . . . . . . . . 202.11 Nodi Equispaziati: pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> Lagrange con gradovariabile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.12 Nodi Chebychev:pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> Lagrange con grado variabile 222.13 Confronto errore al variare del grado del pol<strong>in</strong>omio <strong>in</strong>terpolantedi Lagrange e <strong>dei</strong> nodi . . . . . . . . . . . . . . . . . . . . . . . . 222.14 Funzione seno, confronto errore al variare del grado e <strong>dei</strong> nodi delpol<strong>in</strong>omio <strong>in</strong>terpolante di Lagrange . . . . . . . . . . . . . . . . 232.15 Funzione seno, confronto errore al variare del grado del pol<strong>in</strong>omio<strong>in</strong>terpolante di Newtone <strong>dei</strong> nodi . . . . . . . . . . . . . . . . . . 242.16 Confronto errore al variare del grado del pol<strong>in</strong>omio <strong>in</strong>terpolantedi Lagrange e <strong>dei</strong> nodi con la funzione di Runge . . . . . . . . . . 242.17 Confronto errore al variare del grado del pol<strong>in</strong>omio <strong>in</strong>terpolantedi Newton e <strong>dei</strong> nodi con la funzione di Runge . . . . . . . . . . 252.18 <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante di Newton con n=75 e nodi di Chebychev 262.19 Funzione seno approssimata con un pol<strong>in</strong>omio di Newton di gradon=75 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2741
ELENCO DELLE FIGURE 423.1 Funzione da <strong>in</strong>terpolare . . . . . . . . . . . . . . . . . . . . . . . 293.2 Funzione errore con n x = 4, n y = 4 . . . . . . . . . . . . . . . . . 303.3 <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante n x = 60, n y = 65 . . . . . . . . . . . . . 313.4 Funzione di Runge <strong>in</strong> due variabili . . . . . . . . . . . . . . . . . 323.5 <strong>Pol<strong>in</strong>omi</strong>o <strong>in</strong>terpolante con n = 10 . . . . . . . . . . . . . . . . . 333.6 Funzione errore Z − P . . . . . . . . . . . . . . . . . . . . . . . . 333.7 Nodi Equispaziati: pol<strong>in</strong>omi <strong><strong>in</strong>terpolanti</strong> . . . . . . . . . . . . . . 343.8 Nodi Equispaziati:errore . . . . . . . . . . . . . . . . . . . . . . 353.9 Nodi Chebychev:<strong>Pol<strong>in</strong>omi</strong> <strong><strong>in</strong>terpolanti</strong> . . . . . . . . . . . . . . . 353.10 Nodi Chebychev: Errore . . . . . . . . . . . . . . . . . . . . . . . 364.1 Approssimazione ai m<strong>in</strong>imi quadrati per alcuni valori di n . . . . 394.2 Graco dell' errore al variare del grado . . . . . . . . . . . . . . 40