L’interpolazione di Newton Si tratta di un metodo numerico di approssimazione di una funzione nel suo andamento generale mediante particolari polinomi interpolatori. Esso appartiene pertanto alla famiglia dei metodi di approssimazione a carattere globale, a differenza di altri metodi che permettono di calcolare il valore approssimato di una funzione in un intorno di un punto prefissato e che, quindi, hanno una carattere di approssimazione locale (per esempio, lo sviluppo in serie di Taylor di una funzione in un punto). In particolare, l’interpolazione di Newton è un metodo di interpolazione polinomiale che determina l’unica funzione polinomiale di grado n, detta polinomio interpolatore, passante per gli n+1 punti (detti poli, o nodi) di una funzione f(x). La funzione polinomiale interpolatrice di grado n è del tipo: pn(x) = b0 + b1(x – x0) + b1(x – x0)(x – x1) + … + bn(x – x0)(x – x1)∙…∙(x – xn) Per calcolare i coefficienti bi si introducono le differenze finite divise, utilizzando i poli x0, x1, …, xn (si suppone che gli n+1 poli siano distinti). Con la notazione fk[xi,…,xi+k] si indica la differenza finita di ordine k relativa ai poli xi, …, xi+k. La costruzione delle differenze finite è ricorsiva: infatti per definizione la prima differenza divisa tra x0 e x1 è f x1 f x 0 f1 x 0 , x1 ; x1 x 0 la seconda differenza divisa è f x 2 f x1 f x1 f x0 f x1 , x 2 f x0 , x1 x 2 x1 x1 x0 ; f 2 x0 , x1 , x 2 x 2 x0 x 2 x0 la terza differenza divisa è f x1 , x 2 , x3 f x 0 , x1 , x 2 f 2 x 0 , x1 , x 2 , x3 , e così via. x3 x 0 Le formule per le differenze finite sono in qualche misura simili a quelle del calcolo infinitesimale e possono essere usate per approssimare le derivate; valgono inoltre le seguenti proprietà per le differenze divise di ordine n: sono nulle se la funzione è costante; godono della proprietà di linearità: f[c1u + c2v] = c1f[u] + c2f[v], dove u e v sono due funzioni e c1, c2 due costanti; se relative a un polinomio di grado n sono costanti e, dall’ordine n+1 in poi, sono tutte nulle. La più semplice procedura di interpolazione consiste nell’unire due soli punti con una retta. L’uguaglianza tra i coefficienti angolari delle rispettive direzioni tra i punti (x0, f(x0)) e (x, f(x)) e tra i punti (x0, f(x0)) e (x1, f(x1)) f x f x 0 f x1 f x 0 x x0 x1 x 0 permette di ricavare i coefficienti del polinomio interpolatore di Newton del primo ordine: f ( x1 ) f ( x0 ) p1 ( x) b0 b1 ( x x 0 ) f ( x 0 ) ( x x0 ) x1 x 0 Si ottiene così una formula per l’interpolazione lineare, essendo in questo caso il polinomio di Newton di primo grado. Il coefficiente b0 è uguale a f(x0) e il coefficiente b1 è la prima differenza divisa tra x1 e x0. Se x = x0 allora p1(x) = f(x1). Generalmente l’interpolazione è tanto più precisa quanto minore è la distanza tra due punti. L’interpolazione lineare è tuttavia poco precisa e può portare a errori consistenti, poiché si basa sull’approssimazione di una linea generalmente curva con un segmento. Una funzione interpolatrice non lineare può dare stime migliori. Se sono noti tre punti della funzione che si vuole interpolare, si può costruire un polinomio di Newton del secondo ordine: p2(x) = b0 + b1(x – x0) + b2(x – x0)(x – x1) = = f(x0) + f1[x0,x1](x – x0) + f1[x0,x1,x2](x – x0)(x – x1) Come nel caso dell’interpolazione lineare, b1 rappresenta l’inclinazione della retta che congiunge i punti di rispettive ascisse x0 e x1. I primi due termini del polinomio di Newton del secondo ordine equivalgono quindi a un’interpolazione lineare. L’ultimo termine b2(xx0)(xx1) introduce in più una curvatura di secondo grado. In particolare, la seconda differenza b2 rappresenta proprio la concavità della parabola che approssima la curva. Il metodo di interpolazione di Newton viene generalizzato considerando la funzione polinomiale interpolante di ordine ennesimo: f(x0) + f1[x0,x1](x – x0) + f1[x0,x1,x2](x – x0)(x – x1) + … + fn[x0,x1,…,xn](x – x0)(x – x1)∙…∙(x – xn–1). Va sottolineato che non è necessario che i punti utilizzati per l’interpolazione siano equidistanti né che le loro ascisse siano in ordine crescente. L’espressione del polinomio di Newton richiama quella del polinomio di Taylor. In entrambi i casi l’aggiunta di nuovi termini consente di migliorare l’approssimazione: i coefficienti del polinomio di Newton sono, infatti, differenze finite divise che rappresentano approssimazioni delle derivate di ordine superiore. Come nello sviluppo di Taylor, se la funzione da approssimare è un polinomio di grado n, la formula di Newton di ordine n-esimo, basata su n+1 punti, dà un’approssimazione priva di errore. L’errore, altrimenti detto resto, nell’interpolazione con il polinomio di Newton è definito come la differenza tra funzione da interpolare e polinomio interpolante: e(x) = f(x) – p(x). Si può dimostrare che la sua espressione è: en(x) = f[x0,x1,…,xn–1,xn,x](x – x0)(x – x1)∙… .(x – xn) dove f[x0,x1,…,xn–1,xn,x] è la differenza finita divisa di ordine n+1. Essa contiene però l’incognita f(x) e non può essere ancora utilizzata per calcolare l’errore; se però si dispone di un ulteriore punto f(xn+1) diventa possibile effettuarne una stima: en = f[x0,x1,…,xn–1,xn,xn+1](x – x0)(x – x1)∙… .(x – xn) I vantaggi dell’interpolazione con il polinomio di Newton si possono così riassumere: a) il polinomio di Newton di ordine n+1 si costruisce facilmente aggiungendo un termine al polinomio di ordine n; quindi se non è stabilito a priori l’ordine del polinomio interpolatore, si possono aggiungere termini ottenendo un grado di precisione ottimale, minimizzando l’errore, e determinare quando l’aggiunta di nuovi termini non migliora significativamente la stima; b) anche le differenze finite divise si calcolano utilizzando un metodo iterativo, poiché quelle di ordine inferiore si utilizzano per calcolare quelle di ordine superiore; c) la stima dell’errore è espressa in termini di differenze finite divise e quindi si effettua utilizzando le differenze gia calcolate per lo sviluppo del polinomio interpolatore. Infine, nel caso di intervallo costante h tra i valori xi le differenze finite si riducono ai soli numeratori delle differenze finite divise, poiché in tal caso il polinomio di Newton assume la forma: y 2 y 0 n y 0 x x0 x x1 ...x x n1 p n ( x) y 0 0 x x0 x x x x ... 0 1 h 2h 2 n! h n dove yn = f(xn) e n n n y n ( 1) i f xi . i i 0