Interpolación polinomial

1. Introducción:

Interpolar es hallar el valor de $y$ para $x'$, estando ésta entre dos valores, $x_1$ y $x_2$, para los que se conoce su valor de $y$. Extrapolar es hallar $y$ para $x''$, estando ésta fuera del intervalo de $x_1$ a $x_2$.

Se puede interpolar linealmente, i.e. una recta entre $(x_1,y_1)$ y $(x_2,y_2)$. Por tanto, se supone un polinomio de primer grado.

La interpolación polinomial no se restringe a una recta, sino que también utiliza curvas, i.e. polinomios de grado $n > 1$.

Aplicaciones de la interpolación polinómica:

  1. Calcular con polinomios, a partir de ellos.
  2. Gráficos.

Ejemplo:

Se pretende hallar el punto de congelación de una mezcla de glicerina + agua, al $\pu{45 \%}$ en peso de la primera, siendo:

$x$ $y$
$\pu{30 \%}$ $\pu{-9,5 ºC}$
$\pu{40 \%}$ $\pu{-15,4 ºC}$
$\pu{50 \%}$ $\pu{-21,9 ºC}$

$x \equiv$ % en peso de glicerina, $y \equiv$ punto de congelación.

Se interpola, para dar una estimación del punto de congelación de la mezcla con $x = \pu{45 \%}$, linealmente y también con un polinomio de segundo grado. Esto es:

1.º Interpolación lineal: $y = ax + b$ Un segmento de línea recta entre dos puntos. Para hallar la ecuación de la recta sólo hay que resolver un sistema de dos ecuaciones y dos incognitas:

$ \smash[t]{ \begin{aligned} \vphantom{-6{,}5 = 10 a} \\[.5ex] -15{,}4 &= 40a + b \\[.5ex] -21{,}9 &= 50a + b \\[.5ex] \hline -6{,}5 &= 10 a \end{aligned} } \biggr\} \Rightarrow \begin{array}[t]{l} a = -0{,}65 \\[.5ex] b = -40a - 15{,}4 = 10{,}6 \end{array} $

Entonces:

$y(45) \approx -0{,}65 \cdot 45 + 10{,}6 = \pu{-18,6 ºC}$

2.º Interpolación cuadrática:

$y = ax^2 + bx + c$   Ecuación de una parábola.

Se unen los tres punto por un arco de parábola. Para hallar la ecuación de la parábola hay que resolver un sistema de tres ecuaciones y tres incognitas:

$ \left. \begin{aligned} -9{,}5 &= 30^2 a + 30 b + c \\[.5ex] -15{,}4 &= 40^2 a + 40 b + c \\[.5ex] -21{,}9 &= 50^2 a + 50 b + c \end{aligned} \, \right\} \Rightarrow \begin{array}[t]{l} a = -0{,}003 \\[1ex] b = -0{,}38 \\[1ex] c = 4{,}6 \end{array} $

Por tanto:

$y(45) \approx -0{,}003 \cdot 45^2 - 0{,}38 \cdot 45 + 4{,}6 = \pu{-18,6 ºC}$

Así que, sucesivamente, para cada nuevo punto, se añadiría una nueva ecuación, siendo ahora de un grado y una incógnita (coeficiente) más, al sistema de ecuaciones, por lo que para cualquier número de puntos se puede tener un polinomio que pase por ellos.


Dados los puntos distintos:

$(x_0,y_0), (x_1,y_1), \dotsc, (x_n,y_n)$

Existe un polinomio $P(x)$, conocido como polinomio interpolador, tal que la curva $y = P(x)$ pasa por todos los puntos.

2. Cálculo del polinomio interpolador:

Dos métodos para calcular directamente el polinomio interpolador:

Método de Lagrange:

Para este método, el polinomio interpolador es:

$P(x) = y_0 l_0(x) + y_1 l_1(x) + \dotsb + y_n l_n(x)$

Donde:

$ l_k(x) = \dfrac{ (x - x_0) \dotsm (x - x_{k-1}) (x - x_{k+1}) \dotsm (x - x_n) }{ (x_k - x_0) \dotsm (x_k - x_{k-1}) (x_k - x_{k+1}) \dotsm (x_k - x_n) }\,, \quad k = 0,1,\dotsc,n $

Siendo:

$ \left. \begin{array}{l} l_k(x_k) = 1 \\[1ex] l_k(x_j) \! \mathrel{\smash{\underset{j \, \neq \, k}{=}}} \! 0 \end{array} \right\} \Rightarrow P(x_k) = y_k $

Por tanto, esto es, el polinomio, es lo que se buscaba, pasa por los puntos.


Ejemplo:

De nuevo, los datos son:

$x$ $y$
$\pu{30 \%}$ $\pu{-9,5 ºC}$
$\pu{40 \%}$ $\pu{-15,4 ºC}$
$\pu{50 \%}$ $\pu{-21,9 ºC}$

Por consiguiente:

$ \begin{array}{l} l_0(x) = \dfrac{(x-40)(x-50)}{(30-40)(30-50)} = \dfrac{1}{200} (x^2 - 90x + 2000) \\[1ex] l_1(x) = \dfrac{(x-30)(x-50)}{(40-30)(40-50)} = \dfrac{-1}{100} (x^2 - 80x + 1500) \\[1ex] l_2(x) = \dfrac{(x-30)(x-40)}{(50-30)(50-40)} = \dfrac{1}{200} (x^2 - 70x + 1200) \end{array} $

Siendo el polinomio interpolador:

$P(x) = -9{,}5 l_0(x) - 15{,}4 l_1(x) - 21{,}9 l_2(x)$

Así pues:

$y(45) \approx P(45) = -9{,}5 l_0(45) - 15{,}4 l_1(45) - 21{,}9 l_2(45) = \pu{-18,6 ºC}$


Método de las diferencias divididas de Newton:

El polinomio interpolador es de la forma:

$P(x) = c_0 + c_1 (x - x_0) + c_2 (x - x_0) (x - x_1) + \dotsb + c_n (x - x_0) \dotsm (x - x_{n-1})$

Siendo así:

$ \begin{array}{l} y_0 = P(x_0) = c_0 \\[1ex] y_1 = P(x_1) = c_0 + c_1(x_1 - x_0) \\[1ex] y_2 = P(x_2) = c_0 + c_1(x_2 - x_0) + c_2 (x_2 -x_0) (x_2 - x_1) \\ \vdots \end{array} $

Por tanto:

$ \begin{array}{l} c_0 = y_0 \\[1ex] c_1 = \dfrac{y_1 - c_0}{x_1 - x_0} = \dfrac{y_1 - y_0}{x_1 - x_0} \\[1ex] \begin{aligned} c_2 &= \dfrac{y_2 - c_0 - c_1(x_2 - x_0)}{(x_2 - x_0) (x_2 - x_1)} = \\[1ex] &= \dfrac{y_2 - y_0}{(x_2 - x_0)(x_2 - x_1)} - \dfrac{y_1 - y_0}{(x_2 - x_1) (x_1 - x_0)} = \\[1ex] &= \dfrac{y_2 - y_1}{(x_2 - x_0)(x_2 - x_1)} + \dfrac{y_1 - y_0}{(x_2 - x_0)(x_2 - x_1)} - \dfrac{y_1 - y_0}{(x_2 - x_1) (x_1 - x_0)} = \\[1ex] &= \dfrac{y_2 - y_1}{(x_2 - x_0)(x_2 - x_1)} + \dfrac{y_1 - y_0}{x_2 - x_1} \left( \dfrac{1}{x_2 - x_0} - \dfrac{1}{x_1 - x_0} \right) = \\[1ex] &= \dfrac{y_2 - y_1}{(x_2 - x_0)(x_2 - x_1)} + \dfrac{y_1 - y_0}{x_2 - x_1} \dfrac{x_1 - x_2}{(x_2 - x_0) (x_1 - x_0)} = \\[1ex] &= \dfrac{y_2 - y_1}{(x_2 - x_0)(x_2 - x_1)} - \dfrac{y_1 - y_0}{(x_2 - x_0) (x_1 - x_0)} = \\[1ex] &= \dfrac{ \dfrac{y_2 - y_1}{x_2 - x_1} - \dfrac{y_1 - y_0}{x_1 - x_0} }{x_2 - x_0} \end{aligned} \\ \vdots \end{array} $

Se definen las diferencias divididas:

$ \begin{array}{c} f[x_i] = y_i \,, \quad (i = 0,1, \dotsc, n) \\[1ex] f[x_i, x_{i+1}, \dotsc, x_{i+j}, x_{i+j+1}] = \dfrac{ f[x_{i+1}, \dotsc, x_{i+j+1}] - f[x_i, \dotsc, x_{i+j}] }{x_{i+j+1} - x_i} \,, \\ (i= 0,1, \dotsc, n-j-1) \quad (\,j = 0, 1, \dotsc, n-1) \end{array} $

Por ejemplo para $n = 2$, mediante una tabla o esquema, las diferencias divididas:

$j = 0$ $j = 1$ \begin{array}{l|l} x_0 & f[x_0] = y_0 = c_0 \\[1ex] x_1 & f[x_1] = y_1 \\[1ex] x_2 & f[x_2] = y_2 \end{array} \begin{array}{l} f[x_0,x_1] = \frac{f[x_1] \, - \, f[x_0]}{x_1 \, - \, x_0} = c_1 \\[1ex] f[x_1,x_2] = \frac{f[x_2] \, - \, f[x_1]}{x_2 \, - \, x_1} \end{array} \begin{array}{l} f[x_0,x_1,x_2] = \frac{f[x_1,x_2] \, - \, f[x_0,x_1]}{x_2 \, - \, x_0} = c_2 \end{array}


Ejemplo:

También, otra vez, repitiendo los mismos datos:

$x$ $y$ $ \begin{array}{c} 30 \\[1ex] 40 \\[1ex] 50 \end{array} $ $ \begin{array}{c} -9{,}5 \\[1ex] -15{,}4 \\[1ex] -21{,}9 \end{array} $ $ \begin{array}{l} \frac{-15{,}4 - (-9{,}5)}{40 - 30} = -0{,}59 \\[1ex] \frac{-21{,}9 - (-15{,}4)}{50 - 40} = -0{,}65 \end{array} $ $\frac{-0{,}65 - (-0{,}59)}{50 - 30} = -0{,}003$

Siendo, por tanto, el polinomio interpolador:

$P(x) = -9{,}5 - 0{,}59 (x-30) - 0{,}003 (x-30)(x-40)$

Así que:

$ \begin{align} y(45) \approx P(45) &= -9{,}5 - 0{,}59 (45-30) - 0{,}003 (45-30)(45-40) = \\[1ex] &= \pu{-18,6 ºC} \end{align} $

Si se incorpora a los datos un punto más, se sigue a partir de la tabla anterior, añadiendo lo que falta. Esto es:

$x$ $y$ $ \begin{array}{c} 30 \\[1ex] 40 \\[1ex] 50 \\[1ex] 60 \end{array} $ $ \begin{array}{c} -9{,}5 \\[1ex] -15{,}4 \\[1ex] -21{,}9 \\[1ex] -33{,}6 \end{array} $ $ \begin{array}{l} \frac{-15{,}4 - (-9{,}5)}{40 - 30} = -0{,}59 \\[1ex] \frac{-21{,}9 - (-15{,}4)}{50 - 40} = -0{,}65 \\[1ex] \frac{-33{,}6 - (-21{,}9)}{60 - 50} = -1{,}17 \end{array} $ $ \begin{array}{l} \frac{-0{,}65 - (-0{,}59)}{50 - 30} = -0{,}003 \\[1ex] \frac{-1{,}17 - (-0{,}65)}{60 - 40} = -0{,}026 \end{array} $ $\frac{-0{,}026 - (-0{,}003)}{60 - 30} = -0{,}00077$

Ahora, por tanto:

$ \begin{align} P(x) &= -9{,}5 - 0{,}59 (x-30) - 0{,}003 (x-30)(x-40) - {} \\[1ex] &\hphantom{={}} - 0{,}00077 (x-30)(x-40)(x-50) \end{align} $

Con lo que:

$ \begin{align} y(45) \approx P(45) &= -9{,}5 - 0{,}59 (45-30) - 0{,}003 (45-30)(45-40) - {} \\[1ex] &\hphantom{={}} - 0{,}00077 (45-30)(45-40)(45-50) = \pu{-18,3 ºC} \end{align} $


Ejemplo:

La densidad ($\,\rho$ en $\pu{kg/m3}$) del Na en función de $T$ (en $\pu{ºC}$):

$i$ $T$ $\rho$
0 94 929
1 205 902
2 371 860

Encontrar la densidad para $T = \pu{251 ºC}$.

1) Método de Lagrange:

$\rho(T) = \rho_0 l_0(T) + \rho_1 l_1(T) + \rho_2 l_2(T)$

Siendo:

$ \begin{array}{l} l_0(T) = \dfrac{(T-205)(T-371)}{(94-205)(94-371)} = \dfrac{1}{30747} (T-205)(T-371) \\[1ex] l_1(T) = \dfrac{(T-94)(T-371)}{(205-94)(205-371)} = -\dfrac{1}{18426} (T-94)(T-371) \\[1ex] l_2(T) = \dfrac{(T-94)(T-205)}{(371-94)(371-205)} = \dfrac{1}{45982} (T-94)(T-205) \end{array} $

Por tanto:

$ \begin{align} \rho(T) &= \dfrac{929}{30747} (T-205)(T-371) - \dfrac{902}{18426} (T-94)(T-371) + {} \\[1ex] &\hphantom{= {}} + \dfrac{860}{45982} (T-94)(T-205) \end{align} $

Entonces:

$\rho(251) = \pu{891 ºC}$

2) Con el método de las diferencias divididas:

$ \begin{array}{c|c} 94 & 929 \\[1ex] 205 & 902 \\[1ex] 371 & 860 \end{array} \enspace \begin{array}{c} -0{,}243 \\[1ex] -0{,}253 \end{array} \enspace -3{,}61 \cdot 10^{-5} $

Por consiguiente:

$\rho(T) = 929 - 0{,}243 (T-94) - 3{,}61 \cdot 10^{-5} (T-94)(T-205)$

Los signos de las primeras diferencias divididas (cuando $j = 0$) dependen de si la función es de carácter creciente o decreciente, crece o decrece, entre los dos puntos considerados.

Los coeficientes hallados con las diferencias divididas son cada vez más pequeños debido a que multiplican a polinomios de mayor grado.

Cuanto más pequeño es el término de segundo grado más se parece la parábola a una recta.

El signo del coeficiente del término de segundo grado dice si la parábola es convexa ($+$) o concava ($-$), al hacer la segunda derivada.

Siendo, haciendo el cálculo, como se pedía:

$\rho(251) = \pu{891 ºC}$

Mismo resultado, independientemente de cómo se obtenga un único polinomio interpolador.


3. Interpolación por splines:

Un polinomio interpolador de grado alto siempre produce situaciones que no tienen sentido físico. Para resolver esto, una alternativa es una spline cuadrática, que es una curva construida a partir de arcos de parábola.

La tangente en el punto de contacto es común a ambas curvas. La derivada de ambas en ese punto ha de ser común.


Ejemplo:

Repitiendo datos:

$i$ $x$ $y$
0 $\pu{30 \%}$ $\pu{-9,5 ºC}$
1 $\pu{40 \%}$ $\pu{-15,4 ºC}$
2 $\pu{50 \%}$ $\pu{-21,9 ºC}$
3 $\pu{60 \%}$ $\pu{-33,6 ºC}$

Para una spline cuadrática, en cada intervalo consecutivo, partiendo del valor inferior de $x$, i.e. $x_0$, un polinomio de segundo grado:

$ \begin{array}{l} q_0(x) = a_0 x^2 + b_0 x + c_0 \\[1ex] q_1(x) = a_1 x^2 + b_1 x + c_1 \\[1ex] q_2(x) = a_2 x^2 + b_2 x + c_2 \end{array} $

Ya que es condición que en los puntos de contacto coincidan, se calculan sus derivadas:

$ \begin{array}{l} q_0'(x) = 2a_0 x + b_0 \\[1ex] q_1'(x) = 2a_1 x + b_1 \\[1ex] q_2'(x) = 2a_2 x + b_2 \end{array} $

Teniéndose entonces, del planteamiento que se ha hecho, las siguientes relaciones:

$ \begin{array}{l} q_0(x_0) = y_0 \\[1ex] q_0(x_1) = y_1 \\[1ex] q_1(x_1) = y_1 \\[1ex] q_1(x_2) = y_2 \\[1ex] q_2(x_2) = y_2 \\[1ex] q_2(x_3) = y_3 \\[1ex] q_0'(x_1) - q_1'(x_1) = 0 \\[1ex] q_1'(x_2) - q_2'(x_2) = 0 \end{array} $

Son ocho ecuaciones para nueve incognitas, por lo que se necesita una condición más para determinar todos los coeficientes. Se consigue fijando el valor de la derivada en el primer punto. Entonces, utilizando derivación numérica, como se verá en el próximo tema, la novena ecuación:

$q_0'(30) = -0{,}53$

Siendo pues el sistema de ecuaciones:

$ \begin{align} 60 a_0 + b_0 &= -0{,}53\\[1ex] 900 a_0 + 30 b_0 + c_0 &= -9{,}5 \\[1ex] 1600 a_0 + 40 b_0 + c_0 &= -15{,}4 \\[1ex] 80 a_0 + b_0 - 80 a_1 - b_1 &= 0 \\[1ex] 1600 a_1 + 40 b_1 + c_1 &= -15{,}4 \\[1ex] 2500 a_1 + 50 b_1 + c_1 &= -21{,}9 \\[1ex] 100 a_1 + b_1 - 100 a_2 - b_2 & = 0 \\[1ex] 2500 a_2 + 50 b_2 + c_2 &= -21{,}9 \\[1ex] 3600 a_2 + 60 b_2 + c_2 &= -33{,}6 \\[1ex] \end{align} $

Matricialmente:

$M a = y$

$ \begin{pmatrix} 60 & 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\[1ex] 900 & 30 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\[1ex] 1600 & 40 & 1 & 0 & 0 & 0 & 0 & 0 & 0 \\[1ex] 80 & 1 & 0 & -80 & -1 & 0 & 0 & 0 & 0 \\[1ex] 0 & 0 & 0 & 1600 & 40 & 1 & 0 & 0 & 0 \\[1ex] 0 & 0 & 0 & 2500 & 50 & 1 & 0 & 0 & 0 \\[1ex] 0 & 0 & 0 & 100 & 1 & 0 & -100 & -1 & 0 \\[1ex] 0 & 0 & 0 & 0 & 0 & 0 & 2500 & 50 & 1 \\[1ex] 0 & 0 & 0 & 0 & 0 & 0 & 3600 & 60 & 1 \end{pmatrix} \, \begin{pmatrix} a_0 \\[1ex] b_0 \\[1ex] c_0 \\[1ex] a_1 \\[1ex] b_1 \\[1ex] c_1 \\[1ex] a_2 \\[1ex] b_2 \\[1ex] c_2 \\[1ex] \end{pmatrix} = \begin{pmatrix} -0{,}53 \\[1ex] -9{,}5 \\[1ex] -15{,}4 \\[1ex] 0 \\[1ex] -15{,}4 \\[1ex] -21{,}9 \\[1ex] 0 \\[1ex] -21{,}9 \\[1ex] -33{,}6 \\[1ex] \end{pmatrix} $

Cuya solución:

$ \begin{array}{lll} a_0 = -0{,}006 &\quad b_0 = -0{,}17 &\quad c_0 = 1 \\[1ex] a_1 = 0 &\quad b_1 = -0{,}65 &\quad c_1 = 10{,}6 \\[1ex] a_2 = -0{,}052 &\quad b_2 = 4{,}55 &\quad c_2 = -119{,}4 \end{array} $

Por consiguiente, los polinomios de segundo grado para cada intervalo:

$ \begin{array}{l} q_0(x) = -0{,}006 x^2 - 0{,}17 x + 1 \\[1ex] q_1(x) = -0{,}65 x + 10{,}6 \\[1ex] q_2(x) = -0{,}052 x^2 + 4{,}55 x - 119{,}4 \end{array} $

Siendo entonces:

$y(45) \approx q_1(45) = \pu{-18,6 ºC}$


Son más utilizados los splines cúbicos, donde los polinomios son de tercer grado.