La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Splines Salvatore Mazzola e Andrea Portale Prof.ssa R. M. Pidatella Corso di Metodi Matematici ed Ottimizzazione 1 19/04/2011.

Presentazioni simili


Presentazione sul tema: "Splines Salvatore Mazzola e Andrea Portale Prof.ssa R. M. Pidatella Corso di Metodi Matematici ed Ottimizzazione 1 19/04/2011."— Transcript della presentazione:

1 Splines Salvatore Mazzola e Andrea Portale Prof.ssa R. M. Pidatella Corso di Metodi Matematici ed Ottimizzazione 1 19/04/2011

2 Outline Linterpolazione (Richiamo del Metodo di Lagrange, Richiamo del Metodo delle differenze divise, Richiamo dell Interpolazione di Hermite) Le Splines Le Splines Lineari Le Splines Cubiche Esistenza ed Unicità delle Splines Cubiche Proprietà Estremali Cenni sullError Bound 2

3 LInterpolazione E il problema di approssimare una funzione o un insieme di dati con una funzione più semplice e regolare. Richiede che i dati siano noti prima. La funzione da approssimare f(x) e la funzione approssimante devono coincidere nelle ordinate note a priori. POSSIBILI PROBLEMI Determinazione della classe di funzioni che approssimano la f(x) data. Minimizzare lerrore tra la funzione da approssimare e la funzione approssimante. 3

4 Interpolazione Polinomiale Si sceglie come classe di funzioni quella dei polinomi P n = { polinomi di grado n } Dati x 0,x 1,...,x n x i x j, ij i,j=0,1,...,n ed y 0,y 1,...,y n corrispondenti, si ha allora che pЄP n : p(x i ) = y i i = 0,1,...,n Per ciò stesso si sceglie il metodo di Lagrange: 4

5 Interpolazione Polinomiale cont. Il polinomio interpolante è dato da: che è la rappresentazione Lagrangiana del polinomio. SVANTAGGI: aggiungere o togliere punti comporta laggiornamento di tutti i polinomi di Lagrange e quindi una modifica del polinomio interpolatore. Funzioni particolarmente smussate sono difficilmente interpolabili. Il numero di operazioni non è trascurabile. 5

6 Metodo delle differenze divise Per migliorare linterpolazione, possiamo scegliere una base per lo spazio P n che renda più facile lintroduzione di un nuovo nodo. Ciò è adoperato nellinterpolazione di Newton con le differenze divise. P(x) = b 0 + b 1 (x – x 0 ) + b 2 (x – x 0 ) (x – x 1 ) b n (x – x 0 ) (x – x 1 )...(x- x n-1 ) b 0 = f(x 0 ) b 1 = f(x 0, x 1 )... b n = f(x 0,..., x n ) dove: f[x i, x j ] = è la prima differenza divisa f[x i, x j, x k ] = la seconda 6

7 Metodo delle differenze divise cont. Si costruisce la seguente tabella: x 0 f(x 0 ) f[x 0, x 1 ] x 1 f(x 1 ) f[x 0, x 1, x 2 ] f[x 1, x 2 ]. x 2 f(x 2 ) f[x 1, x 2, x 3 ]. f[x 2, x 3 ]. x 3 f(x 3 ) f[x 0, x 1,..., x n ]..... f[x n-3, x n-1, x n-1 ]... f[x n-2, x n-1 ]. x n-1 f(x n-1 ) f[x n-2, x n-1, x n ] f[x n-1, x n ] x n f(x n ) 7

8 Interpolazione di Hermite Se invece si hanno delle informazioni sulle derivate di f(x), si utilizza in genere linterpolazione generale di Hermite. Infatti, con questo tipo di interpolazione si cerca un polinomio che interpoli una funzione f in alcuni nodi x 0,…,x n, ma che abbia in comune un certo numero di derivate successive negli stessi nodi. Sia p (j) (x) la derivata j-esima di p(x) e conoscendo tutte le derivate di ordine n in x 0 il problema diventa quello di trovare: p(x) Є P n : p (j) (x 0 ) = f (j) (x 0 ) per j = 0, 1,..., n Ed imponendo le condizioni di interpolazione si ha il sistema: a 0 + a 1 x 0 + a 2 x a n x 0 n = f(x 0 ) a 1 + 2a 2 x na n x 0 n-1 = f(x 0 )... n!a n = f n (x 0 ) 8

9 Svantaggi dei due metodi precedenti Sia linterpolazione di Newton con le differenze divise che linterpolazione generale di Hermite presentano lo svantaggio che, al crescere del numero dei nodi, aumenta in generale il grado del polinomio interpolante che si discosta così di molto dalla funzione f(x), aumentando anche lerrore, soprattutto agli estremi. Si può ovviare a questo inconveniente utilizzando uninterpolazione polinomiale a tratti, facendo uso cioè di polinomi di ugual grado su ciascun tratto, soddisfacenti certe condizioni. Su questo si basa linterpolazione a tratti di Hermite che però presenta i seguenti Svantaggi: non garantisce la continuità della derivata seconda. potremmo avere a disposizione solo i valori della funzione da interpolare e non avere informazioni sulla sua derivata prima. 9

10 Le Splines (Schoenbergh ) Dato un insieme di punti, X n = {x j } j n = 0 a = x 0 < x 1 <... < x n = b ed un insieme di valori funzionali {f(x j )} j n =0 facciamo il plot dei punti P j = (x j, f(x j )), 0 j n Vogliamo un modello matematico che interpoli i punti nel modo migliore allora consideriamo una famiglia di funzioni Sp(X n ) di ordine k 1, tali che se S(x) Є Sp(X n ) allora S(x) soddisfa le seguenti 3 proprietà: S(x i ) = f(x i ) i = 0,1,...n S(x) Є C k-1 [a,b] ed S(x), S(x)... e S k-1 (x) sono continui in [a, b]; S(x) Є P k in [x i, x i+1 ] per i = 0,1,...n-1 A 10

11 Definiamo gradi di libertà (d. o. f.) della splines, quelle condizioni che dobbiamo imporre ad S(x) affinché sia unica. Se abbiamo n + 1 nodi e la splines è di grado k, allora: d. o. f. = n + k cioè, affinché S k (x) sia unica bisogna imporre n + k condizioni. Se k = 1 si parla di splines lineare; d. o. f. = n + 1 che non sono altro che le condizioni di interpolazione. Particolarmente importante è il caso k = 3 (spline cubiche S 3 (x)) in cui d. o. f. = n + 3. Le Splines cont. 11

12 Le Splines lineari Per k = 1 d.o.f = n+1 Definiamo le funzioni cappello ψ i i=1,2,...,n-1 Poichè ψ i (x j ) = δ ij le ψ i sono linearmente indipendenti Segue che: Per la prima proprietà delle splines si ha che: 12

13 Le Splines Cubiche Le splines cubiche permettono di avere una soddisfacente qualità grafica e un altrettanto costo computazionale; inoltre è possibile ottenere funzioni interpolanti che minimizzano la curvatura del grafico risultante. Esse sono definite formalmente come segue: Dato un insieme di punti, X n = { x j } j n = 0 a = x 0 < x 1 <... < x n = b ed un insieme di valori funzionali {f(x j )} j n =0 facciamo il plot dei punti P j = (x j, f(x j )), 0 j n S(x j ) = f(x j ) f j, 0 j n; che è, S(x) interpola f(x) in [a, b]; S(x) Є C 2 [a, b]; che è, S(x), S(x) e S(x) sono continui in [a, b]; S(x) è una cubica su ogni sottointervallo [x, x ], 0 j n-1; Nota: S(x) = S j (x) per x in [x, x ], 0 j n-1; 13

14 Vi sono altre due condizioni che riguardano precisamente le derivate prime e seconde, e possono essere una delle seguenti: se S 3 (x 0 ) = S 3 (x n ) = 0, cioè se le splines cubiche hanno derivate seconde nulle agli estremi, si parla di splines naturali; se S 3 (x 0 ) = S 3 (x n ) e S 3 (x 0 ) = S 3 (x n ), la splines si dicono periodiche; se S 3 (x 0 ) = y 0 e S 3 (x n ) = y n con y 0 e y n assegnati, la splines si dice vincolata. In generale, le splines cubiche assicurano la continuità della derivata seconda, ma non quella della derivata terza. Possiamo però richiedere la continuità di tale derivata in due punti della suddivisione, per esempio, nel primo e nellultimo nodo interno: x 2, x n-1. Imponendo che la continuità della derivata terza in x 2, x n-1 si deduce che i primi e gli ultimi due tratti cubici sono identici, e quindi queste due condizioni equivalgono ad eliminare i nodi x 2, x n-1 dalla suddivisione. Per tale motivo tali condizioni sono note come not-a-knot condition. Le Splines Cubiche cont. 14

15 Esistenza ed Unicità E necessario definire un polinomio da approssimare relativamente semplice e pochi nodi sul quale interpoleremo la nostra splines ed estenderemo lesempio al caso più generale. Sia data S(x) e sia S(x) Є P 3 Avremo allora S 0 (x) in [x 0, x 1 ], S 1 (x) in [x 1, x 2 ], S 2 (x) in [x 2, x 3 ] Abbiamo 4 incognite in ciascuno dei 3 polinomi, 12 in tutto Garantiamo che i polinomi siano Splines Cubiche S 0 (x 0 ) = f 0 ; S 1 (x 1 ) = f 1 ; S 0 (x 1 ) = S 1 (x 1 ); S 2 (x 2 ) = f 2 ; S 1 (x 2 ) = S 2 (x 2 ); S 2 (x 3 ) = f 3 ; Non dimentichiamo la condizione di continuità nei punti x 1 e x 2 per la la S(x) e la S(x) S 0 (x 1 ) = S 1 (x 1 ) e S 0 (x 1 ) = S 1 (x 1 ) S 1 (x 2 ) = S 2 (x 2 ) e S 1 (x 2 ) = S 2 (x 2 ); 15

16 Sia definito h j Δx j x j+1 – x j e Δf j f(x j+1 ) – f(x j ) f j+1 – f j Scegliamo adesso y 0, y 1, …, y n Scegliamo le splines di modo che S(x j ) = f(x j ) 0 j n-1 Integrando due volte: c j e d j sono costanti di integrazione Affinchè S j (x j ) = f j e S j (x j+1 ) = f j+1 0 j n-1 lavoriamo su c j e d j Esistenza ed Unicità cont. 16

17 Differenziando: Garantiamo così la continuità dei nodi interni ed otteniamo il seguente sistema lineare di n-1 equazioni in {x j } j n = 0 incognite Esistenza ed Unicità cont. 17

18 Otteniamo così il seguente sistema lineare in forma matriciale Ay = b Dove i = 2 ( h i + h i-1 ) effettuate le opportune sostituzioni otteniamo il polinomio S(x). Esistenza ed Unicità cont. 18

19 Proprietà Estremali Proprietà 1 (di minima curvatura) Sia g(x) una funzione in C 2 [a, b] che interpola f(x) in {x j } j n = 0 se S(x) Є Sp(X n ) allora S(x) è una costante, ad esempio α j, su ogni sottointervallo (x j, x j+1 ) Proprietà 2 Dato un insieme di funzioni g(x) che rispettano la proprietà di minima curvatura, interpolano la f(x) purchè soddisfino le due condizioni seguenti: g(a) = f(a) e g(b) = f(b) 19

20 Error bound Si dimostra che se si aumenta il numero di punti di interpolazione in modo tale che h0 per n allora S(x) ed S(x) convergono uniformemente a f(x) e a f(x) rispettivamente. LError function lo definiamo come E(x) = f(x) – S(x) per x Є [a, b] LErrore dellapprossimazione della derivazione come E(x) = f(x) – S(x) per x Є [a, b]. Mostriamo lindipendenza dellerror bound dalla x e garantiamo luniforme convergenza del metodo. Inoltre non solo possiamo approssimare la f(x) ma anche la sua derivata prima. I polinomi interpolatori visti allinizio non hanno questo comportamento e tendono ad esagerare la differenza tra la f(x) e la p(x). 20

21 Spline in Matlab Funzioni utili ed esempi di interpolazione mediante spline

22 Panoramica Si vedrà: Una breve spiegazione su come Matlab rappresenta inernamente le Splines (ed altre funzioni simili). Un elenco di alcune delle tante routines disponibili per trattare questi oggetti. Esempi (semplici) di codice. 22

23 Panoramica Come lecito aspettarsi, Matlab mette a disposizione un gran numero di Programmi e Funzioni capaci di lavorare con le funzioni splines. Così come le funzioni spline vengono utilizzate con profitto in svariati campi applicativi, Matlab le rende facilmente accessibili allutente per approcciare problemi di vario tipo, come quelli dellInterpolazione e dellApprossimazione (ma non solo!). 23

24 Panoramica (Funzioni Polinomiali a Tratti) Matlab utilizza internamente (e rende accessibili) diversi tipi di rappresentazione per costruire e lavorare sulle spline. In realtà le spline (ed altri tipi di funzioni) vengono a volte rappresentate nella forma più generale di Funzioni Polinomiali a Tratti (famiglia più grande cui le spline appartengono). I due tipi di rappresentazione usati più di frequente sono: * B-Form (che non tratteremo) * ppform (su cui ci concentreremo) 24

25 Panoramica (ppform) 25

26 Panoramica (ppform cont.) Nella pratica Matlab utilizzata una variabile strutturata, nei cui campi vengono memorizzati i dati relativi la specifica funzione. vedere ppform.m Possiamo anche usare la funzione pp = mkpp(breaks, coefs) per instanziare la ppform di una polinomiale a tratti arbitraria, oppure [breaks, coefs, l, k, d] = unmkpp(pp) Per copiare nelle rispettive variabili di uscita i parametri della variabile (in modo da poterli usare a piacere). 26

27 Funzioni per le Spline Senza presunzione di completezza, elenchiamo alcune utili funzioni per lavorare con le Spline in Matlab spline – Funzione generale per effettuare interpolazione con spline cubiche (usa di default la condizione Not a Knot) interp1 – Interpolazione di dati monodimensionali, può usare diversi metodi (nearest, spline lineare o cubica, Hermitiana cubica a tratti). 27

28 Funzioni per le Spline (avanzate) Altre funzioni, più potenti, permettono di sfruttare al meglio le spline. Alcuni esempi: csape - Interpolazione cubica condizionata (permette di specificare le condizioni sui nodi di estremo, es. Sp. Cubica naturale, periodica, vincolata etc.) spapi - Interpolazione con Spline generica (consente di specificarne il grado) csaps – Smoothing (fitting) di dati con spline cubiche spap2 – Approssimazione ai minimi quadrati mediante spline (!) 28

29 Esempi Pratici Procediamo ora mostrare alcuni semplici esempi di codici che fanno uso di alcune delle funzioni citate. Cominciamo con il caso (banale) in cui si vogliano interpolare quattro punti dati: (-2, 1), (1, 2), (2, 4), (3, 3) File: uso_spline.m 29

30 Spline Cubiche Mettiamo a confronto diversi tipi di Spline Cubiche. Mostriamo anche il prolungamento delle spline oltre lintervallo di interpolazione per rendere più visibile il diverso comportamento dei vari tipi agli estremi. File: spline_diverse.m 30

31 Interpolazione Lagrangiana vs Spline Data una serie di punti da interpolare, mettiamo a confronto interpolazione Lagrangiana con linterpolazione mediante Splines lineare e cubica naturale. Si può notare leffetto Runge che affligge linterpolazione Lagrangiana (con polinomio di grado 9). Linterpolazione con spline lineare è già più soddisfacente (anche se poco realistica) Quella cubica ha (prevedibilmente) un andamento molto più morbido e naturale (merito della continuità delle derivate fino alla seconda) File: interpolazioni_diverse.m 31

32 Spline e derivate 32

33 Convergenza dellinterpolazione Spline 33

34 Convergenza cont. Il codice dellesempio esempio, di cui riportiamo i risultati, mostra lerrore massimo commesso in funzione del numero di nodi N e del tipo di interpolazione utilizzata. E possibile vedere come, al contrario di quanto avviene nellinterpolazione polinomiale classica, lerrore massimo commesso diminuisca. In effetti, al tendere del numero di punti di interpolazione ad infinito, la funzione spline tende a coincidere perfettamente con la funzione interpolata. 34

35 Convergenza cont. 35 N Spline LineareCubica NaturaleCubica Not-a-Knot

36 Spline e disegno Le spline trovano largo utilizzo anche in applicazione grafiche. Infatti, è facile vedere come le spline ben si prestino ad approssimare figure geometriche. In questo esempio, vediamo come sia possibile approssimare il cerchio ed una spirale mediante le funzioni spline. File: disegno.m 36

37 Conclusioni Abbiamo illustrato pochi ma comprensibili (speriamo!) esempi di codice, al fine di illustrare lutilità e facilità duso degli strumenti messi a disposizione da Matlab per lavorare con le funzioni Splines. Cose (molto interessanti) che non abbiamo visto: Approssimazione di Funzioni e set di dati mediante Splines (sia nel senso dei minimi quadrati che dello smoothing/fitting) 37

38 GRAZIE 38


Scaricare ppt "Splines Salvatore Mazzola e Andrea Portale Prof.ssa R. M. Pidatella Corso di Metodi Matematici ed Ottimizzazione 1 19/04/2011."

Presentazioni simili


Annunci Google