Spline
Spline
Interpolazione
Una funzione g(x) polinomiale a tratti su [a, b] è una funzione che sull’i-
esimo sottointervallo [xi , xi+1 ] coincide con un polinomio di grado ki . Di
solito ki = k, i = 0, . . . , n − 1, cioè i polinomi usati nei diversi sottointervalli
hanno sempre lo stesso grado k. La funzione g(x) viene quindi rappresentata
per mezzo di una matrice contenente nell’i-esima riga, i = 0, . . . , n − 1, i
coefficienti
ai,k , ai,k−1 , . . . ai,0
dell’i-esimo polinomio
f (xi+1 ) − f (xi )
pi (x) = (x − xi ) + f (xi ),
hi
dove hi = xi+1 − xi , i = 0, . . . , n − 1. Per la sua semplicità questo metodo
è usato spesso nella pratica. Inoltre se f �� (x) è limitata in [a, b], al tendere
a zero del massimo degli hi , la funzione g(x) tende alla funzione f (x). Però
questo metodo non è adatto per una buona rappresentazione grafica della
funzione: poiché non vi è alcuna condizione sulle derivate dei due polinomi,
nei nodi xi il raccordo fra due diversi polinomi lineari presenta in generale
un punto angoloso.
5.67 Esempio. I seguenti dati si riferiscono alla portata d’acqua di un
fiume italiano, misurata mensilmente in m3 /sec.
Capitolo 5. Interpolazione 435
mese G F M A M G
mese L A S O N D
Nella figura 5.25 sono riportati i grafici della polinomiale lineare a tratti
(linea più spessa) e il grafico del polinomio di interpolazione di grado 11
su tutti i punti (linea sottile). Dalla figura risulta che l’andamento del
polinomio di interpolazione non rende accettabile l’approssimazione.
14
12
10
G F M A M G L A S O N D
1 � � � � � �� 3
pi (x) = 2 f (xi ) − f (x i+1 ) + h i f (x i ) + f �
(x i+1 ) yi
h3i
1� � � � ��
− 2 3 f (xi ) − f (xi+1 ) + hi 2f � (xi ) + f � (xi+1 ) yi2 + f � (xi ) yi + f (xi ),
hi
436 Capitolo 5. Interpolazione
Una funzione reale s(x) ∈ C 2 [a, b] viene chiamata spline cubica per l’appros-
simazione della f (x) se
a) in ogni sottointervallo [xi , xi+1 ], i = 0, . . . , n − 1, s(x) coincide con un
polinomio di grado al piú 3;
b) s(xi ) = f (xi ), per i = 0, . . . , n.
hi−1 hi
µi−1 + 2µi + µi+1 = 6f [xi−1 , xi , xi+1 ],
hi−1 + hi hi−1 + hi
da cui si ottiene
hi−1 hi
dove γi = > 0, δi = > 0, γi + δi = 1.
hi−1 + hi hi−1 + hi
Altre due relazioni si ottengono tramite le condizioni aggiuntive. Per la
spline naturale, dalle d� ) si ha
µ0 = 0, µn = 0. (89)
h0 h0 f (x1 ) − f (x0 )
s�0 (x0 ) = −µ0 − µ1 + = f � (x0 ),
3 6 h0
hn−1 hn−1 f (xn ) − f (xn−1 )
s�n−1 (xn ) = µn−1 + µn + = f � (xn ),
6 3 hn−1
da cui
h0 h0 f (x1 ) − f (x0 )
µ0 + µ1 = − f � (x0 )
3 6 h0
(90)
h h f (xn ) − f (xn−1 )
n−1 µn−1 + n−1 µn = f � (xn ) − ;
6 3 hn−1
con le notazioni delle differenze divise, tenendo conto che per la (28) è
si ha
tenendo conto che in questo caso è f (xn ) = f (x0 ), con l’introduzione del
punto xn+1 tale che xn+1 − xn = x1 − x0 e f (xn+1 ) = f (x1 ), si ha
2µ1 + δ1 µ2 + γ1 µn = 6f [x0 , x1 , x2 ].
5.70 Esempio. Nella figura 5.26 è riportato il grafico della spline cubica
naturale che approssima la funzione dell’esempio 5.67. Dal confronto con
la figura 5.25 risulta che l’approssimazione ottenuta con le spline è migliore
di quelle ottenute con la polinomiale lineare a tratti e con il polinomio di
interpolazione.
14
12
10
G F M A M G L A S O N D
5.71 Teorema. Fra tutte le funzioni g(x) ∈ C 2 [a, b], tali che g(xi ) = f (xi ),
i = 0, . . . , n, la spline cubica naturale s(x) è quella che minimizza l’integrale
� b
[g �� (x)]2 dx. (93)
a
Dim. Si ha
� b
0≤ [g �� (x) − s�� (x)]2 dx
a
� b � b � b
(94)
= [g (x)] dx − 2
�� 2
[g (x) − s (x)]s (x) dx −
�� �� ��
[s (x)] dx.
�� 2
a a a
Per ogni sottointervallo [xi , xi+1 ] si ha, integrando due volte per parti,
� xi+1 � �xi+1
� �
[g �� (x) − s�� (x)]s�� (x) dx = g � (x) − s� (x) s�� (x)
xi
xi
� �xi+1 �
� � xi+1 � �
− g(x) − s(x) s(3) (x) + g(x) − s(x) s(4) (x) dx.
xi
xi
n−1
� �xi+1 � �b
� � � � �
= g � (x) − s� (x) s�� (x) = g � (x) − s� (x) s�� (x)
i=0 xi a
442 Capitolo 5. Interpolazione
e tale espressione è nulla in quanto s�� (a) = s�� (b) = 0. Dalla (94) segue che
� b � b
[s (x)] dx ≤
�� 2
[g �� (x)]2 dx
a a
per ogni funzione g(x) a derivata seconda continua tale che g(xi ) = f (xi ).
La g �� (x) è legata alla curvatura della funzione g(x) nel punto x, definita
come il reciproco del raggio del cerchio osculatore in x, e data dall’espres-
sione
c(x) = |g �� (x)|(1 + [g � (x)]2 )−3/2 ;
l’integrale (93) può allora essere assunto come una misura della curvatura
globale della funzione g(x), se |g � (x)| è piccolo rispetto ad 1. Dal teorema
5.71 risulta quindi che la spline cubica naturale è quella che minimizza la
curvatura globale. Dal teorema 5.71 segue anche che se f (x) ∈ C 2 [a, b],
allora � �
b b
[s (x)] dx ≤
�� 2
[f �� (x)]2 dx. (95)
a a
A differenza di quanto accade per i polinomi che interpolano la f (x)
su tutto l’intervallo [a, b], le funzioni spline convergono alla f (x) quando si
infittiscono i nodi xi , i = 0, . . . , n. Valgono infatti i seguenti teoremi.
e sia
H= max hi .
i=0,...,n−1
Allora per i momenti della spline cubica s(x) completa vale la relazione
3
max |µi − f �� (xi )| ≤ M4 H 2 . (96)
i=0,...,n 4
Dim. Dalla formula di Taylor si ha
f (xi+1 ) − f (xi ) hi �� h2 h3
= f � (xi ) + f (xi ) + i f ���� (xi ) + i f (4) (ξi,1 ),
hi 2 3! 4!
f (xi ) − f (xi−1 ) hi−1 �� h 2
= f � (xi ) − f (xi ) + i−1 f ��� (xi )
hi−1 2 3!
3
h
− i−1 f (4) (ξi,2 ),
4!
h2
f �� (xi−1 ) = f �� (xi ) − hi−1 f ��� (xi ) + i−1 f (4) (ξi,3 ),
2
2
h
f �� (xi+1 ) = f �� (xi ) + hi f ��� (xi ) + i f (4) (ξi,4 ),
2
Capitolo 5. Interpolazione 443
hi−1 hi−1 + hi hi
gi = [µi−1 − f �� (xi−1 )] + [µi − f �� (xi )] + [µi+1 − f �� (xi+1 )],
6 3 6
sostituendo le relazioni precedenti nella (87) si ha
� � � �
h3i 1 (4) h3i−1 1 (4)
gi = f (ξi,1 ) − f (ξi,4 ) +
(4)
f (ξi,2 ) − f (ξi,3 ) .
(4)
12 2 12 2
Passando ai moduli si ha
M4 3
|g0 | ≤ h ,
8 0
M4 3
|gi | ≤ (hi−1 + h3i ), per i = 1, . . . , n − 1, (97)
8
M4 3
|gn | ≤ h .
8 n−1
Sia ora k l’indice per cui
Se 1 ≤ k ≤ n − 1, si ha
hk−1 � � hk−1 + hk � �
gk = µk−1 − f �� (xk−1 ) + µk − f �� (xk )
6 3
hk � � h k−1 + hk � �
+ µk+1 − f �� (xk+1 ) = µk − f �� (xk )
6 6
hk−1 � �
+ µk − f �� (xk ) + µk−1 − f �� (xk−1 )
6
hk � �
+ µk − f �� (xk ) + µk+1 − f �� (xk+1 ) .
6
444 Capitolo 5. Interpolazione
hk−1 + hk �� �
|gk | ≥ µk − f �� (xk )�
6
e quindi
6 |gk |
|µk − f �� (xk )| ≤ . (99)
hk−1 + hk
Per la (97) è allora
3 h3k−1 + h3k 3 3
|µk −f (xk )| ≤ M4
��
= M4 (h2k−1 −hk−1 hk +h2k ) ≤ M4 H 2 .
4 hk−1 + hk 4 4
6|g0 |
|µ0 − f �� (x0 )| ≤ ,
h0
6|gn |
|µn − f �� (xn )| ≤ ,
hn−1
h = min hi ,
i=0,...,n
H2
|f ��� (x) − s���
i (x)| ≤ 2M4 , per x ∈ [xi , xi+1 ], i = 0, . . . , n − 1,
h
7 H3
|f �� (x) − s�� (x)| ≤ M4 ,
4 h
7 H4
|f � (x) − s� (x)| ≤ M4 ,
4 h
7 H5
|f (x) − s(x)| ≤ M4 , per x ∈ [a, b].
8 h
µi+1 − µi
i (x) =
s��� ,
hi
Capitolo 5. Interpolazione 445
da cui
µi+1 − µi
i (x) − f (x) =
s��� − f ��� (x)
���
hi
[µi+1 − f �� (xi+1 )] − [µi − f �� (xi )]
=
hi
[f (xi+1 ) − f (x)] − [f �� (xi ) − f �� (x)]
�� ��
+ − f ��� (x).
hi
Per la formula di Taylor e per la (96) è
�si (x)−f ��� (x)� ≤ 3 M4 H 2 + 1 �(xi+1 −x)2 f (4) (ξ1 )−(xi −x)2 f (4) (ξ2 )�,
� ��� � � �
2hi 2hi
3 1 H2
i (x)
|s��� − f (x)| ≤ M4 H + hi M4 ≤ 2M4 (100)
��� 2
.
2hi 2 hi
Per la seconda disuguaglianza, se x coincide con uno dei nodi la maggio-
razione discende subito dalla (96); se x non coincide con uno dei nodi, si
consideri un indice i tale che
H
|x − xi | ≤ , (101)
2
e tale che non vi siano nodi nell’intervallo di estremi x e xi . Allora
� x
[s��� (t) − f ��� (t)] dt = [s�� (x) − f �� (x)] − [s�� (xi ) − f �� (xi )],
xi
da cui
� x
s (x) − f (x) = s (xi ) − f (xi ) +
�� �� �� ��
[s��� (t) − f ��� (t)] dt.
xi
3 H2 H 7 H3
|s�� (x) − f �� (x)| ≤ M4 H 2 + 2M4 ≤ M4 .
4 h 2 4 h
Per ricavare la terza disuguaglianza, poiché per i = 0, . . . , n, è
f (xi ) = s(xi ),
446 Capitolo 5. Interpolazione
|ξi − x| ≤ H,
Passando ai moduli si ha
7 H3 7 H4
|s (x) − f (x)| ≤ M4
� �
H = M4 .
4 h 4 h
In modo analogo si ricava la quarta disuguaglianza, tenendo conto che per
ogni x ∈ [a, b] esiste un indice i per cui vale la (101).
Dal teorema 5.73 segue che per una funzione f (x) derivabile con con-
tinuità fino al quarto ordine, se si infittiscono i nodi in modo regolare, cioè
in modo che il rapporto H/h sia sempre limitato, allora si ha convergenza
della spline e delle sue derivate fino al terzo ordine rispettivamente alla f (x)
e alle sue derivate. In particolare se i nodi rimangono equidistanti, allora
H/h = 1 e la convergenza è molto rapida, perché
|f (x) − s(x)| ≤ M4 H 4 .
Dalla (95) segue poi che se i nodi vengono infittiti aggiungendo altri nodi
alla precedente suddivisione dell’intervallo, la successione degli integrali
� b
[s�� (x)]2 dx
a