14.01.2013 Views

Interpolazione di dati e funzioni. Il capitolo dell'interpolazione e' uno ...

Interpolazione di dati e funzioni. Il capitolo dell'interpolazione e' uno ...

Interpolazione di dati e funzioni. Il capitolo dell'interpolazione e' uno ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Interpolazione</strong> <strong>di</strong> <strong>dati</strong> e <strong>funzioni</strong>.<br />

<strong>Il</strong> <strong>capitolo</strong> dell’interpolazione e’ <strong>uno</strong> dei più classici del Calcolo Numerico. I meto<strong>di</strong><br />

dell’interpolazione hanno una vasta applicazione, sia nell’ambito del Calcolo Numerico stesso, che<br />

in altri contesti applicativi, come la ricostruzione <strong>di</strong> profili,l’elaborazione numerica <strong>di</strong> segnali, ecc.<br />

Per esempio la trasformata <strong>di</strong> Fourier, in particolare la trasformata veloce <strong>di</strong> Fourier, ha<br />

rappresentato una pietra miliare per la effettiva risolubilità <strong>di</strong> tanti problemi reali.<br />

I primi lavori dei ricercatori sulle trasformate <strong>di</strong>screte <strong>di</strong> Fourier sono ancora oggi tra i più citati<br />

negli articoli su riviste scientifiche <strong>di</strong> prestigio. In queste lezioni verrà trattata solo l’interpolazione<br />

polinomiale insieme a qualche applicazione, inquadrando, prima, il problema più generale.<br />

Siano assegnate n+1 coppie <strong>di</strong> punti del piano, (xi, yi), i = 0, …n, in cui, però, le ascisse xi, siano<br />

tutte <strong>di</strong>stinte tra loro. Cioè<br />

i � j � xi � xj, i,j = 0, …n.<br />

Può essere importante, allora, rappresentare questi punti su <strong>di</strong> una curva del piano, e, poiché le<br />

ascisse sono tutte tra loro <strong>di</strong>stinte, conviene che si tratti del grafico <strong>di</strong> una funzione definita in un<br />

intervallo [a b], contenente tutte le ascisse. Allora<br />

Definizione<br />

Una funzione<br />

f : [a b] � R<br />

si <strong>di</strong>ce interpolante gli n+1 punti (xi, yi), o che interpola gli n+1 punti (xi, yi), se risulta<br />

f(xi) = yi, i = 0, …n<br />

•<br />

Spesso si <strong>di</strong>ce anche che i punti (xi, yi) sono interpolati da f. Con riferimento alle applicazioni, i<br />

punti (xi, yi), sono spesso chiamati <strong>dati</strong>, e l’interpolazione e’ <strong>uno</strong> dei vari mo<strong>di</strong> <strong>di</strong> trattare <strong>dati</strong><br />

sperimentali.<br />

Infine le ascisse <strong>di</strong> questi <strong>dati</strong>, sono dette anche no<strong>di</strong>, e le richieste f(xi) = yi, sono spesso chiamate<br />

le con<strong>di</strong>zioni dell’interpolazione.<br />

<strong>Il</strong> problema della scelta della funzione.<br />

Evidentemente esistono infinite funzione che interpolano i <strong>dati</strong> assegnati, ma e’ ancora più<br />

evidente, che, nelle applicazioni, si cercano <strong>funzioni</strong> con determinate caratteristiche, per esempio,<br />

con grande regolarità ( continuità ed esistenza <strong>di</strong> numerose derivate) oppure <strong>funzioni</strong> non<br />

eccessivamente oscillanti, ecc. In astratto si fissa una classe � <strong>di</strong> <strong>funzioni</strong> definite in un intervallo<br />

contenenti i no<strong>di</strong> e si cerca <strong>di</strong> risolvere il problema dell’interpolazione in questa classe.<br />

Vale quin<strong>di</strong> la<br />

Definizione<br />

<strong>Il</strong> problema dell’interpolazione dei punti (xi, yi), i=0, …n ben posto nella classe � se esiste<br />

una sola funzione f � �, tale che sod<strong>di</strong>sfi le con<strong>di</strong>zioni dell’interpolazione.<br />

•<br />

Osserviamo che le con<strong>di</strong>zioni dell’interpolazione sono n+1, e, in conseguenza, sembra naturale<br />

pensare ad una classe <strong>di</strong> funzione �, che possieda n+1 gra<strong>di</strong> <strong>di</strong> libertà.<br />

Cioè , la classe oltre a essere formata da <strong>funzioni</strong> con gli<br />

aspetti qualitativi desiderati nell’ambito della particolare applicazione, deve essere tale che ogni<br />

funzione sia in<strong>di</strong>viduata da n +1 parametri reali.<br />

In questo modo, si può sperare che il problema del’interpolazione sia ben posto in questa classe.<br />

L’interpolazione polinomiale.<br />

Una classe molto usata per l’interpolazione e’ quella dei polinomi �. Si tratta <strong>di</strong> <strong>funzioni</strong><br />

derivabili quante volte si voglia, e quando l’or<strong>di</strong>ne <strong>di</strong> derivazione supera il grado del polinomio, la<br />

derivata e’ identicamente nulla. <strong>Il</strong> grande <strong>di</strong>fetto sta nel fatto che al crescere del grado sono <strong>funzioni</strong><br />

eccessivamente oscillanti e, da ciò sono nate le interpolazioni con <strong>funzioni</strong> “spline”, cioè <strong>funzioni</strong><br />

polinomiali a tratti.


Noi ci limiteremo a trattare dell’interpolazione polinomiale, mostrando, con degli esempi, vantaggi<br />

e svantaggi.<br />

La classe dei polinomi <strong>di</strong> grado n sarà denotate con �n, e un generico polinomio p <strong>di</strong> grado n sarà<br />

scritto come<br />

p(x) = a0 + a1x + a2x 2 + …anx n<br />

Se an = 0, il polinomio degenera in <strong>uno</strong> <strong>di</strong> grado inferiore, cioè �n-1 � �n. In sostanza la precedente<br />

scrittura sta a denotare un polinomio <strong>di</strong> grado al più n. Se an ≠ 0, si tratta <strong>di</strong> un polinomio <strong>di</strong> grado<br />

esattamente n<br />

Questa forma vuol <strong>di</strong>re e’ stata usata la base delle potenze<br />

1, x, x 2 , ….x n<br />

per rappresentare p, cioè ogni polinomio p ��n, è una combinazione lineare delle potenze. Si tratta<br />

<strong>di</strong> una base, perché questa combinazione lineare è unica. Ma e’ evidente che p può anche<br />

rappresentarsi me<strong>di</strong>ante altre basi. Un esempio e’ una qualsiasi sequenza<br />

p0, p1, ….pn,<br />

dove p0 e’ una costante non nulla ( polinomio <strong>di</strong> grado esattamente zero), p1 e’ un polinomio <strong>di</strong><br />

grado esattamente <strong>uno</strong>, … pk e’ un polinomio <strong>di</strong> grado esattamente k , …, pn è un polinomio <strong>di</strong><br />

grado esattamente n. Se questa ( come lo è) è una base, vuol <strong>di</strong>re che ogni polinomio p <strong>di</strong> grado al<br />

più n, si scrive in modo unico ( con unici coefficienti ci),<br />

p(x) = c0p0(x) + c1p1(x) + …cnpn(x)<br />

Una sequenza che incontreremo più avanti e’ costituita tutta da polinomi <strong>di</strong> grado esattamente n. La<br />

classe �n e’ una classe lineare a n+1 gra<strong>di</strong> <strong>di</strong> libertà ed è quin<strong>di</strong> can<strong>di</strong>data all’interpolazione <strong>di</strong> n+1<br />

coppie con no<strong>di</strong> <strong>di</strong>stinti.<br />

Vale il fondamentale<br />

Teorema ( dell’interpolazione polinomiale).<br />

Assegnati n+1 no<strong>di</strong> <strong>di</strong>stinti x0, …xn, per ogni scelta delle or<strong>di</strong>nate y0, …yn, esiste un solo<br />

polinomio p � �n tale che<br />

p(xi) = yi, i = 0,…n.<br />

•<br />

La veri<strong>di</strong>cità <strong>di</strong> questo teorema nasce dal fatto che �n è <strong>uno</strong> spazio lineare a n+1 <strong>di</strong>mensioni ( come<br />

R n+1 ). D’altra parte quando si scrivono le con<strong>di</strong>zioni <strong>di</strong> interpolazione si viene a formare un sistema<br />

lineare <strong>di</strong> n+1 equazioni in n+1 incognite, che si <strong>di</strong>mostra essere non singolare.<br />

Esempio.<br />

Siano assegnate le ascisse -1, 0, 1 e si cerchi il polinomio <strong>di</strong> secondo grado interpolante<br />

questi tre no<strong>di</strong>, con or<strong>di</strong>nate rispettivamente 1, 1, -1.<br />

Se p(x) = a+bx + cx 2 è un generico polinomio <strong>di</strong> secondo grado, le con<strong>di</strong>zioni <strong>di</strong> interpolazione si<br />

scrivono<br />

a –b + c = 1<br />

a = 1<br />

a + b + c = -1<br />

Risolvendo il sistema si trae<br />

p(x) = 1 – x – x 2<br />

•<br />

Se, si facesse riferimento a un modello non lineare , per esempio alla classe <strong>di</strong> <strong>funzioni</strong> a tre<br />

parametri Ae Bx + C, si avrebbe il sistema non lineare<br />

Ae -B + C = 1<br />

A + C = 1<br />

Ae B + C = -1<br />

Si vede che questo sistema non ammette soluzione. Pertanto il problema <strong>di</strong> interpolazione non è<br />

ben posto in questa classe.<br />

Se si volesse risolvere il problema <strong>di</strong> interpolazione con i meto<strong>di</strong> Gaussiani, occorrerebbero come<br />

e’ noto


O(2(n+1) 3 /3) flop<br />

e questo e’ un costo troppo oneroso per un semplice problema <strong>di</strong> interpolazione. Inoltre per gran<strong>di</strong><br />

valori <strong>di</strong> n la matrice dei coefficienti è mal con<strong>di</strong>zionata. Vale a <strong>di</strong>re che una piccola perturbazione<br />

<strong>di</strong> qualche coefficiente, produce una grossa perturbazione sulla soluzione del sistema. In questo<br />

caso anche i meto<strong>di</strong> gaussiani con la ricerca del pivot si mostrano inefficaci.<br />

I polinomi fondamentali <strong>di</strong> Lagrange.<br />

Un modo molto elegante e produttivo per costruire<br />

l’interpolazione polinomiale passa attraverso i famosi polinomi fondamentali <strong>di</strong> Lagrange.<br />

Assegnati n+1 no<strong>di</strong> <strong>di</strong>stinti xi, i =0, …n, il k-esimo polinomio fondamentale <strong>di</strong> Lagrange, e’ il<br />

polinomio <strong>di</strong> grado n, Lk(x) che interpola le coppie (xi,yi), i = 0, …n, dove le or<strong>di</strong>nate sono<br />

y0 = 0, …yk-1 = 0, yk = 1, yk+1 = 0, ….yn = 0.<br />

Vale a <strong>di</strong>re<br />

Lk(xi) = �ik, i =0, …n, k = 0, …n<br />

dove il simbolo <strong>di</strong> Kronecher �ik e’ definito come<br />

�1<br />

i � k<br />

δik � �<br />

�0<br />

i � k<br />

Quin<strong>di</strong> ogni Lk(x) e’ un polinomio <strong>di</strong> grado n tale che<br />

Lk(xk) =1, Lk(xi) = 0, i � k.<br />

Ogni Lk deve avere gli n zeri xi, i � k, ed essendo <strong>di</strong> grado n ha la forma<br />

Lk(x)=Ak(x-x0)…(x-xk1)(x-xk+1)…(x-xn).<br />

Se si impone<br />

Lk(xk) = 1,<br />

si trae<br />

1<br />

Ak<br />

�<br />

(xk<br />

� x0<br />

)...(xk<br />

� xk�1<br />

)(xk<br />

� xk�1<br />

)...(xk<br />

� xn<br />

)<br />

In definitiva<br />

(x � x0<br />

)...(x � xk�1<br />

)(x � xk�1<br />

)...(x � xn<br />

)<br />

Lk(x)<br />

�<br />

,<br />

(xk<br />

� x0<br />

)...(xk<br />

� xk�1<br />

)(xk<br />

� xk�1<br />

)...(xk<br />

� xn<br />

)<br />

k = 0, …n.<br />

I polinomi fondamentali <strong>di</strong> Lagrange sono tanti, quanti sono i no<strong>di</strong>, e sono tutti <strong>di</strong> grado esattamente<br />

n in quanto il primo coefficiente è esattamente Ak � 0. <strong>Il</strong> denominatore e’ un numero che è il<br />

valore del numeratore in xk.<br />

Per esempio, se n =1,<br />

si ha<br />

(x � x1<br />

) (x � x0<br />

)<br />

L0(x)<br />

� , L1(x)<br />

�<br />

(x0<br />

� x1<br />

) (x1<br />

� x0<br />

)<br />

entrambi <strong>di</strong> primo grado, e se n = 2,<br />

(x � x1<br />

)(x � x2<br />

) (x � x0<br />

)(x � x2<br />

)<br />

L0(x)<br />

�<br />

, L1(x)<br />

�<br />

,<br />

(x � x )(x � x ) (x � x )(x � x )<br />

(x � x0<br />

)(x � x1<br />

)<br />

L2(x)<br />

�<br />

(x2<br />

� x0<br />

)(x2<br />

� x1<br />

)<br />

tutti e tre <strong>di</strong> secondo grado. Se n = 3,<br />

0<br />

1<br />

0<br />

2


O(2(n+1) 3 /3) flop<br />

e questo e’ un costo troppo oneroso per un semplice problema <strong>di</strong> interpolazione. Inoltre per gran<strong>di</strong><br />

valori <strong>di</strong> n la matrice dei coefficienti è mal con<strong>di</strong>zionata. Vale a <strong>di</strong>re che una piccola perturbazione<br />

<strong>di</strong> qualche coefficiente, produce una grossa perturbazione sulla soluzione del sistema. In questo<br />

caso anche i meto<strong>di</strong> gaussiani con la ricerca del pivot si mostrano inefficaci.<br />

I polinomi fondamentali <strong>di</strong> Lagrange.<br />

Un modo molto elegante e produttivo per costruire<br />

l’interpolazione polinomiale passa attraverso i famosi polinomi fondamentali <strong>di</strong> Lagrange.<br />

Assegnati n+1 no<strong>di</strong> <strong>di</strong>stinti xi, i =0, …n, il k-esimo polinomio fondamentale <strong>di</strong> Lagrange, e’ il<br />

polinomio <strong>di</strong> grado n, Lk(x) che interpola le coppie (xi,yi), i = 0, …n, dove le or<strong>di</strong>nate sono<br />

y0 = 0, …yk-1 = 0, yk = 1, yk+1 = 0, ….yn = 0.<br />

Vale a <strong>di</strong>re<br />

Lk(xi) = �ik, i =0, …n, k = 0, …n<br />

dove il simbolo <strong>di</strong> Kronecher �ik e’ definito come<br />

�1<br />

i � k<br />

δik � �<br />

�0<br />

i � k<br />

Quin<strong>di</strong> ogni Lk(x) e’ un polinomio <strong>di</strong> grado n tale che<br />

Lk(xk) =1, Lk(xi) = 0, i � k.<br />

Ogni Lk deve avere gli n zeri xi, i � k, ed essendo <strong>di</strong> grado n ha la forma<br />

Lk(x)=Ak(x-x0)…(x-xk1)(x-xk+1)…(x-xn).<br />

Se si impone<br />

Lk(xk) = 1,<br />

si trae<br />

1<br />

Ak<br />

�<br />

(xk<br />

� x0<br />

)...(xk<br />

� xk�1<br />

)(xk<br />

� xk�1<br />

)...(xk<br />

� xn<br />

)<br />

In definitiva<br />

(x � x0<br />

)...(x � xk�1<br />

)(x � xk�1<br />

)...(x � xn<br />

)<br />

Lk(x)<br />

�<br />

,<br />

(xk<br />

� x0<br />

)...(xk<br />

� xk�1<br />

)(xk<br />

� xk�1<br />

)...(xk<br />

� xn<br />

)<br />

k = 0, …n.<br />

I polinomi fondamentali <strong>di</strong> Lagrange sono tanti, quanti sono i no<strong>di</strong>, e sono tutti <strong>di</strong> grado esattamente<br />

n in quanto il primo coefficiente è esattamente Ak � 0. <strong>Il</strong> denominatore e’ un numero che è il<br />

valore del numeratore in xk.<br />

Per esempio, se n =1,<br />

si ha<br />

(x � x1<br />

) (x � x0<br />

)<br />

L0(x)<br />

� , L1(x)<br />

�<br />

(x0<br />

� x1<br />

) (x1<br />

� x0<br />

)<br />

entrambi <strong>di</strong> primo grado, e se n = 2,<br />

(x � x1<br />

)(x � x2<br />

) (x � x0<br />

)(x � x2<br />

)<br />

L0(x)<br />

�<br />

, L1(x)<br />

�<br />

,<br />

(x � x )(x � x ) (x � x )(x � x )<br />

(x � x0<br />

)(x � x1<br />

)<br />

L2(x)<br />

�<br />

(x2<br />

� x0<br />

)(x2<br />

� x1<br />

)<br />

tutti e tre <strong>di</strong> secondo grado. Se n = 3,<br />

0<br />

1<br />

0<br />

2


p(x),( in questi ambiti, <strong>di</strong> solito, si fa riferimento all’errore assoluto piuttosto che a quello relativo).<br />

L’errore <strong>di</strong> troncamento viene detto resto e si scrive<br />

R(x) = f(x) – p(x)<br />

E’ evidente che il resto si annulla in tutti i no<strong>di</strong> xi, i =0, …n, e conviene allora introdurre il classico<br />

polinomio <strong>di</strong> grado esattamente n+1<br />

�(x) = (x – x0)(x – x1)…(x – xn)<br />

che ha come zeri tutti i no<strong>di</strong> xi, i =0, …n.<br />

Risulta �(x) = x n+1 + …, , cioè, �(x) e’ un polinomio <strong>di</strong> grado n+1 monico, che significa con<br />

coefficiente della potenza più elevata pari a 1.<br />

Allora, <strong>di</strong>venta naturale porre<br />

R(x) = �(x)�(x) , � x � [a b],<br />

cercando, successivamente, <strong>di</strong> rappresentare la funzione �(x). Vale il<br />

Teorema<br />

Se f possiede n+1 derivate con derivata (n+1)-esima continua in [a b], allora per ogni x in [a<br />

b], x � xi, i = 0, …n, esiste un �x ( <strong>di</strong>pendente anche dai no<strong>di</strong>) in [a b] tale che<br />

(n�1<br />

)<br />

f (ξx<br />

)<br />

λ(x) �<br />

(n �1)!<br />

Senza fare riferimento esplicito alla funzione �(x), tutti i risultati finora illustrati si riassumono nel<br />

Teorema<br />

Se f e’ definita in [ a b] e xi, i = 0,…n sono n+1 no<strong>di</strong> <strong>di</strong>stinti in [a b], esiste un solo<br />

polinomio <strong>di</strong> grado al più n ( polinomio interpolante ) tale che<br />

p(xi)) = f(xi), i =0, …n<br />

e, se f �C (n+1) [a b], per ogni x � [a b], esiste �x � [a b],<br />

tale che<br />

(n�1<br />

)<br />

f (ξx<br />

)<br />

f(x) � p(x) � ω(x)<br />

(n �1)!<br />

dove<br />

�(x) = (x-x0)…(x-xn).<br />

La formula scritta e’ spesso detta formula <strong>di</strong> interpolazione polinomiale, e l’espressione a destra<br />

dopo p(x) viene detta formula del resto nell’interpolazione polinomiale. Non abbiamo scritto<br />

l’espressione formale <strong>di</strong> p(x), perche l’unico polinomio interpolante, può essere messo anche in<br />

forme <strong>di</strong>verse da quella che usa i polinomi fondamentali <strong>di</strong> Lagrange. Una <strong>di</strong> queste forme e’<br />

quella che usa le classiche <strong>di</strong>fferenze <strong>di</strong>vise che per brevità non trattiamo. Se, al posto <strong>di</strong> p(x) si<br />

scrive la sua espressione con i polinomi fondamentali <strong>di</strong> Lagrange, la formula che si viene a<br />

formare prende il nome <strong>di</strong> formula <strong>di</strong> interpolazione <strong>di</strong> Lagrange.<br />

Da notare che se f è un polinomio <strong>di</strong> grado n, la derivata (n+1)-esima <strong>di</strong> f è identicamente nulla.<br />

Allora dalla espressione del resto si ottiene che il polinomio interpolante è la f stessa, come già si<br />

sapeva.<br />

Maggiorazione del resto.<br />

Si può usare la formula del resto per maggiorare l’errore <strong>di</strong> troncamento f(x)-p(x), quando si<br />

vuole approssimare f(x) con p(x), per gli x non coincidenti con i no<strong>di</strong>. Supponiamo <strong>di</strong> conoscere per<br />

la derivata (n+1)-esima <strong>di</strong> f, una costante positiva Mn+1, tale che risulti<br />

|f (n+1) (x) | � Mn+1, � x � [a b].<br />

Tale costante prende il nome <strong>di</strong> maggiorazione della derivata (n+1)-esima, restando sottointeso che<br />

maggiora il<br />

valore assoluto della derivata in ogni x in [a b].<br />

Allora, se p � �n, interpola la funzione f in n+1 no<strong>di</strong> <strong>di</strong>stinti xi, i =0, …n, e Mn+1 e’ una<br />

maggiorazione della derivata (n+1)-esima ( supposta esistente) in [a b], si ha


� �<br />

n�1<br />

�1<br />

M<br />

| �(x)|<br />

f(x) p(x)<br />

(n )!<br />

dove, al solito,<br />

�(x) = (x-x0)…(x-xn).<br />

Negli esempi ed esercizi che an<strong>di</strong>amo a proporre, metteremo come in<strong>di</strong>ce dei polinomi<br />

fondamentali <strong>di</strong> Lagrange, <strong>di</strong>rettamente il valore del nodo ( non x0, x1,..ecc), ricordando che questi<br />

sono tanti quanti sono i no<strong>di</strong>, e che la derivata eventuale da maggiorare ha or<strong>di</strong>ne uguale al numero<br />

dei no<strong>di</strong>. <strong>Il</strong> grado del polinomio interpolante è inferiore <strong>di</strong> una unità al numero dei no<strong>di</strong>, potendo<br />

anche degenerare in un polinomio <strong>di</strong> grado più basso.<br />

Esempi<br />

Noto che f(x) = sinx, è tale che<br />

f(0) = 0, f(�/6) = ½.<br />

Cerchiamo <strong>di</strong> approssimare la funzione f(x) in [0 �/6] con in polinomio <strong>di</strong> primo grado<br />

(interpolazione lineare).<br />

Allora<br />

π<br />

x �<br />

x<br />

L 6 6<br />

� 0 6<br />

0 � � � x �1,<br />

Lπ/<br />

6 � � x<br />

π π<br />

π<br />

0 �<br />

� 0<br />

π<br />

6<br />

6<br />

Segue che<br />

p(x) =0� L0(x) +1/2 � L�/6(x) = 3x/�<br />

Per esempio, allora,<br />

sin.5 ≈ 3/2� = .4775…, sin1/3 ≈ 1/� = .3183…, ecc.<br />

Per valutare la qualità <strong>di</strong> queste approssimazioni osserviamo che<br />

|f”(x)| � 1,<br />

da cui<br />

π π<br />

(x � 0 )(x � ) ( � x)x<br />

3<br />

sin<br />

6 6<br />

π<br />

x � x �<br />

� , �x<br />

�[<br />

0 ]<br />

π 2<br />

2<br />

6<br />

Allora<br />

|sin1/2 - .4775| < .0059, |sin1/3 - .3183| < .0317, ecc.<br />

In x =1/2, vengono sicuramente catturate due cifre decimali, mentre almeno una cifra e’ presa per x<br />

= 1/3.<br />

Queste maggiorazioni si ottengono, evidentemente, sostituendo ½ e 1/3 a destra della<br />

<strong>di</strong>suguaglianza.<br />

Osserviamo che i valori veri sono<br />

sin1/2 = .4794…, e sin1/3 = .3272..<br />

•<br />

Se, invece, vogliamo una maggiorazione globale, che valga per ogni x in [0 �/6] osserviamo che in<br />

�/12, e’ massima la funzione |x(x - �/6)| in tale intervallo, da cui la maggiorazione e’<br />

� 2 /288 = .0343<br />

Questa è una maggiorazione più grande, perché vale per ogni x in [0 π/6] avendo maggiorato | �(x)<br />

| con il suo massimo. Per valori più alti <strong>di</strong> n non è imme<strong>di</strong>ato trovare il massimo <strong>di</strong> | �(x) | e una<br />

eventuale maggiorazione non stretta rischia <strong>di</strong> maggiorare gli errori assoluti in modo eccessivo. Ma<br />

la funzione | �(x) | è calcolabile in quanti punti si voglia e, pertanto, negli esercizi proposti andremo<br />

a maggiorare gli errori assoluti in specificati valori <strong>di</strong> x.


1<br />

0.9<br />

0.8<br />

0.7<br />

0.6<br />

0.5<br />

0.4<br />

0.3<br />

0.2<br />

0.1<br />

0<br />

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1<br />

Supponiamo, ora, che <strong>di</strong> una certa funzione f derivabile tre volte in [-1 1], si sappia che<br />

f(-1) = 1, f(0) = 1, f(1) = 3,<br />

e che si abbia l’ulteriore informazione<br />

|f’’’(x)| � .1, � x � [-1 1].<br />

Allora, con queste tre valori, possiamo costruire il polinomio <strong>di</strong> secondo grado interpolante la<br />

funzione f ( interpolazione quadratica), ed utilizzare tale polinomio per approssimarla nei punti <strong>di</strong> [-<br />

1 1].<br />

Quin<strong>di</strong><br />

2<br />

(x � 0 )(x �1)<br />

x � x<br />

L�1(x)<br />

�<br />

� ,<br />

( �1<br />

� 0 )( �1<br />

�1)<br />

2<br />

(x �(<br />

�1))(x<br />

�1)<br />

L0(x)<br />

�<br />

� 1�<br />

x<br />

( 0 �(<br />

�1))(<br />

0 �1)<br />

2<br />

(x � 0 )(x �(<br />

�1)<br />

) x � x<br />

L1(x)<br />

�<br />

�<br />

( 1�<br />

0 )( 1�<br />

( �1)<br />

) 2<br />

Pertanto<br />

p(x) = 1 � L-1(x) + 1 � L0(x) + 3 � L1(x) = x 2 + x + 1<br />

A posteriori verifichiamo che si tratti del polinomio interpolante osservando che le con<strong>di</strong>zioni <strong>di</strong><br />

interpolazione sono sod<strong>di</strong>sfatte ( grado secondo, p(0)=1, p(-1) = 1, p(1) = 3).<br />

Allora, per esempio,<br />

f(1/2) ≈ p(1/2) = 7/4, f(-1/2) ≈ p(-1/2) = ¾, ecc.<br />

Per valutare queste approssimazioni, consideriamo la maggiorazione del resto in una formula <strong>di</strong><br />

interpolazione che, in questo caso, <strong>di</strong>venta,<br />

2<br />

|x(x �1)(x<br />

�1)<br />

| x | ( 1�<br />

x )<br />

|f(x) � p(x)| �<br />

�.<br />

1 �<br />

3!<br />

60<br />

Si trova<br />

|f(1/2) - 7/4| < 1/160 = .0063<br />

|f(-1/2) – ¾ | < 1/160 = .0063<br />

L’approssimazione è corretta ad almeno due cifre decimali.<br />

Una certa funzione f sia tale che<br />

f(-1) = 2, f(0) = 1, f(1) = 2, f(3) = 10.<br />

2<br />

,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!