Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Letizia SCUDERI
A.A. 2017/2018
2
1/x
Tf10,1(x)
1.5
0.5
0
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
0
1 2 3 4 5 6 7 8 9 10
Definizione
Il criterio dell’interpolazione consiste nello scegliere, come
approssimante dei dati (xi , yi ), i = 1, . . . , n + 1, una funzione f˜(x)
soddisfacente le seguenti condizioni:
f˜(xi ) = yi i = 1, . . . , n + 1,
Teorema
Assegnati n + 1 punti (xi , yi ), con le ascisse distinte tra loro (xi 6= xj per
i 6= j), esiste uno e un sol polinomio pn (x) di grado minore o uguale a n
interpolante i dati assegnati, ovvero soddisfacente le condizioni di
interpolazione:
pn (xi ) = yi , i = 1, . . . , n + 1
Dimostrazione
Per l’esistenza del polinomio interpolante verrà in seguito data una
dimostrazione costruttiva.
Per dimostrare l’unicità, invece, si procede per assurdo.
1
Un polinomio di grado n (a coefficienti reali o complessi) che ammette n + 1 radici
distinte è necessariamente il polinomio identicamente nullo.
L. Scuderi (Politecnico di Torino) Approssimazione A.A. 2017/2018 10 / 61
Rappresentazione monomiale del polinomio di
interpolazione
Definizione
Si definisce rappresentazione monomiale del polinomio interpolante
pn (x) l’espressione:
>> x = [0 1 2 1/2]; 1
>> y = [1 -1 1 2];
>> c = polyfit(x,y,length(x)-1); 0
>> z = linspace(min(x),max(x)); −1
>> p = polyval(c,z); −2
>> plot(x,y,’ro’,z,p,’b’)
−3
−4
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
c = polyfit(x,y,n); −1 −1
p = polyval(c,z);
−2 −2
−3 −3
plot(x,y,’ro’,z,f(z),’r’,z,p,’b’) −4 −4
pause
0 1 2 3 4 5 6 0 1 2 3 4 5 6
end
Warning: Polynomial is badly
conditioned.....
Osserviamo che Matlab ha inviato una segnalazione di cattivo
condizionamento. Tuttavia, dal punto di vista grafico, il mal
condizionamento del problema non sembra avere conseguenze evidenti.
per j = 1, . . . , n + 1.
Poiché
1 se i = j
`j (xi ) = ,
0 se i 6= j
(x1 , 0), . . . (xj−1 , 0), (xj , 1), (xj+1 , 0), . . . , (xn+1 , 0).
(x−1)(x−2)(x−1/2)
`1 (x) = (0−1)(0−2)(0−1/2) 2
1.5
(x−0)(x−2)(x−1/2)
`2 (x) = (1−0)(1−2)(1−1/2)
1
0.5
(x−0)(x−1)(x−1/2)
`3 (x) = (2−0)(2−1)(2−1/2)
−0.5
l1
l2
−1
l
3
l4
(x−0)(x−1)(x−2) −1.5
`4 (x) = (1/2−0)(1/2−1)(1/2−2)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Definizione
Denotato con pn (x) il polinomio interpolante la funzione f (x) nei punti
x1 , . . . , xn+1 , si definisce errore di interpolazione la funzione
Osservazione
En (x) = 0 per x = xi ;
infatti si ha En (xi ) = f (xi ) − pn (xi ) = 0.
En (x) ≡ 0 per ogni x ∈ [a, b] e per ogni funzione f polinomiale di
grado minore o uguale a n;
infatti, posto f = p e indicato con pn il polinomio interpolante f , per
l’unicità del polinomio interpolante, deve essere p ≡ pn .
Definizione
Si dice che una successione di polinomi {pn }n∈N converge
uniformemente a f se, e solo se,
tutti situati in [a, b] e data una qualunque funzione f continua in [a, b],
denotato con pn (x) il polinomio di grado n interpolante f (x) in
(n) (n) (n)
x1 , x2 , . . . , xn+1 , è sempre vero che
b−a
xi = a + (i − 1)h, i = 1, . . . , n + 1, h=
n
come nodi di interpolazione, l’esempio che segue mostra che la successione
dei polinomi interpolanti la funzione
1
f (x) =
1 + x2
infinitamente derivabile, detta funzione di Runge, non converge
uniformemente a f (x) in [a, b], per certi intervalli [a, b]; per
[a, b] = [−5, 5], al tendere del numero dei nodi all’infinito, il limite della
norma uniforme dell’errore di interpolazione è addirittura infinito!
0.5
−0.5
−1 punti di interpolazione
funzione di Runge
polinomio interpolante p
9
polinomio interpolante p
13
−1.5
−5 −4 −3 −2 −1 0 1 2 3 4 5
Esempio
1
Denotato con pn il polinomio interpolante f (x) = 1+x 2
nei nodi xi ,
i = 1, . . . , n + 1, equispaziati in [1, 2], si ha
0.55
punti di interpolazione
0.5
funzione di Runge
polinomio interpolante p9
polinomio interpolante p
0.45
13
0.4
0.35
0.3
0.25
0.2
0.15
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2
0.8
0.6
0.4
0.2
0
zi
-0.2
0.8
0.6
0.4
0.2
0
zi
−0.2
−1 −0.5 0 0.5 1
Teorema
Sia {pn (x)} la successione dei polinomi interpolanti f (x) nei nodi
xi ∈ [a, b] di Chebyshev-Lobatto oppure di Chebyshev. Se f ∈ C k ([a, b]),
k ≥ 1, allora
log n
||f − pn ||∞ = O , n→∞
nk
1
punti
0.9 Runge
p9
0.8 p13
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
−5 −4 −3 −2 −1 0 1 2 3 4 5
Definizione
Si definisce funzione polinomiale a tratti di grado d associata a una
partizione dell’intervallo [a, b], una funzione continua in [a, b] e definita da
un’unione di tratti contigui di polinomi algebrici diversi, ciascuno di grado
d.
0.8
0.7
d=2
0.6
0.5
0.4
0.3 d=1
0.2
0.1
0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
f (xi +1 ) − f (xi )
S1 (x) = f (xi ) + (x − xi ), x ∈ [xi , xi +1 ]
xi +1 − xi
Comando Matlab
s = interp1(x,y,z) calcola e memorizza in s i valori che la spline
lineare interpolante i dati (xi , yi ), i = 1, . . . , n + 1, assume in z; i valori xi
e yi sono memorizzati in x e in y, rispettivamente.
Teorema
Data una partizione a ≡ x1 < x2 < . . . < xn+1 ≡ b, sia S1 la spline
interpolante una funzione f ∈ C 2 ([a, b]) nei nodi della partizione xi ,
i = 1, . . . , n + 1. Denotato con h = max1≤i ≤n (xi +1 − xi ), allora
0 0 0
0 1 2 3 0 1 2 3 0 1 2 3
S3 (x) = ai + bi x + ci x 2 + di x 3 , x ∈ [xi , xi +1 ], i = 1, . . . , n
Teorema
Sia S3 (x) la spline cubica interpolante i dati (xi , f (xi )) con a ≤ xi ≤ b e
soddisfacente le condizioni aggiuntive 1), oppure 2), oppure 3).
Denotato con hi = xi +1 − xi e h = max1≤i ≤n hi , se f ∈ C 2 ([a, b]) allora
Inoltre, nel caso delle condizioni aggiuntive 2) oppure 3), se f ∈ C 4 ([a, b])
e se h/hi ≤ γ < ∞ per h → 0, si ha
(p)
||f (p) − S3 ||∞ = O(h4−p ), h → 0, p = 0, 1, 2, 3
Comandi Matlab
s = spline(x,y,z) calcola e memorizza in s i valori che la spline
cubica interpolante i dati (xi , yi ), i = 1, . . . , n + 1 e soddisfacente la
condizione 2) “not-a-knot”, assume in z; i valori xi e yi sono
memorizzati in x e in y, rispettivamente.
s = spline(x,[yd1 y ydn],z) calcola e memorizza in s i valori
che la spline cubica interpolante i dati (xi , yi ), i = 1, . . . , n + 1 e
soddisfacente la condizione 3) (yd1= f 0 (x1 ), ydn= f 0 (xn+1 )), assume
in z; i valori xi e yi sono memorizzati in x e in y, rispettivamente.
0.6
0.5
0.4
0.3
0.2
0.1
0
−5 −4 −3 −2 −1 0 1 2 3 4 5
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0 0.5 1 1.5 2
Comando Matlab
t = trapz(x,y) memorizza in t il valore approssimato dell’integrale
mediante la formula dei trapezi, ottenuto cioè calcolando (analiticamente)
l’integrale della spline lineare e interpolante i dati (xi , yi ), i = 1, . . . , n; i
valori xi e yi sono memorizzati nei vettori x e y, rispettivamente.
50
45
40
35
30
25
0 50 100 150 200 250 300 350
0.5
−0.5
−1
0 14 16 18 20 22 24 2 4 6 8
200
150
100
50
0
0 14 16 18 20 22 24 2 4 6 8
200
150
100
50
0
0 14 16 18 20 22 24 2 4 6 8