En ocasiones necesitamos calcular el valor de una función en varios puntos pero
Es en estos casos cuando la técnica de interpolación se hace útil. En interpolación utilizamos los datos (valor, derivada) de nuestra función en varios puntos de la función a aproximar y construímos una nueva función. Ejemplos de tipos de funciones que se emplean para construir estas nuevas funciones aproximadas son los polinomios y las funciones trigonométricas.
Vamos a ver:
En este tipo de interpolación disponemos como datos de:
Y buscamos un polinomio que pase por todos estos puntos. Esta puede ser toda la información que tengamos de $f$ y no necesariamente existe una expresión analítica de $f.$
Por ejemplo, sean los puntos
Buscamos un polinomio que pase por todos estos puntos
En el ejemplo del gráfico anterior, como tenemos $5$ puntos podemos plantear $5$ ecuaciones y necesitamos $5$ incógnitas que serán los coeficientes del polinomio. Por lo tanto:
$$P_4(x)=a_0+a_1x+a_2x^2+a_3x^3+a_4x^4$$es decir $a_0,$ $a_1,$ $a_2,$ $a_3$ y $a_4$ son las $5$ incógnitas y el polinomio es, en principio, de grado $4$. En general, para los puntos $(x_0,y_0),(x_1,y_1),\ldots,(x_n,y_n)$ el polinomio interpolante será de grado $\leq n$.
Las ecuaciones serían:
$$ \begin{array}{lll} P_{4}(x_{0})=y_{0} & \quad & a_{0}+a_{1}x_{0}+a_{2}x_{0}^{2}+a_{3}x_{0}^{3}+a_{4}x_{0}^{4}=y_{0}\\ P_{4}(x_{1})=y_{1} & \quad & a_{0}+a_{1}x_{1}+a_{2}x_{1}^{2}+a_{3}x_{1}^{3}+a_{4}x_{1}^{4}=y_{1}\\ P_{4}(x_{2})=y_{2} & \quad & a_{0}+a_{1}x_{2}+a_{2}x_{2}^{2}+a_{3}x_{2}^{3}+a_{4}x_{2}^{4}=y_{2}\\ P_{4}(x_{3})=y_{3} & \quad & a_{0}+a_{1}x_{3}+a_{2}x_{3}^{2}+a_{3}x_{3}^{3}+a_{4}x_{3}^{4}=y_{3}\\ P_{4}(x_{4})=y_{4} & \quad & a_{0}+a_{1}x_{4}+a_{2}x_{4}^{2}+a_{3}x_{4}^{3}+a_{4}x_{4}^{4}=y_{4} \end{array} $$Y el sistema a resolver es:
$$ \left(\begin{array}{ccccc} 1 & x_{0} & x_{0}^{2} & x_{0}^{3} & x_{0}^{4}\\ 1 & x_{1} & x_{1}^{2} & x_{1}^{3} & x_{1}^{4}\\ 1 & x_{2} & x_{2}^{2} & x_{2}^{3} & x_{2}^{4}\\ 1 & x_{3} & x_{3}^{2} & x_{3}^{3} & x_{3}^{4}\\ 1 & x_{4} & x_{4}^{2} & x_{4}^{3} & x_{4}^{4} \end{array}\right)\left(\begin{array}{c} a_{0}\\ a_{1}\\ a_{2}\\ a_{3}\\ a_{4} \end{array}\right)=\left(\begin{array}{c} y_{0}\\ y_{1}\\ y_{2}\\ y_{3}\\ y_{4} \end{array}\right) $$La matriz de coeficientes del sistema se llama Matriz de Vandermonde y su determinante es
es decir
que es distinto de cero si no hay dos $x_i$ iguales. Y en este caso, la solución del sistema existe y es única porque es un sistema determinado.
En el ejemplo anterior los puntos $(x_k,y_k),$ con $y_k = f(x_k)$ son
El sistema a resolver es:
$$ \left(\begin{array}{ccccc} 1 & x_{0} & x_{0}^{2} & x_{0}^{3} & x_{0}^{4}\\ 1 & x_{1} & x_{1}^{2} & x_{1}^{3} & x_{1}^{4}\\ 1 & x_{2} & x_{2}^{2} & x_{2}^{3} & x_{2}^{4}\\ 1 & x_{3} & x_{3}^{2} & x_{3}^{3} & x_{3}^{4}\\ 1 & x_{4} & x_{4}^{2} & x_{4}^{3} & x_{4}^{4} \end{array}\right)\left(\begin{array}{c} a_{0}\\ a_{1}\\ a_{2}\\ a_{3}\\ a_{4} \end{array}\right)=\left(\begin{array}{c} y_{0}\\ y_{1}\\ y_{2}\\ y_{3}\\ y_{4} \end{array}\right) $$$$ \left(\begin{array}{ccccc} 1 & 1 & 1 & 1 & 1\\ 1 & 2 & 4 & 8 & 16\\ 1 & 3 & 9 & 27 & 81\\ 1 & 4 & 16 & 64 & 256\\ 1 & 5 & 25 & 125 & 625 \end{array}\right)\left(\begin{array}{c} a_{0}\\ a_{1}\\ a_{2}\\ a_{3}\\ a_{4} \end{array}\right)=\left(\begin{array}{c} 1\\ 2\\ 4\\ 3\\ 5 \end{array}\right) $$Como tenemos 5 nodos distintos el determinante no se anula
Y, resolviendo el sistema, el polinomio interpolador de Lagrange es
Una forma de obtener el polinomio interpolador de Lagrange es resolver el sistema anterior. Pero este sistema está mal condicionado (pequeñas errores en los datos pueden producir grandes errores en los resultados) y es comparativamente costoso.
Vamos a ver dos formas alternativas de calcular el polinomio interpolador de Lagrange:
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)$
Los polinomios fundamentales de lagrange tienen un valor 0 en todos los nodos excepto en uno de ellos, donde vale 1. Hay tantos polinomios fundamentales de Lagrange como nodos y los llamaremos $L_0(x),$ $L_1(x),$ $L_2(x)$ y $L_3(x).$
Veamos como se construyen. Primero hacemos que los polinomios valgan cero en todos los nodos de interpolación menos en uno y tendremos
Los nodos son
Y un polinomio que es cero en los tres últimos los nodos es
Si dividimos este polinomio por $l_0(x_0)$
Estamos omitiendo en el numerador y el denominador el término en $x_0,$ que es $(x-x_0)$ y
es decir
Los nodos son
Y un polinomio que es cero en los tres últimos los nodos es
Si dividimos este polinomio por $l_1(x_1)$
Estamos omitiendo en el numerador y el denominador el término en $x_1,$ que es $(x-x_1)$ y tenemos que
es decir
Los nodos son
Y un polinomio que es cero en todos los nodos menos el tercero es
Si dividimos este polinomio por $l_2(x_2)$
Estamos omitiendo en el numerador y el denominador el término en $x_2,$ que es $(x-x_2)$ y
es decir
Los nodos son
Y un polinomio que es cero en todos los nodos menos el último es
Si dividimos este polinomio por $l_3(x_3)$
Estamos omitiendo en el numerador y el denominador el término en $x_3,$ que es $(x-x_3)$ y
es decir
Ya hemos visto los polinomios fundamentales de Lagrange para nuestros nodos (4 nodos, 4 polinomios fundamentales). En general, para $x_0,$ $x_1,\ldots, x_n$ nodos tenemos $n+1$ polinomios fundamentales de Lagrange que son
o expresado con productorios
Estos polinomios verifican
El polinomio interpolante es de la forma
Los polinomios fundamentales de Lagrange se construyen solo con los nodos. Pero ahora, para calcular el polinomio de interpolación $P_3(x)$ necesitamos los valores de la función en los nodos
Y teniendo en cuenta los polinomios fundamentales de Lagrange que calculamos arriba, el polinomio de interpolación es
El polinomio de interpolación, para un caso general, donde tenemos $n+1$ nodos $x_0,$ $x_1,\ldots, x_n$ será de la forma
donde $P_n(x)$ es un polinomio de grado menor o igual que $n.$
Sustituyendo $x=2$ en las expresiones que calculamos para los polinomios fundamentales de Lagrange
El error de interpolación viene dado por
donde las $x_{i}$ son los puntos de interpolación y $c$ un punto del intervalo de interpolación. En este caso, como tenemos cuatro nodos de interpolación
Como $c$ es desconocido, aunque sabemos que está en el intervalo de interpolación, en nuestro caso $c\in\left(-1,5\right)$, tenemos que encontrar una cota para ese valor
Y como $$\left|\mathrm{sen}\left(\dfrac{\pi}{6}x\right)\right|\le 1$$
Entonces $$\left|f^{(4)}(c)\right|\le \frac{\pi^4}{6^4}(1)=\frac{\pi^4}{6^4}$$
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$
¿Cómo se evalua el buen o mal condicionamiento de la matriz de coeficientes? Con el número de condición
El número de condición es siempre mayor que uno, pero cuanto más próximo a uno, mejor condicionada está la matriz y viceversa. En este ejemplo de la matriz de Vandermonde $\mathrm{cond}(A)=26170.$