f - Università degli Studi della Basilicata

Transcript

f - Università degli Studi della Basilicata
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Corso di Calcolo Numerico
Dott.ssa M.C. De Bonis
Università degli Studi della Basilicata, Potenza
Facoltà di Ingegneria
Corso di Laurea in Ingegneria Meccanica
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Approssimazione di funzioni
In molti problemi matematici emerge l’esigenza di dover
approssimare una funzione f ∈ C k ([a, b]), [a, b] ⊂ R, k ≥ 0,
(C k ([a, b]) spazio delle funzioni derivabili k volte in [a, b]
con derivata k−esima continua in [a, b]) definita mediante
una sua rappresentazione analitica con un’altra funzione
φn ∈ Φn ⊂ C k ([a, b]) di forma più semplice (Φn sottospazio
di C k ([a, b]) di dimensione finita n).
La funzione φn si dice approssimazione della funzione f e
naturalmente occorre valutare lo “scostamento” di φn da f.
Più precisamente si sceglie una successione di sottospazi
{Φn }n di C k ([a, b]) (ciascuno di dimensione finita n) a cui
si vuole che le funzioni approssimanti {φn }n appartengano.
Le funzioni approssimanti φn vengono espresse come
combinazione lineare di una base prescelta in tali
sottospazi.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Per misurare la bontà di φn , (ovvero la distanza di φn da
f ) si valuta la norma
kf − φn k∞ := max |f (x) − φn (x)|.
x∈[a,b]
Se si verifica che
lim kf − φn k∞ = 0
n→∞
si dice che la successione {φn }n converge ad f in C k ([a, b])
con la norma uniforme.
Naturalmente richiediamo che l’ordine di convergenza sia il
più grande possibile.
Noi prenderemo in considerazione i seguenti sottospazi:
• Pn polinomi algebrici di grado al più n,
si parlerà di approssimazione polinomiale algebrica;
• Sn funzioni spline di ordine n,
si parlerà di approssimazione polinomiale a tratti.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Approssimazione Polinomiale Algebrica
Nello studio dell’approssimazione polinomiale algebrica ci si
chiede se è sempre possibile costruire una successione di
polinomi {Pn }n che converga uniformemente in [a, b] ad
una funzione continua f ivi definita ed arbitrariamente
fissata. La risposta ci è fornita dal seguente teorema
Teorema 1 (Weierstrass) Per ogni funzione f ∈ C 0 ([a, b]),
esiste almeno una successione di polinomi {Pn }n tale che
lim kf − Pn k∞ = 0.
n
La quantità
En (f ) = inf kf − P k∞
P ∈Pn
è chiamato errore di miglior approssimazione della
funzione f mediante polinomi algebrici di grado al più n.
Se f ∈ C 0 ([a, b], esiste uno ed un solo polinomio P ∗ ∈ Pn
tale che
En (f ) = min kf − P k∞ = kf − P ∗ k∞ ,
P ∈Pn
ed è detto polinomio di miglior approssimazione della
funzione f in Pn .
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Assegnata una funzione f ∈ C 0 ([a, b]) non è facile
individuare il suo polinomio di miglior approssimazione in
un dato sottospazio Pn . Tuttavia l’errore di miglior
approssimazione è un utile strumento perchè ci permette di
stabilire qual è la miglior approssimazione che ci si può
aspettare per quella funzione mediante polinomi algebrici
appartenenti a Pn .
L’errore di miglior approssimazione dipende dalla regolarità
della funzione che si vuole approssimare.
Vale il seguente teorema
Teorema 2 Se f ∈ C k ([a, b]) vale la seguente stima per
l’errore di miglior approssimazione
En (f ) ≤
C
nk
dove C è una costante positiva che non dipende da m e k.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Polinomio di Taylor
Sia f ∈ C (n+1) ([a, b]) e sia x0 ∈ [a, b], per ogni punto
x ∈ [a, b] esiste un punto ξ, interno all’intervallo di estremi
x0 e x, tale che
f (n) (x0 )
f (x) = f (x0 ) + f (x0 )(x − x0 ) + . . . +
(x − x0 )n
n!
f (n+1) (ξ)
+
(x − x0 )n+1
(n + 1)!
= Tn (x) + Rn+1 (f, x),
0
dove Tn è il Polinomio di Taylor di grado n della
funzione f di punto iniziale x0 e Rn+1 (f ) è il Resto di
Lagrange.
Se x0 = 0, Tn viene detto Polinomio di Mac-Laurin.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Se le derivate di f sono equilimitate, cioè ∃l > 0 tale che
|f (k) (x)| ≤ l,
∀x ∈ [a, b] e ∀k = 0, 1, . . . , n + 1,
si ha
|x − x0 |n+1
|Rn+1 (f, x)| = |f (x)−Tn (x)| ≤ l
, ∀x ∈ [a, b]\{x0 }
(n + 1)!
e dunque
lim Rn+1 (f, x) = 0,
n→+∞
∀x ∈ [a, b] \ {x0 }.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Esempio 1 f (x) = ex .
Si ha
f (k) (x) = ex ,
∀ k ∈ N.
Inoltre, essendo ex una funzione crescente su R,
|f (k) (x)| < eb ,
∀x ∈ [a, b] e ∀k ∈ N
Sia x0 ∈ [a, b], ∀x ∈ [a, b] ∃ξ ∈ [x0 , x] tale che
x
e =e
x0
x0
+ e (x − x0 ) + . . . + e
x0
n+1
(x − x0 )n
ξ (x − x0 )
+e
.
n!
(n + 1)!
In particolare se x0 = 0 ∈ [a, b] si ha
n+1
xn
ξ x
e = 1 + x + ... +
+e
n!
(n + 1)!
x
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Supponiamo di voler calcolare il valore approssimato del
numero di Nepero e con 6 cifre decimali esatte.
Per 0 < ξ < 1 si ha
1
e
3
Rn+1 (f, 1) = e
<
<
(n + 1)!
(n + 1)!
(n + 1)!
ξ
e poichè per n = 10 si ha
3
1
Rn+1 (f, 1) ≤
< 7
(11)!
10
otteniamo
e=1+1+
1
1
1
+ + ... +
= 2.718281....
2 3!
10!
il valore esatto fino alla 6a cifra decimale.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Esempio 2 f (x) = cos x.
Si ha

± sin x k dispari
f (k) (x) =
,
± cos x k pari
∀k ∈ N
Inoltre
|f (k) (x)| ≤ 1,
∀x ∈ R e ∀k ∈ N
In particolare se x0 = 0 ∈ [a, b], ∀x ∈ [a, b] ∃ξ ∈ [x0 , x] tale
che
2n
2n+1
x
x2 x4
x
cos x = 1− + +. . .+(−1)n
+(−1)n+1 sin ξ
2 4!
(2n)!
(2n + 1)!
e
x2n+1
x2n+1
≤
|R2n+1 (f, x)| ≤ sin ξ
(2n + 1)!
(2n + 1)!
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Problemi
Per approssimare una funzione f in [a, b] con il suo
polinomio di Taylor Tn di punto iniziale x0 ∈ [a, b] è
necessario calcolare tutte le n + 1 derivate di f nel punto
x0 . Ciò è semplice se f è una funzione elementare.
Come si fa se, ad esempio, vogliamo approssimare in [−1, 1]
la funzione
(x2 + 2)3 cos x
f (x) =
?
1 + ex
Come si fa ad approssimare una funzione f solo continua
come ad esempio
√
f (x) = 1 − x?
Inoltre, dal punto di vista implementativo, è necessario
scrivere una function per ogni funzione f .
Dunque il Polinomio di Taylor è uno strumento di
approssimazione molto buono da un punto di vista teorico
ma praticamente inutilizzabile da un punto di vista
numerico.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Interpolazione Polinomiale Algebrica
Sia f ∈ C 0 ([a, b]), [a, b] ⊂ R.
Supponiamo di conoscere i valori f (x1 ), . . . , f (xn ) assunti
da f rispettivamente nei punti x1 , . . . , xn tutti distinti.
Lo scopo dell’interpolazione polinomiale è quello di cercare
un polinomio di grado minimo (eventualmente unico) che
coincida con la funzione f nei punti assegnati, cioè tale che
P (xi ) = f (xi ),
i = 1, . . . , n.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Poichè i punti sono n, è sufficiente considerare il generico
polinomio di grado n − 1 che ha n coefficienti
Pn−1 (x) = a0 + a1 x + · · · + an−1 xn−1
ed imporre le condizioni

n−1

a
+
a
x
+
·
·
·
+
a
x
= f (x1 )

0
1
1
n−1
1



n−1
a + a x + · · · + a
= f (x2 )
0
1 2
n−1 x2

..................................................




a + a x + · · · + a
n−1
= f (xn ).
0
1 n
n−1 xn
I parametri incogniti a0 , a1 , . . . , an−1 sono soluzione del
seguente sistema quadrato di ordine n


 

1 x1 · · · xn−1
a0
f (x1 )
1


 







a
f
(x
)


 1 x2 · · · xn−1


1
2 
2


=
 (1)
..
..
..   ..  
 ..

 .

 

. ···
. 
.

 .  

1 xn · · · xn−1
an−1
f (xn )
n
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
La matrice del sistema è quella di Vandermonde, il cui
determinante


1 x1 · · · xn−1
1





n−1 
n
Y Y
 1 x2 · · · x2
 n−1


det 
(xi − xj )
..
..  =
 ..
 .
. ···
. 

 j=1 i=j+1
1 xn
···
xn−1
n
è diverso da zero, avendo assunto i punti xi , i = 1, . . . , n,
tutti distinti. Dunque vale il seguente teorema
Teorema 3 Siano x1 , . . . , xn n punti a due a due distinti.
Esiste uno ed un solo polinomio di grado n − 1 tale che
Pn−1 (xi ) = f (xi ),
i = 1, . . . , n.
Tale polinomio viene detto polinomio interpolante e i
punti xi , i = 1, . . . , n, vengono detti punti o nodi di
interpolazione.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Per la costruzione del polinomio interpolante, si potrebbe
procedere alla risoluzione del sistema (1).
Ma questo approccio non è consigliato sia perché le matrici
di Vandermonde sono malcondizionate sia perché necessita
di un elevato numero di operazioni aritmetiche.
Dunque, una volta stabilita l’esistenza e l’unicità del
polinomio interpolante, per l’effettiva costruzione si
utilizzano tecniche alternative ben condizionate e,
possibilmente, meno costose in termini di operazioni
aritmetiche.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Espressioni del polinomio interpolante
La prima formula interpolatoria fu scoperta da Isaac
Newton nel 1670.
Definendo ricorsivamente le differenze divise di una
funzione f nel seguente modo
[x; f ] = f (x),
f (x) − f (x1 )
[x, x1 ; f ] =
,
x − x1
[x1 , . . . , xi ; f ] − [x, x1 , . . . , xi−1 ; f ]
,
x − xi
la formula interpolatoria di Newton può essere scritta nella
seguente forma
[x, x1 , . . . , xi ; f ] =
Nn (f, x) = f (x1 ) +
n−1
X
i=1
[x1 , . . . , xi+1 ; f ]
i
Y
(x − xk )
k=1
e viene detta Polinomio di Newton di grado n − 1.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Quando due argomenti coincidono si ha
[x0 , x0 ; f ] = lim [x0 , x; f ] = lim
x→x0
x→x0
f (x) − f (x0 )
= f 0 (x0 ).
x − x0
Più in generale vale
f (n) (x0 )
lim [x0 , . . . , xn ; f ] =
,
xi →x0
n!
e, cosı̀, otteniamo
lim Nn (f, x) = f (x1 ) +
xi →x1
n−1
X
i=1
(x − x1 )
if
(i)
(x1 )
,
i!
cioè il polinomio di Taylor di ordine n − 1 della funzione f
relativo al punto x1 .
Dunque il polinomio di Taylor è un caso particolare del
polinomio di Newton. Esso non è altro che un polinomio
che interpola la funzione nel solo punto x1 .
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Nel 1795 Joseph Louis Lagrange scoprı̀ la base di polinomi
{ln,k }k=1,...,n dove, ∀k = 1, . . . , n,
n
Y
(x − xi )
ln,k (x) =
(xk − xi )
i=1
i6=k
è un polinomio di grado n − 1 tale che

0 se k 6= i
ln,k (xi ) =
1 se k = i,
cioè ln,k (x) ha per zeri tutti i punti di interpolazione tranne
il k−esimo.
Utilizzando tale base, detta base dei polinomi
fondamentali di Lagrange, diede la seguente espressione
del polinomio interpolante
Ln (f, x) =
n
X
ln,k (x)f (xk )
k=1
che viene detta polinomio interpolante di Lagrange.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Il polinomio di Lagrange può intendersi come un operatore
lineare che ad una funzione continua in [a, b] associa un
polinomio di grado n − 1 :
Ln : C 0 ([a, b]) → Pn−1 .
Dunque
Ln (f + g) = Ln (f ) + Ln (g)
e
Ln (λf ) = λLn (f ), ∀λ ∈ R.
Si tratta, però, di un operatore non biunivoco, infatti date
due funzioni assumenti gli stessi valori nei punti x1 , . . . , xn ,
ad esse viene associato lo stesso polinomio interpolante di
Lagrange.
Inoltre è un proiettore
Ln (Pi , x) = Pi (x),
i ≤ n − 1,
cioè conserva i polinomi al più di grado n − 1.
In seguito, chiameremo il polinomio interpolante sempre
Polinomio di Lagrange e lo denoteremo con Ln (f )
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Algoritmi per il calcolo del Polinomio di Lagrange
Per calcolare il polinomio di Lagrange mediante la formula
Ln (f, x) =
n
X
ln,k (x)f (xk )
(2)
k=1
è necessario calcolare i polinomi fondamentali di Lagrange
n
Y
(x − xi )
ln,k (x) =
,
(x
−
x
)
k
i
i=1
k = 1, . . . , n.
i6=k
Lag=0;
for k=1:n
l=1;
for i=1:n,
if i ∼= k,
l=l∗(x − xi )/(xk − xi );
n-1
operazioni
end
end
Lag=Lag+l*f (xk );
1
operazione
end
Il costo computazionale è dell’ordine di n2
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Per calcolare il polinomio di Lagrange con la formula
Ln (f, x) = f (x1 ) +
n−1
X
i=1
[x1 , . . . , xi+1 ; f ]
i
Y
(x − xk )
(3)
k=1
dovuta a Newton il costo computazionale è anche
dell’ordine di n2 .
Dunque da un punto di vista computazionale le formule di
Lagrange e Newton sono equivalenti ma, mentre l’algoritmo
per il calcolo del polinomio di Lagrange con la formula (2)
è in generale stabile, l’algoritmo per il calcolo del polinomio
di Lagrange con la formula (3) non lo è.
Più precisamente la stabilità dell’algoritmo per il calcolo
della formula di Newton dipende dalla distribuzione dei
punti di interpolazione e diminuisce all’aumentare della
vicinanza dei punti di interpolazione.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Approssimazione uniforme di funzioni mediante il
Polinomio di Lagrange
Senza perdere la generalità, consideriamo l’interpolazione
sull’intervallo [−1, 1]. Supponiamo di avere una funzione
reale f continua nell’intervallo [−1, 1] e una successione di
polinomi algebrici {qn }n tali che per ogni n ≥ 1, il
polinomio qn ha grado esattamente n e ha n zeri distinti
appartenenti all’intervallo [−1, 1] :
−1 ≤ xn,1 < xn,2 < · · · < xn,n ≤ 1.
Sia X la matrice tridiagonale infinita corrispondente a
questi zeri


x1,1


 x

 2,1 x2,2

 .

.


..
X =  ..
,




 xn,1 xn,2 · · · xn,n



..
..
.
.
cioè l’n-esima riga della matrice X consiste degli zeri di qn .
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Associamo alla matrice X la sequenza di polinomi di
Lagrange {Ln (X, f )}n dove
Ln (X, f ; xn,k ) = f (xn,k ),
k = 1, . . . , n.
La matrice X è chiamata matrice di interpolazione o
sistema di nodi di interpolazione.
La successione {Ln (X, f )}n definisce un processo
interpolatorio.
Noi siamo interessati ad un processo interpolatorio
{Ln (X, f )}n per il quale Ln (X, f ) → f per n → +∞ e
quindi vogliamo individuare la matrice X che verifica tale
convergenza.
La differenza
Rn (X, f ; x) = f (x) − Ln (X, f ; x)
viene detta resto o errore di Lagrange.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Osservazione Nel calcolo automatico del polinomio di
Lagrange, a causa di errori che si possono commettere nella
valutazione della funzione nei punti di interpolazione,
calcoliamo Ln (X, f + ε) anzichè Ln (X, f ), cioè calcoliamo
f (xn,k ) + ε(xn,k ) al posto di f (xn,k ). Dunque, per la
linearità dell’operatore di Lagrange, si ha
kf − Ln (X, f + ε)k∞ ≤ kRn (X, f )k∞ + kLn (X, ε)k∞
Ma
kLn (X, ε)k∞
¯
¯ n
¯
¯X
¯
¯
ln,k (X, x)ε(xn,k )¯ ≤ εn Λn (X)
= max ¯
¯
|x|≤1 ¯
k=1
dove εn = max |ε(xn,k )| e
k=1,...,n
Λn (X) := max Λn (X, x) := max
|x|≤1
|x|≤1
n
X
|ln,k (X, x)|.
k=1
Dunque l’errore totale di interpolazione è dato dall’errore
teorico kRn (X, f )k∞ più l’errore numerico
εn Λn (X)
La funzione Λn (X, x) è detta funzione di Lebesgue e le
quantità Λn (X) vengono dette costanti di Lebesgue.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Le costanti di Lebesgue non dipendono dalla funzione f ma
soltanto dalla matrice X di interpolazione e rappresentano
il coefficiente di amplificazione dell’errore numerico di
interpolazione.
Questo significa che, per matrici di interpolazione per le
quali le costanti di Lebesgue hanno un andamento
fortemente crescente, l’errore totale del polinomio di
Lagrange diverge anche se l’errore teorico si mantiene
limitato.
Quindi la scelta delle costanti di Lebesgue è importante ai
fini della convergenza del processo interpolatorio
{Ln (X, f )}n .
Ci chiediamo se esistono matrici di interpolazione per le
quali le costanti di Lebesgue sono limitate.
La risposta è negativa, infatti vale il seguente
Teorema 4 Per ogni matrice di interpolazione X si ha
Λn (X) >
1
log n.
12
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
L’individuazione di una matrice di nodi per la quale le
costanti di Lebesgue hanno ordine di divergenza più basso è
stato per lungo tempo un problema aperto.
Successivamente è stato dimostrato che l’ordine ottimale
delle costanti di Lebesgue è proprio log n.
Esempi di matrici di interpolazione le cui corrispondenti
costanti di Lebesgue hanno ordine log n sono le matrici
degli zeri dei polinomi di Jacobi
{pα,β
n }n ,
1
−1 < α, β ≤ − .
2
Tra queste ha particolare rilevanza la matrice degli zeri dei
polinomi di Chebyshev di prima specie (α = β = − 12 ).
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Diamo ora una stima dell’errore teorico di approssimazioni
per funzioni analitiche. Vale il seguente
Teorema 5 Sia f ∈ C n ([−1, 1]) e sia pn il polinomio
monico che ha per zeri gli n punti di interpolazione. Allora
per ogni x ∈ [−1, 1] esiste un punto −1 < ξ < 1, tale che
f (n) (ξ)
pn (x).
Rn (X, f ; x) =
n!
Poichè
|pn (x)| ≤ 2n ,
∀ x ∈ [−1, 1],
nell’ipotesi in cui la funzione f abbia tutte le derivate
equilimitate, cioè
M := sup max |f (n) (x)| < +∞,
n |x|≤1
si ha
M 2n
kRn (X, f )k∞ ≤
n!
e, quindi, l’errore teorico di interpolazione tende a zero per
n → +∞ qualunque sia la matrice di interpolazione X.
Bisogna però osservare che tale convergenza,
indipendentemente dalla matrice dei nodi di interpolazione,
è soltanto teorica.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Se prendiamo come matrice di nodi la matrice T degli zeri
dei polinomi di Chebyshev di prima specie, poiché
|pn (x)| =
− 21 ,− 12
|pn
(x)|
≤
1
2n−1
,
∀x ∈ [−1, 1],
otteniamo la seguente stima dell’errore teorico di Lagrange
per funzioni f ∈ C n ([−1, 1]) con tutte le derivate
equilimitate
M
kRn (T , f )k∞ ≤ n−1 .
2
n!
Dunque, la scelta della matrice T dei nodi di Chebyshev di
prima specie, oltre a garantire un errore numerico
dell’ordine di log n, ci permette di ottenere una migliore
stima dell’errore teorico.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Vediamo ora che, se la funzione è solo continua, la scelta di
matrici di interpolazione le cui costanti di Lebesgue hanno
ordine ottimale è essenziale anche per la convergenza
dell’errore teorico di interpolazione.
Sia P ∗ il polinomio di miglior approssimazione della
funzione f in Pn−1 . Si ha
kRn (X, f )k∞ ≤ kf − P ∗ k∞ + kLn (X, f − P ∗ )k∞ .
Poichè
kLn (X, f − P ∗ )k∞
≤
max
|x|≤1
n
X
|ln,k (X, x)||f (xk ) − P ∗ (xk )|
k=1
∗
≤ kf − P k∞ Λn (X),
otteniamo
kRn (X, f )k∞
≤
(1 + Λn (X))kf − P ∗ k∞
=
(1 + Λn (X))En−1 (f )
dove En−1 (f ) denota l’errore di miglior approssimazione.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Se X è una matrice di interpolazione tale che
Λn (X) ∼ log n,
n ≥ 1,
si ha convergenza se
lim En−1 (f )∞ log n = 0.
n
E questo non è, in generale, vero se la funzione f è solo
continua.
Ma se f ∈ C 1 ([−1, 1]), poichè per il Teorema 2
En−1 (f ) ≤
C
,
n
si ha
kRn (X, f )k∞ ≤
C
log n → 0
n
per n → ∞
In generale, se f ∈ C k ([−1, 1]), poichè per il Teorema 2
En−1 (f ) ≤
C
,
k
n
si ha
kRn (X, f )k∞ ≤
C
log n → 0
k
n
per n → ∞
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Costanti di Lebesgue e Matrici di interpolazione
Per il Teorema 4, per ogni matrice di interpolazione X si ha
Λn (X) >
1
log n.
12
Dunque non esiste alcuna matrice di interpolazione X per
la quale le corrispondenti costanti di Lebesgue sono
limitate.
Successivamente è stato provato che
Λ∗n = Λn (X ∗ ) = min Λn (X) ∼
X
2
log n,
π
cioè l’ordine ottimale delle costanti di Lebesgue è
log n e una matrice di interpolazione X per la quale le
corrispondenti costanti di Lebesgue hanno ordine ottimale
viene detta matrice ottimale di interpolazione.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Denotiamo con E la matrice dei nodi equispaziati su
[−1, 1]
k−1
xn,k = −1 + 2
, k = 1, . . . , n
n−1
È stato dimostrato che
2n
Λn (E) ∼
e n log n
dunque la matrice E non è una matrice di interpolazione
ottimale.
15
10
5
0
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Figure 1: Grafico della funzione di Lebesgue Λ5 (E, x)
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Denotiamo con T la matrice degli zeri dei polinomi di
Chebyshev di prima specie
µ
¶
(2k − 1)π
xn,k = − cos
, k = 1, . . . , n
2n
È stato dimostrato che
2
log n
π
dunque la matrice T è una matrice di interpolazione
ottimale.
Λn (T ) ∼
2
1.9
1.8
1.7
1.6
1.5
1.4
1.3
1.2
1.1
1
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Figure 2: Grafico della funzione di Lebesgue Λ5 (T , x)
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Denotiamo con U la matrice degli zeri dei polinomi di
Chebyshev di seconda specie con i punti addizionali
±1
µ
¶
kπ
xn,k+1 = − cos
, k = 0, . . . , n + 1
n+1
È stato dimostrato che
Λn (U) ∼ log n
dunque la matrice U è una matrice di interpolazione
ottimale.
2
1.5
1
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Figure 3: Grafico della funzione di Lebesgue Λ5 (U, x)
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
I polinomi di Chebyshev di prima specie e di seconda specie
sono dei particolari polinomi di Jacobi
{pα,β
n }n ,
α, β > −1
Più precisamente, i polinomi di Chebyshev di prima specie
sono dei polinomi di Jacobi con α = β = − 12 mentre i
polinomi di Chebyshev di seconda specie sono dei polinomi
di Jacobi con α = β = 21 .
In generale, denotata con J la matrice degli zeri dei
polinomi di Jacobi, è stato dimostrato che

log n
−1 < α, β ≤ − 12
Λn (J ) ∼
n 12 +max{α,β} α, β > − 1
2
Dunque J è una matrice di interpolazione ottimale
soltanto se −1 < α, β ≤ − 12 .
Osservazione La matrice di interpolazione formata dai
soli zeri di Chebyshev di seconda specie (α = β = 12 ) non è
una matrice di interpolazione ottimale ma, se ad ogni riga
aggiungiamo i punti addizionali ±1, la matrice risultante U
lo è.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Osservazione
L’espressione analitica degli zeri dei polinomi di Jacobi non
è in generale nota (tranne in alcuni casi particolari come ad
esempio α = β = − 12 e α = β = 12 ).
Essi vengono calcolati in maniera approssimata, con un
errore dell’ordine dell’epsilon di macchina, attraverso un
opportuno algoritmo
Vediamo, ora, attraverso alcuni esempi, come le costanti di
Lebesgue influenzano l’errore di approssimazione del
polinomio di Lagrange
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Esempio 1 Consideriamo la funzione
3
f (x) = |x| 2 ∈ C 1 ([−1, 1])
L’errore teorico di approssimazione soddisfa la seguente
stima
C
kRn (X, f )k∞ ≤ log n
n
dunque tende a 0 per n → +∞ per ogni x ∈ [−1, 1].
Vediamo cosa succede, da un punto di vista numerico,
approssimando la funzione f con Ln (E, f ) e Ln (T , f )
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
3
Figure 4: Grafico della funzione |x| 2
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
1.4
1.2
1
0.8
0.6
0.4
0.2
0
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Figure 5: Grafico di L14 (E, f ; x)
Se n è pari il punto 0 non è incluso tra i punti di
interpolazione.
Dal grafico si evince che l’errore di approssimazione è
abbastanza elevato intorno ai punti ±1 e 0
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Figure 6: Grafico di L15 (E, f ; x)
Se n è dispari il punto 0 è incluso tra i punti di
interpolazione.
Dal grafico si evince che l’errore di approssimazione è molto
elevato intorno ai punti ±1
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Figure 7: Grafico di L14 (T , f : x)
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
1.4
1.2
1
0.8
0.6
0.4
0.2
0
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Figure 8: Grafico di L15 (T , f ; x)
Utilizzando la matrice di interpolazione ottimale T , sia per
n pari che per n dispari, l’errore di approssimazione è dello
stesso ordine in tutti i punti dell’intervallo [−1, 1].
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Esempio 2 Consideriamo la funzione
f (x) = ex ∈ C ∞ ([−1, 1])
Utilizzando il Teorema 5, l’errore teorico di
approssimazione Rn (X, f ) tende a 0 molto velocemente per
n → +∞ per ogni x ∈ [−1, 1].
Vediamo cosa succede, da un punto di vista numerico,
approssimando la funzione f con Ln (E, f ) e Ln (T , f )
n
Λn (E)
kRn (E, f )k∞
5
1.46e+0
1.12e-3
10
1.64e+1
3.85e-9
15
2.97e+2
6.39e-14
20
6.44e+3
1.99e-12
30
3.87e+6
1.45e-9
40
2.74e+9
1.11e-6
50
2.12e+12
5.04e-4
80
1.27e+21
3.01e+5
100
1.01e+27
3.50e+11
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
n
Λn (T )
kRn (T , f )k∞
5
1.02
6.40e-4
10
1.47
6.03e-10
15
1.72
2.66e-15
20
1.91
3.11e-15
30
2.17
3.55e-15
40
2.35
4.44e-15
50
2.49
4.00e-15
80
2.79
8.88e-15
100
2.93
7.55e-15
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Interpolazione con funzioni polinomiali a tratti
Abbiamo visto che, data una funzione f ∈ C k ([a, b]), k ≥ 1,
di cui si conosce l’espressione analitica, e un matrice di
nodi X, le cui costanti di Lebesgue hanno ordine ottimale
log n, è possibile costruire un processo interpolatorio
{Ln (X, f )}n tale che
Ln (X, f ) → f
per
n → +∞,
∀x ∈ [a, b].
La scelta della matrice di nodi X, le cui costanti di
Lebesgue hanno ordine ottimale log n, è fondamentale
affinchè tale processo interpolatorio sia stabile e
convergente.
Se, però, non conosciamo l’espressione analitica di f ma
conosciamo soltanto i valori che essa assume in alcuni punti
x0 , x1 . . . , xn dell’intervallo [a, b], dunque non possiamo
scegliere opportunamente i punti di interpolazione, non è
consigliabile utilizzare il polinomio interpolante di
Lagrange per approssimare la funzione f .
Questo è il caso in cui, ad esempio, la funzione f da
approssimare descrive l’andamento di alcuni dati
sperimentali.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
In questi casi si preferisce utilizzare l’interpolazione con
funzioni polinomiali a tratti.
Definizione 1 Suddividiamo l’intervallo [a, b] in n
sottointervalli con n + 1 nodi xi , i = 0, . . . , n, tali che
a = x0 < x1 < . . . < xn = b.
Una funzione Sn si dice polinomiale a tratti su [a, b] se
sull’i-esimo sottointervallo [xi , xi+1 ] coincide con un
polinomio di grado ki .
Di solito ki = k ∀i = 0, . . . , n − 1, cioè i polinomi usati nei
diversi sottointervalli hanno tutti lo stesso grado k.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
L’esempio più semplice di funzione polinomiale a tratti è la
polinomiale lineare.
Nell’i−esimo sottointervallo la funzione Sn coincide con il
polinomio interpolante della funzione f nei nodi xi e xi+1 ,
cioè per xi ≤ x ≤ xi+1 si ha
Sn (f, x) = L2 (f, x) =
(xi+1 − x)f (xi ) + (x − xi )f (xi+1 )
.
xi+1 − xi
Se f ∈ C 2 ([a, b]) e max |f 00 (x)| < M usando la stima
|x|≤1
kR2 (f )k∞
M 2
M
kp2 k∞ ≤
h ,
≤
2!
2
dove h := maxi hi = maxi |xi+1 − xi |, si ha
kf − Sn (f )k∞ = O(h2 ).
Per la sua semplicità questo metodo è usato spesso nella
pratica, ma esso non è adatto per una buona
rappresentazione grafica della funzione. Infatti, poichè non
stabilisce nessuna condizione sulle derivate dei polinomi nei
punti xi , i = 1, . . . , n − 1, il raccordo fra due diversi
polinomi presenta in generale un punto spigoloso.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Esistono tanti altri esempi di funzioni polinomiali a tratti,
ma fra di esse, quelle più usate sono le funzioni spline.
Funzioni spline
Le funzioni spline sono polinomiali che si ottengono
imponendo condizioni di continuità delle derivate, senza
utilizzare i valori, in generale non disponibili, delle derivate
della funzione nei nodi dell’intervallo.
Esse sono molto utilizzate nella pratica perché consentono
di ottenere ottimi risultati dal punto di vista grafico.
Definizione 2 Fissato un intero d ≥ 1, Sd (f, x) è una
funzione spline di ordine d associata alla suddivisione
a = x0 < x1 < . . . < xn = b
dell’intervallo [a, b] se:
1. Sd (f, x) è un polinomio di grado d in ogni intervallo
[xi−1 , xi ], i = 1, . . . , n;
(k)
2. Sd (f ) è una funzione continua su [a, b] per ogni
k = 0, . . . , d − 1.
Le funzioni spline più usate sono quelle cubiche, cioè d = 3.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Spline cubiche
Assegnati n + 1 punti nell’intervallo [a, b] tali che
a = x0 < x1 < . . . < xn = b,
la spline cubica S3 (f, x) interpola la funzione y = f (x) in
tali punti, cioè
S3 (f, xi ) = f (xi ),
i = 0, . . . , n.
(4)
Inoltre, dalla Definizione 2 risulta
S3 (f, x) = ai + bi x + ci x2 + di x3 ,
x ∈ [xi−1 , xi ],
(5)
i = 1, . . . , n,
(k)
(k)
−
S3 (f, x+
i ) = S3 (f, xi ),
i = 1, . . . , n − 1,
(6)
k = 0, 1, 2.
Le condizioni (4) e (6) conducono ad un sistema lineare di
4n − 2 equazioni (n + 1 dalla (4) e 3(n − 1) dalla (6)) nelle
4n incognite ai , bi , ci , di definite in (5).
Per ottenere un sistema quadrato di ordine 4n, dobbiamo
imporre due ulteriori condizioni.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Tuttavia, invece di risolvere un sistema di ordine 4n,
imponendo due condizioni aggiuntive opportune, possiamo
costruire univocamente S3 (f, x) risolvendo un sistema
lineare di ordine al più n + 1, con struttura particolarmente
semplice.
A tal fine introduciamo le nuove incognite
Mi = S300 (f, xi ),
i = 0, 1, . . . , n.
Poichè S3 (f, x) è in ogni intervallo [xi−1 , xi ] un polinomio
di grado 3, la derivata seconda S300 (f, x) è in tali intervalli
una funzione lineare della seguente forma
S300 (f, x) =
(xi − x)Mi−1 + (x − xi−1 )Mi
,
hi
i = 1, . . . , n,
(7)
dove hi = xi − xi−1 .
Osserviamo che la S300 (f, x) cosı̀ definita è continua su tutto
[a, b].
Per individuare S3 (f, x) dobbiamo per prima cosa integrare
due volte S300 (f, x).
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Integrando la (7) otteniamo
−(xi − x)2 Mi−1 + (x − xi−1 )2 Mi
=
+Ci , i = 1, . . . , n,
2hi
(8)
e, integrando la (8), abbiamo
S30 (f, x)
(xi − x)3 Mi−1 + (x − xi−1 )3 Mi
S3 (f, x) =
+Ci (x−xi−1 )+Di ,
6hi
(9)
i = 1, . . . , n,
dove Ci , Di , i = 1, . . . , n, sono costanti arbitrarie.
Tuttavia dovendo S3 (f, x) soddisfare le condizioni (4), cioé
S3 (f, xi−1 ) = f (xi−1 ) e
S3 (f, xi ) = f (xi ),
(10)
possiamo assegnare alle Ci , Di , i = 1, . . . , n, i seguenti valori
h2i
Di = f (xi−1 ) − Mi−1
6
e
f (xi ) − f (xi−1 ) hi (Mi − Mi−1 )
Ci =
−
hi
6
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Conseguentemente, le (8) e (9) diventano
S30 (f, x)
−(xi − x)2 Mi−1 + (x − xi−1 )2 Mi
=
2hi
f (xi ) − f (xi−1 ) hi (Mi − Mi−1 )
+
−
hi
6
e
(xi − x)3 Mi−1 + (x − xi−1 )3 Mi
S3 (f, x) =
(11)
6hi
¸
·
f (xi ) − f (xi−1 ) hi (Mi − Mi−1 )
−
(x − xi−1 )
+
hi
6
h2i
+ f (xi−1 ) − Mi−1 ,
6
per x ∈ [xi−1 , xi ] e i = 1, . . . , n.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Osservazione Se S3 (f ) soddisfa le condizioni (10) è anche
continua nei punti xi−1 e xi .
Finora abbiamo imposto la continuità solo a S300 (f, x) e
S3 (f, x). Affinché S3 (f, x) sia una spline cubica è sufficiente
determinare le quantità {Mi }i in modo che le condizioni
lim S30 (f, x) = lim S30 (f, x),
x→x−
i
x→x+
i
i = 1, . . . , n − 1,
(12)
siano soddisfatte, cosicché anche S30 (f, x) risulti continua in
[a, b].
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Dalla
S30 (f, x) =
+
−(xi − x)2 Mi−1 + (x − xi−1 )2 Mi
2hi
f (xi ) − f (xi−1 ) hi (Mi − Mi−1 )
−
(13)
hi
6
deduciamo che nell’intervallo [xi , xi+1 ] la S30 (f, x) ha la
seguente espressione
S30 (f, x)
=
+
−(xi+1 − x)2 Mi + (x − xi )2 Mi+1
(14)
2hi+1
f (xi+1 ) − f (xi ) hi+1 (Mi+1 − Mi )
−
.
hi+1
6
Sostituendo le (13) e (14) in (12) otteniamo il seguente
sistema lineare
hi Mi−1 + 2(hi + hi+1 )Mi + hi+1 Mi+1 =
6
6
=
(f (xi+1 ) − f (xi )) − (f (xi ) − f (xi−1 )),
hi+1
hi
(15)
i = 1, . . . , n − 1,
di (n − 1) equazioni nelle (n + 1) incognite M0 , M1 , . . . , Mn .
Dobbiamo infine imporre altre due condizioni.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Vari criteri possono essere seguiti per individuare queste
due condizioni. Le tre possibili scelte più note sono le
seguenti:
1. imponiamo le condizioni
S30 (f, x0 ) = f 0 (x0 ) e
S30 (f, xn ) = f 0 (xn )
(16)
che si trasformano nelle seguenti equazioni aggiuntive
·
¸
f (x1 ) − f (x0 )
2h1 M0 + h1 M1 = 6
− f 0 (x0 )
h1
(17)
¸
·
f (xn ) − f (xn−1 )
.
hn Mn−1 + 2hn Mn = 6 f 0 (xn ) −
hn
Le funzioni spline che si ottengono con le condizioni
aggiuntive (16) si dicono spline complete. L’unione
delle (15) e (17) produce il seguente sistema
tridiagonale simmetrico a diagonale dominante
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica


2h1

 h
 1










h1
2(h1 + h2 )
..
.
h2
..
hn−1

.
2(hn−1 + hn )
hn
hn
2hn


M0


  M1


..

.


 M
  n−1


Mn
f (x1 ) − f (x0 )
− f 0 (x0 )
h1
f (x2 ) − f (x1 ) f (x1 ) − f (x0 )
−
h2
h1
..
.





=




(18)







= 6


 f (xn ) − f (xn−1 ) f (xn−1 ) − f (xn−2 )
−


hn
hn−1

f (xn ) − f (xn−1 )
0
f (xn ) −
hn













2. Imponiamo le condizioni
M0 = f 00 (x0 )
e
Mn = f 00 (xn ).
(19)
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Combinando le (15) con le (19), anche in questo caso
perveniamo ad un sistema tridiagonale simmetrico a
diagonale dominante, ma il suo ordine è n − 1

2(h1 + h2 )
h2


h2
2(h2 + h3 )


..

.







hn−2




 M1

h3


  M2 


 . 
 . 
 . 
..



.

 Mn−2


2(hn−2 + hn−1 )
hn−1
 M
n−1
hn−1
2(hn−1 + hn )
(20)


f (x2 ) − f (x1 )
f (x1 ) − f (x0 )
h1 00
−
−
f (x0 )


h
h
6
2
1


f (x2 ) − f (x1 )
f (x3 ) − f (x2 )


−


h3
h2




..


= 6
.



f (xn−1 ) − f (xn−2 )
f (xn−2 ) − f (xn−3 )


−




hn−1
hn−2
f (xn ) − f (xn−1 )

f (xn−1 ) − f (xn−2 )
hn 00
−
−
f (xn )
hn
hn−1
6
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Se poniamo M0 = Mn = 0, indipendentemente dai
valori f 00 (x0 ) e f 00 (xn ), le spline cubiche corrispondenti
vengono denominate spline naturali.
3. Se f è periodica di periodo b − a, cioè f (a) = f (b)
imponiamo le seguenti condizioni di periodicità alla
spline:
S30 (f, x0 ) = S30 (f, xn )
(21)
S300 (f, x0 ) = S300 (f, xn ).
(22)
La funzione spline risultante si dice spline periodica. La
condizione (21) produce l’equazione
2h1 M0 + h1 M1 + 2hn Mn + hn Mn−1 =
·
¸
f (x1 ) − f (x0 ) f (xn ) − f (xn−1 )
=6
−
.
h1
hn
(23)
Poichè f (x0 ) = f (xn ) e la condizione (22) produce
l’equazione M0 = Mn , la (23) diventa
h1 M1 + hn Mn−1 + 2Mn (h1 + hn ) =
·
¸
f (x1 ) − f (xn ) f (xn ) − f (xn−1 )
=6
−
.
h1
hn
(24)
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
L’unione delle (15) con la (24) produce il seguente
sistema

2(h1 + h2 )


h2











h1
h2
h1




  M1 
2(h2 + h3 )
h3

  M2 

..

.
 . 
 . 
 . 
..



.

 Mn−1


hn−1 2(hn−1 + hn )
hn

Mn
hn
2(h1 + hn )
(25)


f (x2 ) − f (x1 )
f (x1 ) − f (xn )
−


h2
h1


f (x3 ) − f (x2 )
f (x2 ) − f (x1 )


−


h3
h2




..


= 6
.



f (xn−1 ) − f (xn−2 ) 
 f (xn ) − f (xn−1 )


−


hn
hn−1


f (x1 ) − f (xn )
f (xn ) − f (xn−1 )
−
h1
hn
Il sistema (25) non è più esattamente tridiagonale, ma
è ancora simmetrico e a diagonale dominante.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
In tutti e tre i casi illustrati i sistemi sono non singolari,
dunque la spline cubica cercata esiste ed è unica.
Poichè tutte e tre le matrici sono a diagonale dominante,
tali sistemi possono essere risolti con il metodo di Gauss
senza pivoting.
Una volta determinato il vettore M0 , M1 , . . . , Mn , per
calcolare la spline cubica cercata in un punto x ∈ [a, b], si
individua il sottointervallo [xi−1 , xi ] di [a, b] a cui x
appartiene e si utilizza la formula
(xi − x)3 Mi−1 + (x − xi−1 )3 Mi
S3 (f, x) =
6hi
·
¸
f (xi ) − f (xi−1 ) hi (Mi − Mi−1 )
+
−
(x − xi−1 )
hi
6
h2i
+ f (xi−1 ) − Mi−1 .
6
Le spline cubiche sono molto usate nella grafica perché, fra
le funzioni con derivata seconda continua che interpolano la
funzione f nei nodi x0 , . . . , xn , sono quelle che hanno
minima curvatura, cioè oscillano meno.
Il minimo assoluto è raggiunto dalle spline naturali.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Per quanto riguarda la convergenza vale il seguente
Teorema Sia S3 (f, x) la spline cubica con condizioni agli
estremi di tipo (16) o (19) o (21) e (22) se f è periodica.
Definiamo con h = max1≤i≤n hi . Se f ∈ C 2 ([a, b]) allora
(p)
kf (p) − S3 (f )k∞
lim
= 0,
2−p
h→0
h
p = 0, 1, 2.
Se, invece, f ∈ C k ([a, b]), k = 3, 4, ed, inoltre, esiste una
costante C tale che hhi ≤ C < ∞, allora

(p)
(p)

kf
−
S

3 (f )k∞

= 0,
k=3
lim

3−p

h
h→0
p = 0, 1, 2, 3 .


(p)


kf (p) − S3 (f )k∞

 lim
< +∞, k = 4
h→0
h4−p
È stato tuttavia dimostrato che h4 è il massimo ordine di
convergenza che possiamo avere con le spline cubiche
considerate, ovvero
kf − S3 (f )k∞
< +∞
4
h→0
h
lim
anche quando f ∈ C k ([a, b]) con k > 4.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Il precedente teorema non solo ci assicura la convergenza
uniforme in [a, b] di S3 (f, x) a f (x), ma ci suggerisce che le
spline cubiche sono uno strumento efficace per
l’approssimazione uniforme in tutto [a, b] anche delle
derivate di f.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Esempio 1 Sia
¯
¯9
¯x − 1 ¯ 2 + sin2 (x)
2
f (x) =
,
3
2
(3 + x )
x ∈ [−1, 1]
Vogliamo approssimare la funzione f con 8 cifre decimali
esatte utilizzando
1. il polinomio di Lagrange Ln (T , f ) che la interpola sugli
zeri del polinomio di Chebyshev di prima specie
− 21 ,− 12
pn
;
2. la spline cubica S3 (f ) che la interpola sui punti
equispaziati nell’intervallo [−1, 1] di passo h = n2 .
Poichè f ∈ C 4 ([−1, 1]), da un punto di vista teorico si ha
kRn (T , f )k∞
C
1
≤ 4 log n < 9
n
10
circa per
n > 150
kf − S3 (f )k∞
µ ¶4
2
1
≤C
< 9
n
10
circa per
n > 210
e
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Dato il vettore di 41 punti equispaziati
x = [−1 : 0.0488 : 1]
Valutiamo sia Ln (T , f ) che S3 (f ) in tali punti e calcoliamo
E1 = max |f (xi ) − Ln (T , f ; xi )|
i=1,...,41
E2 = max |f (xi ) − S3 (f, xi )|
i=1,...,41
n
E1
E2
10
3.01431e-3
3.93337e-2
20
7.61857e-7
5.92261e-3
30
1.07926e-7
9.31007e-4
40
1.74549e-8
2.84846e-5
50
2.73043e-9
9.14160e-5
80
7.45529e-10
1.74995e-6
100
1.49005e-10
4.67514e-7
200
1.13485e-11
3.47576e-8
400
1.28105e-13
3.83087e-9
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
I risultati numerici sono migliori rispetto alle aspettative
teoriche, anche perchè, non essendo nota la costante C, il
valore di n calcolato teoricamente non è preciso (abbiamo
assunto C = 1).
I risultati che si ottengono utilizzando il polinomio di
Lagrange sono migliori.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Esempio 2 Sia
(x2 + 2)3 cos x
f (x) =
,
x
1+e
x ∈ [−1, 1]
Vogliamo approssimiamo la funzione f con 10 cifre decimali
esatte utilizzando
1. il polinomio di Lagrange Ln (T , f ) che la interpola sugli
zeri del polinomio di Chebyshev di prima specie
− 21 ,− 12
pn
;
2. la spline cubica S3 (f ) che la interpola sui punti
equispaziati nell’intervallo [−1, 1] di passo h = n2 .
Poichè f ∈ C ∞ ([−1, 1]), da un punto di vista teorico si ha
1
1011
circa per
n > 10
µ ¶4
2
1
≤C
< 11
n
10
circa per
n > 1000
kRn (T , f )k∞ ≤
C
2n−1 n!
<
e
kf − S3 (f )k∞
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Dato il vettore di 41 punti equispaziati
x = [−1 : 0.0488 : 1]
Valutiamo sia Ln (T , f ) che S3 (f ) in tali punti e calcoliamo
E1 = max |f (xi ) − Ln (T , f ; xi )|
i=1,...,41
E2 = max |f (xi ) − S3 (f, xi )|
i=1,...,41
n
E1
E2
8
8.12140e-4
3.85787e-2
16
2.42840e-10
3.68683e-3
32
7.10542e-15
1.16998e-4
64
1.24344e-14
6.37998e-6
128
2.13162e-14
6.75673e-8
256
2.04281e-14
5.71113e-9
512
4.26325e-14
4.10752e-10
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Come da previsioni teoriche i risultati numerici ottenuti
con il polinomio di Lagrange sono molto migliori rispetto a
quelli ottenuti con la spline cubica.
Anche se la funzione è analitica l’errore della spline cubica
è dello stesso ordine del caso in cui la funzione ha solo 4
derivate continue.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Esempio 3 In un giorno del mese di luglio, ad intervalli di
1 ora, per tutte le 24 ore, sono state registrate le seguenti
temperature
ora
temperatura
1
15
2
14
3
15
4
14
5
15
6
16
7
18
8
20
9
21
10
24
11
27
12
30
13
30
14
32
15
32
16
31
17
29
18
28
19
27
20
25
21
23
22
20
23
18
24
17
Utilizzare la spline cubica S3 (f ) per stimare le temperature
delle ore 12, 30 e delle ore 19, 30.
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Confrontare i risultati ottenuti con i valori reali riportati
nella seguente tabella
ora
temperatura
12,30
30
19,30
26
Denotato con x il vettore avente per componenti le ore e
con y il vettore avente per componenti le corrispondenti
temperature, con il comando Matlab
yy = spline(x, y, [12.5 19.5])
si ottiene
ora
temperatura
errore
12,30
30.0440
0.0440
19,30
26.0466
0.0466
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis
Facoltà di Ingegneria - Laurea Triennale in Ingegneria Meccanica
Valutare, inoltre, la spline S3 (f ) nei punti
xx = [1.5 : 24.5]
e disegnarne il grafico.
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
Figure 9: Grafico della spline S3 (f )
Corso di Calcolo Numerico - Dott.ssa M.C. De Bonis