Sei sulla pagina 1di 4

Funzioni spline

Definizione Siano x0 , . . . , xn , n + 1 nodi distinti ed ordinati sull’intervallo [a, b]


con a = x0 < x1 < . . . , xn = b. La funzione s(x) sull’intervallo [a, b] è una spline
di grado d relativa ad i nodi xj se

1. su ogni sottointervallo [xj−1 , xj ] (j = 1, . . . , n), s(x) è un polinomio di grado


≤ d;

2. s(x) ∈ C d−1 [a, b].

Spline cubiche interpolanti


(a) ∀j = 0, . . . , n − 1, la restrizione di s(x) all’intervallo [xj , xj+1 ], è un polinomio
cubico sj (x);

(b) s(xj ) = yj , ∀j = 0, . . . , n;

(c) sj−1 (xj ) = sj (xj ), ∀j = 1, . . . , n − 1;

(d) s0j−1 (xj ) = s0j (xj ), ∀j = 1, . . . , n − 1;

(e) s00j−1 (xj ) = s00j (xj ), ∀j = 1, . . . , n − 1;

(f ) una delle seguenti condizioni al contorno:

(i) spline naturale s00 (x0 ) = s00 (xn ) = 0


(ii) spline vincolata s0 (x0 ) = f 0 (x0 ) e s0 (xn ) = f 0 (xn )
(iii) spline not-a-knot s000 000 000 000
0 (x1 ) = s1 (x1 ) e sn−2 (xn−1 ) = sn−1 (xn−1 )

Teorema Sia s(x) la spline cubica naturale interpolante f ∈ C 2 ([a, b]). Allora
Z b Z b
00 2 2
(s (x)) dx ≤ (f 00 (x)) dx,
a a

e vale l’uguaglianza se e solo se f ≡ s.

Teorema Sia f ∈ C 4 ([a, b]) e si supponga nota una partizione di [a, b] in sot-
tointervalli di ampiezza hi . Allora

kf (k) − s(k) k∞ ≤ Ck H 4−k kf (4) k∞ , k = 0, 1, 2, 3,

con Ck costanti positive e H = maxi hi .

A. Quarteroni, R. Sacco, F. Saleri, Matematica Numerica, Springer.

1
Spline cubica naturale
Per sj (x) si usa la forma

sj (x) = aj + bj (x − xj ) + cj (x − xj )2 + dj (x − xj )3 , (1)

occorre determinare i coefficienti aj , bj , cj e dj , per j = 0, . . . , n − 1.

Sia hj = xj+1 − xj , j = 0, . . . , n − 1. Si risolve il sistema

Ax = δ,

dove A è la matrice n + 1 × n + 1
 
1 0 0 ...... 0
..
 h0 2(h0 + h1 )

h1 . 0



 0 .. 
 h1 2(h1 + h2 ) h2 . 

 . . . . .
. . . . .

 . . . . . 
. .
 
A =  ..
 ... ... ... .. 

 . ..
.. .. ..

 .. . . . . 
 
 . . . . ..
 .. .. .. ..

 . 

 0 hn−2 2(hn−2 + hn−1 ) hn−1 
0 ... ... 0 1

e δ ed x sono i vettori
 
0
3 3

 (y
h1 2
− y 1 ) − (y − y0 )
h0 1


 .. 
 . 
δ= ..

.
 
 
3 3
(y − yn−1 ) − hn−2 (yn−1 − yn−2 )
 
hn−1 n
 
0
 
c0

 c1 

 c2 
x=
 .. .

 . 
 .. 
 . 
cn

ˆ La
Pn+1 matrice A è tridiagonale, a diagonale strettamente dominante (|aii | >
j=1 |aij |, i = 1, . . . , n + 1), dunque il sistema ha una unica soluzione
c0 , c1 , . . . , cn (che può essere efficientemente ottenuta usando l’algoritmo di
Thomas).

2
ˆ Una volta calcolate le cj , si determinano

aj = y j ,

yj+1 − yj hj
bj = − (cj+1 + 2cj ),
hj 3

cj+1 − cj
dj = ,
3hj

per j = 0, . . . , n − 1.

ˆ Per la valutazione del polinomio sj (x) è conveniente utilizzare l’algoritmo di


Horner.

3
Spline cubica vincolata

Si risolve il sistema
Ax = b,
dove A è la matrice n + 1 × n + 1
 
2h0 h0 0 ...... 0
..
 h0 2(h0 + h1 )

h1 . 0



 0 .. 
 h1 2(h1 + h2 ) h2 . 

 .. ... ... ... .. 
 . . 
. ..
 
A =  ..
 . .. . .. . .. 
. 
 . ..
. . .

 .. .. .. .. . 
 
 . . . . ..
 .. .. .. ..

 . 

 0 hn−2 2(hn−2 + hn−1 ) hn−1 
0 ... 0 hn−1 2hn−1

e b ed x sono i vettori
3
− y0 ) − 3f 0 (x0 )
 
(y
h0 1
3

 (y − y1 ) − h30 (y1 − y0 )
h1 2


 .. 
 . 
b= ..

.
 
 
3 3
(y − yn−1 ) − hn−2 (yn−1 − yn−2 )
 
 hn−1 n 
0 3
3f (xn ) − hn−1 (yn − yn−1 )
 
c0

 c1 

 c2 
x=
 .. .

 . 
 .. 
 . 
cn

N.B.: Anche in questo caso la matrice A è tridiagonale, a diagonale strettamente


dominante, dunque il sistema ha una unica soluzione c0 , c1 , . . . , cn .

La descrizione completa si trova in:


R.L. Burden , J.D. Faires, Numerical Analysis, Brooks/Cole Pub Co (2015).

Potrebbero piacerti anche