Ya hemos visto como se construye el polinomio de interpolación de Lagrange. ¿Cómo podría mejorarse el resultado? Es decir, ¿cómo conseguir que el error sea más pequeño? ¿Añadiendo nodos? El problema es que si aumentamos el número de nodos, aumenta el grado del polinomio de interpolación. Y los polinomios de grados altos pueden dar errores muy grandes debido a grandes oscilaciones.
Por ejemplo, en el ejemplo siguiente, interpolamos la función $$f(x) = \frac{1}{1+25x^2}$$ con $11$ nodos equiespaciados en el intervalo $[-1,1]$ y el error relativo en puntos cercanos a los extremos es enorme.
Por esta razón no se suelen emplear polinomios de interpolación de grados altos. Una solución es usar los nodos de Chebysev, que son las raíces del polinomio de Chebysev (están en el intervalo $[-1,1]$ pero con una transformación lineal se pueden obtener para cualquier intervalo cerrado).
El problema es que no siempre podemos elegir los nodos.
La solución más comunmente utilizada es la interpolación a trozos. Se divide el intervalo en subintervalos y en cada uno de ellos se interpola con un polinomio de grado 1, 2 ó 3. En la práctica lo más común es
Dados los nodos $x_{0}=-1,$ $x_{1}=1,$ $x_{2}=3$ y $x_{3}=5$ y la función $$f\left(x\right)=\mathrm{sen}\left(\dfrac{\pi}{6}x\right)$$
La interpolación lineal a trozos consiste en unir los nodos con segmentos de recta y aproximar el valor de la función con su valor sobre estas rectas.
Queremos aproximar la función en $x=2.$ Primero tenemos que escoger los nodos que usaremos para nuestro segmento de recta. Tomaremos los dos nodos más próximos a este valor que son $1$ y $3.$ A partir de ahora nos olvidamos de los otros nodos y renombramos estos nodos como
El valor de la función en estos nodos es
Podemos interpolar utilizando la forma de Lagrange y entonces el polinomio de interpolación lineal en el intervalo $[1,3]$ tiene la forma
Y el valor en $x=2$ es
La tabla de diferencias divididas es
Y el polinomio de interpolación en la forma de Newton
Y el valor en $x=2$ es
El error de interpolación viene dado por la fórmula
que es la misma que en la interpolación Lagrangiana puesto que si solo consideramos el intervalo $[1,3]$ y que usamos solo dos nodos, es interpolación lagrangiana. Para dos nodos, esta fórmula es
El valor $c$ es desconocido, aunque sabemos que está en el intervalo de interpolación, en nuestro caso $c\in\left(1,3\right)$, y tenemos que encontrar una cota para ese valor. Calculamos la derivada segunda de nuestra función
Cuando $c\in(1,3)$ el valor de $$\dfrac{\pi}{6} c\in \left(\dfrac{\pi}{6}(1) , \dfrac{\pi}{6}(3)\right) = \left(\dfrac{\pi}{6} , \dfrac{\pi}{2}\right) = (30^o,90^o)$$
Y como la función seno toma el valor máximo para $90^o$ $$\left|\mathrm{sen}\left(\dfrac{\pi}{6}c\right)\right|\lt 1$$
Entonces $$\left|f''(c)\right|\lt \frac{\pi^2}{6^2}$$
Y por lo tanto podemos dar como cota del error
Como $f(2)=\mathrm{sen}\left(\dfrac{\pi}{6}(2)\right)=\mathrm{sen}\left(\dfrac{\pi}{3}\right)=0.86603$
Vemos que
¿Podemos mejorar este resultado? Sí, aumentando el número de nodos. Por ejemplo, si en lugar de 4 nodos equiespaciados usamos 8 nodos equiespaciados el resultado de la interpolación lineal, gráficamente, será
Comparemos ahora, para el mismo número de nodos, la interpolación con polinomio de grado alto y la interpolación lineal a trozos. Vemos como, en general, es mejor la interpolación lineal a trozos.