13.07.2015 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!