Sei sulla pagina 1di 24

Interpolazione polinomiale a tratti

Dario A. Bini Paola Boito Beatrice Meini∗

27 aprile 2021

Sappiamo che, data una funzione f (x) di cui sono noti i valori in n + 1 nodi
distinti xi ∈ [a, b], i = 0, . . . , n, esiste ed è unico il polinomio di interpolazione pn (x)
di grado al più n tale che pn (xi ) = f (xi ), i = 0, . . . , n. In generale, non è detto che
aumentando n l’approssimazione di f (x) mediante pn (x) migliori. Infatti, indicato
con Nn = {x0,n , x1,n , . . . , xn,n } l’insieme dei nodi dell’interpolazione per il grado n,
anche supponendo che i nodi vengano infittiti in modo abbastanza uniforme, cioè
che
lim max |xi+1,n − xi,n | = 0,
n→∞ i
è possibile dimostrare (teorema di Faber) che per ogni prefissata successione di
insiemi Nn , esiste una funzione f (x) continua in [a, b] tale che pn (x) non converge
uniformemente ad f (x) in [a, b].
Nella pratica non è quindi garantito che, aumentando il numero n di nodi, una
data funzione f (x) sia approssimata, con una tolleranza fissata, dal polinomio inter-
polante. D’altro canto sappiamo, dalla teoria dell’approssimazione, che una funzione
f ∈ C[a, b] può essere arbitrariamente ben approssimata da un polinomio. Purtroppo
tale polinomio approssimante in generale non interpola la funzione in nodi prefissati.
Se invece l’uguaglianza dei valori nei nodi è fondamentale, come ad esempio nella
grafica, bisogna ricorrere a funzioni che coincidono a tratti con polinomi di grado
basso.
Supponendo che i nodi siano ordinati in [a, b], cioè

a = x0 < x1 < . . . < xn = b,

si definisce polinomiale a tratti su [a, b] una funzione t(x) che sull’i-esimo sottoin-
tervallo [xi , xi+1 ] coincide con un polinomio ti (x) di grado prefissato k. La t(x) può
essere rappresentata per mezzo di una matrice A di ordine n la cui i-esima riga
 i
ai,k , ai,k−1 , . . . ai,0

contiene i coefficienti di ti (x) con la variabile traslata rispetto al punto xi , cioè

ti (y) = ai,k y k + ai,k−1 y k−1 + . . . + ai,0 , dove y = x − xi .



Queste dispense sono una rielaborazione di quelle scritte da Ornella Menchi sugli stessi
argomenti

1
In questo capito studiamo alcune funzioni polinomiali a tratti usate nella pratica.
Per semplicità si denota fi = f (xi ), fi0 = f 0 (xi ) e hi = xi+1 − xi .

1 Interpolazione lineare a tratti


In questo caso la t(x) è una funzione lineare a tratti, che coincide con la f (x) sui
nodi xi , cioè t(x) = ti (x) per x ∈ [xi , xi+1 ], dove
fi+1 − fi
ti (x) = y + fi , y = x − xi .
hi
Per la sua semplicità questa polinomiale è usata spesso nella pratica, ma non sempre
fornisce una buona rappresentazione grafica della funzione, perché non vi è alcuna
condizione sulle derivate dei singoli polinomi, per cui nei nodi xi il raccordo fra due
diversi polinomi lineari può presentare un punto angoloso anche se f ∈ C 1 [a, b].
Se f ∈ C 2 [a, b], posto

M2 = max |f 00 (x)| e H= max hi ,


x∈[a,b] i=0,...,n−1

dal resto dell’interpolazione lineare in [xi , xi+1 ] si ha


00
f (x) − t(x) = |f (ξx )| |(x − xi )(x − xi+1 )|,

2
per un opportuno punto ξx ∈ (xi , xi+1 ). Scrivendo x come x = (1 − t)xi + txi+1 , con
0 < t < 1, vale

f (x) − t(x) ≤ M2 t(1 − t)(xi+1 − xi )2 ≤ 1 M2 (xi+1 − xi )2 ≤ 1 M2 H 2 ,



2 8 8
da cui segue la convergenza della t(x) alla f (x) per H → 0. Dalla formula di Taylor
si ha poi
fi+1 = f (x) + (xi+1 − x)f 0 (x) + 21 (xi+1 − x)2 f 00 (ξi ),

fi = f (x) + (xi − x)f 0 (x) + 1


2 (xi − x)2 f 00 (ηi ),
da cui sottraendo risulta
fi+1 − fi 1 h i
f 0 (x) − t0i (x) = f 0 (x) − = (xi − x)2 f 00 (ηi ) − (xi+1 − x)2 f 00 (ξi ) ,
hi 2hi
e poiché per x ∈ [xi , xi+1 ] è x = (1 − t)xi + txi+1 , con 0 < t < 1, si ha

(xi+1 − x)2 + (xi − x)2 = t2 + (1 − t)2 (xi+1 − xi )2 ≤ (xi+1 − xi )2 = h2i ,



(1)

quindi
f (x) − t0i (x) ≤ 1 M2 hi ≤ 1 M2 H,
0
2 2
da cui segue la convergenza per H → 0 delle singole t0i (x), e quindi della t0 (x) su
ciascun intervallo, alla funzione continua f 0 (x).

2
2 Interpolazione polinomiale cubica a tratti di Hermite
In questo caso f ∈ C 1 ([a, b]), i polinomi ti (x) hanno grado al più 3, t(x) coincide
con f (x) sui nodi xi , t(x) è derivabile e t0 (x) coincide con f 0 (x) sui nodi xi . Quindi
t(x) = ti (x) per x ∈ [xi , xi+1 ], dove
 y 3  y 2
ti (x) = 2 fi − fi+1 + hi fi0 + fi+1
0
− 3 fi − fi+1 + hi 2fi0 + fi+1
0
 
3 +
hi h2i
+ fi0 y + fi , y = x − xi .

Questa polinomiale fornisce una migliore rappresentazione grafica rispetto a quel-


la lineare, perché non dà luogo a punti angolosi nei nodi. Però, anche se nei punti
di raccordo i polinomi hanno la stessa pendenza, non è detto che abbiano la stessa
concavità, per cui nei nodi si può presentare un andamento distorto.
Se f ∈ C 4 [a, b], posto

M4 = max |f (4) (x)| e H= max hi ,


x∈[a,b] i=0,...,n−1

dal resto del polinomio osculatore di Hermite in [xi , xi+1 ] si ha

f (x) − t(x) ≤ 1 M4 (x − xi )2 (x − xi+1 )2 ,



4!
e poiché
1
max (x − xi )2 (x − xi+1 )2 = (xi+1 − xi )4 ,
x∈[xi ,xi+1 ] 16
risulta su [a, b] che
f (x) − t(x) ≤ 1 M4 H 4 ,

384
da cui segue la convergenza della t(x) alla f (x) per H → 0.

3 Funzioni spline
Le polinomiali cubiche di Hermite non sono utilizzabili nel caso, frequente nella
pratica, in cui i valori fi0 non sono noti. Per ovviare a questa difficoltà, si posso-
no costruire polinomiali a tratti che siano sufficientemente regolari, anche se non
conosciamo il valore della derivata di f .

Definizione 1. Data f (x) : [a, b] → R, una funzione spline di ordine k ≥ 2 su un


insieme di nodi distinti a = x0 < x1 < · · · < xn = b, è una funzione s(x) : [a, b] → R
che verifica le seguenti proprietà:

1. s(xi ) = f (xi ), i = 0, . . . , n;

2. s(x) coincide con un polinomio si (x) di grado minore di k in ciascun intervallo


[xi , xi+1 ];

3
3. s(x) ∈ C k−2 [a, b].

Nel caso k = 2 la funzione spline coincide con la funzione ottenuta con l’inter-
polazione lineare a tratti (sezione 1). Se k > 2 allora la funzione spline è almeno di
classe C 1 , anche se non conosciamo la derivata di f .

3.1 Spline cubiche


Fra le funzioni spline quelle più usate nella pratica, anche perché consentono di
ottenere ottimi risultati dal punto di vista grafico, sono le spline cubiche, cioè di
ordine k = 4, in cui ciascun si (x) è un polinomio di grado al più 3.
Imponendo le condizioni della definizione 1, si ottengono 4n − 2 relazioni

a) si (xi ) = fi , si (xi+1 ) = fi+1 , per i = 0, . . . , n − 1;

b) s0i−1 (xi ) = s0i (xi ), per i = 1, . . . , n − 1;

c) s00i−1 (xi ) = s00i (xi ), per i = 1, . . . , n − 1.

Poiché i coefficienti dei polinomi si (x) sono 4n, per determinare i polinomi si (x)
occorrerà imporre due condizioni aggiuntive, che vedremo successivamente.
Si definiscono i momenti

µi = s00i (xi ), per i = 0, . . . , n − 1, e µn = s00n−1 (xn ),

che permettono di descrivere le spline cubiche, grazie al seguente risultato:

Teorema 2. Una spline cubica coincide in ciascun intervallo [xi , xi+1 ] con il poli-
nomio di grado al più 3

(x − xi )3 (x − xi+1 )3
si (x) = µi+1 − µi + αi (x − xi ) + βi , i = 0, . . . , n − 1, (2)
6hi 6hi
dove

h2i fi+1 − fi hi
βi = fi − µi , αi = − (µi+1 − µi ), i = 0, . . . , n − 1, (3)
6 hi 6
hi = xi+1 − xi e i momenti µi , i = 0, . . . , n, risolvono le n − 1 equazioni

hi−1 µi−1 + 2 (hi−1 + hi ) µi + hi µi+1 = 6 fi−1,i,i+1 , i = 1, . . . , n − 1, (4)

dove
fi+1 − fi fi − fi−1
fi−1,i,i+1 = − .
hi hi−1

4
Dimostrazione. Poiché si (x) per x ∈ [xi , xi+1 ] è un polinomio di grado al più 3,
s00i (x) è il polinomio di grado al più 1
x − xi x − xi+1
s00i (x) = µi+1 − µi . (5)
hi hi
Integrando due volte si ottiene

(x − xi )2 (x − xi+1 )2
s0i (x) = µi+1 − µi + αi ,
2hi 2hi
(6)
(x − xi )3 (x − xi+1 )3
si (x) = µi+1 − µi + αi (x − xi ) + βi .
6hi 6hi
Le costanti αi e βi vengono determinate imponendo le condizioni a)

h2

 µi i + βi = fi


6
h2
µi+1 i + αi hi + βi = fi+1 ,



6
da cui otteniamo (3). Restano quindi da calcolare i µi , i = 0, . . . , n. Dalle (6),
imponendo le condizioni b) e sostituendo αi−1 e αi , si ottengono le n − 1 equazioni
(4).

Le condizioni (4) sono n − 1 equazioni linearmente indipendenti, nelle incognite


µi , i = 0, . . . , n. Occorre aggiungere 2 condizioni per definire univocamente la spline.
Le condizioni più usate sono le seguenti:

d1) s000 (x0 ) = s00n−1 (xn ) = 0 (spline naturale), che impone alla spline un andamento
lineare vicino agli estremi

d2) se sono noti f 0 (a) e f 0 (b), s00 (x0 ) = f 0 (a), s0n−1 (xn ) = f 0 (b) (spline completa),
che impone alla spline la tangenza alla f (x) negli estremi. Se i valori f 0 (a) e
f 0 (b) non fossero disponibili, si potrebbero sostituire con delle approssimazio-
ni. Ad esempio, f 0 (a) potrebbe essere approssimato con la derivata in a del
polinomio che interpola la f (x) su a e sui tre nodi successivi.

d3) Se le derivate agli estremi non sono note, può essere conveniente richiedere che
s000 (x) sia continua nel secondo e nel penultimo nodo, cioè s000 000
0 (x1 ) = s1 (x1 )
e s000 000
n−2 (xn−1 ) = sn−1 (xn−1 ), e la corrispondente spline è chiamata not–a–
knot spline. Poiché si (x) sono polinomi di grado al più 3, le condizioni sono
equivalenti a s000 000 000 000
0 (x) = s1 (x) e sn−2 (x) = sn−1 (x).

d4) Nel caso di una funzione f (x) periodica di periodo b − a, si definisce una spline
periodica tale che s00 (x0 ) = s0n−1 (xn ) e s000 (x0 ) = s00n−1 (xn ).

5
Sulla derivata seconda si potrebbero imporre anche altre condizioni, per esempio
s000 (x0 ) = σ0 e s00n−1 (xn ) = σn , dove σ0 e σn sono valori assegnati, oppure s000 (x0 ) =
s000 (x1 ) e s00n−1 (xn−1 ) = s00n−1 (xn ), assumendo che la derivata seconda sia costante
vicino agli estremi dell’intervallo [a, b].
Esempio 3. Consideriamo la funzione f (x) = x sin(2πx+1), x ∈ [a, b], con a = −1
e b = 0.5. Scegliamo nodi equidistanti con n = 5, x0 = a e x5 = b. La figura 1
mostra il grafico di f (x), i punti dell’interpolazione e il grafico delle spline not–a–
knot, naturale e completa. Si osserva che l’approssimazione è molto diversa, con le
diverse spline, agli estremi dell’intervallo. In particolare la spline completa è la più
accurata.

0.5

Interp. points
-0.5 Exact function
Not a knot
Natural
Complete

-1
-1 -0.5 0 0.5

Figura 1: Confronto tra spline cubiche – Esempio 3

Per il calcolo delle spline not-a-knot e completa è stata utilizzata la function


spline di Matlab.
Per la spline naturale, dalle d1) si ha

µ0 = 0 e µn = 0.

Dunque, dalle (4), troviamo che i µi sono soluzione del sistema lineare,
   
µ1 f0,1,2
 µ2   f1,2,3 
   
M  ...  = 6 
..
, (7)
   
   . 
 µn−2   fn−3,n−2,n−1 
µn−1 fn−2,n−1,n

dove
 
2(h0 + h1 ) h1

 h 1 2(h1 + h2 ) h2 

M=
 . .. . .. ..  . (8)

 . 
 hn−3 2(hn−3 + hn−2 ) hn−2 
hn−2 2(hn−2 + hn−1 )

6
Per la spline completa, dalle d2) si ha:
h0 h0 f1 − f0
s00 (x0 ) = −µ0 − µ1 + = f00 ,
3 6 h0
hn−1 hn−1 fn − fn−1
s0n−1 (xn ) = µn−1 + µn + = fn0 ,
6 3 hn−1
dove f00 = f 0 (a) e fn0 = f 0 (b) sono assegnati. Si ottiene

h0 (2µ0 + µ1 ) = 6 f0,0,1 e hn−1 (µn−1 + 2µn ) = 6 fn−1,n,n , (9)

dove
f1 − f0 fn − fn−1
f0,0,1 = − f00 e fn−1,n,n = fn0 − .
h0 hn−1
Quindi, da (4), i µi sono soluzione del sistema lineare
   
µ0 f0,0,1
 µ1   f0,1,2 
   
 ..  ..
M  .  = 6  , (10)
 
   . 
 µn−1   fn−2,n−1,n 
µn fn−1,n,n

dove  
2 h0 h0
 h0 2(h0 + h1 ) h1 
 
M=
 .. .. .. .

(11)
 . . . 
 hn−2 2(hn−2 + hn−1 ) hn−1 
hn−1 2 hn−1
Per la spline not-a-knot le condizioni in d3), cioè s000 000 000
0 (x) = s1 (x) e sn−2 (x) =
s000
n−1 (x),
dalla (5), si scrivono come
µ1 µ0 µ 2 µ1 µn−1 µn−2 µn µn−1
− = − , − = − ,
h0 h0 h1 h1 hn−2 hn−2 hn−1 hn−1
da cui ricaviamo le equazioni

h1 µ0 − (h0 + h1 )µ1 + h0 µ2 = 0,
hn−1 µn−2 − (hn−1 + hn−2 )µn−1 + hn−2 µn = 0.

La matrice in questo caso non è tridiagonale, ma possiamo ricavare la variabile µ0 ,


 
h0 h0
µ0 = µ1 1 + − µ2 ,
h1 h1
sostituirla nella prima equazione in (4) ottenendo

h2 h2
   
3h0 + 2h1 + 0 µ1 + h1 − 0 µ2 = 6f0,1,2 .
h1 h1

7
In modo analogo, ci ricaviamo
 
hn−2 hn−2
µn = µn−1 1 + − µn−2 ,
hn−1 hn−1
e dall’ultima equazione in (4) otteniamo
h2n−1 h2n−1
   
hn−2 − µn−2 + 3hn−1 + 2hn−2 + µn−1 = 6fn−2,n−1,n .
hn−2 hn−2
Qui i µi , i = 1, . . . , n, risolvono il sistema lineare
   
µ1 f0,1,2
 µ2   f1,2,3

   
M  ...  = 6  ..
, (12)
   
   . 
 µn−2   fn−3,n−2,n−1 
µn−1 fn−2,n−1,n
dove
h20 h2
 
3h0 + 2h1 + h1 h1 − h01

 h1 2(h1 + h2 ) h2 


M= .. .. .. 
.
 . . . 

 hn−3 2(hn−3 + hn−2 ) hn−2 

h2n−1 h2n−1
hn−2 − hn−2 3hn−1 + 2hn−2 + hn−2
(13)
Le matrici M in (8), (11) e (13) hanno predominanza diagonale in senso stretto
e quindi sono non singolari. Perciò i sistemi (7), (10) e (12) hanno una e una
sola soluzione, che può essere calcolata con il metodo di Gauss senza scambi di
righe. Inoltre le matrici sono tridiagonali e il metodo di Gauss ha un basso costo
computazionale, dell’ordine di n.
Se i punti xi sono equidistanti, cioè hi = h, per i = 0, . . . , n − 1, la (4) diventa
6 fi+1 − 2fi + fi−1
µi−1 + 4µi + µi+1 = fi−1,i,i+1 , dove fi−1,i,i+1 = , (14)
h h
e le (9) diventano
6 f1 − f0
2µ0 + µ1 = f0,0,1 , dove f0,0,1 = − f00 ,
h h (15)
6 fn − fn−1
µn−1 + 2µn = fn−1,n,n , dove fn−1,n,n = fn0 − .
h h
La matrice del sistema risulta molto semplice. Ad esempio, per le spline naturali
diventa
     
4 1 µ1 f0,1,2
 1 4 1   µ2   f1,2,3 

. . .
 
.
 6  .

 . . . . . .
 
  . . 
=
 .
. ,

(16)
h 
 
    
 1 4 1   µn−2   fn−3,n−2,n−1 
1 4 µn−1 fn−2,n−1,n

8
mentre per le spline complete e not-a-knot il sistema diventa rispettivamente
     
2 1 µ0 f0,0,1
 1 4 1   µ1   f0,1,2 

.. .. ..
 
  .. 
 6 
..

= , (17)
  
. . .   .  .
h 
    
 
 1 4 1   µn−1   fn−2,n−1,n 
1 2 µn fn−1,n,n
e      
6 0 µ1 f0,1,2
 1 4 1   µ2   f1,2,3 

.. .. ..
 
..
 6  ..

 = . (18)
     
. . . . .
h 
   
    
 1 4 1   µn−2   fn−3,n−2,n−1 
0 6 µn−1 fn−2,n−1,n
Indichiamo |A| la matrice i cui elementi sono i moduli degli elementi della ma-
trice A. Il seguente risultato è utile per mostrare proprietà di convergenza della
spline completa. Analoghi risultati possono essere dimostrati per le matrici che
intervengono nelle spline naturali e not-a-knot.

Proposizione 4. La matrice M del sistema (17), che interviene nelle spline com-
plete, è tale che kM−1 k∞ ≤ 1 e
   
1 1
 2   1 
   
−1  .. 
|M |  .  =  ...  .
 
   
 2   1 
1 1

Dimostrazione. La matrice M può essere scritta come M = 4(I + B) dove


 
−2 1
 1 0 1 
1 .. .. ..

B=  .
 
. . .
4 
 1 0 1 
1 −2

Poiché kBk∞ = 3/4 < 1, si ha


1 1 1
kM−1 k∞ = k(I + B)−1 k∞ ≤ = 1.
4 4 1 − kBk∞

Indichiamo con D la matrice diagonale con elementi diagonali (−1)i+1 , per i =


1, . . . , n + 1. La matrice W = DMD−1 ha gli stessi elementi diagonali di M, e gli
elementi fuori dalla diagonale sono quelli di M cambiati di segno. In particolare
W = 4(I − C), dove C = −DBD−1 è una matrice a elementi non negativi, con

9
raggio spettrale minore di 1. Dunque la matrice W −1 = 14 ∞ i
P
i=0 C ha elementi non
negativi, da cui segue che W −1 −1 −1 −1 −1
= |W | = |DM D | = |M |. D’altra parte
osserviamo che    
1 1
 1   2 
   
W  ...  =  ...  ,
   
   
 1   2 
1 1
da cui segue la tesi perché W −1 = |M−1 |.

3.1.1 Proprietà di convergenza


Il primo teorema studia la convergenza dei momenti della s(x) ai valori della derivata
seconda della f (x) nei nodi, il secondo la convergenza della s(x) e delle sue derivate
fino al terzo ordine alla f (x) e alle sue derivate per x ∈ [a, b]. Per semplicità si
considera dapprima il caso dei nodi equidistanti.

Teorema 5. Sia f ∈ C 4 [a, b] e siano xi = a + ih, i = 0, . . . , n, con h = (b − a)/n.


Posto M4 = max |f (4) (x)|, per i momenti della spline cubica s(x) completa vale la
x∈[a,b]
relazione
3
max µi − f 00 (xi ) ≤ M4 h2 .

(19)
i=0,...,n 4
Dimostrazione. Dalla formula di Taylor si ha

h2 00 h3 000 h4 (4)
fi+1 − fi = hfi0 + f (xi ) + f (xi ) + f (ξi,1 ),
2 3! 4! (20)
h2 00 h3 000 h4 (4)
fi−1 − fi = −hfi0 + f (xi ) − f (xi ) + f (ξi,2 ),
2 3! 4!
con ξi,1 , ξi,2 ∈ (a, b), e quindi, per i = 1, . . . , n − 1,

fi+1 − 2fi + fi−1 h3  (4) 


fi−1,i,i+1 = = h f 00 (xi ) + f (ξi,1 ) + f (4) (ξi,2 ) . (21)
h 4!
Usando ancora la formula di Taylor si ha che

h2 (4)
f 00 (xi+1 ) = f 00 (xi ) + hf 000 (xi ) + f (ξi,3 ),
2 (22)
h2 (4)
f 00 (xi−1 ) = f 00 (xi ) − hf 000 (xi ) + f (ξi,4 ),
2
con ξi,3 , ξi,4 ∈ (a, b), da cui ricaviamo

h2  (4) 
f 00 (xi+1 ) + 4f 00 (xi ) + f 00 (xi−1 ) = 6f 00 (xi ) + f (ξi,3 ) + f (4) (ξi,4 ) . (23)
2

10
Inoltre dalla prima equazione in (20) e dalla prima equazione in (22), entrambe lette
con i = 0, deduciamo che
h2  (4)
 
00 00 6 f1 − f0 0

2f (x0 ) + f (x1 ) = − f0 + f (ξ0,1 ) − 2f (4) (ξ0,3 ) . (24)
h h 4
In modo analogo troviamo che
h2  (4)
 
00 00 6 0 fn − fn−1 
f (xn−1 ) + 2f (xn ) = fn − + f (ξn,2 ) − 2f (4) (ξn,4 ) . (25)
h h 4
Le equazioni (23), (24), (25) possono essere scritte in forma matriciale come
 f0,0,1
f 00 (x0 ) f (4) (ξ0,1 ) − 2f (4) (ξ0,3 )
    
h
 f 00 (x1 )   f 00 (x1 )   2(f (4) (ξ1,3 ) + f (4) (ξ1,4 )) 
    h2  
M .
.. .
.. .
..
 = 6 +  , (26)
     
4 

 00   00  
 f (xn−1 )   f (xn−1 )   2(f (4) (ξn−1,3 ) + f (4) (ξn−1,4 )) 
f 00 (xn ) fn−1,n,n
f (4) (ξn,2 ) − 2f (4) (ξn,4 )
h

dove M è la matrice del sistema (17). D’altra parte, dalle (15), (17), (21), (24) e
(25), deduciamo che
   f0,0,1   
µ0 h
0
 µ1   f 00 (x1 )   f (4) (ξ ) + f (4) (ξ )
1,1 1,1

    h2  
M  ...  = 6  .. + ..
. (27)
     
 00 . 4  (4) .
 
   
 µn−1   f (xn−1 )   f (ξn−1,1 ) + f (4) (ξn−1,2 ) 
µn fn−1,n,n
h
0

Quindi, facendo la differenza tra i sistemi (27) e (26), si ottiene

µ0 − f 00 (x0 )
   
g0,n

 µ1 − f 00 (x1 )  h2  g1,n 
  
M .. ..
= ,
   
. 4
 .
00
   
 µn−1 − f (xn−1 )   gn−1,n 
µn − f 00 (xn ) gn,n

dove |g0,n | ≤ 3M4 , |gn,n | ≤ 3M4 , |gi,n | ≤ 6M4 per i = 1, . . . , n − 1. Dunque,


prendendo il modulo e utilizzando la proposizione 4,

µ0 − f 00 (x0 )
     
g0,n 1 1
00 (x )


µ 1 − f 1

h2
 g
 1,n  3M h2

  3M h2  1 
 2   
.. −1  .
.. 4 −1 .
|M |  ..  =
4 .
= M   ≤  ..  ,
    
. 4 4 4
µn−1 − f 00 (xn−1 )
     
 gn−1,n   2   1 

µn − f 00 (xn ) gn,n 1 1

da cui segue la tesi.

11
Teorema 6. Nell’ipotesi del teorema 5, per la spline completa valgono le limitazioni
000
f (x) − s000 (x) ≤ 2M4 h, per x ∈ [xi , xi+1 ], i = 0, . . . , n − 1,

i

f (x) − s00 (x) ≤ 7 M4 h2 ,


00
4
0 7
f (x) − s0 (x) ≤ M4 h3 ,
4
7
f (x) − s(x) ≤ M4 h4 , per x ∈ [a, b].

8
µi+1 − µi
Dimostrazione. Dalla (5) si ha che per x ∈ [xi , xi+1 ] è s000
i (x) = , da cui
h
µi+1 − µi [µi+1 − f 00 (xi+1 )] − [µi − f 00 (xi )]
f 000 (x) − s000 000
i (x) = f (x) − = f 000 (x) −
h h
[f 00 (xi+1 ) − f 00 (x)] − [f 00 (xi ) − f 00 (x)]
− .
h
Per la formula di Taylor e per la (19) è
000 3 1
f (x) − s000
i (x) ≤ M 4 h + (x
i+1 − x) 2 (4)
f (ξ 1 ) − (x i − x)2 (4)
f (ξ 2 ,
)

2 2h
con ξ1 , ξ2 ∈ (xi , xi+1 ), e per la (1) è
000 3 1
f (x) − s000
i (x) ≤
M4 h + hM4 ≤ 2M4 h. (28)
2 2
Per la seconda disuguaglianza, se x coincide con uno dei nodi, la maggiorazione
discende subito dalla (19); se x non coincide con uno dei nodi, sia xi il nodo più
vicino a x e j = i − 1 oppure j = i a seconda che x < xi oppure x > xi . Allora
Z x
 000
f (t) − s000
  00 00
  00 00

j (t) dt = f (x) − s (x) − f (xi ) − s (xi ) ,
xi

da cui Z x
00 00 00 00
f 000 (t) − s000

f (x) − s (x) = f (xi ) − s (xi ) + j (t) dt.
xi

Poiché |x − xi | ≤ h/2, per le (19) e (28) risulta

f (x) − s00 (x) ≤ 3 M4 h2 + 2M4 h h ≤ 7 M4 h2 .


00
4 2 4
Per ricavare la terza disuguaglianza, poiché per i = 0, . . . , n, è s(xi ) = fi , per il
teorema di Rolle in ogni intervallo [xi , xi+1 ], i = 0, . . . , n − 1, esiste un punto ξi , tale
che
f 0 (ξi ) = s0 (ξi ). (29)

12
Quindi per ogni x ∈ [a, b], esiste uno ξi , con |ξi − x| ≤ h, per cui vale la (29), e quindi
Z x
 00
f (t) − s00 (t) dt = f 0 (x) − s0 (x).

ξi

Passando ai moduli si ha

f (x) − s0 (x) ≤ 7 M4 h3 .
0
4
In modo analogo si ricava la quarta disuguaglianza, tenendo conto che per ogni
x ∈ [a, b] esiste un indice i per cui |x − xi | ≤ h/2.

I teoremi 5 e 6 vengono facilmente generalizzati al caso di nodi non equidistanti.

Teorema 7. Sia f ∈ C 4 [a, b]. Posto

M4 = max |f (4) (x)|, H= max hi , hmin = min hi ,


x∈[a,b] i=0,...,n−1 i=0,...,n−1

per la spline completa valgono le limitazioni

µi − f 00 (xi ) ≤ 3 M4 H 2 , per i = 0, . . . , n,

4
2
f (x) − s000 (x) ≤ 2M4 H , per x ∈ [xi , xi+1 ],
000
i i = 0, . . . , n − 1,
hmin
3
f (x) − s00 (x) ≤ 7 M4 H ,
00
4 hmin
4
f (x) − s0 (x) ≤ 7 M4 H ,
0
4 hmin
7 H 5
f (x) − s(x) ≤ M4 , per x ∈ [a, b].
8 hmin
Dal teorema 7 segue che per una funzione f (x) derivabile con continuità fino al
quarto ordine, se si infittiscono i nodi in modo regolare, cioè in modo che il rapporto
H/hmin sia sempre limitato, allora si ha convergenza per H → 0 della spline e delle
sue derivate fino al terzo ordine rispettivamente alla f (x) e alle sue derivate.
Per quanto riguarda le spline not-a-knot possiamo dimostrare dei teoremi ana-
loghi ai teoremi 5, 6 e 7, dove cambiano le costanti nelle limitazioni superiori. In
particolare, nel caso di nodi equidistanti, la differenza tra f (x) e s(x) converge a
zero come O(h4 ). Per la spline naturale la convergenza a zero è invece O(h2 ).

Esempio 8. Consideriamo la funzione e l’intervallo [a, b] dell’esempio 3. La figura


2 riporta l’errore |f (x) − s(x)| ottenuto con n = 5 per i differenti tipi di spline. Si
nota il diverso comportamento in vicinanza agli estremi dell’intervallo La figura 3
riporta il massimo degli errori maxx∈[a,b] |f (x) − s(x)| ottenuto con vari valori di n,
per i differenti tipi di spline. Si nota che le spline complete e “not–a–knot” hanno
lo stesso comportamento asintotico.

13
0
10

-5
10

-10
10
Not-a-knot spline
Natural spline
Complete spline
-15
10
-1 -0.5 0 0.5

Figura 2: Errore per l’esempio 8 con n = 5

0
10
Not-a-knot spline
Natural spline
Complete spline
Error

-5
10

-10
10
8 16 32 64 128 256 512
N

Figura 3: Errore in funzione di n per l’esempio 8

14
3.1.2 Costo computazionale
Il costo computazionale viene determinato a meno di termini costanti rispetto ad n.
Indicando con A le operazioni additive e con M le operazioni moltiplicative, per la
costruzione dei coefficienti e dei termini noti del sistema lineare (7) sono richieste
4nA e 3nM. Per la risoluzione del sistema tridiagonale sono richieste 3nA e 5nM. Per
il calcolo degli αi e βi sono richieste 3nA e 3nM. Quindi in totale la costruzione della
spline richiede 10nA e 11nM. Una lieve riduzione si ha nel caso dei nodi equidistanti.
Per calcolare il valore della spline in un punto x è necessario prima individuare
l’indice i tale che x ∈ (xi , xi+1 ). Per ottenere i si può usare l’algoritmo banale
(cioè confrontare x successivamente con xj , j = 1, . . . , n − 1) e questo richiede
n − 1 confronti. Se però n è potenza di 2, si può usare l’algoritmo di bisezione (cioè
confrontare x con xn/2 , se x è minore di xn/2 si confronta x con xn/4 , se x è maggiore
di xn/2 si confronta x con x3n/4 , e cosı̀ via). Questo procedimento richiede log2 n
confronti. Una volta trovato i, per calcolare s(x) sono richieste 5A e 9M.

3.1.3 Condizionamento
Studiamo ora il condizionamento del calcolo di s(x) per un x diverso dai nodi.
Consideriamo il caso della spline naturale e supponiamo per semplicità che i nodi
siano equidistanti e non affetti da errore. Scriviamo il sistema (16) nella forma
M µ = b, (30)
dove µ è il vettore dei µi e b è il vettore di componenti bi = 6(fi+1 − 2fi + fi−1 )/h2 .
Supponendo di perturbare i dati del problema da fi a fei = fi + δi , con |δi | ≤ δ, la
corrispondente variazione e b − b del termine noto del sistema (30) risulta maggiorata
in norma infinito da
6 24 δ
ke
b − bk∞ = 2 max δi+1 − 2δi + δi−1 ≤ 2 .
h i=1,n−1 h
Quindi
keµ − µk∞ ke
b − bk∞
≤ K(M) ,
kµk∞ kbk∞
dove µ b e K(M) = kMk∞ kM−1 k∞
e è la soluzione del sistema il cui termine noto è e
è il numero di condizionamento di M in norma infinito. La matrice M è ben
condizionata perché K(M) ≤ 6 per ogni n, poiché kMk∞ = 6 e kM−1 k∞ ≤ 1.
Quindi il problema del calcolo dei µi è ben condizionato. Lo stesso si può dire per la
(3) del calcolo dei coefficienti αi e βi e per la (2) del calcolo di si (x) per x ∈ [xi , xi+1 ].

3.1.4 Proprietà di minima curvatura


Le spline cubiche sono molto usate nella grafica perché fra le funzioni con derivata
seconda continua che interpolano la funzione f (x) nei nodi xi , i = 0, . . . , n, so-
no quelle che hanno minima curvatura, cioè che oscillano meno, come risulta dal
seguente teorema.

15
Teorema 9. Fra tutte le funzioni g ∈ C 2 [a, b], tali che g(xi ) = fi , i = 0, . . . , n, la
spline cubica naturale s(x) è quella che minimizza l’integrale
Z b
[g 00 (x)]2 dx. (31)
a

Dimostrazione. Si ha
Z b
0≤ [g 00 (x) − s00 (x)]2 dx
a
Z b Z b Z b (32)
= [g 00 (x)]2 dx − 2 [g 00 (x) − s00 (x)] s00 (x) dx − [s00 (x)]2 dx.
a a a

Per ogni sottointervallo [xi , xi+1 ] si ha, integrando due volte per parti,
Z xi+1 " #xi+1
00 00 00
 0 0
 00
[g (x) − s (x)] s (x) dx = g (x) − s (x) s (x)
xi
" #xi+1 Z xi
xi+1 
g(x) − s(x) s(4) (x) dx.
  (3) 
− g(x) − s(x) s (x) +
xi
xi

Poiché la s(x) sull’intervallo [xi , xi+1 ] coincide con un polinomio di grado al più 3,
è s(4) (x) = 0. Inoltre s(xi ) = g(xi ), s(xi+1 ) = g(xi+1 ), per cui
Z b n−1
X Z xi+1
00 00 00
[g (x) − s (x)] s (x) dx = [g 00 (x) − s00 (x)] s00 (x) dx
a i=0 xi
n−1
" #xi+1 " #b
X  0 0
 00  0 0
 00
= g (x) − s (x) s (x) = g (x) − s (x) s (x)
i=0 xi a

e tale espressione è nulla in quanto s00 (a) = s00 (b) = 0. Dalla (32) segue che
Z b Z b
00
[s (x)] dx ≤ 2
[g 00 (x)]2 dx
a a

per ogni funzione g(x) a derivata seconda continua tale che g(xi ) = fi .

Un teorema analogo al teorema 9 vale per la spline completa (anche la dimostra-


zione è analoga).

Teorema 10. Fra tutte le funzioni g ∈ C 2 [a, b], tali che g(xi ) = fi , i = 0, . . . , n, e
g 0 (a) = f 0 (a) e g 0 (b) = f 0 (b), la spline cubica completa s(x) è quella che minimizza
l’integrale
Z b
[g 00 (x)]2 dx.
a

16
La g 00 (x) è legata alla curvatura della g(x) nel punto x, definita come il reciproco
del raggio del cerchio osculatore in x, e data dall’espressione

c(x) = g 00 (x) (1 + [g 0 (x)]2 )−3/2 .


L’integrale (31) può allora essere assunto come una misura della curvatura globale
della g(x) se |g 0 (x)| è piccolo rispetto ad 1. Dal teorema 9 risulta quindi che la
spline cubica naturale è quella che minimizza la curvatura globale. Segue anche che
se f ∈ C 2 [a, b], allora
Z b Z b
00 2
[s (x)] dx ≤ [f 00 (x)]2 dx.
a a

Esempio 11. Costruiamo la spline cubica completa che approssima f (x) = cos(πx)
nei nodi xi = i, i = 0, . . . , n. È hi = xi+1 −xi = 1, f (xi ) = (−1)i , f 0 (x0 ) = f 0 (xn ) =
0. Quindi i momenti risolvono il sistema

 2µ0 + µ1 = −12

µi−1 + 4µi + µi+1 = (−1)i+1 24, i = 1, . . . , n − 1,

µn−1 + 2µn = (−1)n+1 12

Questo sistema ha la soluzione µi = (−1)i+1 12, da cui si ricava che αi = (−1)i+1 6


e βi = (−1)i 3. Quindi
h i
si (x) = (−1)i 2(x − xi )3 + 2(x − xi+1 )3 − 6(x − xi ) + 3 ,

e
Z b n−1
X Z xi+1 Z x1
[s00 (x)]2 dx = [s00i (x)]2 dx = n [s000 (x)]2 dx
a i=0 xi x0
Z 1
1
= 122 n (x + (x − 1))2 dx = 122 n = 48 n,
0 3
mentre
Z b Z n  n
00 2 4 2 4 x sin(2πx n
[f (x)] dx = π cos (πx) dx = π − = π4 ∼ 48.7 n.
a 0 2 4π 0 2

Se i nodi vengono infittiti aggiungendo altri nodi alla precedente suddivisione


Z b
dell’intervallo, la successione degli integrali [s00 (x)]2 dx risulta non decrescente,
Z b a

limitata superiormente da [f 00 (x)]2 dx.


a

Esempio 12. Una applicazione grafica delle spline consiste nel tracciare una curva
nel piano che passa attraverso dei punti assegnati di coordinate (xi , yi ), per i =
0, . . . , n. Introduciamo dei nodi ti , i = 0, . . . , n, con ti < ti+1 , e interpretiamo xi e
yi come i valori che opportune funzioni x(t) e y(t) assumono nei nodi ti . Calcoliamo

17
le spline cubiche sx (t) e sy (t) che interpolano le funzioni x(t) e y(t) nei nodi e
tracciamo il grafico della curva parametrica (sx (t), sy (t)), t ∈ [t0 , tn ]. Il seguente
codice genera dei punti random nel piano e traccia una curva che passa attraverso
questi. La figura 4 riporta il risultato ottenuto.

npts = 5;
xy = [randn(1,npts); randn(1,npts)];
hold on
plot(xy(1,:),xy(2,:),’ro’,’LineWidth’,2);
text(xy(1,:), xy(2,:),[repmat(’ ’,npts,1), num2str((1:npts)’)])
t = 0:npts-1; % parametric coordinate
tt = [0:0.01:npts-1]; % interpolant evaluation points
xx = spline(t, xy(1,:), tt);
yy = spline(t, xy(2,:), tt);
plot(xx,yy)

1.5 1
4

0.5
2

-0.5
3
-1

-1.5
5
-2
-3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1

Figura 4: Curva che passa attraverso punti assegnati

3.1.5 Quadratura con le spline


Dalla spline cubica completa s(x) si ottiene un’interessante formula di quadratura
per l’approssimazione di
Z b
S[f ] = f (x) dx.
a

18
Integrando la (2) si ha
Z b n−1
XZ xi+1
Sn+1 [f ] = s(x) dx = si (x) dx
a i=0 xi
n−1 xi+1
X (x − xi )4 (x − xi+1 )4 (x − xi )2
= µi+1 − µi + αi + βi (x − xi )
24hi 24hi 2 xi
i=0
n−1 3 2
Xh h h i
= (µi + µi+1 ) i + αi i + βi hi ,
24 2
i=0

da cui, sostituendo le (3), si ricava


n−1 n−1
X hi  X h3i
Sn+1 [f ] = fi + fi+1 − (µi + µi+1 ). (33)
2 24
i=0 i=0

La prima sommatoria fornisce lo stesso valore della formula dei trapezi. Se f ∈


C 4 [a, b], per il teorema 6 l’errore che si commette utilizzando Sn+1 [f ] come appros-
simazione di S è
Z b 5 6
f (x) − s(x) dx ≤ 7 M4 H (b − a) ≤ 7n M4 H .

S[f ] − Sn+1 [f ] ≤
a 8 hmin 8 hmin
Se i punti xi sono equidistanti con hi = h per i = 0, . . . , n − 1, risulta
5
S[f ] − Sn+1 [f ] ≤ 7n M4 h5 = 7 M4 (b − a) ,

8 8 n4
dello stesso ordine della formula di Cavalieri-Simpson. Inoltre dal sistema (10) si ha

−hf00 + f1 − f0
   
2µ0 + µ1
 µ0 + 4µ1 + µ2   f0 − 2f1 + f2 

..
 6 
..

= .
   

 . 
 h2 
 . 
 µn−2 + 4µn−1 + µn   fn−2 − 2fn−1 + fn 
µn−1 + 2µn fn−1 − fn + hfn0

Quindi le somme delle loro componenti risultano


n−1
X
3h (µi + µi+1 ) = 6 (fn0 − f00 ) = 6 (f 0 (b) − f 0 (a)),
i=0

per cui sostituendo nella (33) si ha


n−1
h X h2 0
f (b) − f 0 (a) .

Sn+1 [f ] = fi + fi+1 ) −
2 12
i=0

Questa non è altro che la formula di Eulero-Maclaurin al primo ordine.

19
4 B-splines
Consideriamo un insieme di nodi τ0 ≤ τ1 ≤ . . . ≤ τm , non necessariamente distinti.
Definiamo le funzioni, per i = 0, . . . , m − 1,

1, x ∈ [τi , τi+1 ),
Bi,1 (x) = (34)
0, altrimenti.
Queste funzioni sono una base dell’insieme delle funzioni costanti a tratti nell’inter-
vallo [τ0 , τm ). Si osserva inoltre che Bi,1 ≡ 0 se τi = τi+1 .
Introduciamo i nodi esterni τ−1 ≤ τ0 e τm+1 ≥ τm e definiamo le hat functions,
per i = −1, . . . , m − 1, come

 (x − τi )/(τi+1 − τi ), x ∈ [τi , τi+1 ),
Bi,2 (x) = (τi+2 − x)/(τi+2 − τi+1 ), x ∈ [τi+1 , τi+2 ), (35)
0, altrimenti.

Se τi è un nodo distinto, allora una sola delle hat function è diversa da zero in τi
ed è Bi−1,2 (τi ) = 1. Dunque se i nodi τ0 , . . . , τm sono tra loro distinti, la funzione
spline di ordine 2 che interpola i punti (τi , fi ), per i = 0, . . . , m, può essere scritta
in modo unico come
Xm
s(x) = fi Bi−1,2 (x).
i=0
In altre parole, la restrizione delle funzioni Bi,2 (x) all’intervallo [τ0 , τm ] forma una
base per lo spazio lineare delle spline di ordine 2.
Si osserva inoltre che Bi,2 (x) è diversa da zero solo nell’intervallo (τi , τi+2 ). Quin-
di, se x ∈ (τi , τi+2 ), si ha Bj,2 (x) = 0 se j 6= i − 1, i. Dunque per ogni valore di x,
solo al più due funzioni saranno diverse da zero, e vale

s(x) = fi Bi−1,2 (x) + fi+1 Bi,2 (x), x ∈ (τi , τi+1 )

I nodi esterni sono generalmente scelti coincidenti con gli estremi dell’intervallo,
τ−1 = τ0 e τm+1 = τm . In questo caso B−1,2 (x) e Bm−1,2 (x) diventano “half–hats”
con una discontinuità rispettivamente in τ0 e τm .
La figura 5 rappresenta le hat functions Bi,2 (x), i = −1, . . . , 2, relative ai nodi
τ−1 = τ0 = 0, τ1 = 5, τ2 = 6, τ3 = τ4 = 8. Si osservi che B−1,2 (x) e B2,2 (x) sono
“half hat”.
Si osserva che vale la relazione
x − τi τi+2 − x
Bi,2 (x) = Bi,1 (x) + Bi+1,1 (x).
τi+1 − τi τi+2 − τi+1
In generale si definisce induttivamente l’insieme di funzioni Bi,k (x) mediante la
relazione
x − τi τi+k − x
Bi,k (x) = Bi,k−1 (x) + Bi+1,k−1 (x), i = −k + 1, . . . , m − 1,
τi+k−1 − τi τi+k − τi+1
(36)

20
1

0.8

0.6

0.4

0.2

0
−2 0 2 4 6 8 10 12

Figura 5: Hat functions

dove abbiamo aggiunto 2(k − 1) nodi esterni

τ−k+1 ≤ . . . ≤ τ−1 ≤ τ0 , τm+k−1 ≥ . . . ≥ τm+1 ≥ τm

e adottiamo la convenzione che 0/0 = 0. Le funzioni Bi,k (x), sono dette B-splines di
ordine k. Ciascuna di esse è un polinomio a tratti di grado minore di k. Inoltre la
funzione Bi,k (x) è definita univocamente mediante i k + 1 nodi τi , . . . , τi+k . Si può
dimostrare che se ` nodi tra τi , . . . , τi+k coincidono con z, allora le derivate di ordine
0, 1, . . . , k − ` − 1 di Bi,k (x) sono continue in z. In particolare, le funzioni B-spline
lineari (funzioni hat) sono discontinue nei nodi doppi, continue nei nodi semplici.
Vale il seguente risultato:

Teorema 13. Le B-splines di ordine k hanno le seguenti proprietà:

Positività: Bi,k (x) > 0 se x ∈ (τi , τi+k );

Supporto compatto: Bi,k (x) = 0 se x 6∈ [τi , τi+k ];


P
Proprietà di somma: i Bi,k (x) = 1 per ogni x ∈ [τ0 , τm ]

Ogni spline di ordine k, relativa ai nodi τ0 < . . . < τm , può essere rappresen-
tata mediante una combinazione lineare di m + k − 1 B-splines di ordine k. Più
precisamente, ogni spline s(x) di ordine k può essere scritta in modo unico come
m−1
X
s(x) = ci Bi,k (x)
i=−k+1

dove i coefficienti ci sono tali che


m−1
X
s(τj ) = ci Bi,k (τj ) = fj , j = 0, . . . , m.
i=−k+1

21
Queste equazioni formano un sistema lineare Ac = f di dimensione (m + 1) × (m +
k − 1), dove

ai,j = Bj−k,k (τi−1 ), i = 1, . . . , m + 1, j = 1, . . . , m + k − 1

e
cT = (c−k+1 , . . . , cm−1 ), f T = (f0 , . . . , fm ).
La matrice A è una matrice a banda per il teorema 13, infatti ai,j = 0 se τi−1 ∈ /
[τj−k , τj ], cioè se 1 < i − j < −k + 1, dunque al più k − 1 elementi sono diversi da
zero in ogni riga. Infatti, le matrici che intevengono nelle spline cubiche (cioè k = 4)
sono tridiagonali. Inoltre il sistema è sottodeterminato se k ≥ 3 e gli elementi ai,j
della matrice A possono essere valutati mediante la ricorrenza (36).
Nella pratica i nodi esterni sono scelti

τ−k+1 = . . . = τ−1 = τ0 , τm+k−1 = . . . = τm+1 = τm

perché migliora il condizionamento della B-spline.

5 Esercizi
Esercizio 1. Siano f (x) ∈ C 4 ([a, b]) e K = maxx∈[a,b] |f (4) (x)|. Indichiamo con
s(x) la spline not-a-knot relativa ai nodi xi = a + ih, i = 0, . . . , n, dove h = (b − a)/n
e n ≥ 4, e sia µi = s00 (xi ), per i = 0, . . . , n.
a) Dimostrare che il vettore g = (gi )i=1,...,n−1 di componenti gi = µi − f 00 (xi )
soddisfa l’equazione An g = 12 h2 τ , dove il vettore τ = (τi )i=1,...,n−1 è tale che |τ1 | ≤
K, |τi | ≤ 3K per i = 2, . . . , n − 2, |τn−1 | ≤ K, e
 
6 0
 1 4 1 
 
An = 
 . .
.. .. .. .  ∈ R(n−1)×(n−1) .

 
 1 4 1 
0 6

b) Dimostrare che la matrice An è invertibile e determinare una costante γ > 0,


indipendente da n, tale che |A−1 −1
n |u ≤ γ1, dove |An | è la matrice i cui elementi sono
i valori assoluti degli elementi di A−1 T
n , u = [1 3 3 · · · 3 3 1] e 1 è il vettore con tutte
le componenti uguali a 1.
c) Dimostrare che |µi − f 00 (xi )| ≤ γ2 K · h2 per i = 1, . . . , n − 1. Trovare una
costante α tale che |µi − f 00 (xi )| ≤ αKh2 per i = 0 e i = n.
d) Trovare una costante β > 0 tale che |s(x) − f (x)| ≤ βKh4 per ogni x ∈ [a, b].
Soluzione.
Per le proprietà delle splines not-a-knot, il vettore µ = (µi )i=1,...,n−1 verifica il
sistema An µ = h6 y, dove y = (yi ), con yi = fi−1,i,i+1 , i = 1, . . . , n − 1 e fi−1,i,i+1 =

22
f (xi+1 )−2f (xi )+f (xi−1 )
h .
Facendo opportuni sviluppi in serie di Taylor, come visto a
lezione per le splines complete, si ottiene che
6 h2  (4) 
fi−1,i,i+1 = 6f 00 (xi ) + f (ξi,1 ) + f (4) (ξi,2 )
h 4
h2  (4) 
f 00 (xi+1 ) + 4f 00 (xi ) + f 00 (xi−1 ) = 6f 00 (xi ) + f (ξi,3 ) + f (4) (ξi,4 )
2

per opportuni ξi,j ∈ (a, b). Dunque, posto w = (f 00 (xi ))i=1,n−1 , valgono le ugua-
glianze
h2 h2
An w = 6w + c, An µ = 6w + v
2 4
dove
 
0
(4) (ξ ) + f (4) (ξ ) (4) (ξ ) + f (4) (ξ )
 

 f 2,3 2,4

 f 1,1 1,2
c= .. ..
, v =  .
   
 .  .
 f (4) (ξn−2,3 ) + f (4) (ξn−2,4 )  (4) (4)
f (ξn−1,1 ) + f (ξn−1,2 )
0
h2
Dunque An (µ − w) = 4 (v − 2c) e τ = v − 2c è il vettore cercato, in quanto
 
2
 6 
 
|v − 2c| ≤ K  ... 
 
 
 6 
2
b) Sia S = diag((−1)i )i=0,n−2 e sia Bn = SAn S −1 . La matrice Bn ha elementi
positivi sulla diagonale e non positivi altrove, in particolare possiamo scrivere Bn =
6(I − 61 C), dove
 
0 0
 1 2 1 
 
C=
 . .
.. .. ... .

 
 1 2 1 
0 0
Poiché kCk∞ = 4, la matrice I − 61 C è invertibile, dunquePanche An è invertibile.
Poiché C ha elementi non negativi, la matrice (I − 61 C)−1 = i ( 16 C)i è non negativa.
Dunque |A−1 −1
n | = Bn . Si osserva che
 
6
 2 
 
Bn 1 =  ... 
 
 
 2 
6

23
dunque    
9 1
 3   3 
3 
−1  ..
 
−1  ..

1 = Bn   ≥ Bn  ,
 
2  .   . 
 3   3 
9 1
da cui γ = 32 .
c) Dal punto a), otteniamo

h2 −1 K · h2 −1 γ · K · h2
|g| ≤ |An | · |τ | ≤ |An |u ≤ 1,
4 2 2
2
dove l’ultima disuguaglianza segue dal punto b). Dunque |µi − f 00 (xi )| ≤ γ·K·h
2 per
i = 1, . . . , n − 1.
Dalle formule dei momenti delle splines not-a-knot, sappiamo che µ0 = 2µ1 − µ2 .
D’altra parte,

h2  (4) 
f 00 (x0 ) − 2f 00 (x1 ) + f 00 (x2 ) = f (ξ1,3 ) + f (4) (ξ1,4 ) .
2
Dunque, sottraendo e passando ai moduli,
3
|µ0 − f 00 (x0 )| ≤ 2|µ1 − f 00 (x1 )| + |µ2 − f 00 (x2 )| + h2 K ≤ h2 K( γ + 1)
2
d) Si procede come per le spline complete.

24

Potrebbero piacerti anche