Salvatore Mazzola e Andrea Portale Prof.ssa R. M. Pidatella Splines Corso di Metodi Matematici ed Ottimizzazione 19/04/2011 Le spline sono degli strumenti utili ai progettisti per tracciare linee particolarmente smussate passanti per certi punti noti. Sono delle aste elastiche ed un insieme di pesi collegati ad esse per tracciare curvilinee. Chiediamoci il perchè si sia scelto di creare una procedura matematica che realizzi il modello del loro funzionamento. Salvatore Mazzola e Andrea Portale Prof.ssa R. M. Pidatella
Outline L’interpolazione (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 sull’Error Bound Questo perchè lo ricercheremo nell’interpolazione; DISTINZIONE TRA APPROSSIMAZIONE E INTERPOLAZIONE Parlerò infatti dell’interpolazione in generale e brevemente citerò dei metodi di interpolazione noti che non sono utili abbastanza; non lo sono perchè non fanno bene il loro lavoro e la loro panoramica permetterà a noi di avere una visione generale del problema. Il metodo di Lagrange, quello delle differenze divise, l’interpolazione di hermite per approssimare una funzione complessa richiedono di lavorare con polinomi di alto grado ed un numero di punti elevato per essere davvero fedeli alla funzione originale, senza parlare poi del loro comportamento oscillatorio che lontanamente si avvicina alla funzione che studiamo. Illustrerò le spline lineari saranno estese ad un tipo molto conosciuto e studiato per la sua elasticità. Per queste ultime sarà necessario provare l’esistenza e l’unicità. E’ chiaro che quando ci troviamo di fronte ad una funzione da approssimare ci chiediamo se esiste un polinomio che può avvicinarsi il più possibile ad essa e che lo faccia nel modo migliore possibile. In questo contesto vi viene detto che cos’è l’errore di approssimazione che fa capo a certe proprietà dette proprietà estremali. Esistono spline di diverso tipo, il tipo dipende dal grado del polinomio, i ragionamenti che seguiranno potranno essere estesi per funzioni a più variabili.
L’Interpolazione “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 l’errore tra la funzione da approssimare e la funzione approssimante. Nella realtà svariati fenomeni non sono governati da una legge conosciuta, in questo contesto abbiamo bisogno di un margine sul quale lavorare, un delta per i valori noti, e di una funzione per capire come questa legge funziona. Spesso l’errore converge molto lentamente e per punti equispaziati la convergenza del polinomio con la funzione non è garantita
Interpolazione Polinomiale Si sceglie come classe di funzioni quella dei polinomi Pn = { polinomi di grado ≤ n } Dati x0,x1,...,xn xi≠xj, i≠j i,j=0,1,...,n ed y0,y1,...,yn corrispondenti, si ha allora che pЄPn : p(xi) = yi i = 0,1, ...,n Per ciò stesso si sceglie il metodo di Lagrange: Un polinomio è un’approssimazione di una funzione, lo si usa perchè è efficace e manipolabile in modo flessibile. L’interpolazione polinomiale è come una generalizzazione dell’interpolazione a tratti(cioè la costruzione di rette passanti per due poli assegnati). E’ sempre possibile determinare una retta passante per due punti assegnati, l’equazione analitica è un polinomio di primo grado o una costante nel caso di due punti con uguale ordinata, dati tre poli si può sempre determinare una ed una sola parabola parallela ad y passante per i punti noti, l’espressione analitica è un polinomio di secondo grado che si può ridurre(ad uno lineare se i poli sono allineati a una costante se hanno la medesima ordinata). Possiamo dati n-poli esprimere analiticamente questa approssimazione passando per i punti noti? Si. traducendolo in forma matriciale avremo la conferma poichè sempre e comunque il determinante sarà diverso da zero. L i(x) è un polinomio esplicitiamolo e osserviamo che L0(x0) = 1 e tutti gli altri uguali a 0, L 1(x1) = 1 e tutti gli altri nulli, il Delta di kroneker è la funzione che riassume questo comportamento: Li(xj) = 1 se i=j e 0 altrimenti. Li(x) è una produttoria di equazioni di rette
Interpolazione Polinomiale cont. Il polinomio interpolante è dato da: che è la rappresentazione Lagrangiana del polinomio. SVANTAGGI: aggiungere o togliere punti comporta l’aggiornamento 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. Poichè ogni punto è implicato nella formula, toglierlo significa riscrivere la formula daccapo, inoltre tale metodo non è adatto per interpolare tutte le funzioni e il numero di operazioni è elevato.
Metodo delle differenze divise Per migliorare l’interpolazione, possiamo scegliere una base per lo spazio Pn che renda più facile l’introduzione di un nuovo nodo. Ciò è adoperato nell’interpolazione di Newton con le differenze divise. P(x) = b0 + b1(x – x0) + b2(x – x0) (x – x1) + ... + bn(x – x0) (x – x1)...(x- xn-1) b0 = f(x0) b1 = f(x0 , x1) ... bn = f(x0 , ..., xn) dove: f[xi , xj] = è la prima differenza divisa f[xi , xj, xk] = la seconda Quando scrivo un polinomio per es p4(x)=3x^4+2x^3-2x^2+3 la base è [1,x,x^2,x^3, x^4] a 1 x^2 ... posso dare nomi diversi in questo caso li ho chiamati b0 b1.. Se x = x0 otterrò b0 Sdevo allora imporre che b0 = f(x0). Se prendiamo la differenza divisa essa a numeratore è la differenza tra le ordinate ed a denominatore tra le ascisse..graficando un triangolo. Nella curva che passa per i 2 punti si fa vedere che la sua tangente è parallela alla retta passante per i due punti la seconda diff divisa ha una tangente in posizione media tra le due f parallela all’incirca alla retta passante per i 4 punti
Metodo delle differenze divise cont. Si costruisce la seguente tabella: x0 f(x0) f[x0 , x1] x1 f(x1) f[x0 , x1, x2] f[x1 , x2] . x2 f(x2) f[x1 , x2, x3] . f[x2 , x3] . x3 f(x3) f[x0 , x1, ..., xn] . . . . . f[xn-3 , xn-1, xn-1] . . . f[xn-2 , xn-1] . xn-1 f(xn-1) f[xn-2 , xn-1, xn] f[xn-1 , xn] xn f(xn)
Interpolazione di Hermite Se invece si hanno delle informazioni sulle derivate di f(x), si utilizza in genere l’interpolazione generale di Hermite. Infatti, con questo tipo di interpolazione si cerca un polinomio che interpoli una funzione f in alcuni nodi x0,…,xn, 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 x0 il problema diventa quello di trovare: p(x) Є Pn : p(j)(x0) = f(j)(x0) per j = 0, 1, ..., n Ed imponendo le condizioni di interpolazione si ha il sistema: a0 + a1x0 + a2x01 + ... + anx0n = f(x0) a1 + 2a2x0 + ... + nanx0n-1 = f’(x0) ... n!an = fn(x0) Il polinomio a0 + a1x0 + a2x01 + ... + anx0n è un altro modo di scrivere quello delle differenze divise. La poniamo uguale a f(x0) perchè dobbiamo garantire la condizione di interpolazione. A seguire si calcola la derivata prima del polinomio si pone uguale alla derivata prima f’(x0) e così via..n! Il sistema espresso in forma matriciale ci garantisce l’esistenza e l’unicità della soluzione
Svantaggi dei due metodi precedenti Sia l’interpolazione di Newton con le differenze divise che l’interpolazione 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 l’errore, soprattutto agli estremi. Si può ovviare a questo inconveniente utilizzando un’interpolazione polinomiale a tratti, facendo uso cioè di polinomi di ugual grado su ciascun tratto, soddisfacenti certe condizioni. Su questo si basa l’interpolazione 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. dire della figura con quale metodo è stata realizzata? Ricordiamoci che f’’(x)>o valle mentre f’’(x)<o campana quindi si possono avere pendenze differenti in un dato punto per questo una derivata in più è utile, perchè fornisce una informazione supplementare ed ulteriore garanzia(vincolo) utile
Le Splines (Schoenbergh - 1946) Dato un insieme di punti, Xn = {xj }jn = 0 a = x0 < x1 < ... < xn = b ed un insieme di valori funzionali {f(xj)}jn=0 facciamo il plot dei punti Pj = (xj , f(xj)), 0 ≤ j ≤ n Vogliamo un modello matematico che interpoli i punti nel modo migliore allora consideriamo una famiglia di funzioni Sp(Xn) di ordine k ≥ 1 , tali che se S(x) Є Sp(Xn) allora S(x) soddisfa le seguenti 3 proprietà: S(xi) = f(xi) i = 0,1,...n S(x) Є Ck-1[a,b] ed S(x), S’(x) ... e Sk-1(x) sono continui in [a, b]; S(x) Є Pk in [xi, xi+1] per i = 0,1,...n-1 Abbiamo un insieme di nodi le cui ascisse sono contenute tra gli estremi della funzione e per tali nodi si conoscono le ordinate si vuole fare il plot del polinomio. Il polinomio ha nei punti dati la stessa ordinata della f(x). k è il grado della famiglia di polinomi che useremo e vogliamo trovare una funzione di grado k >=1 che soddisfa la proprietà di interpolazione, di continuità (con C indichiamo l’ordine di derivazione) e che sia di grado k A
Le Splines cont. 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é Sk(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 S3(x)) in cui d. o. f. = n + 3. Essendo la spline di grado k per ogni intervallino dobbiamo determinare k+1 coefficienti ed essendo n questi intervallini in tutto saranno n(k+1), inoltre dobbiamo imporre le condizioni di continuità da 0 a k-1, sono k per ogni punto interno ed essendo tali punti n-1 possiamo imporre k(n-1) condizioni, pertanto il grado di libertà è: n(k+1)-k(n-1)=n+k
Le Splines lineari Per k = 1 d.o.f = n+1 Definiamo le funzioni cappello ψi i=1,2,...,n-1 Poichè ψi(xj) = δij le ψi sono linearmente indipendenti Segue che: Per la prima proprietà delle splines si ha che:
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, Xn = { xj }jn = 0 a = x0 < x1 < ... < xn = b ed un insieme di valori funzionali {f(xj)}jn=0 facciamo il plot dei punti Pj = (xj , f(xj)), 0 ≤ j ≤ n S(xj) = f(xj) fj , 0 ≤ j ≤ n; che è, S(x) interpola f(x) in [a, b]; S(x) Є C2 [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) = Sj(x) per x in [xᵢ, xᵢ₊₁], 0 ≤ j ≤ n-1; Rapporto di coerenza
Le Splines Cubiche cont. Vi sono altre due condizioni che riguardano precisamente le derivate prime e seconde, e possono essere una delle seguenti: se S3’’(x0) = S3’’(xn) = 0, cioè se le splines cubiche hanno derivate seconde nulle agli estremi, si parla di splines naturali; se S3’(x0) = S3’(xn) e S3’’(x0) = S3’’(xn), la splines si dicono periodiche; se S3’(x0) = y0’ e S3’(xn) = yn’ con y0’ e yn’ 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 nell’ultimo nodo interno: x2, xn-1. Imponendo che la continuità della derivata terza in x2, xn-1 si deduce che i primi e gli ultimi due tratti cubici sono identici, e quindi queste due condizioni equivalgono ad eliminare i nodi x2, xn-1 dalla suddivisione. Per tale motivo tali condizioni sono note come not-a-knot condition. Interessante è la metà inferiore della slide Abbiamo 12 incognite e 10 equazioni..potremmo imporre la continuità della derivata terza..scrivendo i polinomi in ogni tratto(equazioni di 3°grado) poichè le derivate terze sono identiche questo dimostra che S0 = S1 e S2 = S3 Si vede meglio nel foglio
Esistenza ed Unicità E’ necessario definire un polinomio da approssimare relativamente semplice e pochi nodi sul quale interpoleremo la nostra splines ed estenderemo l’esempio al caso più generale. Sia data S(x) e sia S(x) Є P3 Avremo allora S0(x) in [x0 , x1], S1(x) in [x1 , x2], S2(x) in [x2 , x3] Abbiamo 4 incognite in ciascuno dei 3 polinomi, 12 in tutto Garantiamo che i polinomi siano Splines Cubiche S0 (x0) = f0; S1 (x1) = f1; S0 (x1) = S1(x1); S2 (x2) = f2; S1 (x2) = S2 (x2); S2 (x3) = f3; Non dimentichiamo la condizione di continuità nei punti x1 e x2 per la la S’(x) e la S’’(x) S’0 (x1) = S’1(x1) e S’’0 (x1) = S’’1(x1) S’1 (x2) = S’2 (x2) e S”1 (x2) = S”2 (x2); Mancano 2 condizioni.. oppure mancano delle incognite..facciamo quadrare i conti
Esistenza ed Unicità cont. Sia definito hj Δxj xj+1 – xj e Δfj f(xj+1) – f(xj) fj+1 – fj Scegliamo adesso y”0, y”1, …, y”n Scegliamo le splines di modo che S”(xj) = f”(xj) 0 ≤ j ≤ n-1 Integrando due volte: cj e dj sono costanti di integrazione Affinchè Sj(xj) = fj e Sj(xj+1) = fj+1 0 ≤ j ≤ n-1 lavoriamo su cj e dj Per la continuità della derivata seconda imponiamo la prima equazione se ad hj sostiuiamo xj+1 – xj lo vediamo meglio. È proprio la condizione di continutà. Nella seconda perchè otteniamo c e d? perchè integrando 2 volte troviamo due costanti dalla definizione di integrale Se x=xj si nota che troviamo la condizione di continuità su xj e questo discoroso si può fare anche con xj+1 Se alla seconda sostituiamo x=xj otteniamo d e se xj=xj+1 c L’ultima si ricava sostituendo Sj e Sj+1 e poi hj da sopra
Esistenza ed Unicità cont. Differenziando: Garantiamo così la continuità dei nodi interni ed otteniamo il seguente sistema lineare di n-1 equazioni in {xj}jn = 0 incognite Sostituiamo c d d ottenute in Sj(x) Facendo la derivata…noi la facciamo perchè non conosciamo il suo valore..sebbene abbiamo imposto che la continuità nei nodi intermedi da destra e da sinistra su un punto deve essere uguale Così facendo otteniamo il sistema lineare Nel sistema lineare è interessante notare perchè in basso j parte da 1..perchè per il calcolo della derivata prima una incognita è sparita con l’operazione di derivazione Con Sj(x) noi abbiamo garantita l’esistenza..da ora in poi l’unicità
Esistenza ed Unicità cont. Otteniamo così il seguente sistema lineare in forma matriciale Ay = b Dove i = 2 ( hi + h i-1) effettuate le opportune sostituzioni otteniamo il polinomio S(x) . Ricordiamoci chi sono le incognite..le y
Proprietà Estremali Proprietà 1 (di minima curvatura) Sia g(x) una funzione in C2[a, b] che interpola f(x) in {xj}jn = 0 se S(x) Є Sp(Xn) allora S’’’(x) è una costante, ad esempio αj, su ogni sottointervallo (xj , xj+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) Per una qualunque funzione che interpola fx la spline cubica ha derivata 3 = 0
Error bound Si dimostra che se si aumenta il numero di punti di interpolazione in modo tale che h→0 per n→∞ allora S(x) ed S’(x) convergono uniformemente a f(x) e a f’(x) rispettivamente. L’Error function lo definiamo come E(x) = f(x) – S(x) per x Є [a, b] L’Errore dell’approssimazione della derivazione come E’(x) = f’(x) – S’(x) per x Є [a, b]. Mostriamo l’indipendenza dell’error bound dalla x e garantiamo l’uniforme convergenza del metodo. Inoltre non solo possiamo approssimare la f(x) ma anche la sua derivata prima. I polinomi interpolatori visti all’inizio non hanno questo comportamento e tendono ad esagerare la differenza tra la f’(x) e la p’(x).
Funzioni utili ed esempi di interpolazione mediante spline Spline in Matlab Funzioni utili ed esempi di interpolazione mediante spline
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.
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 all’utente per approcciare problemi di vario tipo, come quelli dell’Interpolazione e dell’Approssimazione (ma non solo!).
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)
Panoramica (ppform) Utilizzata per rappresentare funzioni polinomiali a tratti generiche. Sia a= 𝑥 0 < 𝑥 1 < …< 𝑥 𝑛 =𝑏 una partizione di 𝑎,𝑏 ∈𝑅 la generica 𝑃 𝑘 : 𝑎,𝑏 →𝑅 polinomiale a tratti è definita come segue: 𝑃 𝑘 𝑥 = 𝑎 1,1 𝑥 𝑘 + 𝑎 1,2 𝑥 𝑘−1 +…+ 𝑎 1,𝑘 𝑥 0 𝑥∈[ 𝑥 0 , 𝑥 1 ) 𝑎 2,1 𝑥 𝑘 + 𝑎 2,2 𝑥 𝑘−1 +…+ 𝑎 2,𝑘 𝑥 0 𝑥∈[1, 𝑥 2 ) ⋮ 𝑎 𝑛,1 𝑥 𝑘 + 𝑎 𝑛,2 𝑥 𝑘−1 +…+ 𝑎 𝑛,𝑘 𝑥 0 𝑥∈[ 𝑥 𝑛−1 , 𝑥 𝑛 ]
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).
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).
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 (!)
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
Spline Cubiche Mettiamo a confronto diversi tipi di Spline Cubiche. Mostriamo anche il prolungamento delle spline oltre l’intervallo di interpolazione per rendere più visibile il diverso comportamento dei vari tipi agli estremi. File: spline_diverse.m
Interpolazione Lagrangiana vs Spline Data una serie di punti da interpolare, mettiamo a confronto interpolazione Lagrangiana con l’interpolazione mediante Splines lineare e cubica naturale. Si può notare l’effetto Runge che affligge l’interpolazione Lagrangiana (con polinomio di grado 9). L’interpolazione 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
Spline e derivate Si vuole interpolare la funzione 𝑓 𝑥 = 𝑥𝑒 − (𝑥−1) 2 E le sue derivate fino alla seconda Si noti che, posto 𝑆 𝑗 (𝑥) il polinomio di terzo grado nel generico j-esimo intervallo 𝑆 𝑗 𝑥 = 𝑎 𝑗,1 𝑥 3 + 𝑎 𝑗,2 𝑥 2 + 𝑎 𝑗,3 𝑥+ 𝑎 𝑗,4 Calcolarne la derivata equivale a determinare: 𝑆 𝑗 ′ 𝑥 = 3𝑎 𝑗,1 𝑥 2 + 2𝑎 𝑗,2 𝑥+ 𝑎 𝑗,3 File: spline_derivata.m
Convergenza dell’interpolazione Spline Valutiamo l’errore commesso nell’interpolare la funzione 𝐿𝑜𝑔(𝑥) per alcuni tipi di interpolazione spline (lineare, cubica naturale e cubica not-a-knot). Mostriamo (solo a livello empirico) come al tendere ad infinito del numero dei punti di interpolazione l’errore tenda a zero. Equivalentemente, l’interpolazione tenderà a coincidere con la funzione interpolata. File: errore_spline.m
Convergenza cont. Il codice dell’esempio esempio, di cui riportiamo i risultati, mostra l’errore massimo commesso in funzione del numero di nodi N e del tipo di interpolazione utilizzata. E’ possibile vedere come, al contrario di quanto avviene nell’interpolazione polinomiale classica, l’errore 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.
Convergenza cont. N Spline Lineare Cubica Naturale Cubica Not-a-Knot 3 1.03 ∙𝑒 −2 5.22 ∙𝑒 −3 8.28 ∙𝑒 −4 4 6.21 ∙𝑒 −3 2.93 ∙𝑒 −3 2.63 ∙𝑒 −4 5 4.15 ∙𝑒 −3 1.91 ∙𝑒 −3 1.29 ∙𝑒 −4 6 2.97 ∙𝑒 −3 1.34 ∙𝑒 −3 6.94 ∙𝑒 −5 7 2.23 ∙𝑒 −3 9.86 ∙𝑒 −4 4.07 ∙𝑒 −5 8 1.73 ∙𝑒 −3 7.57 ∙𝑒 −4 2.54 ∙𝑒 −5 9 1.39 ∙𝑒 −3 6.00 ∙𝑒 −4 1.67 ∙𝑒 −5 10 1.14 ∙𝑒 −3 4.86 ∙𝑒 −4 1.14 ∙𝑒 −5
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
Conclusioni Abbiamo illustrato pochi ma comprensibili (speriamo!) esempi di codice, al fine di illustrare l’utilità e facilità d’uso 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)
GRAZIE