Interpolazione e
approssimazione numerica
Interpolazione e approssimazione 1
In molti problemi matematici, si incontrano fun- zioni f(x) note analiticamente ma di forma non ele- mentare, o di cui si possiede solo una tabulazione in un numero finito di punti (sovente si tratta di misurazioni sperimentali)
La stima del valore di f(x), in un punto diverso da quelli noti, può essere ottenuta utilizzando i dati disponibili
Questa operazione, detta interpolazione, si effettua sostituendo f(x) con una funzione, scelta in un in- sieme opportuno, che sia facilmente calcolabile
Il problema dell’interpolazione e quello dell’appros- simazione di f(x), cioè della sostituzione di f(x) con una funzione più semplice e che si discosti da f(x) il meno possibile, sono strettamente correlati
Pertanto la costruzione di una funzione semplice e che “descriva il comportamento di f(x)” può avveni-re secondo due approcci:
1. DATI ESATTI: si cerca una funzione che passi per i valori assegnati
interpolazione
2. DATI AFFETTI DA ERRORE: i dati vengono approssimati “nel loro insieme”
migliore approssimazione
3
Interpolazione e approssimazione 2
Classi di funzioni per interpolare/approssimare Polinomi
Funzioni razionali
Funzioni trigonometriche
Funzioni polinomiali a tratti (spline)
Interpolazione e approssimazione 3
Interpolazione
Approssimazione
Interpolazione
Dati i punti (xi , fi), i0,…,n, con xi[a,b] (gli xi sono i punti fondamentali e sono assunti distinti, xixj per ij) ed un insieme di funzioni φj(x), j0,…,n, definite in [a,b] e linearmente indipendenti, si determini
g(x)
ajφj(x)tale che g(xi)
ajφj(xi) fi, per i0,…,nLa scelta della classe delle funzioni φj(x) dipende dalle applicazioni ed è di cruciale importanza
5
condizioni di interpolazione n
n j0
j0
Qualora si scelga di utilizzare una base polinomiale, allora φj(x)x j, j0,…,n
In questo caso, le condizioni di interpola-zione conducono alla risoluzione di un si-stema lineare nelle incognite α0, α1,…,αn
Mf con
Interpolazione polinomiale
Matrice di Vandermonde
Assegnati i punti (xi , fi), i0,…,n, si definisce base di Lagrange l’insieme ℓ0(x), ℓ1(x),…, ℓn(x), tale che ogni ℓj(x) è un polinomio di grado n e
Il polinomio di grado n definito dalla base di Lagrange coincide con il polinomio interpolante poi-ché, per costruzione, i suoi coefficienti coincidono con gli fi
7
Polinomio interpolante di Lagrange 1
Base di Lagrange
ovvero
Polinomio interpolante di Lagrange 2
Manca il termine (xxj)
Assegnati i punti (1,2), (1,1), (2,1), si calcoli un polinomio del tipo
Calcoliamo le funzioni fondamentali di Lagrange:
da cui…
Polinomio interpolante di Lagrange
Esempio
Per calcolare sia il numeratore che il deno- minatore occorrono n1 prodotti
la complessità computazionale è O(n
2)
Se si aggiunge un punto di osservazione, tutti gli ℓ
j(x) devono essere ricalcolati
In generale, se f(x) è un polinomio di grado non superiore ad n, allora P
n(x)f(x)
Funzioni diverse possono avere lo stesso polinomio interpolante
Polinomio interpolante di Lagrange
Osservazioni
Per stimare l’errore commesso nell’appros- simazione con il polinomio interpolante fuori dai punti fondamentali (x
i,f
i) (x
i,f(x
i)), si considera
E
n(x)f(x)P
n(x), per xx
ii
Se fC
n1[a,b] e a x
0 x
1 … x
n b, si ottiene
E
n(x) a,b
n1(x) (x x
0)(x x
1)(x x
n)
E
n(x) , S max f
n1(x)
11Polinomio interpolante di Lagrange
Errore 1
n1(x)f
n1( )
(n1)!
(b a)
n1S (n1)!
x[a,b]
I fattori che influiscono sul calcolo dell’er- rore sono:
la regolarità della funzione f
il numero di punti su cui f è nota e quindi il grado del polinomio interpolante
la funzione n1(x)(x x0)(x x1)(x xn), che dipende solo dagli xi
Possibili strategie per minimizzare l’errore
Aumentare il numero dei dati a disposizione
Cercare i nodi che rendono n1(x) più piccola possibile x[a,b]
Tuttavia… all’aumentare del grado del polinomio non sempre l’errore diminuisce!
Polinomio interpolante di Lagrange
Errore 2
Si costruisca il polinomio interpolante su 6, 10, 15 punti equidistanti in [1,1]
13
Polinomio interpolante di Lagrange
Esempio: funzione di Runge 1
Il comportamento del polinomio interpolante peg- giora al crescere del grado; infatti, le derivate di Pn crescono rapidamente all’aumentare di n
Se i nodi vengono scelti opportunamente, il ri- sultato migliora
Polinomio interpolante di Lagrange
Esempio: funzione di Runge 2
Approssimazione
Dati i punti (xi , fi), i1,…,n, con xi[a,b], si cerca una funzione g(x), che passi “vicino” ad essi
Il concetto di vicinanza dovrà essere valutato mediante il calcolo di
g(xi)fi per i1,…,n
In modo compatto, utilizzando la notazione vetto-riale, occorre valutare la differenza fra le compo-nenti di due vettori in Rn
g(x1) f1 g(x2) f2
………
g(xn) fn
15
Teoricamente, può essere utilizzata una qualsiasi tra le norme equivalenti; normal- mente, si valuta la norma Euclidea
Si risolve il problema della migliore appros- simazione ai minimi quadrati
Nel caso in cui si scelga di realizzare g(x) mediante un polinomio, si tratta quindi di minimizzare
min
Migliore approssimazione
n( f
i a
0 a
1x
i a
2x
i2 … a
mx
im)
2i1
n(g(x
i)f
i)
2i1
a0, a1,…, am
Il problema di minimizzazione min F(a
0,a
1,…,a
m)
si riduce al calcolo delle derivate di F (ri- spetto ad a
0,a
1,…,a
m) che devono essere poste a 0, producendo il sistema lineare
17
Migliore approssimazione ai minimi quadrati 1
a0, a1,…, am
…sistema che può essere riscritto come
ovvero, in forma matriciale Maf La matrice M risulta
simmetrica per costruzione invertibile e definita positiva
Migliore approssimazione
ai minimi quadrati 2
L’interpolazione è un caso particolare di approssi- mazione, che corrisponde alla situazione in cui il grado del polinimio è pari al numero dei punti noti meno uno
19
Osservazione 1
Aumentando il grado del polinomio possono sor-gere problemi dovuti alle oscillazioni
Si ricorre all’impiego di funzioni polinomiali a tratti, o spline
Osservazione 2
IDEA: usare interpolanti polinomiali di grado bas-so, partizionando l’intervallo di interesse ed inter-polando in ciascun sottointervallo su pochi punti
Non è necessario che gli estremi dei sottointervalli coincidano con i punti di interpolazione
Se coincidono spline interpolanti nei nodi
Il caso più semplice corrisponde a funzioni lineari a tratti (polinomi di primo grado in ciascun sotto-intervallo)
Talvolta funziona meglio del polinomio interpolante!
21
Funzioni polinomiali a tratti 1
Funzioni polinomiali a tratti 2
Polinomi “a pezzi” di grado 2
Dato l’intervallo [a,b], si consideri una successione finita di numeri reali detti nodi appartenenti all’intervallo e tali che ax
0x
1 …x
n1b
Si individua in tal modo una partizione dell’intervallo [a,b] in n sottointervalli, I
i[x
i,x
i1], i=0,…,n
23
Funzioni spline 1
Si dice funzione spline di grado m o di ordine m1 relativa alla partizione {x
i}
i0di [a,b] una funzione S(x) che soddisfa le seguenti due proprietà
S(x) è un polinomio si(x) di grado non superiore ad m in ciascun sottointervallo Ii, i=0,…,n della partizione
S(x)Cm1([a,b]), ossia la funzione e le sue derivate, fino all’ordine m1, sono continue in [a,b]; ciò significa che per ogni nodo interno alla partizione valgono le seguenti condizioni
s (x ) s (x ), i=0,…,n1, k0,…,m1
Funzioni spline 2
n1
(k) (k)
In altre parole, una spline S(x), entro cia-scun intervallo I
i, è un polinomio di grado al più m che, in ogni punto interno all’inter-vallo è C
ed agli estremi coincide con il polinomio relativo all’intervallo precedente (se esiste) e con quello relativo all’intervallo successivo (se esiste) fino alla derivata (m1)esima
I parametri da determinare sono (m1)n
I vincoli da imporre per la regolarità (nei nodi interni) sono m(n1)
In totale si hanno (m+1)nm(n1)nm condi-zioni (con nm dimensione dello spazio delle spline di grado m, con continuità m1, definite su n1 nodi)
25
Funzioni spline 3
Funzioni spline 4
Spline di grado 3 Spline di grado 1
Sia X{x1,x2,…,xn} una sequenza non decrescente di numeri reali (xi xi1); gli xi sono i nodi (knot)
Si definisce la iesima funzione base di ordine k, indicata con Bi,k, come
Osserviamo che:
Bi,1(t) è una funzione costante a tratti, uguale a zero ovunque, tranne che nell’intervallo [xi,xi1)
Per ogni k, Bi,k(t) è una combinazione lineare di due funzioni
di base di ordine k1 27
Funzioni Bspline 1
Funzioni Bspline 2
Se, nel calcolo delle funzioni di base, si de- termina un quoziente del tipo 0/0, il termine corrispondente viene posto uguale a zero
Lo schema di calcolo ricorrente per la fun-
zione di ordine k, risulta…
29
Funzioni Bspline 3
Le funzioni Bspline:
sono positive, Bi,k(t)0, t (xi,xi1)
sono a supporto locale e compatto, Bi,k(t)0, per t [xi,xi1]
formano una partizione dell’unità, ovvero per ogni intervallo (xi,xi1], la somma di tutte le funzioni non nulle è uguale a 1, per qualunque t
Le Bspline formano una base stabile per lo
spazio delle spline (e vengono comunemen-
te impiegate in tutte le applicazioni indu-
striali)
In generale i nodi della spline possono non coincidere con i punti di interpolazione; se invece coincidono si utilizza il sottoinsieme delle spline interpolanti nei nodi
Per le spline interpolanti nei nodi, dati i punti (x
i,y
i), i0,…,n1, deve quindi valere la condizione di interpolazione S(x
i)y
iIn questo caso, le n1 condizioni di interpo- lazione riducono il numero dei parametri liberi a nm(n1)m1
Spline interpolanti nei nodi 1
Tra le spline interpolanti nei nodi, le più usate sono le spline cubiche, per le quali restano da deter- minare due condizioni (m12 parametri liberi)
Tra tutte le funzioni f(x)C2[a,b] che soddisfano le condizioni di interpolazione S(xi)yi e le condizioni date sugli estremi dell’intervallo, le spline cubiche sono le sole funzioni che minimizzano l’integrale
E(f ) [f (x)]2dx
E(f) rappresenta una misura approssimata della cur- vatura totale di f in [a,b]
La spline cubica è, tra tutte le funzioni che passano per i dati assegnati, quella che ha la curvatura media minore ed è quindi la più “liscia”
Spline interpolanti nei nodi 2
b a
31
Spline interpolanti nei nodi 3
Spline interpolante di grado 3 (blu) e polinomio interpo- lante (verde)
Le scelte più comuni per le funzioni spline cubiche sono:
1. Spline naturali: s(a)s(b)0
2. Spline periodiche: s(a)s(b), s(a)s(b)
3. Spline “not a knot” (default MATLAB): s(x1), s(xn1)C3