Sei sulla pagina 1di 15

Interpolazione con spline

Interpolazione con spline


Talvolta il fit con polinomi di ordine alto puo dare
risultati poco affidabili, specialmente se si hanno
bruschi cambiamenti nella funzione.
Linterpolazione con la spline fornisce un andamento
piu smussato tra i dati.
Si basa sullapplicazione di un polinomio di
ordine piu basso diverso per ognuno dei vari
intervalli tra I punti.
La continuita della funzione e garantita usando
vincoli ai valori delle derivate della funzione nei nodi.

Qui linterpolazione
con il polinomio
sovrastima la
funzione. La spline
invece offre una
transizione piu
smussata e piu
attendibile

nodo

Si utilizza una diversa funzione di


spline per ogni singolo intervallo

Spline lineare
Ogni intervallo e connesso con una linea retta
Per ogni intervallo

f ( x ) = f ( x i ) + mi ( x x i )
dove

f ( x i+1 ) f ( x i )
mi =
( x i+1 x i )

la spline lineare e identica al fit con polinomio del primo ordine


la funzione di spline lineare e discontinua nelle posizioni dei nodi.
Pertanto abbiamo bisogno di usare
polinomi di ordine superiore per
garantire la continuita della funzione.
In generale per garantire che la derivata di ordine m sia continua,
bisogna usare un fit con una spline di ordine (m+1)

Spline quadratica
Nella spline quadratica, ogni intervallo e
rappresentato da un diverso polinomio del secondo
ordine

f ( x ) = ai x + bi x + c i

Per (n+1) punti,


ci sono n intervalli. Ci sono quindi

3 x n incognite da trovare .

Condizioni
1. Le due funzioni adiacenti devono passare per i punti
interni: 2(n-1) equazioni per i=2,n
2
ai1 x i1
+ bi1 x i1 + c i1 = f ( x i1 )
2
ai x i1
+ bi x i1 + c i = f ( x i1 )

2. La prima e lultima funzione devono passare per i


punti finali: 2 equazioni

a1 x 02 + b1 x 0 + c1 = f ( x 0 )
an x n2 + bn x n + c n = f ( x n )

Condizioni
3. Le derivate prime nei punti interni devono essere
uguali: (n-1) equazioni, per i=2,n

f ( x ) = 2ax + b

2ai1 x i1 + bi1 = 2ai x i1 + bi

4. Il
vincolo mancante e scelto in modo arbitrario: 1
equazione

Condizioni: ricapitolando
1. Le due funzioni adiacenti devono passare per i punti
interni: 2(n-1) equazioni
2. La prima e lultima funzione devono passare per i
punti finali: 2 equazioni
3. Le derivate prime nei punti interni devono essere
uguali: (n-1) equazioni
4. Il vincolo mancante e scelto in modo arbitrario: 1
equazione
Queste 3n equazioni lineari devono essere risolte
simultaneamente (sistema lineare algebrico) per
trovare i 3n coefficienti.
Nota: la continuita della derivata seconda sui nodi non e
garantita!

Spline cubica
Nella spline cubica, ogni intervallo e rappresentato
da un diverso polinomio del terzo ordine

f ( x ) = ai x 3 + bi x 2 + c i x + di

Per (n+1) punti, ci sono n intervalli. Ci sono quindi


4 x n incognite da trovare.

Condizioni
1. Le due funzioni adiacenti devono passare per i punti
interni: 2(n-1) equazioni
2. La prima e lultima funzione devono passare per i
punti finali: 2 equazioni
3. Le derivate prime nei punti interni devono essere
uguali: (n-1) equazioni
4. Le derivate seconde nei punti interni devono essere
uguali: (n-1) equazioni
5. Le derivate seconde nei nodi finali sono assunte nulle
2 equazioni (condizioni arbitrarie dette di spline
naturale)
Queste 4n equazioni lineari devono essere risolte
simultaneamente (sistema lineare algebrico) per
trovare i 4n coefficienti.
Nota: la continuita della derivata terza sui nodi non e
garantita!

Spline cubica
Lalgoritmo della spline cubica deve:
- Controllare che gli (n+1) dati siano in ordine crescente
- Costruire la matrice rappresentativa del sistema lineare
algebrico le cui incognite sono le derivate seconde nei
(n-1) punti interni:

( x i x i1) f ( x i1) + 2( x i+1 x i1) f ( x i ) + ( x i+1 x i ) f ( x i+1) =


6
6
f ( x i+1 ) f ( x i ) +
f ( x i1 ) f ( x i )
( x i+1 x i )
( x i x i1)

Ricordarsi anche che

f ( x 0 ) = f ( x n ) = 0

-Risolvere il sistema lineare algebrico


-Una volta trovate tutte le (n+1) derivate
seconde nei nodi, per ogni generico punto x in
cui si vuole fare linterpolazione, occorre prima
trovare lintervallino a cui x appartiene

x i1 < x < x i
Dopo di che il valore interpolato in x e ottenuto dalla formula
fi ( x) =

f ( x i1 )
6( x i x i1 )

( xi x)

f ( xi )
6( x i x i1 )

f (x )
f ( x i1 )( x i x i1 )
i1

( x i x ) +

6
( x i x i1 )

f (x )

f
x
x

x
(
)
(
)

i
i
i
i1

( x x i1 )

6
( x i x i1 )

( x x i1)

Perche (n-1) incognite anziche 4 x n?


Se il polinomio e una cubica, la sua derivata seconda euna retta, che
si puo scrivere come polinomio di Lagrange al primo ordine:

x xi
x x i1

f i ( x ) = f ( x i1 )
+ f ( xi )
x i1 x i
x i x i1
Integrando due volte, servono due costanti di integrazione: vengono
fissate in modo che f(x) assuma gli opportuni valori a xi-1 e xi. Cosi si
ottiene una relazione complicata, ma con solo 2 incognite!

fi ( x) =

f ( x i1 )
6( x i x i1 )

( xi x)

f ( xi )
6( x i x i1 )

f (x )
f ( x i1 )( x i x i1 )
i1

( x i x ) +

6
( x i x i1 )

f (x )

f
x
x

x
(
)
(
)

i
i
i
i1

( x x i1 )

6
( x i x i1 )

( x x i1)

Se si deriva lequazione precedente e si impongono le


condizioni di continuita sulle derivate prima si ottiene:

( x i x i1) f ( x i1) + 2( x i+1 x i1) f ( x i ) + ( x i+1 x i ) f ( x i+1) =


6
6
f ( x i+1 ) f ( x i ) +
f ( x i1 ) f ( x i )
( x i+1 x i )
( x i x i1)

Relazione con solo 3 incognite in ogni equazione:


matrice rappresentativa tridiagonale!

Matrice tri-diagonale
f1

e2
0

.
.

.
.

g1
f2
e3
.
.
.
.

0
g2
f3
.
.
.
.

.
.
0
.
g3
0
.
.
.
.
0 en2
.
0

.
.
.
.
.
f n2
en1

. f1
c1

. f 2 c 2
. f c 3
3

. . = .
. . .

gn2 f c n2
n2

f n1 f c n1
n1