• Non ci sono risultati.

Interpolazione polinomiale.

N/A
N/A
Protected

Academic year: 2021

Condividi "Interpolazione polinomiale."

Copied!
19
0
0

Testo completo

(1)

Interpolazione polinomiale.

Alvise Sommariva Universit`a degli Studi di Padova

Dipartimento di Matematica 15 aprile 2015

(2)

Interpolazione polinomiale

Sia Pnlo sp. vett. dei polinomi di grado n in R. Date n + 1 coppie

(x0,y0), . . ., (xn,yn) con xj 6= xk se j 6= k, si calcoli pn∈ Pn t.c.

pn(xk) = yk, k = 0, . . . , n

Tali polinomi pn si dicono interpolare {(xk, yk)}k=0,...,n oppure

interpolare i valori yk nei nodi xk.

−5 0 5 −1.5 −1 −0.5 0 0.5 1 cos(x) interpolante(x) Coppie da interpolare

(3)

Alcuni fatti

Alcune questioni risultano di importanza fondamentale:

I Esiste tale polinomio ed `e unico? S`ı.

I E possibile calcolarlo` ? S`ı, pn(x ) =Pnk=0ykLk(x ), dove Lk `e il

k-simo polinomio di Lagrange relativo ai punti {xk}k=0,...,n,

cio`e Lk(x ) = n Y j = 0 j 6= k x − xj xk − xj Nota. (Facoltativa)

Sia f ∈ C(n+1)(a, b) e sia pn il polinomio che interpola le coppie {(xk, yk)}k=0,...,ncon xk6= xs se k 6= s. Allora

f (x ) − pn(x ) = f(n+1)(ξ) Qn

i =0(x − xi)

(n + 1)! (1)

dove ξ ∈ I con I il pi`u piccolo intervallo aperto contenente x0, . . . , xn.

(4)

Alcune scelte dei nodi

Consideriamo l’intervallo chiuso e limitato [a, b]. Vediamo alcuni sets di nodi.

I Equispaziati: xk = a + k (b−a)n , k = 0, . . . , n.

I Gauss-Chebyshev (scalati): fissato n, i punti sono

xk = (a + b) 2 + (b − a) 2 tk, k = 0, . . . , n (2) con tk = cos  2k + 1 2n + 2π  , k = 0, . . . , n; (3)

I Gauss-Chebyshev-Lobatto (scalati): fissato n, i punti sono

(5)

Interpretazione geometrica Gauss-Chebyshev-Lobatto

I punti di Gauss-Chebyshev-Lobatto si possono interpretare geometricamente.

I Si considerano gli n + 1 punti della circonferenza

{(cos(θk), sin(θk))}k=0,...,n con θk = (k · π)/n

I Si proiettano {(cos(θk), sin(θk))}k=0,...,n sull’asse delle ascisse.

Le coordinate x di tali punti corrispondono ai punti di Gauss-Chebyshev-Lobatto. −1 −0.5 0 0.5 1 −0.2 0 0.2 0.4 0.6 0.8 1 1.2

Figura : Interpretazione geometrica dei punti di Gauss-Chebyshev-Lobatto.

(6)

Convergenza ed esempio di Runge

L’interpolante polinomiale in un set di nodi prefissati non converge sempre puntualmente alla funzione da approssimare. Infatti, per la funzione di Runge

f (x ) = 1

1 + x2, x ∈ [−5, 5] (6)

si ha che

I ilpolinomio interpolatore pn in nodi equispaziati non converge

(puntualmente) a f;

I ci`o non succede per i nodi di Gauss-Chebyshev(-Lobatto).

Nota. (Facoltativo)

Purtroppo, per un teorema dovuto a Faber, esistono comunque funzioni continue f (ma non C1!!) tali che l’interpolante pn nei nodi di

(7)

Esempio di Runge

−5 0 5 −4 −3.5 −3 −2.5 −2 −1.5 −1 −0.5 0 0.5 1 Runge Equisp. Gauss−Cheb−Lob.

Figura : Grafico della funzione di Runge 1/(1 + x2) nell’intervallo [−5, 5]

e delle sue interpolanti di grado 12 nei nodi equispaziati e di Gauss-Chebyshev-Lobatto.

(8)

Esempio di Runge

−5 0 5 0 0.5 1 1.5 2 2.5 3 3.5 4 Equisp. Gauss−Cheb−Lob.

Figura : Grafico errore della funzione di Runge 1/(1 + x2) nell’intervallo

(9)

Esempio di Runge

Se pn∈ Pn `e polinomio intp. nei nodi eqsp. o di G.-C.-L., vediamo

al variare del grado quali sono gli errori k1/(1 + x2) − pn(x )k∞:

Deg Err. Eqs. Err. GCL

2 6.46e − 001 9.62e − 001 3 7.07e − 001 6.46e − 001 4 4.38e − 001 8.29e − 001 5 4.33e − 001 4.58e − 001 6 6.09e − 001 6.39e − 001 7 2.47e − 001 3.11e − 001 8 1.04e + 000 4.60e − 001 9 2.99e − 001 2.04e − 001 10 1.92e + 000 3.19e − 001 11 5.57e − 001 1.32e − 001 12 3.66e + 000 2.18e − 001 13 1.07e + 000 8.41e − 002 14 7.15e + 000 1.47e − 001

(10)

Esempio di Runge

Importante.

L’esempio di Runge mostra che esiste una funzione C∞([−5, 5])

tale che al crescere del numero di nodi equispaziati n non sia garantita nemmeno la convergenza puntuale!

D’altra parte la convergenza dell’interpolante nei nodi di

Gauss-Chebyshev `e garantita dal seguente teorema.

Teorema (Bernstein)

Se f ∈ C1([a, b]) con [a, b] intervallo limitato e chiuso della retta

reale, il polinomio pn di grado n di interpolazione della funzione f

nei nodi di Gauss-Chebyshev di grado n + 1 converge

uniformemente a f su [a, b], per n → ∞. Se inoltre f ∈ C2([a, b])

si ha la seguente stima dell’errore

(11)

Interpolazione in Matlab/Octave

Supponiamo di dover interpolare le coppie {(xk, yk)}k=0,...,n e

supponiamo sia x = [x0, . . . , xn], y = [y0, . . . , yn]. I coefficienti del

polinomio interpolatore sono ottenibili dal comandopolyfit. A

tal proposito l’help di Matlab 7.7 suggerisce:

>> h e l p p o l y f i t P O L Y F I T Fit p o l y n o m i a l to d a t a . P = P O L Y F I T ( X , Y , N ) f i n d s the c o e f f i c i e n t s of a p o l y n o m i a l P ( X ) of d e g r e e N t h a t f i t s the d a t a Y b e s t in a least−s q u a r e s s e n s e . P is a row v e c t o r of l e n g t h N+1 c o n t a i n i n g the p o l y n o m i a l c o e f f i c i e n t s in d e s c e n d i n g powers , P ( 1 )*XˆN + P ( 2 ) *X ˆ( N−1) +...+ P ( N ) *X + P ( N+1) . . . . >>

(12)

Interpolazione in Matlab/Octave

Per verificare come descrive il polinomio interpolatore eseguiamo il seguente codice >> x=[−2 1 3 ] ; >> y=[−2 11 1 7 ] ; >> a=p o l y f i t( x , y , 2 ) a = −0.2667 4 . 0 6 6 7 7 . 2 0 0 0 >>

In effetti, calcolando manualmente il polinomio interpolatore si ha,

semplificando quanto ottenuto coi polinomi di Lagrange che `e

p2(x ) = (−4/15)·x2+(61/15)·x +(36/5) ≈ −0.26x2+4.06x +7.2.

Quindi, se a = (ak)k=1,...,3, abbiamo p2(x ) = a1x2+ a2x + a3 e

pi`u in generale, se pn`e il polinomio interpolatore di grado n, e

a = (ak) `e il vettore ottenuto utilizzandopolyfit, allora

(13)

Interpolazione in Matlab/Octave

Per valutare in un vettore di ascisse X = [Xk]k=1,...,m un polinomio

pn(x ) = a1xn+ a2xn−1+ . . . + an+1

i cui coefficienti sono i coeff. di in un vettore P = [ak]k=1,...,n+1

usiamo il comandopolyval. Dall’help di Matlab 7.7:

>> h e l p p o l y v a l

P O L Y V A L E v a l u a t e p o l y n o m i a l .

Y = P O L Y V A L ( P , X ) r e t u r n s the v a l u e of a p o l y n o m i a l P e v a l u a t e d at X . P is a v e c t o r of l e n g t h N+1 w h o s e e l e m e n t s are the c o e f f i c i e n t s of the p o l y n o m i a l in d e s c e n d i n g p o w e r s . Y = P ( 1 )*XˆN + P ( 2 ) *X ˆ( N−1) + . . . + P ( N ) *X + P ( N+1) If X is a m a t r i x or vector , the p o l y n o m i a l is e v a l u a t e d at a l l p o i n t s in X . . . . >>

(14)

Interpolazione in Matlab/Octave

Dati i vettori x = [xk]k=1,...,n, y = [yk]k=1,...,n sia pn−1(xk) = yk, per k = 1, . . . , n.

Sia s = [sk]k=1,...,m e desideriamo calcolare t = [tk]k=1,...,m per cui

tk = pn−1(sk), per ogni k.

A tal proposito introduciamo la funzione: f u n c t i o n t=i n t e r p o l ( x , y , s )

(15)

Esempio di Runge

Interpoliamo la funzione di Runge 1/(1 + x2) in [−5, 5] sia su nodi

equispaziati che di tipo Gauss-Chebyshev-Lobatto. A tal proposito definiamo la funzione di Runge

f u n c t i o n [ fx ]= runge ( x ) fx = 1 . / ( x . ˆ 2 + 1 ) ;

e una funzione che genera n nodi di Gauss-Chebyshev-Lobatto nell’intervallo [a, b]:

f u n c t i o n xc=c h e b ( a , b , n )

f o r m = 1 : 1 : n

xc ( m ) =(a+b ) /2 −(( b−a ) / 2 )*c o s(p i*(m−1)/( n−1)) ;

end

(16)

Esempio di Runge

Quindi scriviamo il file esperimento.m

n =12; % GRADO . % NODI TEST .

s = −5:10/(10*n ) : 5 ;

% NODI EQSP . : ASCISSE /ORDINATE + INTP . TEST .

x=−5:10/n : 5 ; y=r u n g e ( x ) ; t=i n t e r p o l ( x , y , s ) ;

% NODI GCL . : ASCISSE /ORDINATE+INTP . TEST .

x g c l=c h e b ( −5 ,5 , n +1) ; y g c l=r u n g e ( x g c l ) ; tt =i n t e r p o l ( xgcl , ygcl , s ) ;

% PLOT INTP . VS RUNGE . p l o t( s , runge ( s ) , s , t , s , tt ) ;

% ERRORI ASSOLUTI .

ee=norm( runge ( s )−t , inf ) ; ec=norm( runge ( s )−tt , inf ) ;

f p r i n t f(’ \n\ t [ ERR . ] [ EQS ] : % 2 . 2 e [ GCL ] : % 2 . 2 e ’, ee , ec ) ;

I [s, t] sono i campionamenti in s del polinomio interpolatore la

funzione di Runge nei nodi equispaziati;

I [s, tt] sono i campionamenti in s del polinomio interpolatore

la funzione di Runge nei nodi di Gauss-Chebyshev-Lobatto;

I [s, runge(s)] sono i campionamenti in s della funzione di

(17)

Esempio di Runge: risultati

Al variare di n:

I Otteniamo la tabella degli errori vista in precedenza.

I Notiamo che la scelta di n non pu`o essere eccessiva. Provare

n = 30!!

I Risulta evidente che non sussiste la convergenza puntuale al

crescere di n, di pn a 1/(1 + x2), qualora si utilizzino nodi

equispaziati.

I Risulta evidente che sussiste la convergenza puntuale al

crescere di n, di pn a 1/(1 + x2), qualora si utilizzino nodi di

Gauss-Chebyshev-Lobatto.

(18)

Esercizi

Esercizio 1

I Calcolare analiticamente il polinomio di terzo grado che

interpola le coppie (1, 0), (2, 2), (4, 12), (5, 21).

I Valutare tale polinomio nei punti di ascissa −1, 0, 10.

I Corrispondono tali valori a quelli ottenuti in Matlab/Octave

(19)

Esercizi

Esercizio 2

Un missile lanciato da terra ha una velocit`a v (t) (metri al secondo) misurata agli istanti t (secondi). Si supponga sia

t v(t) 0 0 10 250 15 350 22 655 25 890 30 910

Usando la tabella, approssimare la velocit´a v (t) agli istanti t = 5s, t = 20s, t = 23s. t = 29s, valutando l’interpolante polinomiale dei dati avente grado 5. Nota.

Non `e detto che il polinomio interpolatore mantenga la struttura

crescente dei dati.

Riferimenti

Documenti correlati

Keywords: Interpolazione polinomiale, esistenza ed unicit`a, interpolazione di Lagrange, errore di interpolazione, il problema della convergenza (controesempio di Runge),

utilizzi quale titolo della seconda figura la stringa ’Errori di interpolazione: nodi GCL’ ed il plot abbia la preferenza ’LineWidth’,2;. salvi su un file errori interpolazione.txt,

per qualche numero naturale s, le splines di grado m sono definite su un insieme di punti arbitrari , indipendentemente dal grado.... tratti di grado 3 Spline cubica

Si noti come in quest’ultimo teorema si afferma come non solo come la spline ap- prossima la funzione, ma come pure le sue derivate convergano uniformemente alle rispettive

Il teorema precedente ` e costruttivo , in quanto non solo permette di stabilire l’esistenza del polinomio interpolatore, ma ne evidenzia un metodo di

Osserviamo che non sempre le funzioni polinomiali a tratti di grado m sono di classe C m−1 come invece lo sono le splines.. Mentre le funzioni a tratti di grado m richiedono che

Si noti come in quest’ultimo teorema si afferma come non solo come la spli- ne approssima la funzione, ma come pure le sue derivate convergano uniformemente alle rispettive

Si osservi che il precedente pseudocodice non calcola le differenze divise attraverso una tabella, ma calcola esclusivamente i coefficienti utili per la determinazione del