El principal problema del método de Lagrange es que, si después de calcular el polinomio interpolador, queremos añadir un nuevo dato, tenemos que empezar con el método desde el principio, sin poder aprovechar ningún cálculo. El método que presentamos a continuación, el método de Newton o de diferencias divididas, aprovechará los cálculos anteriores.
Partimos de $$n +1$$ puntos $$(x_k,f_k)$$ y buscamos un polinomio de grado $$n$$ del tipo:
$$$P_n(x)=c_0+c_1\cdot(x-x_0)+c_2\cdot(x-x_0)\cdot (x-x_1)+ \dots +$$$ $$$+ c_n\cdot(x-x_0) \cdots (x-x_{n-1})$$$
Definiendo:
$$f[x_i]=f_i$$
$$f[x_i,x_{i+1},\dots,x_{i+j},x_{i+j+1}]= \dfrac{f[x_{i+1},\dots,x_{i+j+1}]-f[x_i,\dots,x_{i+j}]}{x_{j+i+1}-x_i}$$
Tenemos que los coeficientes son:
$$c_0=f_0$$
$$c_1=\dfrac{f_1-f_0}{x_1-x_0}=f[x_0,x_1]$$
$$\vdots$$
$$c_k=f[x_0,x_1,\dots,x_k]=\dfrac{f[x_1,\dots,x_k]-f[x_0,x_1,\dots,x_{k-1}]}{x_k-x_0}$$
Obtenemos el polinomio. Usaremos el siguiente esquema para hacerlo más fácil ayudándonos, en cada paso, con un ejemplo.
- Escribimos en una columna las $$x_k$$ y en la de al lado las $$f_k$$:
$$x_0$$ | $$f_0$$ |
$$x_1$$ | $$f_1$$ |
$$x_2$$ | $$f_2$$ |
$$x_3$$ | $$f_3$$ |
Por ejemplo, tomamos los datos en la tabla:
$$0$$ | $$1$$ |
$$0.5$$ | $$1.28$$ |
$$1$$ | $$2.72$$ |
- En una nueva columna calculamos la llamada diferencia dividida de primer orden, $$$ f[x_i,x_j]=\dfrac{f_j-f_i}{x_j-x_i}$$$
$$x_0$$ | $$f_0$$ | |
$$ f[x_0,x_1]$$ | ||
$$x_1$$ | $$f_1$$ | |
$$ f[x_1,x_2]$$ | ||
$$x_2$$ | $$f_2$$ | |
$$f[x_2,x_3]$$ | ||
$$x_3$$ | $$f_3$$ |
En nuestro ejemplo:
$$0$$ | $$1$$ | |
$$ f[0,0.05]=\dfrac{f_1-f_0}{x_1-x_0}= \dfrac{1.28-1}{0.5-0}=0.568$$ | ||
$$0.5$$ | $$1.28$$ | |
$$ f[0.5,1]=\dfrac{f_2-f_1}{x_2-x_1}= \dfrac{2.72-1.28}{1-0.5}=2.867$$ | ||
$$1$$ | $$2.72$$ |
- En una nueva columna calculamos la diferencia dividida de segundo orden, $$$ f[x_i,x_j,x_k]=\dfrac{f[x_j,x_k]-f[x_i,x_j]}{x_k-x_i}$$$
$$x_0$$ | $$f_0$$ | ||
$$ f[x_0,x_1]$$ | |||
$$x_1$$ | $$f_1$$ | $$ f[x_0,x_1,x_2]$$ | |
$$ f[x_1,x_2]$$ | |||
$$x_2$$ | $$f_2$$ | $$ f[x_1,x_2,x_3]$$ | |
$$ f[x_2,x_3]$$ | |||
$$x_3$$ | $$f_3$$ |
En nuestro ejemplo:
$$0$$ | $$1$$ | ||
$$0.568$$ | |||
$$0.5$$ | $$1.28$$ | $$f[x_0,x_1,x_2]=\dfrac{f[x_1,x_2]-f[x_0,x_1]}{x_2-x_0} =\dfrac{2.867-0.568}{1-0}=2.3$$ | |
$$2.867$$ | |||
$$1$$ | $$2.72$$ |
Y seguimos iterando hasta llegar a un único valor, que será $$f[x_0,\dots, x_k]$$.
Entonces, el polinomio tiene por coeficientes el primer elemento de cada columna (excepto el primero, claro).
En nuestro ejemplo el polinomio será: $$$P_2(x)=1+0.568(x-0)+2.3\cdot(x-0)(x-0.5)=1+0.568x+2.3x(x-0.5)$$$
Si, una vez calculado el polinomio, nos dan otro dato, sólo tenemos que añadir una fila en la parte inferior de la tabla e ir calculando las diferencias divididas sucesivas hasta conseguir, como antes, un solo término en la última columna. Con este método aprovecharemos todos los cálculos, pues el polinomio resultante será el anterior añadiéndole un término de grado mayor.