Splines. Alvise Sommariva. Università degli Studi di Padova Dipartimento di Matematica Pura e Applicata. 21 novembre 2011

Documenti analoghi
Interpolazione polinomiale.

p N (x i )= f i, i = 0,..., N. (1)

Corso di Calcolo Scientifico

SPLINES A. SOMMARIVA E M.VENTURIN

Complementi di Matematica e Calcolo Numerico A.A

SPLINES A. SOMMARIVA E M.VENTURIN

Interpolazione e approssimazione di funzioni

Interpolazione. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Esercitazione 7: Aggiornamento minimi quadrati.

Corso di Analisi Numerica

Calcolo Numerico A.A Lab. 6

Interpolazione polinomiale.

Interpolazione polinomiale

Interpolazione. Lucia Gastaldi. DICATAM - Sez. di Matematica,

Corso di Calcolo Numerico

Interpolazione composita di Lagrange

i = 0,...,N 1) siano polinomi di grado m = 3 e globalmente funzioni di classe C m 1 = C 2,

2. Costruire un M function file di Matlab che calcola il valore del

Approssimazione con le splines. Approssimazione con le splines

Minimi quadrati. Ángeles Martínez Calomardo e Alvise Sommariva. 4 dicembre Università degli Studi di Padova

Minimi quadrati in Matlab

kπ cos, k = 0, 1, 2,, n (NB: sono n +1) n

Approssimazione di dati e funzioni

Analisi Numerica I Approssimazione polinomiale

Complementi di Matematica e Calcolo Numerico A.A Polinomi e vettori

Lezione 3 Interpolazione Polinomiale.

Interpolazione di Funzioni

Dimostrazione. Indichiamo con α e β (finiti o infiniti) gli estremi dell intervallo I. Poniamo

Interpolazione polinomiale. Interpolazione polinomiale

Metodi iterativi per equazioni nonlineari.

Esercitazione 7 Maggio

Interpolazione. Corso di Calcolo Numerico, a.a. 2008/2009. Francesca Mazzia. Dipartimento di Matematica Università di Bari.

Dipartimento di Ingegneria Industriale DII Anno Accademico 2018/19 Registro lezioni del docente SOMMARIVA ALVISE

Complementi di Matematica e Calcolo Numerico A.A

Successioni di funzioni: esercizi svolti

Laboratorio di Calcolo Numerico Approssimazione ai minimi quadrati

Laboratorio di Matematica Computazionale A.A Lab. 9

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Polinomi e Interpolazione polinomiale

Interpolazione ed approssimazione di funzioni

+ Analisi Numerica (1 modulo) Docente: M.Gaviano; domande di ripasso a.a

Corso di Calcolo Numerico

Lezione 4 Quadratura Numerica. Fernando Palombo

Interpolazione polinomiale a tratti

Esonero di Analisi Matematica II (A)

Esercizio 1: Compressione utilizzando spline di grado il grafico dell errore tra funzione interpolante ed interpolata;

Quadratura numerica. Alvise Sommariva. Università degli Studi di Padova Dipartimento di Matematica. 25 maggio 2015

Integrazione numerica

Raccolta degli Scritti d Esame di ANALISI MATEMATICA U.D. 2 assegnati nei Corsi di Laurea di Fisica, Fisica Applicata, Matematica

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 19 settembre 2011

Integrazione numerica

non solo otteniamo il valore cercato per la validità della (1.4), ma anche che tale valore non dipende da

Interpolazione polinomiale. Interpolazione polinomiale

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 20 giugno 2011

Esame di Calcolo Numerico per Informatica A.A. 2010/11: testo soluzioni Proff. S. De Marchi e M. R. Russo 12 luglio 2011

Analisi Numerica: quadratura

Analisi Matematica 1 Soluzioni prova scritta n. 1

Laboratorio di Calcolo Numerico - Corso di Laurea in Matematica Appello d esame del 19/06/2012

Polinomi. Poiché un polinomio di grado n ha n+1 coefficienti, ad un polinomio di grado n si associa un vettore di lunghezza n+1.

Diario delle lezioni di Analisi Numerica laurea Magistrale in Statistica e Informatica A.A

PROVA PRATICA di CALCOLO NUMERICO Prof. S. De Marchi Verona, 19 dicembre 2006

Esercizi Elaborato (versione )

Claudio Estatico Equazioni non-lineari

Approssimazione di dati

Analisi Numerica: interpolazione

ISTITUTO DI ISTRUZIONE SUPERIORE A. EINSTEIN PROGETTO LAUREE SCIENTIFICHE

Calcolo Numerico - A.A Laboratorio 6

Approssimazione di dati e funzioni

Anno accademico

Interpolazione polinomiale. Gabriella Puppo

Il problema lineare dei minimi quadrati

Quali condizionisi si possono richiedere sulla funzione interpolante?

Esame di Calcolo Numerico per Informatica Prof. S. De Marchi Padova, 2 settembre 2013

Integrazione numerica

Analisi Matematica 2. Michele Campiti. Prove scritte di. Ingegneria Industriale a.a

Prove d esame Esercizi con Matlab

Laboratorio di Calcolo Numerico - Corso di Laurea in Matematica Appello d esame del 12/07/2012

Complementi di Matematica e Calcolo Numerico A.A Laboratorio 4 - Polinomi e Interpolazione polinomiale

Esame di Calcolo Numerico per Informatica A.A. 2010/11 Proff. S. De Marchi e M. R. Russo 31 agosto 2011 Testo e soluzioni

Corso di Matematica per la Chimica

Alcuni Teoremi sulle funzioni continue e uniforme continuità

MATLAB:Metodi Numerici per zeri di funzioni.

Continuità di funzioni

5.3 Alcune classi di funzioni integrabili

Esercizi proposti di Analisi Numerica

COGNOME... NOME... ( π ) ( ) = e Determinare utilizzando una funzione ausiliaria, opportunamente scelta, la soluzione del

b vettore(termine noto) y* proiezione ortogonale di b

Serie trigonometriche e di Fourier Ci occuperemo di serie le cui ridotte N-esime sono polinomi trigonometrici di grado (o ordine) N:

INTERPOLAZIONI CON SPLINE

Lezione 5, 5/11/2014

Laboratorio di Calcolo Numerico A.A

Laboratorio 3. Integrazione numerica

CALCOLO NUMERICO Laurea di base in Ingegneria Elettronica e delle Telecomunicazioni

Alcuni esercizi in preparazione all appello scritto di Calcolo Numerico

COMPLETEZZA DELL INSIEME DEI NUMERI REALI R.

Transcript:

Splines Alvise Sommariva Università degli Studi di Padova Dipartimento di Matematica Pura e Applicata 21 novembre 2011 Alvise Sommariva Splines 1/ 25

Interpolazione nodi equispaziati e problemi Si è visto che nel caso dell interpolazione polinomiale, dati N + 1 punti a = x 0 <... < x N = b, e i valori y 0,...,y N ivi assunti da una funzione y = f (x), esiste uno ed un solo polinomio p N di grado N tale che Nel caso di nodi equispaziati p N (x i ) = f i, i = 0,...,N. (1) x k = a + k (b a), k = 0,...,N; (2) N al crescere di N, non si puó garantire che f (x) p n (x) tenda a 0 (si ricordi il fenomeno di Runge!). Sorge spontaneo chiedersi se qualora si possegga un gran numero di punti, anche equispaziati, sia possibile calcolare un approssimante di tipo polinomiale per cui al crescere di N si abbia p N f. Alvise Sommariva Splines 2/ 25

Splines Sia [a,b] R chiuso e limitato, e sia a = x 0 < x 1 <... < x n = b. Una spline di grado m (o ordine m + 1) è una funzione in C m 1 ([a,b]) che in ogni intervallo [x i,x i+1 ], con i = 0,...,n 1, è un polinomio di grado m. Alcuni esempi: spline di grado 1 (lineari): una funzione in C([a,b]) che in ogni intervallo [x i,x i+1 ], con i = 0,...,n 1, è un polinomio di grado 1. spline di grado 3 (cubiche): una funzione in C 2 ([a,b]) che in ogni intervallo [x i,x i+1 ], con i = 0,...,n 1, è un polinomio di grado 3. Alvise Sommariva Splines 3/ 25

Splines di grado 1 e lineari a tratti Come anticipato sono funzioni C([a,b]) che in ogni intervallo [x i,x i+1 ], con i = 0,...,n 1, è un polinomio di grado 1. Di conseguenza sono funzioni continue lineari a tratti, essendo un segmento il grafico di un polinomio di grado 1 in [x i,x i+1 ]. 2 1.5 1 0.5 0 0.5 1 1.5 2 0 1 2 3 4 5 6 Figura: Esempio di splines grado 1 (n = 10 intervalli di uguale ampiezza). Alvise Sommariva Splines 4/ 25

Interpolazione con splines: grado 1. Esistenza e unicità Dati n + 1 punti in [a,b], diciamo a = x 0 < x 1 <... < x n 1 < x n = b, supponiamo di dover interpolare le coppie (x k,y k ) con k = 0,...,n, con una spline s 1 di grado 1 cioè determinare s 1 tale che s 1 (x k ) = y k per k = 0,...,n. Poichè per due punti assegnati (x j,y j ), (x j+1,y j+1 ) passa un unico segmento è evidente che tale funzione s 1 è unica. Alternativamente, basta osservare che in ogni subintervallo esiste ed è unico il polinomio di grado 1 che interpola 2 punti assegnati (x j,y j ), (x j+1,y j+1 ). Alvise Sommariva Splines 5/ 25

Interpolazione con splines: grado 3. Esistenza e unicità Dati n + 1 punti in [a,b], diciamo a = x 0 < x 1 <... < x n 1 < x n = b, supponiamo di dover interpolare le coppie (x k,y k ) con k = 0,...,n, con una spline s 3 di grado 3 cioè determinare s 3 tale che s 3 (x k ) = y k per k = 0,...,n. Questo caso è più complesso di quello delle splines di grado 1. Mostriamo che esistono splines s 3 interpolanti ma non sono uniche. Alvise Sommariva Splines 6/ 25

Interpolazione con splines: grado 3. Esistenza e unicità In ogni sottointervallo [x j,x j+1 ] una spline s 3 è un polinomio p 3,j (x) = 3 i=0 a jx j di grado 3 e quindi definita da 4 coefficienti a k. In totale i gradi di libertà sono 4n. Le condizioni di interpolazione nei punti x 0,...,x n sono n + 1. Le condizioni di regolarità fino alla derivata seconda nei punti x 1,..., x n 1 sono 3n 3 ed quindi le condizioni imposte sono in totale 4n 2 = (n + 1) + (3n 3). Dal confronto coi gradi di libertà, è quindi evidente che servano 2 ulteriori condizioni per determinare univocamente la spline s 3 interpolante. Alvise Sommariva Splines 7/ 25

Interpolazione con splines: grado 3. Esistenza e unicità Alcune classiche richieste aggiuntive. Spline naturale: s (2) 3 Spline periodica: s (1) 3 (a) = s(2) 3 (b) = 0. (a) = s(1) 3 (b), s(2) 3 (a) = s(2) 3 (b). Spline vincolata: s (1) 3 (a) = y a, s (1) 3 (b) = y b (con y a,y b assegnati). Alvise Sommariva Splines 8/ 25

Splines cubiche di tipo not-a-knot La spline cubica s NAK 3 con vincolo not-a-knot è definita come segue: Interpola le coppie (x 0,y 0 ),..., (x n,y n ); E un polinomio di grado 3 nell intervallo [x 0,x 2 ]; E un polinomio di grado 3 nell intervallo [x n 2,x n ] Si osservi che per le spline cubiche generiche s 3 non è detto che la restrizione di s 3 a [x 0,x 1 ] e [x 1,x 2 ] siano lo stesso polinomio, e similmente che la restrizione a [x n 2,x n 1 ] e [x n 1,x n ] siano lo stesso polinomio. Vediamo il confronto dei gradi di libertá. Richieste:Abbiamo n 2 polinomi da determinare e quindi 4(n 2) condizioni. Fornite:Interpolazione x 0,...,x n : n + 1 condizioni. Regolarità x 2,...,x n 2 : 3(n 3) condizioni. Quindi il numero di gradi di libertá richiesto e fornito è lo stesso. Alvise Sommariva Splines 9/ 25

Splines lineari: stima errore Sia s 1, : [a,b] R una spline di grado 1, che interpola le coppie (x i,f (x i )) dove x 0 = a < x 1 <... < x i < x i+1 <... < x N = b. = {x i } i=0,...,n indica la suddivisione [a,b] = n 1 i=0 [x i,x i+1 ]. Sia p i, = s 1, [xi,x i+1 ] P 1 dove P 1 è l insieme dei polinomi di primo grado. Dal teorema dell errore dell interpolazione polinomiale nel caso N = 1 abbiamo che puntualmente f (x) p i, (x) = f (2) (ξ) (x x i)(x x i+1 ), ξ (x i,x i + 1) (3) 2 da cui, posto h i, = (x i+1 x i ), M i, = max x (xi,x i+1 ) f (2) (x) è immediata la stima d errore per f C 2 ([a,b]) f (x) s 1, (x) = f (x) p i, (x) = f (2) (ξ) x x i x x i+1 2 M i h 2 i, 2, x [x i,x i+1 ] Alvise Sommariva Splines 10/ 25

Splines lineari: stima errore In realtà si può mostrare, con tecniche più precise, che f (x) s 1, (x) hi, 2 M i, 8, x [x i,x i+1 ] (4) Quindi, essendo f C 2 ([a,b]), per il teorema di Weierstrass esiste ed è finito M = max x [a,b] f (2) (x), ed evidentemente M i, := Di conseguenza max f (2) (x) max f (2) (x) := M. x [x i,x i+1 ] x [a,b] max f (x) s 1, (x) = max x [a,b] i=0,...,n 1 max f (x) s 1, (x) x [x i,x i +1] M i, max i=0,...,n 1 h2 i, 8 M 8 (max h i, ) 2. i Alvise Sommariva Splines 11/ 25

Splines lineari: convergenza uniforme Sia h = max i h i,. Sia fissata la famiglia di suddivisioni { n } con la proprietà che h n 0 (suddivisioni sempre più fini). Allora la convergenza della successioni di interpolanti s 1, n ad una funzione f C 2 ([a,b]) è uniforme. Infatti: f s 1, n M 8 (max h i, n ) 2 = M i 8 h2 n n 0. Alvise Sommariva Splines 12/ 25

Splines cubiche: stima errore Consideriamo di seguito spline cubiche s 3, n su una suddivisione n = {x i } di [a,b]. Poniamo h i, = x i+1 x i, f (k) derivata k-sima di f. Teorema. Supponiamo f C 4 ([a,b]). Posto h = max i h i,, si consideri una sudd. = {x i } di [a,b] con K = max i h /h i,. Esiste una costante c k indipendente da h tale che f (s) s (s) 3, c s Kh (4 s) f (4), s = 0,1,2,3 (5) dove f = max x [a,b] f (x). PS. Notare le componenti dell errore dovute alla suddivisione (cioè K e h ) e alla funzione f (cioè f (4) ). Alvise Sommariva Splines 13/ 25

Splines cubiche: stima errore Teorema. Supponiamo f C 4 ([a,b]). Si consideri la suddivisione = {x i } di [a,b] con h = h i, = h (cioè {x i } nodi equisp.). Allora esiste una costante c 0 indipendente da h tale che f s 3, c 0 h 4 f (4) (6) Inoltre esistono delle costanti c 1, c 2, c 3 indipendenti da h tali che dove f = max x [a,b] f (x). f (1) s (1) 3, c 1 h 3 f (4), (7) f (2) s (2) 3, c 2 h 2 f (4), (8) f (3) s (3) 3, c 3 h 1 f (4), (9) Nel caso di spline interpolanti e vincolate si ha c 0 = 5/384, c 1 = 1/24, c 2 = 3/8. Alvise Sommariva Splines 14/ 25

Splines cubiche: convergenza uniforme Sia h = max i h i,. Sia fissata la famiglia di suddivisioni { n } con la proprietà che h n 0 (suddivisioni sempre più fini). Allora la convergenza della successioni di interpolanti s 3, n ad una funzione f C 2 ([a,b]) è uniforme. Infatti da (5): f (s) s (s) 3, n c s Kh (4 s) n f (4) n 0. NB: Per s = 3, significa che la successione di funzioni a gradino s (3) 3, n converge a f (3) uniformemente. Alvise Sommariva Splines 15/ 25

Splines lineari: esempio di Runge. La funzione di Runge f (x) = 1/(1 + x 2 ) appartiene a C ([ 5,5]) e di conseguenza, nonostante la convergenza puntuale dell interpolazione polinomiale in nodi equispaziati non sia garantita, ciò non si può dire per l interpolazione mediante splines lineari o cubiche (sappiamo sussistere la conv. unif.!). Vediamo una stima dell errore più precisa. Nel caso lineare, se = {x i } è la sudd. equisp. di ampiezza h, se x [x i,x i+1 ] dove con f (x) s 1, (x) hi, 2 M i, = h 2 M i, 8 8 M i, = max f (2) (x). x (x i,x i+1 ) f (2) (x) = (8x 2 )/(x 2 + 1) 3 2/(x 2 + 1) 2. (10) Alvise Sommariva Splines 16/ 25

Splines lineari: esempio di Runge. Dal grafico di f (2) deduciamo che e quindi se x [x i,x i+1 ] M i M = f (2) = f (2) (0) = 2 f (x) s 1, (x) h 2 M i 8 M h2 8 h2 4 f s 1, h2 4. 2 1.8 1.6 1.4 1.2 1 0.8 0.6 0.4 0.2 0 5 0 5 Figura: Grafico di f (2) per f (x) = 1/(1 + x 2 ), in [ 5, 5]. Alvise Sommariva Splines 17/ 25

Splines cubiche: esempio di Runge. Usiamo le notazioni precedenti. Sappiamo che f s 3, c 0 h 4 f (4) e si può vedere che f (4) (x) = 24/(x 2 + 1) 3 288 x 2 /(x 2 + 1) 4 + 384 x 4 /(x 2 + 1) 5 il cui massimo modulo in [ 5,5] è f (4) (0) = 24. Quindi per splines cubiche intp. vincolate, essendo c 0 = 5/384 f s 3, c 0 h 4 f (4) (120/384)h 4. 25 20 15 10 5 0 5 0 5 Figura: Grafico di f (4) per f (x) = 1/(1 + x 2 ), in [ 5, 5]. Alvise Sommariva Splines 18/ 25

10 0 lineare Splines lineari e cubiche: confronto esempio di Runge. 10 10 cubica 10 20 10 30 10 40 10 50 10 60 10 70 0 5 10 15 Figura: Grafico stime errori intp. splines lineari e cubiche vincolate (ascissa: x = log 10 (h)). >> n =0:0.2:15; h=10.ˆ( n) ; >> e1=(h.ˆ2) /4; e3=(120/384) (h.ˆ4) ; >> semilogy (n,e1, r,n,e3, k ) ; >> legend ( l i n e a r e, cubica ) ; Alvise Sommariva Splines 19/ 25

Splines interpolanti in Matlab/Octave: spline Alcuni comandi per calcolare interpolazione spline in Matlab/Octave SPLINE Cubic s p l i n e data interpolation. YY = SPLINE (X,Y,XX) uses cubic s p l i n e interpolation to find YY, the values of the underlying function Y at the points in the vector XX. The vector X specifies the points at which the data Y is given.... Ordinarily, the not a knot end conditions are used. However, i f Y contains two more values than X has entries, then the first and last value in Y are used as the endslopes for the cubic s p l i n e.... Alvise Sommariva Splines 20/ 25

Splines interpolanti in Matlab/Octave: spline Example : This generates a sine curve, then samples the s p l i n e over a finer mesh : x = 0:10; y = sin (x) ; xx = 0 :. 2 5 : 1 0 ; yy = s p l i n e (x,y,xx) ; plot (x,y, o,xx,yy) Example : This illustrates the use of clamped or complete s p l i n e interpolation where end slopes are prescribed. Zero slopes at the ends of an interpolant to the values of a certain distribution are enforced : x = 4:4; y = [0.15 1.12 2.36 2.36 1.46.49.06 0 ] ; cs = s p l i n e (x, [ 0 y 0]) ; xx = linspace ( 4,4,101) ; plot (x,y, o,xx,ppval (cs,xx), ) ; See also INTERP1, PPVAL, SPLINES (The Spline Toolbox ). Alvise Sommariva Splines 21/ 25

Splines interpolanti in Matlab/Octave: interp1 INTERP1 1 D interpolation ( table lookup ). YI = INTERP1 (X,Y,XI) interpolates to find YI, the values of the underlying function Y at the points in the vector XI.The vector X specifies the points at which the data Y is given.... YI = INTERP1 (X,Y,XI, method ) specifies alternate methods. The default is linear interpolation. Available methods are : nearest nearest neighbor interpolation l i n e a r linear interpolation s p l i n e piecewise cubic s p l i n e interpolation ( SPLINE ) pchip piecewise cubic Hermite interpolation ( PCHIP ) cubic same as pchip v5cubic the cubic interpolation from MATLAB 5, which does not extrapolate and uses s p l i n e i f Xmis not equally spaced.... Alvise Sommariva Splines 22/ 25

Splines interpolanti in Matlab/Octave: interp1 For example, generate a coarse sine curve and interpolate over a finer abscissa : x = 0:10; y = sin (x) ; xi = 0 :. 2 5 : 1 0 ; yi = interp1 (x,y,xi) ; plot (x,y, o,xi,yi) See also INTERP1Q, INTERPFT, SPLINE, INTERP2, INTERP3, INTERPN. Quindi dall help di spline e interp1 deduciamo che: spline: calcola spline cubica intp. con vincolo not-a-knot e con qualche assegnazione anche vincolate; interp1: calcola spline lineare o spline cubica intp. con vincolo not-a-knot e con qualche assegnazione anche di altro tipo. Alvise Sommariva Splines 23/ 25

Splines interpolanti in Matlab/Octave: esempio di Runge Vediamo il comportamento della spl. lineare intp. la funzione di Runge in 13 nodi equisp., ricordando che l interpolante polinomiale p 12 su 13 nodi, aveva f p 12 3.66+00. Il file è runge lin.m. n=13; f=inline ( 1./(1+ x.ˆ2) ) ; % RUNGE. t=l inspa c e ( 5,5,1000) ; % NODI TEST. x=l inspa c e ( 5,5,n) ; % NODI SUDDIV. y=f e v a l (f,x) ; % ( x, y ) COPPIE INTP. st=interp1 (x,y,t, l i n e a r ) ; ft=f e v a l (f,t) ; err=norm(ft st,inf ) ; % ERRORE f s3 f p r i n t f ( \n \t e rr : %2.2e \n,err ) ; Otteniamo, come supposto, un migliore risultato rispetto a p 12 (stime: ((10/12) 2 )/4 0.17.) >> runge_lin err : 6.50e 02 >> Alvise Sommariva Splines 24/ 25

Splines interpolanti in Matlab/Octave: esempio di Runge Vediamo il comportamento delle spline cubiche not-a-knot interpolanti la funzione di Runge in 13 nodi equispaziati (avevamo f p 12 3.66 + 00). Il file è runge cub.m. n=13; f=inline ( 1./(1+ x.ˆ2) ) ; % RUNGE. t=l inspa c e ( 5,5,1000) ; % NODI TEST. x=l inspa c e ( 5,5,n) ; % NODI SUDDIV. y=f e v a l (f,x) ; % ( x, y ) COPPIE INTP. st=interp1 (x,y,t, s p l i n e ) ; ft=f e v a l (f,t) ; err=norm(ft st,inf ) ; % ERRORE f s3 f p r i n t f ( \n \t e rr : %2.2e \n,err ) ; Otteniamo, come supposto, un migliore risultato rispetto a p 12 e alle splines lineari (errore come h 4 e non h 2 ) >> runge_lin err : 6.91e 03 >> Alvise Sommariva Splines 25/ 25