Interpolazione polinomiale (o di Lagrange) - Digilander

Interpolazione polinomiale (o di Lagrange)
Date n+1 coppie di punti distinti ed una funzione approssimante g(x) diremo
che g interpola i punti dati se g(xi ) = yi per i = 0, . . . , n, cioè se il grafico
di g passa per i punti dati. Se la funzione g è un polinomio parleremo
di interpolazione polinomiale o Lagrangiana, se g è una funzione razionale
parleremo di interpolazione razionale, se g è una funzione trigonometrica
parleremo di interpolazione trigonometrica etc.
Vediamo alcuni esempi:
Supponiamo di avere due punti (xo , y0 ) e (x1 , y1 ) e di voler determinare
la retta che passa per essi; per fare ciò basterà risolvere il seguente sistema
P1 (xo ) = ax0 + b = y0
P1 (x1 ) = ax1 + b = y1
Analogamente, dati 3 punti, è
essi risolvendo il sistema:

 P2 (xo )
P2 (x1 )

P2 (x2 )
possibile costruire la parabola che passa per
= ax20 + bx0 + c0 = y0
= ax21 + bx1 + c1 = y1
= ax22 + bx2 + c2 = y2
Più in generale, date n + 1 coppie distinte di punti (xo , y0 ),(x1 , y1 ),
. . . (xn , yn ) è possibile costruire il polinomio che passa per essi trovando
la soluzione del sistema

Pn (xo ) = a0 + a1 x0 + a2 x20 + a3 x30 + . . . + an xn0 = y0



 Pn (x1 ) = a0 + a1 x1 + a2 x2 + a3 x3 + . . . + an xn = y1
1
1
1
..

.



Pn (xn ) = a0 + a1 xn + a2 x2n + a3 x3n + . . . + an xnn = yn
Si dimostra che se i nodi di interpolazione sono distinti, il determinante della matrice dei coefficienti è diverso da 0 (metodo dei coefficenti indeterminati) e il sistema ammette un’unica soluzione (quindi il polinomio
interpolante di Lagrange è unico).
La matrice dei coefficienti associata a questo sistema però


1 x0 x20 . . . xn0
 1 x1 x21 . . . xn1 


 1 ... ... ... ... 


 1 ... ... ... ... 
1 xn x2n . . . xnn
è una matrice di Van der Monde, ed è una matrice particolare in quanto
fortemente malcondizionata: per valori di n molto grandi la risoluzione del
sistema porta a risultati poco affidabili e quindi si preferisce utilizzare altri
metodi per determinare il polinomio interpolante.
1
Polinomi fondamentali di Lagrange
Una possibile soluzione al problema è quella di scrivere il polinomio mediante
interpolante mediante i polinomi di Lagrange:
n
X
Ln (x) =
ln,k (x)yk
k=0
dove
n
Y
(x − x0 ) . . . (x − xk−1 )(x − xk+1 ) . . . (x − xn )
x − xi
=
ln,k (x) =
xk − xi
(xk − x0 ) . . . (xk − xk−1 )(xk − xk+1 ) . . . (xk − xn )
i=0
i6=k
Da notare che per come sono definiti questi polinomi si ha che:
1 se j = k
ln,k (xj ) =
0 se j 6= k
Questa rappresentazione è soggetta al fenomeno della cancellazione numerica e quindi è instabile in quanto per valori di xk e xj molto vicini tra
loro si ottengono divisioni per numeri prossimi allo zero.
Rappresentazione di Newton (o metodo delle differenze divise)
In questo metodo il polinomio interpolante è dato dalla seguente formula
Ln (x) = y0 +[x0 , x1 ](x−x0 )+[x0 , x1 , x2 ](x−x0 )(x−x1 )+. . .+[x0 , x1 , . . . , xn ](x−x0 ) . . . (x−xn−1 )
dove ciascuna delle espressioni tra parentesi quadre è la differenza divisa sui
punti x0 ,. . . ,xn . In particolare:
f (b) − f (a)
b−a
è chiamata differenza divisa del primo ordine su due punti.In alcuni testi
tale espressione viene scritta nella forma [a, b; f ].
Analogamente la differenza divisa di ordine 2 su tre punti è data da
[a, b] =
[a, b, c] =
[b, c] − [a, b]
c−a
Quella di ordine 3 su quattro punti
[a, b, c, d] =
[b, c, d] − [a, b, c]
d−a
è cosı̀ via.
2
Vantaggi
La definizione di differenza divisa [a, b], per valori di b molto vicini ad a,
concide con la definizione di limite del rapporto incrementale ovvero:
f (b) − f (a)
= f 0 (a)
b−a
Analogamente, in presenza di valori vicini tra loro, si ha che:
[a, b, c] =
[a, b, c, d] =
f 00 (a)
2
f 000 (a)
3!
Stima dell’errore (Resto dell’interpolazione)
Data una successione di punti, vogliamo stabilire quanto la funzione interpolante si discosta dalla
funzione di partenza, cioè:
|f (x) − Ln (x)| = Rn (f, x)
L’espressione Rn (f, x) viene chiamata resto o errore dell’interpolazione Lagrangiana. Tale quantità può essere ancora
rappresentata nella forma
Rn (f, x) = [x, x0 , . . . , xn ](x − x0 ) . . . (x − xn )
Dall’analisi sappiamo che per questa espressione esiste un punto ξ tale che
Rn (f, x) =
f (n+1) (ξ)
(x − x0 ) . . . (x − xn )
(n + 1)!
Sappiamo dell’esistenza del punto ξ, ma non siamo in grado di stabilire chi
sia; benché questo risultato sia puramente teorico, e quindi di fatto inutilizzabile dal punto di vista applicativo, ci permette di esplorare il seguente caso
particolare: supponendo infatti che f ∈ Pn (insieme di polinomi di grado al
più n), allora la sua derivata n + 1-esima sarà pari a zero e di conseguenza
anche Rn (f, x) = 0, cioè l’interpolante andrà a coincidere con la funzione f .
Analizziamo ora il comportamento dell’interpolante al crescere dei punti
di interpolazione.
Convergenza dell’interpolazione
Si dimostra che:
|Rn (f, x)| ≤ cEn (f )(1 + λn ) ,
3
c∈<
dove
En (f ) =
min
P ∈Pn [x0 ,xn ]
max |f (x) − P (x)|
è l’errore di migliore approssimazione uniforme (cioè scelgo fra tutti i polinomi in Pn quello che si discosta meno da f ) e
λn = max
[x0 ,xn ]
n
X
|ln,k (x)|
k=0
è l’n-esima costante di Lebesgue.
Tanto più la funzione f è regolare e tanto più convergerà rapidamente
a 0. In particolare se f ∈ C 0 ⇒ En (f ) converge a 0, se f ∈ C 1 ⇒ En (f )
converge a 0 come n1 , se invece f ∈ C 2 ⇒ En (f ) converge a 0 come n12 etc. .
Le quantità λn invece tendono ad infinito al crescere di n ed in particolare
si ha che λn ≥ c log n.
Per poter bilanciare il buon comportamento di En (f ) rispetto al cattivo comportamento di λn affinché Rn (f ) tenda a 0, bisogna operare delle
opportune scelte per i punti xi del polinomio interpolante. In particolare:
• se xi = zeri di Cebicev ⇒ λn ∼
= log n (scelta ottimale).
• se xi = zeri di polinomi ortogonali ⇒ λn ∼
= nα .
• se xi equidistanti ⇒ λn ∼
= en (scelta peggiore).
Consideriamo, ad esempio, la funzione
f (x) = |x| e studiamo la convergenza dell’interpolante di Lagrange scegliendo punti
di interpolazione equidistanti. La funzione
f (x) ∈ C 0 poiché presenta una discontinuità
in 0; inoltre dato che i punti scelti sono equidistanti, i λn ∼
= en e quindi l’interpolante
presenterà numerose oscillazioni (fenomeni
di overflow e underflow) ed En (f ) tenderà a zero molto lentamente.
Fenomeno di Runge
Esaminiamo la funzione
f (x) =
1
1 + x2
in [-5,5]
Nonostante la funzione f ammetta infinite derivate, l’interpolante di Lagrange non converge in tutto l’intervallo: estendendo infatti la funzione al
campo dei complessi, si può facilmente verificare che il denominatore si annulla per x = ±i dato che i2 = −1. Quindi se i punti di interpolazione
4
vengono scelti all’interno del piano complesso (raggio < 1) l’interpolante
converge sicuramente, mentre diverge estendendo l’intervallo a cerchi più
grandi che includono i punti di singolarità.
5