P. 1
spline

spline

|Views: 30|Likes:
Published by Carlo Metta

More info:

Published by: Carlo Metta on Feb 27, 2012
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/30/2013

pdf

text

original

Interpolazione polinomiale a tratti

`
E noto che data una funzione f(x) di cui sono noti i valori in n +1 nodi distinti
x
i
, i = 0, . . . , n, esiste ed `e unico il polinomio di interpolazione p
n
(x) di grado al pi` u
n tale che p
n
(x
i
) = f(x
i
), i = 0, . . . , n. In generale, non `e detto che aumentando n
l’approssimazione di f(x) mediante p
n
(x) migliori. Infatti, indicato con N
n
l’insieme
dei nodi dell’interpolazione per il grado n, anche supponendo che i nodi vengano
infittiti in modo abbastanza uniforme, cio`e che
lim
n→∞
max |x
i+1
−x
i
| = 0,
`e possibile dimostrare (teorema di Faber) che per ogni prefissata successione di
insiemi N
n
, esiste una funzione f(x) continua in [a, b] tale che p
n
(x) non converge
ad f(x).
Nella pratica quindi non `e ragionevole approssimare f(x) con polinomi di inter-
polazione quando n `e elevato. Polinomi di grado pi` u basso si potrebbero ottenere
con le tecniche di approssimazione, ma in tal caso nei nodi i valori del polinomio
approssimante non sarebbero uguali a quelli della funzione. Se invece l’uguaglianza
dei valori nei nodi `e 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`e
a = x
0
< x
1
< . . . < x
n
= b,
si definisce polinomiale a tratti su [a, b] una funzione t(x) che sull’i-esimo sottointer-
vallo [x
i
, x
i+1
] coincide con un polinomio t
i
(x) di grado prefissato k. La t(x) viene
rappresentata per mezzo di una matrice A di ordine n la cui i-esima riga
[ a
i,k
, a
i,k−1
, . . . a
i,0
_
contiene i coefficienti di t
i
(x) con la variabile traslata rispetto al punto x
i
, cio`e
t
i
(y) = a
i,k
y
k
+ a
i,k−1
y
k−1
+ . . . + a
i,0
, dove y = x −x
i
.
Vediamo alcune funzioni polinomiali a tratti usate nella pratica. Per semplicit`a si
denota f
i
= f(x
i
), f

i
= f

(x
i
) e h
i
= x
i+1
−x
i
.
1
1. Polinomiale lineare a tratti
La t(x) coincide con la f(x) sui nodi x
i
, cio`e t(x) = t
i
(x) per x ∈ [x
i
, x
i+1
], dove
t
i
(x) =
f
i+1
−f
i
h
i
y + f
i
, y = x −x
i
.
Per la sua semplicit`a questa polinomiale `e usata spesso nella pratica, ma non sempre
fornisce una buona rappresentazione grafica della funzione, perch´e non vi `e alcuna
condizione sulle derivate dei singoli polinomi, per cui nei nodi x
i
il raccordo fra due
diversi polinomi lineari pu`o presentare un punto angoloso.
Se f ∈ C
2
[a, b], posto
M
2
= max
x∈[a,b]
|f

(x)| e H = max
i=0,...,n−1
h
i
,
dal resto dell’interpolazione lineare in [x
i
, x
i+1
] si ha
|f(x) −t(x)| ≤
1
8
M
2
(x
i+1
−x
i
)
2

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

(x) +
1
2
(x
i+1
−x)
2
f


i
),
f
i
= f(x) + (x
i
−x)f

(x) +
1
2
(x
i
−x)
2
f


i
),
da cui sottraendo risulta
f

(x) −t

i
(x) = f

(x) −
f
i+1
−f
i
h
i
=
1
2h
i
_
(x
i
−x)
2
f


i
) −(x
i+1
−x)
2
f


i
)
_
,
e poich´e per x ∈ [x
i
, x
i+1
] `e
(x
i+1
−x)
2
+ (x
i
−x)
2
≤ (x
i+1
−x
i
)
2
= h
2
i
, (1)
si ha
|f

(x) −t

i
(x)| ≤
1
2
M
2
h
i

1
2
M
2
H,
da cui segue la convergenza per H → 0 delle singole t

i
(x), e quindi della t

(x) su
ciascun intervallo, alla funzione continua f

(x).
2. Polinomiale cubica a tratti di Hermite
La t(x) coincide con la f(x) sui nodi x
i
, `e derivabile e t

(x) coincide con la f

(x) sui
nodi x
i
. Quindi t(x) = t
i
(x) per x ∈ [x
i
, x
i+1
], dove
t
i
(x) =
_
2(f
i
−f
i+1
) + h
i
(f

i
+ f

i+1
)
_
y
3
h
3
i

_
3(f
i
−f
i+1
) + h
i
(2f

i
+ f

i+1
)
_
y
2
h
2
i
+f

i
y + f
i
, y = x −x
i
.
2
Questa polinomiale fornisce una migliore rappresentazione grafica rispetto a quella
lineare, perch´e non d`a luogo a punti angolosi nei nodi. Per`o, anche se nei punti
di raccordo i polinomi hanno la stessa pendenza, non `e detto che abbiano la stessa
concavit`a, per cui nei nodi si pu`o presentare un andamento distorto.
Se f ∈ C
4
[a, b], posto
M
4
= max
x∈[a,b]
|f
(4)
(x)| e H = max
i=0,...,n−1
h
i
,
dal resto del polinomio osculatore di Hermite in [x
i
, x
i+1
] si ha
|f(x) −t(x)| ≤
1
4!
M
4
(x −x
i
)
2
(x −x
i+1
)
2
,
e poich´e
max
x∈[x
i
,x
i+1
]
(x −x
i
)
2
(x −x
i+1
)
2
=
1
16
(x
i+1
−x
i
)
4
,
risulta su [a, b] che
|f(x) −t(x)| ≤
1
384
M
4
H
4
,
da cui segue la convergenza della t(x) alla f(x) per H →0.
Le polinomiali di Hermite non sono utilizzabili nel caso, frequente nella pratica,
in cui i valori f

i
non sono noti. Per ovviare a questa difficolt`a, si possono costruire
polinomiali a tratti interpolando la f(x) su pi` u di due punti consecutivi. Molto
usate per la loro rapidit`a di calcolo sono le spline di Akima, formate da cubiche
che interpolano su cinque nodi e sono derivabili con continuit`a. Non `e richiesta la
conoscenza delle f

(x
i
) che vengono approssimate con delle medie pesate di rap-
porti incrementali. Queste spline, molto efficaci dal punto di vista grafico, danno
un’approssimazione locale, quindi sono adatte ad applicazioni interattive, in cui si
deve valutare l’effetto visivo prodotto dallo spostamento di singoli punti.
3. Spline cubica
Fra le funzioni polinomiali a tratti quelle pi` u usate nella pratica, anche perch´e con-
sentono di ottenere ottimi risultati dal punto di vista grafico, sono le spline cubiche
ottenute senza utilizzare i valori f

(x
i
) e imponendo invece condizioni di continuit`a
delle derivate prima e seconda.
Una funzione reale s(x) ∈ C
2
[a, b] viene chiamata spline cubica della f(x) se s(x)
coincide con un polinomio s
i
(x) di grado al pi` u 3 in ciascun intervallo [x
i
, x
i+1
] e
s(x
i
) = f
i
, per i = 0, . . . , n.
Imponendo queste condizioni si ottengono 4n −2 relazioni
a) s
i
(x
i
) = f
i
, s
i
(x
i+1
) = f
i+1
, per i = 0, . . . , n −1,
b) s

i−1
(x
i
) = s

i
(x
i
), per i = 1, . . . , n −1,
c) s

i−1
(x
i
) = s

i
(x
i
), per i = 1, . . . , n −1.
3
Poich´e i coefficienti dei polinomi s
i
(x) sono 4n, occorre imporre due condizioni ag-
giuntive al bordo, che vengono scelte caso per caso. Le due pi` u usate sono:
d

) s

0
(x
0
) = s

n−1
(x
n
) = 0 (spline naturale), che impone alla spline un andamento
lineare vicino agli estremi,
oppure, se sono noti i valori di f

(a) e f

(b)
d

) s

0
(x
0
) = f

(a), s

n−1
(x
n
) = f

(b) (spline completa), che impone alla spline la
tangenza alla f(x) negli estremi. Se i valori f

(a) e f

(b) non fossero disponibili, si
potrebbero sostituire con delle approssimazioni. Ad esempio, f

(a) potrebbe essere
approssimato con la derivata in a del polinomio che interpola la f(x) su a e sui tre
nodi successivi.
Sulla derivata seconda si potrebbero imporre anche altre condizioni, per esempio
s

0
(x
0
) = σ
0
e s

n−1
(x
n
) = σ
n
, dove σ
0
e σ
n
sono valori assegnati, oppure s

0
(x
0
) =
s

0
(x
1
) e s

n−1
(x
n−1
) = s

n−1
(x
n
), assumendo che la derivata seconda sia costante
vicino agli estremi dell’intervallo [a, b]. Nel caso di una funzione f(x) periodica di
periodo b − a, si potrebbe anche definire una spline periodica tale che s

0
(x
0
) =
s

n−1
(x
n
) e s

0
(x
0
) = s

n−1
(x
n
).
3.1 Calcolo dei coefficienti
Per determinare i coefficienti dei polinomi s
i
(x) si potrebbero sfruttare diretta-
mente le condizioni a) - c) e le condizioni aggiuntive scelte, risolvendo un sistema
lineare di 4n equazioni in 4n incognite.
`
E possibile per`o semplificare il problema
riducendo il numero delle equazioni necessarie. Si considerano come incognite le
quantit`a, dette momenti,
µ
i
= s

i
(x
i
), per i = 0, . . . , n −1, e µ
n
= s

n−1
(x
n
).
Poich´e s
i
(x) per x ∈ [x
i
, x
i+1
] `e un polinomio di grado al pi` u 3, s

i
(x) `e il polinomio
di grado al pi` u 1
s

i
(x) = µ
i+1
x −x
i
h
i
−µ
i
x −x
i+1
h
i
. (2)
Integrando due volte si ottiene
s

i
(x) = µ
i+1
(x −x
i
)
2
2h
i
−µ
i
(x −x
i+1
)
2
2h
i
+ α
i
, (3)
s
i
(x) = µ
i+1
(x −x
i
)
3
6h
i
−µ
i
(x −x
i+1
)
3
6h
i
+ α
i
(x −x
i
) + β
i
. (4)
Le costanti α
i
e β
i
vengono determinate imponendo le condizioni a)
_
¸
¸
_
¸
¸
_
µ
i
h
2
i
6
+ β
i
= f
i
µ
i+1
h
2
i
6
+ α
i
h
i
+ β
i
= f
i+1
,
4
da cui
_
¸
¸
_
¸
¸
_
β
i
= f
i
−µ
i
h
2
i
6
α
i
=
f
i+1
−f
i
h
i

h
i
6

i+1
−µ
i
).
(5)
Restano quindi da calcolare i µ
i
, i = 0, . . . , n. Dalle (3), imponendo le condizioni b)
e sostituendo α
i−1
e α
i
, si ottengono le n −1 relazioni
h
i−1
µ
i−1
+ 2 (h
i−1
+ h
i
) µ
i
+ h
i
µ
i+1
= 6 f
i−1,i,i+1
, i = 1, . . . , n −1, (6)
dove
f
i−1,i,i+1
=
f
i+1
−f
i
h
i

f
i
−f
i−1
h
i−1
.
Altre due relazioni si ottengono tramite le condizioni aggiuntive. Per la spline natu-
rale, dalle d

) si ha
µ
0
= 0 e µ
n
= 0. (7)
Per la spline completa, dalle d

) si ha:
s

0
(x
0
) = −µ
0
h
0
3
−µ
1
h
0
6
+
f
1
−f
0
h
0
= f

0
,
s

n−1
(x
n
) = µ
n−1
h
n−1
6
+ µ
n
h
n−1
3
+
f
n
−f
n−1
h
n−1
= f

n
,
dove f

0
= f

(a) e f

n
= f

(b) sono assegnati. Si ottiene
h
0
(2µ
0
+ µ
1
) = 6 f
0,0,1
e h
n−1

n−1
+ 2µ
n
) = 6 f
n−1,n,n
, (8)
dove
f
0,0,1
=
f
1
−f
0
h
0
− f

0
e f
n−1,n,n
= f

n

f
n
−f
n−1
h
n−1
.
In ogni caso i µ
i
sono soluzione di un sistema lineare, ottenuto associando alle (6)
le (7) o le (8), a seconda che debbano essere verificate le condizioni d

) o d

).
Nel primo caso, tenendo conto che µ
0
= µ
n
= 0, il sistema che si ottiene `e
M
_
¸
¸
¸
¸
¸
_
µ
1
µ
2
.
.
.
µ
n−2
µ
n−1
_
¸
¸
¸
¸
¸
_
= 6
_
¸
¸
¸
¸
¸
_
f
0,1,2
f
1,2,3
.
.
.
f
n−3,n−2,n−1
f
n−2,n−1,n
_
¸
¸
¸
¸
¸
_
, (9)
dove
M=
_
¸
¸
¸
¸
¸
_
2(h
0
+ h
1
) h
1
h
1
2(h
1
+ h
2
) h
2
.
.
.
.
.
.
.
.
.
h
n−3
2(h
n−3
+ h
n−2
) h
n−2
h
n−2
2(h
n−2
+ h
n−1
)
_
¸
¸
¸
¸
¸
_
.
5
Nel secondo caso vengono aggiunte una prima e un’ultima equazione al sistema che
diventa
M
_
¸
¸
¸
¸
¸
_
µ
0
µ
1
.
.
.
µ
n−1
µ
n
_
¸
¸
¸
¸
¸
_
= 6
_
¸
¸
¸
¸
¸
_
f
0,0,1
f
0,1,2
.
.
.
f
n−2,n−1,n
f
n−1,n,n
_
¸
¸
¸
¸
¸
_
, (10)
dove
M=
_
¸
¸
¸
¸
¸
_
2 h
0
h
0
h
0
2(h
0
+ h
1
) h
1
.
.
.
.
.
.
.
.
.
h
n−2
2(h
n−2
+ h
n−1
) h
n−1
h
n−1
2 h
n−1
_
¸
¸
¸
¸
¸
_
.
Le matrici M in (9) e (10) hanno predominanza diagonale in senso stretto e quindi
sono non singolari. Perci`o i sistemi hanno una e una sola soluzione, che pu`o 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 x
i
sono equidistanti, cio`e h
i
= h, per i = 0, . . . , n − 1, la matrice del
sistema risulta molto semplice. Ad esempio, per le spline naturali il sistema diventa
_
¸
¸
¸
¸
¸
_
4 1
1 4 1
.
.
.
.
.
.
.
.
.
1 4 1
1 4
_
¸
¸
¸
¸
¸
_
_
¸
¸
¸
¸
¸
_
µ
1
µ
2
.
.
.
µ
n−2
µ
n−1
_
¸
¸
¸
¸
¸
_
= 6
_
¸
¸
¸
¸
¸
_
f
0,1,2
f
1,2,3
.
.
.
f
n−3,n−2,n−1
f
n−2,n−1,n
_
¸
¸
¸
¸
¸
_
, (11)
dove f
i−1,i,i+1
= (f
i+1
−2f
i
+ f
i−1
)/h
2
.
Esaminiamo ad esempio il caso della funzione f(x) = x sin(2πx + 1), x ∈ [a, b],
con a = −1.1 e b = a + 2. Si considera il caso di nodi equidistanti con n = 6,
h = 1/3. I vettori dei nodi x
i
= a + i h e delle corrispondenti f
i
sono
x = [−1.1, −0.7667, −0.4333, −0.1, 0.2333, 0.5667, 0.9]
T
f = [−0.3995, −0.4794, 0.4283, −0.03632, 0.1459, −0.5601, 0.3269]
T
Il polinomio di interpolazione di grado 6 `e
p(x) = 15.7 x
6
+ 9.052 x
5
−18.55 x
4
−6.716 x
3
+ 4.184 x
2
+ 0.3977 x −0.04318
La figura 1 mostra il grafico di f(x) (con linea tratteggiata), i punti dell’interpolazione
e il grafico di p(x) (con linea continua). Costruiamo ora le due spline. La spline
6
-1 -0.5 0.5
-1.5
-1
-0.5
Figure 1: Polinomio di interpolazione.
naturale risulta
s(x) =
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
10.32 (x −x
0
)
3
−1.386 (x −x
0
) −0.3995,
−14.61 (x −x
1
)
3
−10.32 (x −x
2
)
3
+ 5.493 (x −x
1
) −0.8616,
11.07 (x −x
2
)
3
+ 14.61 (x −x
3
)
3
−4.248 (x −x
2
) + 0.9695,
−12.22 (x −x
3
)
3
−11.07 (x −x
4
)
3
+ 3.134 (x −x
3
) −0.4464,
13.81 (x −x
4
)
3
+ 12.22 (x −x
5
)
3
−5.01 (x −x
4
) + 0.5983,
−13.81 (x −x
6
)
3
+ 4.195 (x −x
5
) −1.072,
e il suo grafico, sovrapposto a quello della f(x), `e riportato nella figura 2. La spline
-1 -0.5 0.5
-0.8
-0.6
-0.4
-0.2
0.2
0.4
Figure 2: Spline naturale.
7
completa, costruita tenendo conto che f

(x
0
) = −6.076 e f

(x
n
) = 5.632 risulta
s(x) =
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
¸
_
3.778 (x −x
0
)
3
−24.38 (x −x
1
)
3
+ 2.049 (x −x
0
) −1.302,
−12.82 (x −x
1
)
3
−3.778 (x −x
2
)
3
+ 4.568 (x −x
1
) −0.6193,
10.46 (x −x
2
)
3
+ 12.82 (x −x
3
)
3
−3.981 (x −x
2
) + 0.9033,
−11.55 (x −x
3
)
3
−10.46 (x −x
4
)
3
+ 2.993 (x −x
3
) −0.4238,
11.77 (x −x
4
)
3
+ 11.55 (x −x
5
)
3
−4.71 (x −x
4
) + 0.5738,
7.484 (x −x
5
)
3
−11.77 (x −x
6
)
3
+ 3.137 (x −x
5
) −0.9961,
e il suo grafico, sovrapposto a quello della f(x), `e riportato nella figura 3. Non
stupisce che l’approssimazione fornita dalla spline completa appaia migliore vicino
agli estremi.
-1 -0.5 0.5
-0.8
-0.6
-0.4
-0.2
0.2
0.4
Figure 3: Spline completa.
3.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 (9) 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 `e necessario prima individuare
l’indice i tale che x ∈ (x
i
, x
i+1
). Per ottenere i si pu`o usare l’algoritmo banale
(cio`e confrontare x successivamente con x
j
, j = 1, . . . , n − 1) e questo richiede
n −1 confronti. Se per`o n `e potenza di 2, si pu`o usare l’algoritmo di bisezione (cio`e
confrontare x con x
n/2
, se x `e minore di x
n/2
si confronta x con x
n/4
, se x `e maggiore
di x
n/2
si confronta x con x
3n/4
, e cos`ı via). Questo procedimento richiede log
2
n
confronti. Una volta trovato i, per calcolare s(x) sono richieste 5A e 9M.
8
3.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`a che i nodi
siano equidistanti e non affetti da errore. Scriviamo il sistema (11) nella forma
Mµ = b, (12)
dove µ `e il vettore dei µ
i
e b `e il vettore di componenti b
i
= 6(f
i+1
−2f
i
+f
i−1
)/h
2
.
Supponendo di perturbare i dati del problema da f
i
a
¯
f
i
= f
i
+ δ
i
, con |δ
i
| ≤ δ, la
corrispondente variazione
¯
b−b del termine noto del sistema (12) risulta maggiorata
in norma infinito da

¯
b −b =
6
h
2
max
i=1,n−1

i+1
−2δ
i
+ δ
i−1
| ≤
24 δ
h
2
.
Quindi
¯ µ −µ
µ
≤ K(M)

¯
b −b
b
,
dove ¯ µ `e la soluzione del sistema il cui termine noto `e
¯
b e K(M) `e il numero di
condizionamento di M in norma infinito. La matrice M`e ben condizionata perch´e
K(M) ≤ 6 per ogni n. Quindi il problema del calcolo dei µ
i
`e ben condizionato. Lo
stesso si pu`o dire per la (5) del calcolo dei coefficienti α
i
e β
i
e per la (4) del calcolo
di s
i
(x) per x ∈ [x
i
, x
i+1
].
3.4 Propriet`a di minima curvatura
Le spline cubiche sono molto usate nella grafica perch´e fra le funzioni con derivata
seconda continua che interpolano la funzione f(x) nei nodi x
i
, i = 0, . . . , n, sono
quelle che hanno minima curvatura, cio`e che oscillano meno, come risulta dal seguente
teorema.
Teorema 1 Fra tutte le funzioni g ∈ C
2
[a, b], tali che g(x
i
) = f
i
, i = 0, . . . , n, la
spline cubica naturale s(x) `e quella che minimizza l’integrale
_
b
a
[g

(x)]
2
dx. (13)
Dim. Si ha
0 ≤
_
b
a
[g

(x) −s

(x)]
2
dx
=
_
b
a
[g

(x)]
2
dx −2
_
b
a
[g

(x) −s

(x)] s

(x) dx −
_
b
a
[s

(x)]
2
dx.
(14)
9
Per ogni sottointervallo [x
i
, x
i+1
] si ha, integrando due volte per parti,
_
x
i+1
x
i
[g

(x) −s

(x)] s

(x) dx =
_
[g

(x) −s

(x)] s

(x)
_
x
i+1
x
i

_
[g(x) −s(x)] s
(3)
(x)
_
x
i+1
x
i
+
_
x
i+1
x
i
[g(x) −s(x)] s
(4)
(x) dx.
Poich´e la s(x) sull’intervallo [x
i
, x
i+1
] coincide con un polinomio di grado al pi` u 3,
`e s
(4)
(x) = 0. Inoltre s(x
i
) = g(x
i
), s(x
i+1
) = g(x
i+1
), per cui
_
b
a
[g

(x) −s

(x)] s

(x) dx =
n−1

i=0
_
x
i+1
x
i
[g

(x) −s

(x)] s

(x) dx
=
n−1

i=0
_
[g

(x) −s

(x)] s

(x)
_
x
i+1
x
i
=
_
[g

(x) −s

(x)] s

(x)
_
b
a
e tale espressione `e nulla in quanto s

(a) = s

(b) = 0. Dalla (14) segue che
_
b
a
[s

(x)]
2
dx ≤
_
b
a
[g

(x)]
2
dx
per ogni funzione g(x) a derivata seconda continua tale che g(x
i
) = f
i
. 2
Un teorema analogo al teorema 1 vale per la spline completa (anche la di-
mostrazione `e analoga).
Teorema 2 Fra tutte le funzioni g ∈ C
2
[a, b], tali che g(x
i
) = f
i
, i = 0, . . . , n, e
g

(a) = f

(a) e g

(b) = f

(b), la spline cubica completa s(x) `e quella che minimizza
l’integrale
_
b
a
[g

(x)]
2
dx.
La g

(x) `e 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

(x)| (1 + [g

(x)]
2
)
−3/2
.
L’integrale (13) pu`o allora essere assunto come una misura della curvatura globale
della g(x) se |g

(x)| `e piccolo rispetto ad 1. Dal teorema 1 risulta quindi che la
spline cubica naturale `e quella che minimizza la curvatura globale. Segue anche che
se f ∈ C
2
[a, b], allora
_
b
a
[s

(x)]
2
dx ≤
_
b
a
[f

(x)]
2
dx.
10
Si costruisce ad esempio la spline cubica completa che approssima f(x) = cos(πx)
nei nodi x
i
= i, i = 0, . . . , n.
`
E h
i
= x
i+1
−x
i
= 1, f(x
i
) = (−1)
i
, f

(x
0
) = f

(x
n
) =
0. Quindi i momenti risolvono il sistema
_
¸
_
¸
_

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
s
i
(x) = (−1)
i
_
2(x −x
i
)
3
+ 2(x −x
i+1
)
3
−6(x −x
i
) + 3
_
,
e
_
b
a
[s

(x)]
2
dx =
n−1

i=0
_
x
i+1
x
i
[s

i
(x)]
2
dx = n
_
x
1
x
0
[s

0
(x)]
2
dx
= 12
2
n
_
1
0
(x + (x −1))
2
dx = 12
2
n
1
3
= 48 n,
mentre
_
b
a
[f

(x)]
2
dx = π
4
_
n
0
cos
2
(πx) dx = π
4
_
x
2

sin(2πx

_
n
0
= π
4
n
2
∼ 48.7 n.
Se i nodi vengono infittiti aggiungendo altri nodi alla precedente suddivisione
dell’intervallo, la successione degli integrali
_
b
a
[s

(x)]
2
dx risulta non decrescente,
limitata superiormente da
_
b
a
[f

(x)]
2
dx.
3.5 Propriet`a 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].
Teorema 3 Sia f ∈ C
4
[a, b]. Posto
M
4
= max
x∈[a,b]
|f
(4)
(x)|, H = max
i=0,...,n−1
h
i
,
per i momenti della spline cubica s(x) completa vale la relazione
max
i=0,...,n

i
−f

(x
i
)| ≤
3
4
M
4
H
2
. (15)
11
Dim. Si definisce d
i
= µ
i
−f

(x
i
) per i = 0, . . . , n e
g
i
= h
i−1
d
i−1
+ 2 (h
i−1
+ h
i
) d
i
+ h
i
d
i+1
per i = 1, . . . n −1.
Si estende questa definizione a g
0
e g
n
con la posizione h
−1
= 0 e h
n
= 0. Per
i = 1, . . . n −1 dalla (6) si ha
g
i
= 6 f
i−1,i,i+1
−h
i−1
f

(x
i−1
) −2 (h
i−1
+ h
i
) f

(x
i
) −h
i
f

(x
i+1
)
Dalla formula di Taylor si ha
f
i+1
−f
i
h
i
= f

i
+
h
i
2
f

(x
i
) +
h
2
i
3!
f

(x
i
) +
h
3
i
4!
f
(4)

i,1
),
f
i
−f
i−1
h
i−1
= f

i

h
i−1
2
f

(x
i
) +
h
2
i−1
3!
f

(x
i
) −
h
3
i−1
4!
f
(4)

i,2
),
con ξ
i,1
, ξ
i,2
∈ (a, b), e quindi
6 f
i−1,i,i+1
= 3 (h
i
+h
i−1
) f

(x
i
)+ (h
2
i
−h
2
i−1
) f

(x
i
)+
h
3
i
4
f
(4)

i,1
)+
h
3
i−1
4
f
(4)

i,2
).
Usando ancora la formula di Taylor
f

(x
i−1
) = f

(x
i
) −h
i−1
f

(x
i
) +
h
2
i−1
2
f
(4)

i,3
),
f

(x
i+1
) = f

(x
i
) + h
i
f

(x
i
) +
h
2
i
2
f
(4)

i,4
),
con ξ
i,3
, ξ
i,4
∈ (a, b), risulta
g
i
=
h
3
i
4
_
f
(4)

i,1
) −2 f
(4)

i,4
)
_
+
h
3
i−1
4
_
f
(4)

i,2
) −2 f
(4)

i,3
)
_
.
In modo analogo dalle (8) si ottiene
g
0
=
h
3
0
4
_
f
(4)

0,1
) −2 f
(4)

0,4
)
_
e g
n
=
h
3
n−1
4
_
f
(4)

n,2
) −2 f
(4)

n,3
)
_
.
Passando ai moduli si ha
|g
i
| ≤
3
4
M
4
(h
3
i−1
+ h
3
i
), per i = 1, . . . , n −1,
|g
0
| ≤
3
4
M
4
h
3
0
e |g
n
| ≤
3
4
M
4
h
3
n−1
.
(16)
Sia ora k l’indice per cui
|d
k
| = max
i=0,...,n
|d
i
|. (17)
12
Se 1 ≤ k ≤ n −1, si ha
g
k
= h
k−1
d
k−1
+ 2 (h
k−1
+ h
k
) d
k
+ h
k
d
k+1
= (h
k−1
+ h
k
) d
k
+ h
k−1
(d
k−1
+ d
k
) + h
k
(d
k
+ d
k+1
).
Per la (17) le due quantit`a d
k−1
+d
k
e d
k
+d
k+1
hanno lo stesso segno di d
k
, per cui
|g
k
| ≥ (h
k−1
+ h
k
) |d
k
|.
Per la (16) `e allora

k
−f

(x
k
)| = |d
k
| ≤
3
4
M
4
h
3
k−1
+ h
3
k
h
k−1
+ h
k
=
3
4
M
4
(h
2
k−1
−h
k−1
h
k
+ h
2
k
)

3
4
M
4
max (h
2
k−1
, h
2
k
) ≤
3
4
M
4
H
2
.
Se invece k = 0 oppure k = n, si ottiene

0
−f

(x
0
)| ≤
|g
0
|
h
0
e |µ
n
−f

(x
n
)| ≤
|g
n
|
h
n−1
,
e in entrambi i casi segue la tesi. 2
Teorema 4 Nell’ipotesi del teorema 3, posto h = min
i=0,...,n
h
i
, per la spline completa
valgono le limitazioni
|f

(x) −s

i
(x)| ≤ 2M
4
H
2
h
, per x ∈ [x
i
, x
i+1
], i = 0, . . . , n −1,
|f

(x) −s

(x)| ≤
7
4
M
4
H
3
h
,
|f

(x) −s

(x)| ≤
7
4
M
4
H
4
h
,
|f(x) −s(x)| ≤
7
8
M
4
H
5
h
, per x ∈ [a, b].
Dim. Dalla (2) si ha che per x ∈ [x
i
, x
i+1
] `e
s

i
(x) =
µ
i+1
−µ
i
h
i
,
da cui
f

(x) −s

i
(x) = f

(x) −
µ
i+1
−µ
i
h
i
= f

(x) −

i+1
−f

(x
i+1
)] −[µ
i
−f

(x
i
)]
h
i

[f

(x
i+1
) −f

(x)] −[f

(x
i
) −f

(x)]
h
i
.
13
Per la formula di Taylor e per la (15) `e
|f

(x) −s

i
(x)| ≤
3
2 h
i
M
4
H
2
+
1
2 h
i
¸
¸
¸(x
i+1
−x)
2
f
(4)

1
) −(x
i
−x)
2
f
(4)

2
)
¸
¸
¸,
con ξ
1
, ξ
2
∈ (x
i
, x
i+1
), e per la (1) `e
|f

(x) −s

i
(x)| ≤
3
2 h
i
M
4
H
2
+
1
2
h
i
M
4
≤ 2M
4
H
2
h
i
≤ 2M
4
H
2
h
. (18)
Per la seconda disuguaglianza, se x coincide con uno dei nodi, la maggiorazione
discende subito dalla (15); se x non coincide con uno dei nodi, sia x
i
il nodo pi` u
vicino a x e j = i −1 oppure j = i a seconda che x < x
i
oppure x > x
i
. Allora
_
x
x
i
[f

(t) −s

j
(t)] dt = [f

(x) −s

(x)] −[f

(x
i
) −s

(x
i
)],
da cui
f

(x) −s

(x) = f

(x
i
) −s

(x
i
) +
_
x
x
i
[f

(t) −s

j
(t)] dt.
Poich´e |x −x
i
| ≤ H/2, per le (15) e (18) risulta
|f

(x) −s

(x)| ≤
3
4
M
4
H
2
+ 2M
4
H
2
h
H
2

7
4
M
4
H
3
h
.
Per ricavare la terza disuguaglianza, poich´e per i = 0, . . . , n, `e s(x
i
) = f
i
, per il
teorema di Rolle in ogni intervallo [x
i
, x
i+1
], i = 0, . . . , n−1, esiste un punto ξ
i
, tale
che
f


i
) = s


i
). (19)
Quindi per ogni x ∈ [a, b], esiste uno ξ
i
, con |ξ
i
− x| ≤ H, per cui vale la (19), e
quindi
_
x
ξ
i
[f

(t) −s

(t)] dt = f

(x) −s

(x).
Passando ai moduli si ha
|f

(x) −s

(x)| ≤
7
4
M
4
H
3
h
H =
7
4
M
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 |x −x
i
| ≤ H/2. 2
Dal teorema 4 segue che per una funzione f(x) derivabile con continuit`a fino al
quarto ordine, se si infittiscono i nodi in modo regolare, cio`e in modo che il rapporto
H/h 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. In
particolare se i nodi rimangono equidistanti, allora H/h = 1 e la convergenza `e
molto rapida, perch´e
|f(x) −s(x)| ≤ M
4
H
4
.
14
3.6 Quadratura con le spline
Dalla spline cubica completa s(x) si ottiene un’interessante formula di quadratura
per l’approssimazione di
S =
_
b
a
f(x) dx.
Integrando la (4) si ha
S
n+1
=
_
b
a
s(x) dx =
n−1

i=0
_
x
i+1
x
i
s
i
(x) dx
=
n−1

i=0
_
µ
i+1
(x −x
i
)
4
24h
i
−µ
i
(x −x
i+1
)
4
24h
i
+ α
i
(x −x
i
)
2
2
+ β
i
(x −x
i
)
_
x
i+1
x
i
=
n−1

i=0
_

i
+ µ
i+1
)
h
3
i
24
+ α
i
h
2
i
2
+ β
i
h
i
_
,
da cui, sostituendo le (5), si ricava
S
n+1
=
n−1

i=0
h
i
2
(f
i
+ f
i+1
) −
n−1

i=0
h
3
i
24

i
+ µ
i+1
). (20)
La prima sommatoria fornisce lo stesso valore della formula dei trapezi. Se f ∈
C
4
[a, b], per il teorema 4 l’errore che si commette utilizzando S
n+1
come approssi-
mazione di S `e
|S −S
n+1
| ≤
_
b
a
|f(x) −s(x)| dx ≤
7
8
M
4
H
5
h
(b −a) ≤
7n
8
M
4
H
6
h
.
Se i punti x
i
sono equidistanti con h
i
= h per i = 0, . . . , n −1, risulta
|S −S
n+1
| ≤
7n
8
M
4
H
5
=
7
8
M
4
(b −a)
5
n
4
,
dello stesso ordine della formula di Cavalieri-Simpson. Inoltre il primo e il secondo
membro del sistema (10) risultano
h
_
¸
¸
¸
¸
¸
_

0
+ µ
1
µ
0
+ 4µ
1
+ µ
2
.
.
.
µ
n−2
+ 4µ
n−1
+ µ
n
µ
n−1
+ 2µ
n
_
¸
¸
¸
¸
¸
_
=
6
h
_
¸
¸
¸
¸
¸
_
−hf

0
+ f
1
−f
0
f
0
−2f
1
+ f
2
.
.
.
f
n−2
−2f
n−1
+ f
n
f
n−1
−f
n
+ hf

n
_
¸
¸
¸
¸
¸
_
.
Quindi le somme delle loro componenti risultano
3 h
n−1

i=0

i
+ µ
i+1
) = 6 (f

n
−f

0
) = 6 (f

(b) −f

(a)),
15
per cui sostituendo nella (20) si ha
S
n+1
=
h
2
n−1

i=0
(f
i
+ f
i+1
) −
h
2
12
(f

(b) −f

(a)).
Questa non `e altro che la formula di Eulero-Maclaurin al primo ordine.
3.7 Rappresentazione mediante B-spline
Per definire e costruire una spline si pu`o procedere anche in modo diverso, espri-
mendola come combinazione lineare di opportune spline elementari linearmente in-
dipendenti.
Per n ≥ 4, si considerano i punti ausiliari
x
−3
< x
−2
< x
−1
< a e b < x
n+1
< x
n+2
< x
n+3
.
Si definiscono B-spline (o spline fondamentali) cubiche normalizzate le funzioni
S
i
(x), i = −1, . . . , n + 1, tali che
(1) S
i
∈ C
2
[x
−3
, x
n+3
],
(2) in ogni intervallo S
i
(x) coincide con un polinomio di terzo grado,
(3) S
i
(x) ≡ 0 per x ≤ x
i−2
e x ≥ x
i+2
,
(4) S
i
(x
i
) = 1.
La condizione (4) pu`o essere sostituita da una qualunque altra condizione che faccia
s`ı che le B-spline non siano identicamente nulle, ad esempio
_
x
i+2
x
i−2
S
i
(x) dx = 1.
I coefficienti della S
i
(x) sono soluzione di un sistema lineare. Per verificare la non
singolarit`a della matrice del sistema, basta dimostrare che se una funzione t
i
(x)
soddisfa le (1), (2), (3) ed inoltre `e tale che t
i
(x
i
) = 0, allora t
i
(x) ≡ 0. Infatti
t
i
(x) si annulla in almeno 3 punti nell’intervallo [x
i−2
, x
i+2
], quindi t

i
(x) si annulla
in almeno due punti interni a tale intervallo, e poich´e t

i
(x
i−2
) = t

i
(x
i+2
) = 0, t

i
si annulla in almeno 4 punti di [x
i−2
, x
i+2
]. In modo analogo si vede che t

i
(x) si
annulla in almeno 5 punti di [x
i−2
, x
i+2
], di cui 3 interni, e questo `e possibile solo se
t
i
≡ 0, perch´e t
i
(x) coincide con 4 polinomi di terzo grado sui 4 intervalli [x
i
, x
i+1
],
i = i −2, . . . , i + 1. Ne segue che la S
i
(x) esiste ed `e unica.
Per verificare che le B-spline sono linearmente indipendenti, se ne considera una
combinazione nulla
φ(x) =
n+1

i=−1
α
i
S
i
(x) = 0.
Poich´e S
i
(x
−2
) = 0 per i ≥ 0, risulta φ(x
−2
) = α
−1
S
−1
(x
−2
), e dovendo essere
φ(x
−2
) = 0, ne segue che α
−1
= 0. Si procede considerando i valori φ(x
k
), k =
−1, . . . , n. Risulta cos`ı che i coefficienti della combinazione sono tutti nulli.
16
Per ogni intervallo [x
i
, x
i+1
], i = 0, . . . , n − 1, esistono quattro B-spline linear-
mente indipendenti e non nulle con cui `e possibile esprimere qualunque polinomio
di terzo grado. Ne segue che ogni spline cubica s(x) pu`o essere scritta come
s(x) =
n+1

i=−1
α
i
S
i
(x),
dove gli α
i
sono degli opportuni coefficienti. Se uno degli α
i
viene modificato, la
spline s(x) risulta modificata solo nell’intervallo (x
i−2
, x
i+2
), e quindi non `e nec-
essario ricalcolarla tutta. Questo `e particolarmente vantaggioso nelle applicazioni
grafiche.
Nel caso particolare dei nodi equidistanti, indicato con h il passo costante e posto
z = (x −x
i
)/h, risulta
S
i
(x) =
_
¸
¸
¸
¸
¸
¸
¸
¸
_
¸
¸
¸
¸
¸
¸
¸
¸
_
(z
3
+ 6z
2
+ 12z + 8)/4 per −2 ≤ z ≤ −1,
(−3z
3
−6z
2
+ 4)/4 per −1 ≤ z ≤ 0,
(3z
3
−6z
2
+ 4)/4 per 0 ≤ z ≤ 1,
(−z
3
+ 6z
2
−12z + 8)/4 per 1 ≤ z ≤ 2,
0 per z ≤ −2 e z ≥ 2.
In figura `e riportato il grafico della S
i
(x) nel caso x
i
= i.
1
+2 i +1 i i 1 i 2 i
Le B-spline vengono calcolate in modo stabile usando l’algoritmo ricorsivo di de
Boor.
3.8 Spline di ordine superiore
Le spline cubiche sono le pi` u usate, perch´e sono quelle di grado minimo che
permettono di raccordare le derivate seconde nei nodi. Naturalmente spline di grado
pi` u alto permetterebbero di raccordare derivate di ordine pi` u elevato, ma il maggior
costo non sarebbe ricompensato da un miglioramento grafico apprezzabile, in quanto
l’occhio umano non arriva a discernere differenze cos`ı microscopiche. Non esistono
comunque difficolt`a a una generalizzazione a spline di ordine dispari maggiore di 3.
Fissato un intero m tale che 2 ≤ m ≤ n + 1, la spline di ordine 2m − 1 per
l’approssimazione della f(x) pu`o essere definita in uno dei modi seguenti.
17
(a) Definizione descrittiva: si definisce spline di ordine 2m− 1 una funzione s(x)
tale che
(1) s(x
i
) = f
i
, per i = 0, . . . , n,
(2) s `e un polinomio di grado al pi` u 2m−1 in [x
i
, x
i+1
], per i = 0, . . . , n −1,
(3) s ∈ C
2m−2
[a, b],
(4) sia
s
(m)
(a) = s
(m+1)
(a) = . . . = s
(2m−2)
(a) = 0,
s
(m)
(b) = s
(m+1)
(b) = . . . = s
(2m−2)
(b) = 0,
.
La definizione a), b), c), d’) di spline naturale corrisponde alla definizione descrittiva
con m = 2.
La definizione descrittiva individua univocamente la spline. Infatti, supponiamo
per assurdo che esistano due spline σ
1
(x) e σ
2
(x) che soddisfano la definizione de-
scrittiva. Allora la funzione s(x) = σ
1
(x)−σ
2
(x) verifica le (1) − (4) della definizione
descrittiva relativamente alla f(x) identicamente nulla. Poich´e in ogni intervallo s(x)
coincide con un polinomio di grado al pi` u 2m−1, essa `e individuata da 2mn coeffi-
cienti. Le (1), (3) e (4) forniscono esattamente 2mn condizioni lineari sui coefficienti.
Quindi i coefficienti della s(x) soddisfano il sistema lineare Ax = 0 di ordine 2mn.
Per verificare che tale sistema ha un’unica soluzione, si applica ripetutamente la
formula di integrazione per parti
_
b
a
[s
(m)
(x)]
2
dx =
_
s
(m−1)
(x)s
(m)
(x)
_
b
a

_
b
a
s
(m−1)
(x)s
(m+1)
(x) dx = . . .
= (−1)
m
_
b
a
s

(x)s
(2m−2)
(x) dx = (−1)
m
n−1

i=0
_
x
i+1
x
i
s

(x)s
(2m−2)
(x) dx
= (−1)
m
n−1

i=0
_
s

(x)s
(2m−2)
(x) −s(x)s
(2m−1)
(x)
_
x
i+1
x
i
,
in quanto s
(2m)
(x) ≡ 0 su ogni intervallo, e poich´e s(x
i
) = 0 per i = 0, . . . , n e
s
(2m−2)
(a) = s
(2m−2)
(b) = 0, ne segue che
_
b
a
[s
(m)
(x)]
2
dx = 0.
Quindi la s(x), per le condizioni di continuit`a, deve essere un polinomio di grado
m − 1, e poich´e si annulla in n + 1 punti, con n + 1 > m − 1, ne segue che `e
identicamente nulla la spline che approssima la funzione identicamente nulla.
(b) Definizione variazionale: si definisce spline di ordine 2m−1 una funzione s(x)
tale che
(1) s(x
i
) = f
i
, per i = 0, . . . , n,
(2) s ∈ C
m−1
[a, b],
18
(3) l’integrale
_
b
a
[s
(m)
(x)]
2
dx
esiste ed `e quello minimo fra gli integrali di tutte le funzioni che soddisfano le
condizioni (1) e (2).
Le due definizioni variazionale e descrittiva sono equivalenti. Sia infatti s(x) la
spline che soddisfa le (1) − (4) della definizione descrittiva per l’approssimazione
della f(x) e t(x) una funzione che soddisfa le (1) e (2) della definizione variazionale,
allora
_
b
a
[t
(m)
(x)]
2
dx −
_
b
a
[s
(m)
(x)]
2
dx =
_
b
a
[t
(m)
(x) −s
(m)
(x)]
2
dx
+2
_
b
a
[t
(m)
(x) −s
(m)
(x)]s
(m)
(x) dx ≥ 2
_
b
a
[t
(m)
(x) −s
(m)
(x)]s
(m)
(x) dx,
in cui il segno di uguaglianza vale solo se s(x) e t(x) coincidono identicamente. Proce-
dendo come per la dimostrazione del teorema 1, si dimostra che l’ultimo integrale `e
nullo. Ne segue che
_
b
a
[t
(m)
(x)]
2
dx ≥
_
b
a
[s
(m)
(x)]
2
dx
e che il minimo viene assunto solo dalla s(x).
3.9 Perch´e non si usano le spline di ordine pari?
La richiesta della continuit`a delle derivate nei nodi fa s`ı che la spline fornisca
un’approssimazione globale, nel senso che una variazione di un singolo valore f
j
nel
j-esimo nodo si ripercuote su tutte le s
i
(x). Per`o nel caso delle spline di ordine
dispari, l’intensit`a di questa dipendenza decresce con la distanza di i da j. Questo
invece non accade con le spline di ordine pari. Esaminiamo, ad esempio, il caso della
spline quadratica, definita come la funzione reale s ∈ C
1
[a, b] che in ogni intervallo
coincide con un polinomio s
i
(x) di grado al pi` u 2 ed `e tale che s(x
i
) = f(x
i
), per
i = 0, . . . , n.
Procedendo come per le spline cubiche, si pone ν
i
= s

i
(x
i
), per i = 0, . . . , n −1
e ν
n
= s

n−1
(x
n
); risulta quindi
s

i
(x) = ν
i+1
x −x
i
h
i
−ν
i
x −x
i+1
h
i
.
Integrando si ha
s
i
(x) = ν
i+1
(x −x
i
)
2
2h
i
−ν
i
(x −x
i+1
)
2
2h
i
+ α
i
,
e imponendo le condizioni s
i
(x
i
) = f
i
e s
i
(x
i+1
) = f
i+1
si ottiene
−ν
i
h
i
2
+ α
i
= f
i
e ν
i+1
h
i
2
+ α
i
= f
i+1
,
19
da cui
ν
i
+ ν
i+1
= 2
f
i+1
−f
i
h
i
, per i = 0, . . . , n −1.
Questa equazione alle differenze del primo ordine consente di calcolare i ν
i
, purch´e
sia assegnato un valore iniziale ν
0
= s

0
(x
0
) oppure ν
n
= s

n−1
(x
n
). Ad esempio con
la condizione ν
0
= 0 si ottiene
ν
i
= 2
i−1

j=0
(−1)
i+j−1
f
j+1
−f
j
h
j
.
Gli α
i
, i = 0, . . . , n −1 vengono poi calcolati per sostituzione.
Oltre ad essere meno efficace della spline cubica dal punto di vista grafico, la
spline quadratica non viene usata perch´e per certe scelte dell’unica condizione ausi-
liaria, `e instabile. L’instabilit`a `e causata dal fatto che si risolve un’equazione alle
differenze la cui equazione omogenea associata ha la soluzione ν
i
= (−1)
i
ν
0
, mentre
la soluzione dell’equazione completa potrebbe essere decrescente. Inoltre, se viene
modificato un valore della funzione f(x
k
), la soluzione varia solo nelle componenti
ν
i
, con i ≥ k.
20

1. Polinomiale lineare a tratti La t(x) coincide con la f (x) sui nodi xi , cio` t(x) = ti (x) per x ∈ [xi , xi+1 ], dove e ti (x) = fi+1 − fi y + fi , hi y = x − xi .

Per la sua semplicit` questa polinomiale ` usata spesso nella pratica, ma non sempre a e fornisce una buona rappresentazione grafica della funzione, perch´ non vi ` alcuna e e condizione sulle derivate dei singoli polinomi, per cui nei nodi xi il raccordo fra due diversi polinomi lineari pu` presentare un punto angoloso. o Se f ∈ C 2 [a, b], posto M2 = max |f (x)| e H =
x∈[a,b] i=0,...,n−1

max

hi ,

dal resto dell’interpolazione lineare in [xi , xi+1 ] si ha |f (x) − t(x)| ≤ 1 1 M2 (xi+1 − xi )2 ≤ M2 H 2 , 8 8

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

e poich´ per x ∈ [xi , xi+1 ] ` e e (xi+1 − x)2 + (xi − x)2 ≤ (xi+1 − xi )2 = h2 , i si ha |f (x) − ti (x)| ≤ (1)

1 1 M2 hi ≤ M2 H, 2 2 da cui segue la convergenza per H → 0 delle singole ti (x), e quindi della t (x) su ciascun intervallo, alla funzione continua f (x). 2. Polinomiale cubica a tratti di Hermite La t(x) coincide con la f (x) sui nodi xi , ` derivabile e t (x) coincide con la f (x) sui e nodi xi . Quindi t(x) = ti (x) per x ∈ [xi , xi+1 ], dove ti (x) = 2(fi − fi+1 ) + hi (fi + fi+1 ) +fi y + fi , y = x − xi . 2 y3 y2 − 3(fi − fi+1 ) + hi (2fi + fi+1 ) 2 h3 hi i

. 3. per i = 0. per i = 0. . per i = 1. per cui nei nodi si pu` presentare un andamento distorto. Per`. quindi sono adatte ad applicazioni interattive. . sono le spline cubiche ottenute senza utilizzare i valori f (xi ) e imponendo invece condizioni di continuit` a delle derivate prima e seconda. dal resto del polinomio osculatore di Hermite in [xi . danno un’approssimazione locale. perch´ non d` luogo a punti angolosi nei nodi. . 384 da cui segue la convergenza della t(x) alla f (x) per H → 0.Questa polinomiale fornisce una migliore rappresentazione grafica rispetto a quella lineare. formate da cubiche a che interpolano su cinque nodi e sono derivabili con continuit`. in cui i valori fi non sono noti.n−1 max hi . . anche se nei punti e a o di raccordo i polinomi hanno la stessa pendenza. |f (x) − t(x)| ≤ Le polinomiali di Hermite non sono utilizzabili nel caso.b] i=0. . per i = 1.xi+1 ] 1 M4 (x − xi )2 (x − xi+1 )2 . n. frequente nella pratica. 3 . a o Se f ∈ C 4 [a. posto M4 = max |f (4) (x)| e H = x∈[a. . . .. b] viene chiamata spline cubica della f (x) se s(x) coincide con un polinomio si (x) di grado al pi` 3 in ciascun intervallo [xi .. Imponendo queste condizioni si ottengono 4n − 2 relazioni a) si (xi ) = fi . 16 max (x − xi )2 (x − xi+1 )2 = risulta su [a. xi+1 ] e u s(xi ) = fi . n − 1. xi+1 ] si ha |f (x) − t(x)| ≤ e poich´ e x∈[xi . si possono costruire a polinomiali a tratti interpolando la f (x) su pi` di due punti consecutivi.. . . n − 1. anche perch´ conu e sentono di ottenere ottimi risultati dal punto di vista grafico. Per ovviare a questa difficolt`. Non ` richiesta la a e conoscenza delle f (xi ) che vengono approssimate con delle medie pesate di rapporti incrementali. . . . molto efficaci dal punto di vista grafico. non ` detto che abbiano la stessa e concavit`. . b) si−1 (xi ) = si (xi ). si (xi+1 ) = fi+1 . Spline cubica Fra le funzioni polinomiali a tratti quelle pi` usate nella pratica. n − 1. Una funzione reale s(x) ∈ C 2 [a. . Queste spline. b]. c) si−1 (xi ) = si (xi ). . b] che 1 M4 H 4 . Molto u usate per la loro rapidit` di calcolo sono le spline di Akima. 4! 1 (xi+1 − xi )4 . in cui si deve valutare l’effetto visivo prodotto dallo spostamento di singoli punti.

oppure. Le due pi` usate sono: u d ) s0 (x0 ) = sn−1 (xn ) = 0 (spline naturale). b]. Poich´ si (x) per x ∈ [xi . Ad esempio. oppure s0 (x0 ) = s0 (x1 ) e sn−1 (xn−1 ) = sn−1 (xn ). E possibile per` semplificare il problema o riducendo il numero delle equazioni necessarie. che impone alla spline la tangenza alla f (x) negli estremi. e µn = sn−1 (xn ). assumendo che la derivata seconda sia costante vicino agli estremi dell’intervallo [a. xi+1 ] ` un polinomio di grado al pi` 3. 6hi 6hi Le costanti αi e βi vengono determinate imponendo le condizioni a)  2   µi hi + βi = fi  6 2    µi+1 hi + αi hi + βi = fi+1 . occorre imporre due condizioni age giuntive al bordo. che impone alla spline un andamento lineare vicino agli estremi. . 6 4 . dette momenti. si potrebbe anche definire una spline periodica tale che s0 (x0 ) = sn−1 (xn ) e s0 (x0 ) = sn−1 (xn ). 3. per i = 0. f (a) potrebbe essere approssimato con la derivata in a del polinomio che interpola la f (x) su a e sui tre nodi successivi. Nel caso di una funzione f (x) periodica di periodo b − a. 2hi 2hi (3) (4) (x − xi )3 (x − xi+1 )3 − µi + αi (x − xi ) + βi . si potrebbero sostituire con delle approssimazioni.Poich´ i coefficienti dei polinomi si (x) sono 4n. risolvendo un sistema ` lineare di 4n equazioni in 4n incognite. sn−1 (xn ) = f (b) (spline completa). si (x) ` il polinomio e e u e di grado al pi` 1 u x − xi+1 x − xi − µi . . . a µi = si (xi ). (2) si (x) = µi+1 hi hi Integrando due volte si ottiene si (x) = µi+1 si (x) = µi+1 (x − xi )2 (x − xi+1 )2 − µi + αi . n − 1. Si considerano come incognite le quantit`. dove σ0 e σn sono valori assegnati.c) e le condizioni aggiuntive scelte.1 Calcolo dei coefficienti Per determinare i coefficienti dei polinomi si (x) si potrebbero sfruttare direttamente le condizioni a) . se sono noti i valori di f (a) e f (b) d ) s0 (x0 ) = f (a). . Se i valori f (a) e f (b) non fossero disponibili. Sulla derivata seconda si potrebbero imporre anche altre condizioni. che vengono scelte caso per caso. per esempio s0 (x0 ) = σ0 e sn−1 (xn ) = σn .

. Per la spline naturale..i+1 = i = 1. M  .i.n .1 = f1 − f0 − f0 h0 e hn−1 (µn−1 + 2µn ) = 6 fn−1. .n−1. . . .  = 6  . 2   βi = fi − µi hi  6 (5)   α = fi+1 − fi − hi (µ  i − µi ).n. i+1 hi 6 Restano quindi da calcolare i µi .  . . e fn−1.. hi hi−1 Altre due relazioni si ottengono tramite le condizioni aggiuntive.i+1 . . . 3 6 h0 hn−1 hn−1 fn − fn−1 sn−1 (xn ) = µn−1 + µn + = fn .0.n.n µn−1 dove 2(h0 + h1 ) h1  h1 2(h1 + h2 ) h2   .1.0. . . imponendo le condizioni b) e sostituendo αi−1 e αi .1 dove f0.n−1   µn−2  fn−2. tenendo conto che µ0 = µn = 0.3        .2 µ1    µ2  f1. Si ottiene h0 (2µ0 + µ1 ) = 6 f0. dalle d ) si ha: h0 h0 f1 − f0 − µ1 + = f0 .   hn−3 2(hn−3 + hn−2 ) hn−2 hn−2 2(hn−2 + hn−1 ) 5      . . Nel primo caso. ottenuto associando alle (6) le (7) o le (8). hn−1 (8) In ogni caso i µi sono soluzione di un sistema lineare.n = fn − fn − fn−1 . . n. 6 3 hn−1 s0 (x0 ) = −µ0 dove f0 = f (a) e fn = f (b) sono assegnati. il sistema che si ottiene ` e     f0. dove fi−1. si ottengono le n − 1 relazioni hi−1 µi−1 + 2 (hi−1 + hi ) µi + hi µi+1 = 6 fi−1. (7) Per la spline completa.2. . a seconda che debbano essere verificate le condizioni d ) o d ).      fn−3. dalle d ) si ha µ0 = 0 e µn = 0.n−2. (6) da cui fi − fi−1 fi+1 − fi − . . i = 0. M= . n − 1.. .   (9) . Dalle (3).i.

. con a = −1.i+1 = (fi+1 − 2fi + fi−1 )/h2 .1 e b = a + 2. per le spline naturali il sistema diventa       4 1 µ1 f0.n dove fi−1.5601.Nel secondo caso vengono aggiunte una prima e un’ultima equazione al sistema che diventa     µ0 f0. 0. n − 1.5667. −0. Esaminiamo ad esempio il caso della funzione f (x) = x sin(2πx + 1). . cio` hi = h.n−1.    .716 x3 + 4. La spline 6 .0. . .n−1.1. x ∈ [a.4794.4333. . Si considera il caso di nodi equidistanti con n = 6. 0.  = 6  (10) . ..3977 x − 0. .9]T f = [−0. −0. Costruiamo ora le due spline.2.1.1. b]. 0.. 0. . Ad esempio..    . .2  1 4   µ2    1 f1.i. −0.         fn−3.2333.2      . Inoltre le matrici sono tridiagonali e il metodo di Gauss ha un basso costo computazionale. . I vettori dei nodi xi = a + i h e delle corrispondenti fi sono x = [−1. Se i punti xi sono equidistanti.184 x2 + 0. .052 x5 − 18.3995. .n dove 2 h0 h0  h0 2(h0 + h1 ) h1   .03632.   hn−2 2(hn−2 + hn−1 ) hn−1 hn−1 2 hn−1      . che pu` essere o o calcolata con il metodo di Gauss senza scambi di righe.7667. −0.     µn−1   fn−2. 0.  . i punti dell’interpolazione e il grafico di p(x) (con linea continua).n.. Perci` i sistemi hanno una e una sola soluzione.n  µn fn−1.3269]T Il polinomio di interpolazione di grado 6 ` e p(x) = 15. la matrice del e sistema risulta molto semplice.1  µ1    f0.04318 La figura 1 mostra il grafico di f (x) (con linea tratteggiata).3          . . −0. .   Le matrici M in (9) e (10) hanno predominanza diagonale in senso stretto e quindi sono non singolari. . M= .  = 6  .n−2..1. −0.. . . .55 x4 − 6. . 0.n−1  1 4 1   µn−2  1 4 µn−1 fn−2.1459. per i = 0. (11)    . h = 1/3. dell’ordine di n.4283.7 x6 + 9. M  .

2 -1 -0. s(x) =  −12. naturale risulta  3  10.5 -0. La spline e 0.61 (x − x1 )3 − 10.4 -0. 7 .-1 -0.3995.     −13.5 0.07 (x − x2 )3 + 14.      13.134 (x − x3 ) − 0. ` riportato nella figura 2.9695.07 (x − x4 )3 + 3.386 (x − x0 ) − 0.32 (x − x2 )3 + 5.5983.81 (x − x4 )3 + 12.22 (x − x5 )3 − 5.8 0.32 (x − x0 ) − 1. e il suo grafico.      11.22 (x − x3 )3 − 11.8616.072.61 (x − x3 )3 − 4.5 Figure 1: Polinomio di interpolazione.5 Figure 2: Spline naturale.493 (x − x1 ) − 0. sovrapposto a quello della f (x).2 -0.4464.4 0.01 (x − x4 ) + 0.6 -0.5 -1 -1.5 -0.     −14.248 (x − x2 ) + 0.81 (x − x6 )3 + 4.195 (x − x5 ) − 1.

sovrapposto a quello della f (x). j = 1. 8 . xi+1 ).46 (x − x2 )3 + 12. Non e stupisce che l’approssimazione fornita dalla spline completa appaia migliore vicino agli estremi. .8 0.302.      11.completa.076 e f (xn ) = 5.5 -0.82 (x − x1 )3 − 3.5738.137 (x − x5 ) − 0.77 (x − x6 )3 + 3.778 (x − x2 )3 + 4.9033. Per calcolare il valore della spline in un punto x ` necessario prima individuare e l’indice i tale che x ∈ (xi .484 (x − x5 )3 − 11. n − 1) e questo richiede e n − 1 confronti. Una lieve riduzione si ha nel caso dei nodi equidistanti. 3. e cos` via).981 (x − x2 ) + 0. ` riportato nella figura 3.46 (x − x4 )3 + 2.     −12. Questo procedimento richiede log2 n ı confronti.      10. . se x ` minore di xn/2 si confronta x con xn/4 .4238.77 (x − x4 )3 + 11. si pu` usare l’algoritmo di bisezione (cio` o e o e confrontare x con xn/2 . costruita tenendo conto che f (x0 ) = −6. Per la risoluzione del sistema tridiagonale sono richieste 3nA e 5nM. Quindi in totale la costruzione della spline richiede 10nA e 11nM.38 (x − x1 ) + 2. se x ` maggiore e e di xn/2 si confronta x con x3n/4 .568 (x − x1 ) − 0. Per il calcolo degli αi e βi sono richieste 3nA e 3nM.9961. Indicando con A le operazioni additive e con M le operazioni moltiplicative.632 risulta  3 3  3. 0.71 (x − x4 ) + 0. . Per ottenere i si pu` usare l’algoritmo banale o (cio` confrontare x successivamente con xj .5 Figure 3: Spline completa. Se per` n ` potenza di 2. per calcolare s(x) sono richieste 5A e 9M. .2 -0.55 (x − x5 )3 − 4.049 (x − x0 ) − 1.6 -0. s(x) =  −11.6193.778 (x − x0 ) − 24.4 0.2 -1 -0. Una volta trovato i. per la costruzione dei coefficienti e dei termini noti del sistema lineare (9) sono richieste 4nA e 3nM. e il suo grafico.4 -0.2 Costo computazionale Il costo computazionale viene determinato a meno di termini costanti rispetto ad n.993 (x − x3 ) − 0.55 (x − x3 )3 − 10.82 (x − x3 )3 − 3.     7.

n. xi+1 ]. tali che g(xi ) = fi .4 Propriet` di minima curvatura a 6 h2 i=1. . (13) Dim. con |δi | ≤ δ. Scriviamo il sistema (11) nella forma M µ = b. µ b dove µ ` la soluzione del sistema il cui termine noto ` b e K(M) ` il numero di e e e condizionamento di M in norma infinito. . . i = 0. n. . 3. sono quelle che hanno minima curvatura. Si ha b 0≤ a [g (x) − s (x)]2 dx [g (x)] dx − 2 2 b b b (14) [s (x)] dx. i = 0. Quindi il problema del calcolo dei µi ` ben condizionato. Teorema 1 Fra tutte le funzioni g ∈ C 2 [a.n−1 max |δi+1 − 2δi + δi−1 | ≤ 24 δ .3. cio` che oscillano meno. La matrice M ` ben condizionata perch´ e e K(M) ≤ 6 per ogni n. h2 Le spline cubiche sono molto usate nella grafica perch´ fra le funzioni con derivata e seconda continua che interpolano la funzione f (x) nei nodi xi . . b]. la spline cubica naturale s(x) ` quella che minimizza l’integrale e b a [g (x)]2 dx. . (12) dove µ ` il vettore dei µi e b ` il vettore di componenti bi = 6(fi+1 − 2fi + fi−1 )/h2 . . 2 = a [g (x) − s (x)] s (x) dx − a a 9 . Consideriamo il caso della spline naturale e supponiamo per semplicit` che i nodi a siano equidistanti e non affetti da errore. la corrispondente variazione b − b del termine noto del sistema (12) risulta maggiorata in norma infinito da b−b = Quindi b−b µ−µ ≤ K(M) . come risulta dal seguente e teorema. Lo e stesso si pu` dire per la (5) del calcolo dei coefficienti αi e βi e per la (4) del calcolo o di si (x) per x ∈ [xi . .3 Condizionamento Studiamo ora il condizionamento del calcolo di s(x) per un x diverso dai nodi. e e Supponendo di perturbare i dati del problema da fi a fi = fi + δi .

Segue anche che e 2 [a. Dalla (14) segue che e b a [s (x)]2 dx ≤ a b [g (x)]2 dx 2 per ogni funzione g(x) a derivata seconda continua tale che g(xi ) = fi . allora se f ∈ C b a [s (x)]2 dx ≤ a b [f (x)]2 dx. L’integrale (13) pu` allora essere assunto come una misura della curvatura globale o della g(x) se |g (x)| ` piccolo rispetto ad 1. xi+1 ] coincide con un polinomio di grado al pi` 3. n.Per ogni sottointervallo [xi . 10 . . xi+1 xi+1 [g (x) − s (x)] s (x) dx = [g (x) − s (x)] s (x) xi xi+1 − [g(x) − s(x)] s(3) (x) xi xi+1 xi + xi [g(x) − s(x)] s(4) (x) dx. per cui e b n−1 xi+1 [g (x) − s (x)] s (x) dx = a n−1 i=0 xi [g (x) − s (x)] s (x) dx xi+1 b = i=0 [g (x) − s (x)] s (x) xi = [g (x) − s (x)] s (x) a e tale espressione ` nulla in quanto s (a) = s (b) = 0. e g (a) = f (a) e g (b) = f (b). b]. xi+1 ] si ha. . a La g (x) ` legata alla curvatura della g(x) nel punto x. integrando due volte per parti. definita come il reciproco e del raggio del cerchio osculatore in x. . i = 0. e data dall’espressione c(x) = |g (x)| (1 + [g (x)]2 )−3/2 . tali che g(xi ) = fi . Inoltre s(xi ) = g(xi ). Poich´ la s(x) sull’intervallo [xi . b]. la spline cubica completa s(x) ` quella che minimizza e l’integrale b [g (x)]2 dx. Un teorema analogo al teorema 1 vale per la spline completa (anche la dimostrazione ` analoga). Dal teorema 1 risulta quindi che la e spline cubica naturale ` quella che minimizza la curvatura globale. s(xi+1 ) = g(xi+1 ). e u ` s(4) (x) = 0. e Teorema 2 Fra tutte le funzioni g ∈ C 2 [a. .

3 n 0 mentre b a [f (x)]2 dx = π 4 0 n cos2 (πx) dx = π 4 x sin(2πx − 2 4π = π4 n ∼ 48. . 2 3. 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]. Quindi si (x) = (−1)i 2(x − xi )3 + 2(x − xi+1 )3 − 6(x − xi ) + 3 .7 n. i = 1.b] H= i=0. x∈[a. e b a n−1 xi+1 xi x1 x0 [s (x)]2 dx = i=0 [si (x)]2 dx = n [s0 (x)]2 dx = 122 n 0 1 (x + (x − 1))2 dx = 122 n 1 = 48 n..n max |µi − f (xi )| ≤ 3 M4 H 2 . f (xi ) = (−1)i . limitata superiormente da a [f (x)] dx. . . la successione degli integrali b a [s (x)]2 dx risulta non decrescente. E hi = xi+1 − xi = 1.. .   µn−1 + 2µn = (−1)n+1 12 Questo sistema ha la soluzione µi = (−1)i+1 12... Teorema 3 Sia f ∈ C 4 [a. n. . per i momenti della spline cubica s(x) completa vale la relazione i=0. ... n − 1. 4 (15) 11 . da cui si ricava che αi = (−1)i+1 6 e βi = (−1)i 3.n−1 max hi ..Si costruisce ad esempio la spline cubica completa che approssima f (x) = cos(πx) ` nei nodi xi = i. Quindi i momenti risolvono il sistema   2µ0 + µ1 = −12  µi−1 + 4µi + µi+1 = (−1)i+1 24. i = 0. . b]. f (x0 ) = f (xn ) = 0..5 Propriet` di convergenza a Il primo teorema studia la convergenza dei momenti della s(x) ai valori della derivata seconda della f (x) nei nodi. 2 Se i nodi vengono infittiti aggiungendo altri nodi alla precedente suddivisione b dell’intervallo. . Posto M4 = max |f (4) (x)|.

1 ).n (16) (17) 12 .1 . Passando ai moduli si ha 3 M4 (h3 + h3 ). ξi. b).3 .i+1 = 3 (hi +hi−1 ) f (xi )+ (h2 −h2 ) f (xi )+ i i−1 Usando ancora la formula di Taylor f (xi−1 ) = f (xi ) − hi−1 f (xi ) + f (xi+1 ) = f (xi ) + hi f (xi ) + con ξi. hi−1 2 3! 4! con ξi. 0 n−1 4 4 |gi | ≤ Sia ora k l’indice per cui |dk | = max |di |..3 ). .4 ).3 ) . n e gi = hi−1 di−1 + 2 (hi−1 + hi ) di + hi di+1 per i = 1.2 ∈ (a... n − 1. . 4 4 h2 (4) i f (ξi.i+1 − hi−1 f (xi−1 ) − 2 (hi−1 + hi ) f (xi ) − hi f (xi+1 ) Dalla formula di Taylor si ha fi+1 − fi hi h2 h3 = fi + f (xi ) + i f (xi ) + i f (4) (ξi.4 ) e gn = h3 n−1 4 f (4) (ξn. . .2 ). .i. Per i = 1. . . . Si estende questa definizione a g0 e gn con la posizione h−1 = 0 e hn = 0.1 ) − 2 f (4) (ξi. . risulta gi = h3 i 4 f (4) (ξi. .4 ∈ (a. b). . ξi. n − 1 dalla (6) si ha gi = 6 fi−1.2 ).1 ) − 2 f (4) (ξ0.3 ) . .2 ) − 2 f (4) (ξn.4 ) + h3 i−1 4 f (4) (ξi. . e quindi 6 fi−1.i. i=0. hi 2 3! 4! 2 h h3 hi−1 fi − fi−1 = fi − f (xi ) + i−1 f (xi ) − i−1 f (4) (ξi.. i−1 i 4 3 3 |g0 | ≤ M4 h3 e |gn | ≤ M4 h3 . n − 1. per i = 1. 2 h3 h3 (4) i f (ξi. .Dim.2 ) − 2 f (4) (ξi. 2 In modo analogo dalle (8) si ottiene g0 = h3 0 4 f (4) (ξ0.1 )+ i−1 f (4) (ξi. Si definisce di = µi − f (xi ) per i = 0. h2 i−1 (4) f (ξi.

xi+1 ]. . . si ottiene |µ0 − f (x0 )| ≤ e in entrambi i casi segue la tesi... n − 1. h2 ) ≤ M4 H 2 . si ha gk = hk−1 dk−1 + 2 (hk−1 + hk ) dk + hk dk+1 = (hk−1 + hk ) dk + hk−1 (dk−1 + dk ) + hk (dk + dk+1 ). per x ∈ [a. − hi 13 µi+1 − µi . 4 h H4 7 |f (x) − s (x)| ≤ M4 . h 7 H3 |f (x) − s (x)| ≤ M4 . 8 h i = 0. Dim. 4 h 7 H5 |f (x) − s(x)| ≤ M4 . per cui a |gk | ≥ (hk−1 + hk ) |dk |. . Per la (17) le due quantit` dk−1 + dk e dk + dk+1 hanno lo stesso segno di dk . posto h = min hi . i=0..n |g0 | h0 e |µn − f (xn )| ≤ |gn | . per la spline completa valgono le limitazioni |f (x) − si (x)| ≤ 2M4 H2 . b]. xi+1 ] ` e si (x) = da cui f (x) − si (x) = f (x) − [µi+1 − f (xi+1 )] − [µi − f (xi )] µi+1 − µi = f (x) − hi hi [f (xi+1 ) − f (x)] − [f (xi ) − f (x)] . .. k−1 k 4 4 Se invece k = 0 oppure k = n. hn−1 2 Teorema 4 Nell’ipotesi del teorema 3. per x ∈ [xi . Per la (16) ` allora e |µk − f (xk )| = |dk | ≤ h3 + h3 3 3 k M4 k−1 = M4 (h2 − hk−1 hk + h2 ) k−1 k 4 hk−1 + hk 4 3 3 ≤ M4 max (h2 . Dalla (2) si ha che per x ∈ [xi .Se 1 ≤ k ≤ n − 1. hi .

(19) Quindi per ogni x ∈ [a. per cui vale la (19). 14 . xi+1 ). la maggiorazione discende subito dalla (15). 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. poich´ per i = 0. e quindi x [f (t) − s (t)] dt = f (x) − s (x). tale che f (ξi ) = s (ξi ). se si infittiscono i nodi in modo regolare. . se x coincide con uno dei nodi. se x non coincide con uno dei nodi. . x da cui f (x) − s (x) = f (xi ) − s (xi ) + Poich´ |x − xi | ≤ H/2. . . con |ξi − x| ≤ H. b]. 4 h 2 4 h Per ricavare la terza disuguaglianza. 2 Dal teorema 4 segue che per una funzione f (x) derivabile con continuit` fino al a quarto ordine. esiste uno ξi . sia xi il nodo pi` u vicino a x e j = i − 1 oppure j = i a seconda che x < xi oppure x > xi . . e per la (1) ` e |f (x) − si (x)| ≤ 3 1 H2 H2 M4 H 2 + hi M4 ≤ 2M4 ≤ 2M4 . 2 hi 2 hi con ξ1 . cio` in modo che il rapporto e H/h sia sempre limitato. . xi+1 ]. tenendo conto che per ogni x ∈ [a. 2 hi 2 hi h (18) Per la seconda disuguaglianza. ξi Passando ai moduli si ha |f (x) − s (x)| ≤ 7 H3 7 H4 M4 H = M4 . n. allora H/h = 1 e la convergenza ` e molto rapida. Allora x xi [f (t) − sj (t)] dt = [f (x) − s (x)] − [f (xi ) − s (xi )]. per il e e teorema di Rolle in ogni intervallo [xi . b] esiste un indice i per cui |x − xi | ≤ H/2. . .Per la formula di Taylor e per la (15) ` e |f (x) − si (x)| ≤ 3 1 M4 H 2 + (xi+1 − x)2 f (4) (ξ1 ) − (xi − x)2 f (4) (ξ2 ) . ` s(xi ) = fi . n − 1. per le (15) e (18) risulta e |f (x) − s (x)| ≤ xi [f (t) − sj (t)] dt. ξ2 ∈ (xi . In particolare se i nodi rimangono equidistanti. perch´ e |f (x) − s(x)| ≤ M4 H 4 . 4 h 4 h In modo analogo si ricava la quarta disuguaglianza. H2 H 7 H3 3 M4 H 2 + 2M4 ≤ M4 . esiste un punto ξi . i = 0.

3.6 Quadratura con le spline Dalla spline cubica completa s(x) si ottiene un’interessante formula di quadratura per l’approssimazione di b S= a f (x) dx. 15 . b]. 8 h 8 h Se i punti xi sono equidistanti con hi = h per i = 0. n − 1. risulta |S − Sn+1 | ≤ dello stesso ordine della formula di membro del sistema (10) risultano  2µ0 + µ1  µ0 + 4µ1 + µ2   . . 24 2 da cui. per il teorema 4 l’errore che si commette utilizzando Sn+1 come approssimazione di S ` e b |S − Sn+1 | ≤ |f (x) − s(x)| dx ≤ a 7 H5 7n H6 M4 (b − a) ≤ M4 . . . .         fn−2 − 2fn−1 + fn fn−1 − fn + hfn Quindi le somme delle loro componenti risultano n−1 3h i=0 (µi + µi+1 ) = 6 (fn − f0 ) = 6 (f (b) − f (a)). h  . 24 (20) La prima sommatoria fornisce lo stesso valore della formula dei trapezi. Inoltre il primo e il secondo        = 6 h  −hf0 + f1 − f0 f0 − 2f1 + f2 . . 8 8 n4 Cavalieri-Simpson. sostituendo le (5). . Integrando la (4) si ha b n−1 Sn+1 = n−1 s(x) dx = a i=0 xi+1 xi si (x) dx = i=0 n−1 = i=0 xi+1 (x − xi+1 )4 (x − xi )2 (x − xi )4 µi+1 − µi + αi + βi (x − xi ) 24hi 24hi 2 xi 3 2 h h (µi + µi+1 ) i + αi i + βi hi . si ricava n−1 Sn+1 = i=0 hi (fi + fi+1 ) − 2 n−1 i=0 h3 i (µi + µi+1 ).   µn−2 + 4µn−1 + µn µn−1 + 2µn 7n 7 (b − a)5 M4 H 5 = M4 . Se f ∈ C 4 [a. .     .

i + 1. e 3. Si procede considerando i valori φ(xk ). n + 1. . Poich´ Si (x−2 ) = 0 per i ≥ 0. e Per verificare che le B-spline sono linearmente indipendenti. . Per verificare la non singolarit` della matrice del sistema.7 Rappresentazione mediante B-spline Per definire e costruire una spline si pu` procedere anche in modo diverso. . . risulta φ(x−2 ) = α−1 S−1 (x−2 ). . esprio mendola come combinazione lineare di opportune spline elementari linearmente indipendenti. xi+2 ].per cui sostituendo nella (20) si ha Sn+1 = h 2 n−1 (fi + fi+1 ) − i=0 h2 (f (b) − f (a)). I coefficienti della Si (x) sono soluzione di un sistema lineare. 12 Questa non ` altro che la formula di Eulero-Maclaurin al primo ordine. di cui 3 interni. perch´ ti (x) coincide con 4 polinomi di terzo grado sui 4 intervalli [xi . (3) Si (x) ≡ 0 per x ≤ xi−2 e x ≥ xi+2 . Si definiscono B-spline (o spline fondamentali) cubiche normalizzate le funzioni Si (x). . allora ti (x) ≡ 0. Infatti e ti (x) si annulla in almeno 3 punti nell’intervallo [xi−2 . xn+3 ]. (3) ed inoltre ` tale che ti (xi ) = 0. (4) Si (xi ) = 1. e questo ` possibile solo se e ti ≡ 0. Risulta cos` che i coefficienti della combinazione sono tutti nulli. e i = i − 2. . n. basta dimostrare che se una funzione ti (x) a soddisfa le (1). . . k = −1. . xi+1 ]. xi+2 ]. xi+2 ]. si considerano i punti ausiliari x−3 < x−2 < x−1 < a e b < xn+1 < xn+2 < xn+3 . ne segue che α−1 = 0. In modo analogo si vede che ti (x) si annulla in almeno 5 punti di [xi−2 . (2). tali che (1) Si ∈ C 2 [x−3 . La condizione (4) pu` essere sostituita da una qualunque altra condizione che faccia o s` che le B-spline non siano identicamente nulle. (2) in ogni intervallo Si (x) coincide con un polinomio di terzo grado. e poich´ ti (xi−2 ) = ti (xi+2 ) = 0. ad esempio ı xi+2 xi−2 Si (x) dx = 1. ı 16 . . . quindi ti (x) si annulla in almeno due punti interni a tale intervallo. e dovendo essere e φ(x−2 ) = 0. Per n ≥ 4. se ne considera una combinazione nulla n+1 φ(x) = i=−1 αi Si (x) = 0. ti e si annulla in almeno 4 punti di [xi−2 . Ne segue che la Si (x) esiste ed ` unica. i = −1.

Questo ` particolarmente vantaggioso nelle applicazioni e grafiche. Non esistono ı comunque difficolt` a una generalizzazione a spline di ordine dispari maggiore di 3.      0 per z ≤ −2 e z ≥ 2. esistono quattro B-spline linearmente indipendenti e non nulle con cui ` possibile esprimere qualunque polinomio e di terzo grado. o 17 .     3 − 6z 2 + 4)/4  (−3z per − 1 ≤ z ≤ 0. risulta   (z 3 + 6z 2 + 12z + 8)/4 per − 2 ≤ z ≤ −1. xi+2 ). Se uno degli αi viene modificato. e quindi non ` nece essario ricalcolarla tutta. dove gli αi sono degli opportuni coefficienti. . Naturalmente spline di grado pi` alto permetterebbero di raccordare derivate di ordine pi` elevato. . a Fissato un intero m tale che 2 ≤ m ≤ n + 1. xi+1 ]. indicato con h il passo costante e posto z = (x − xi )/h.8 Spline di ordine superiore Le spline cubiche sono le pi` usate. la spline di ordine 2m − 1 per l’approssimazione della f (x) pu` essere definita in uno dei modi seguenti.Per ogni intervallo [xi . In figura ` riportato il grafico della Si (x) nel caso xi = i. la spline s(x) risulta modificata solo nell’intervallo (xi−2 . Si (x) =     (−z 3 + 6z 2 − 12z + 8)/4 per 1 ≤ z ≤ 2. i = 0. n − 1. ma il maggior u u costo non sarebbe ricompensato da un miglioramento grafico apprezzabile. . e 1 i 2 i 1 i i +1 i +2 Le B-spline vengono calcolate in modo stabile usando l’algoritmo ricorsivo di de Boor. . in quanto l’occhio umano non arriva a discernere differenze cos` microscopiche. perch´ sono quelle di grado minimo che u e permettono di raccordare le derivate seconde nei nodi.    (3z 3 − 6z 2 + 4)/4 per 0 ≤ z ≤ 1. Ne segue che ogni spline cubica s(x) pu` essere scritta come o n+1 s(x) = i=−1 αi Si (x). 3. Nel caso particolare dei nodi equidistanti.

. . . . essa ` individuata da 2mn coeffiu e cienti. (2) s ` un polinomio di grado al pi` 2m − 1 in [xi . . b]. per le condizioni di continuit`. e poich´ s(xi ) = 0 per i = 0. Infatti. xi+1 ]. . . . . d’) di spline naturale corrisponde alla definizione descrittiva con m = 2. b). xi (2m−2) (x) dx = (−1) m xi+1 in quanto s(2m) (x) ≡ 0 su ogni intervallo. b]. Quindi i coefficienti della s(x) soddisfano il sistema lineare Ax = 0 di ordine 2mn. Allora la funzione s(x) = σ1 (x)−σ2 (x) verifica le (1) − (4) della definizione descrittiva relativamente alla f (x) identicamente nulla. . . . ne segue che s b a [s(m) (x)]2 dx = 0. deve essere un polinomio di grado a m − 1. La definizione descrittiva individua univocamente la spline. e poich´ si annulla in n + 1 punti. . (b) Definizione variazionale: si definisce spline di ordine 2m − 1 una funzione s(x) tale che (1) s(xi ) = fi . Per verificare che tale sistema ha un’unica soluzione. 18 . n e e (2m−2) (a) = s(2m−2) (b) = 0. supponiamo per assurdo che esistano due spline σ1 (x) e σ2 (x) che soddisfano la definizione descrittiva. Poich´ in ogni intervallo s(x) e coincide con un polinomio di grado al pi` 2m − 1. . (3) e (4) forniscono esattamente 2mn condizioni lineari sui coefficienti. c). s(m) (b) = s(m+1) (b) = . . per i = 0. n−1 = (−1) s (x)s = (−1)m i=0 s (x)s(2m−2) (x) dx xi i=0 xi+1 s (x)s(2m−2) (x) − s(x)s(2m−1) (x) . (2) s ∈ C m−1 [a. . Quindi la s(x). ne segue che ` e e identicamente nulla la spline che approssima la funzione identicamente nulla. = s(2m−2) (b) = 0. . . n − 1. n. (4) sia s(m) (a) = s(m+1) (a) = . e u (3) s ∈ C 2m−2 [a. per i = 0. . . La definizione a). n. . . = s(2m−2) (a) = 0. per i = 0. con n + 1 > m − 1. si applica ripetutamente la formula di integrazione per parti b a [s (m) (x)] dx = s m b a n−1 2 (m−1) (x)s (m) b b (x) a − a s(m−1) (x)s(m+1) (x) dx = . Le (1). .(a) Definizione descrittiva: si definisce spline di ordine 2m − 1 una funzione s(x) tale che (1) s(xi ) = fi .

si pone νi = si (xi ). per i = 0. in cui il segno di uguaglianza vale solo se s(x) e t(x) coincidono identicamente. ad esempio. 2 . 3. b] che in ogni intervallo coincide con un polinomio si (x) di grado al pi` 2 ed ` tale che s(xi ) = f (xi ). definita come la funzione reale s ∈ C 1 [a. risulta quindi si (x) = νi+1 Integrando si ha si (x) = νi+1 (x − xi )2 (x − xi+1 )2 − νi + αi . il caso della spline quadratica. si dimostra che l’ultimo integrale ` e nullo. . Sia infatti s(x) la spline che soddisfa le (1) − (4) della definizione descrittiva per l’approssimazione della f (x) e t(x) una funzione che soddisfa le (1) e (2) della definizione variazionale. Per` nel caso delle spline di ordine o dispari. . Le due definizioni variazionale e descrittiva sono equivalenti. 2hi 2hi x − xi x − xi+1 − νi . n − 1 e νn = sn−1 (xn ). . hi hi e imponendo le condizioni si (xi ) = fi e si (xi+1 ) = fi+1 si ottiene −νi hi + αi = fi 2 e νi+1 19 hi + αi = fi+1 . l’intensit` di questa dipendenza decresce con la distanza di i da j. Procedendo come per le spline cubiche. n.9 Perch´ non si usano le spline di ordine pari? e La richiesta della continuit` delle derivate nei nodi fa s` che la spline fornisca a ı un’approssimazione globale. . .(3) l’integrale b a [s(m) (x)]2 dx esiste ed ` quello minimo fra gli integrali di tutte le funzioni che soddisfano le e condizioni (1) e (2). . Procedendo come per la dimostrazione del teorema 1. Questo a invece non accade con le spline di ordine pari. Ne segue che b [t(m) (x)]2 dx ≥ a b [s(m) (x)]2 dx a e che il minimo viene assunto solo dalla s(x). . nel senso che una variazione di un singolo valore fj nel j-esimo nodo si ripercuote su tutte le si (x). per u e i = 0. allora b a [t(m) (x)]2 dx − b a b [s(m) (x)]2 dx = a b [t(m) (x) − s(m) (x)]2 dx b a +2 a [t(m) (x) − s(m) (x)]s(m) (x) dx ≥ 2 [t(m) (x) − s(m) (x)]s(m) (x) dx. Esaminiamo. .

` instabile.da cui νi + νi+1 = 2 fi+1 − fi . con i ≥ k. Inoltre. . Oltre ad essere meno efficace della spline cubica dal punto di vista grafico. . Questa equazione alle differenze del primo ordine consente di calcolare i νi . la spline quadratica non viene usata perch´ per certe scelte dell’unica condizione ausie liaria. hj Gli αi . L’instabilit` ` causata dal fatto che si risolve un’equazione alle e ae differenze la cui equazione omogenea associata ha la soluzione νi = (−1)i ν0 . n − 1 vengono poi calcolati per sostituzione. purch´ e sia assegnato un valore iniziale ν0 = s0 (x0 ) oppure νn = sn−1 (xn ). . 20 . . Ad esempio con la condizione ν0 = 0 si ottiene i−1 νi = 2 j=0 (−1)i+j−1 fj+1 − fj . la soluzione varia solo nelle componenti νi . . . . . i = 0. hi per i = 0. n − 1. se viene modificato un valore della funzione f (xk ). mentre la soluzione dell’equazione completa potrebbe essere decrescente.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->