Interpolación polinómica

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

En análisis numérico, la interpolación polinomial es una técnica de interpolación de un conjunto de datos o de una función por un polinomio. Es decir, dado cierto número de puntos obtenidos por muestreo o a partir de un experimento se pretende encontrar un polinomio que pase por todos los puntos.

Definición[editar]

Dada una función f de la cual se conocen sus valores en un número finito de abscisas x_0, x_1, ..., x_m, se llama interpolación polinómica al proceso de hallar un polinomio p_m(x) de grado menor o igual a m, cumpliendo p_m(x_k) = f(x_k), \ \forall k = 0, 1, ..., m.

A este polinomio se le llama Polinomio interpolador de grado m de la función f.

Motivación del polinomio interpolador[editar]

La interpolación polinómica es un método usado para conocer, de un modo aproximado, los valores que toma cierta función de la cual sólo se conoce su imagen en un número finito de abscisas. A menudo, ni siquiera se conocerá la expresión de la función y sólo se dispondrá de los valores que toma para dichas abscisas.

El objetivo será hallar un polinomio que cumpla lo antes mencionado y que permita hallar aproximaciones de otros valores desconocidos para la función con una precisión deseable fijada. Por ello, para cada polinomio interpolador se dispondrá de una fórmula del error de interpolación que permitirá ajustar la precisión del polinomio.

Es fácil demostrar, usando el determinante de Vandermonde, que por n puntos, con la única condición de que para cada x haya una sola y, siempre se puede encontrar un polinomio de grado igual a (n-1) que pase por los n puntos.

Cálculo del polinomio interpolador[editar]

Se dispone de varios métodos generales de interpolación polinómica que permiten aproximar una función por un polinomio de grado m. El primero de estos es el método de las diferencias divididas de Newton. Otro de los métodos es la interpolación de Lagrange, y por último, la interpolación de Hermite.

Método de las diferencias divididas de Newton[editar]

Sea f_n \ una variable discreta de n \ elementos y sea x_n \ otra variable discreta de n \ elementos los cuales corresponden, por parejas, a la imagen u ordenada y abcisa de los datos que se quieran interpolar, respectivamente, tales que:

f\left( {x_k } \right) = f_k ,\quad k = 1, \ldots ,n

Este método es muy algorítmico y resulta sumamente cómodo en determinados casos, sobre todo cuando se quiere calcular un polinomio interpolador de grado elevado.

El polinomio de grado n-1 \ resultante tendrá la forma

\sum\limits_{j = 0}^{n - 1} {a_j g_j \left( x \right)}

definiendo g_j \left( x \right) como

g_j \left( x \right) = \prod\limits_{i = 0}^{j-1} {\left( {x - x_i } \right)}

y definiendo a_j \ como

a_0  = f\left[ {x_0 } \right],a_1  = f\left[ {x_0 ,x_1 } \right], \ldots ,a_j  = f\left[ {x_0 ,x_1 , \ldots ,x_{j - 1} ,x_j } \right]

Los coeficientes a_j \ son las llamadas diferencias divididas.

Una vez se hayan realizado todos los cálculos, nótese que hay (muchas) más diferencias divididas que coeficientes a_j \ . El cálculo de todos los términos intermedios debe realizarse simplemente porque son necesarios para poder formar todos los términos finales. Sin embargo, los términos usados en la construcción del polinomio interpolador son todos aquellos que involucren a x_0 \ .

Estos coeficientes se calculan mediante los datos que se conocen de la función f \ .

f\left[ {x_0 ,x_1 , \ldots ,x_{j - 1} ,x_j } \right] queda definido, como:

f\left[ {x_i ,x_{i + 1} , \ldots ,x_{i + j - 1} ,x_{i + j} } \right] = \frac{{f\left[ {x_{i + 1} , \ldots ,x_{i + j - 1} ,x_{i + j} } \right] - f\left[ {x_i ,x_{i + 1} , \ldots ,x_{i + j - 1} } \right]}}
{{x_{i + j}  - x_i }},\quad f\left[ {x_i } \right] = f\left( {x_i } \right)

Se muestra ahora una tabla mnemotécnica con las diferencias divididas de una cierta función f \ dada para construir un polinomio interpolador de grado 2:


f[x_0] \ \searrow

                f[x_0,x_1] \ \searrow
     \nearrow

f[x_1] \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ f[x_0,x_1,x_2]

     \searrow
                f[x_1,x_2] \ \nearrow

f[x_2] \ \nearrow

Interpolación de Lagrange[editar]

Sea f \ la función a interpolar, sean x_0, x_1,...,x_m \ las abscisas conocidas de f \ y sean f_0,f_1,...,f_m \ los valores que toma la función en esas abscisas, el polinomio interpolador de grado n \ de Lagrange es un polinomio de la forma


\sum\limits_{j = 0}^n {f_j l_j (x)} ,\;n \leqslant m


donde l_j(x) \ son los llamados polinomios de Lagrange, que se calculan de este modo:


l_j \left( x \right) = \prod\limits_{i \ne j} {\frac{{x - x_i }}
{{x_j  - x_i }}}  = \frac{{\left( {x - x_0 } \right)\left( {x - x_1 } \right) \ldots \left( {x - x_{j - 1} } \right)\left( {x - x_{j + 1} } \right) \ldots \left( {x - x_n } \right)}}
{{\left( {x_j  - x_0 } \right)\left( {x_j  - x_1 } \right) \ldots \left( {x_j  - x_{j - 1} } \right)\left( {x_j  - x_{j + 1} } \right) \ldots \left( {x_j  - x_n } \right)}}


Nótese que en estas condiciones, los coeficientes l_j\left( x \right) \ están bien definidos y son siempre distintos de cero.

Se muestra en el ejemplo siguiente el cálculo de un polinomio interpolador de Lagrange usando interpolación por Lagrange y diferencias divididas de Newton:

Ejemplo: Se quiere hallar el valor de la función f(x)=e^{x+1} \ para x=0.75 \ usando un polinomio interpolador de Lagrange de grado 2.

Para ello se usan los siguientes datos:


f(0)=e \

f\left(\frac{1}{2}\right)=e^{\frac{3}{2}} \

f(1)=e^2 \


  • Se usa primero el método directo para calcular el polinomio interpolador de Lagrange. Con las condiciones dadas, los polinomios de Lagrange son:


l_0(x)=\frac{\left(x-\frac{1}{2}\right)(x-1)}{\frac{1}{2}}=2x^2-3x+1

l_1(x)=\frac{x(x-1)}{-\frac{1}{4}}=-4x^2+4x

l_2(x)=\frac{x\left(x-\frac{1}{2}\right)}{\frac{1}{2}}=2x^2-x


  • Se calcula ahora el polinomio interpolador de grado 2:


p_2(x)=\sum_{j=0}^2 f_jl_j(x)=(2e-4e^{\frac{3}{2}}+2e^2)x^2+(-3e+4e^{\frac{3}{2}}-e^2)x+e


  • Ahora evaluamos este polinomio en x=0.75 \ para obtener un valor aproximado de e^{1.75} \ :


f\left(0.75\right)=f\left(\frac{3}{4}\right)=e^{\frac{7}{4}}\simeq p_2\left(\frac{3}{4}\right)\simeq 5.792377


  • Si se usase una calculadora para efectuar el cálculo obtenemos f\left(\frac{3}{4}\right)=e^{\frac{7}{4}}=5.754602676\ldots  \ , por lo que el error cometido es el siguiente:


e_a\simeq |5.792377-5.754602616|=0.037774324 \Rightarrow e_r=\frac{0.037774324}{5.754602616}=0.006564193


Se trata de un error del orden del 0.66 %.


Se procede a realizar ahora la interpolación mediante el método de las Diferencias Divididas de Newton:


  • Se diseña una tabla de Diferencias Divididas esquemática y se realiza los pertinentes cálculos para obtener los siguientes coeficientes:



f \left[ x_0 \right] =e \ \ \ \ \ \ \ \ \ \ \ \ \ \ f\left[x_1 \right] =e^{\frac{3}{2}} \ \ \ \ \ \ \ \ \ \ \ \ \ \ f\left[x_2 \right] =e^2

f\left[ x_0,x_1 \right] =2(e^{\frac{3}{2}}-e) \ \ \ \ \ f\left[x_1,x_2 \right] =2(e^2-e^{\frac{3}{2}})

f\left[ x_0,x_1,x_2 \right] =2(e-2e^{\frac{3}{2}}+e^2)




  • Ahora se debe tomar de estos coeficientes los que se necesitasen para escribir el polinomio interpolador. Hay que recordar, según lo apuntado anteriormente, que sólo se usan aquéllos coeficientes que involucren a x_0 \ . De esta forma se obtiene el polinomio interpolador de Lagrange de grado 2:



p_2(x)=f \left[ x_0 \right] +f \left[ x_0,x_1 \right] (x-x_0)+f \left[ x_0,x_1,x_2 \right] (x-x_0)(x-x_1)= \

=e+2(e-e^{\frac{3}{2}})x+2(e^{\frac{3}{2}}-e)x(x-\frac{1}{2})=

=(2e-4e^{\frac{3}{2}}+2e^2)x^2+(-3e+4e^{\frac{3}{2}}-e^2)x+e



Y, como se puede apreciar, se llega al mismo polinomio pero con relativamente menos trabajo.



Interpolación de Hermite[editar]

La interpolación de Hermite, llamada así en honor a su inventor Charles Hermite, es similar a la de Newton pero con el añadido de que ahora también conocemos los valores que toma la derivada de la función f en las abscisas conocidas x_0,x_1,...,x_m.


El Polinomio Interpolador de Hermite de grado 2m+1 de la función f es un polinomio de la forma


p_{2m+1}(x)=\sum_{i=0}^m f_i{\Phi}_i(x)+\sum_{i=0}^m f'_i{\Psi}_i(x)



con

{\Phi}_i(x)=(1-2l'_i(x_i)(x-x_i))l_i^2(x)
{\Psi}_i(x)=(x-x_i)l_i^2(x), \ i=0,...,m



La interpolación de Hermite puede extenderse al conocimiento de las derivadas sucesivas de la función a interpolar en las abscisas tomadas, de modo que se puede obtener un polinomio cada vez más ajustado a la función real, ya que éste podrá cumplir otros requisitos como una determinada monotonía, concavidad, etc.

En este caso, estaremos hablando de interpolación de Hermite generalizada y su cálculo se llevará a cabo de forma similar a la apuntada, pero obteniendo polinomios de grado cada vez mayor debido a las sucesivas derivadas de los coeficientes l_i(x) \ .

Notar, pues, que la interpolación de Lagrange puede considerarse como un caso particular de la interpolación de Hermite generalizada (el caso en el que "conocemos" cero derivadas de f).

Tal y como ocurría con la Interpolación de Lagrange, para la interpolación de Hermite también disponemos una fórmula del error de interpolación que, naturalmente, tiene en cuenta factores relacionados con las derivadas de f. Más concretamente, se dispone de una fórmula del error en el caso en que la función f sea 2m+2 veces diferenciable en un intervalo I mediante la siguiente expresión:

f(x)-p_{2m+1}(x)=\frac{f^{(2m+2)}(\xi (x))}{(2m+2)!}(x-x_0)^2(x-x_1)^2...(x-x_m)^2



para x \in I y donde \xi (x) \in <x_0,x_1,...,x_m,x>

La diferencia esencial entre la Interpolación de Hermite y la Interpolación de Lagrange reside en el cálculo a través de la construcción de los Polinomios de Lagrange. En este caso, su cálculo es árduo, largo y complicado; por lo que el uso de las llamadas diferencias divididas generalizadas simplifica mucho el cálculo del polinomio interpolador.

Las diferencias divididas generalizadas se construyen de igual modo que las Diferencias Divididas de Newton, salvo que ahora necesitaremos escribir f_i tantas veces más una como derivadas de f conozcamos. Aquí sólo veremos el caso en el que conocemos la primera derivada, siendo el resto una generalización de este.

Como en la Interpolación de Lagrange, el Polinomio Interpolador de Hermite de grado 2m+1 se escribirá, una vez calculadas las Diferencias Divididas, de este modo

p_{2m+1}(x)=f[x_0]+f[x_0,x_0](x-x_0)+...+f[x_0,x_0,...,x_m,x_m](x-x_0)^2...(x-x_{m-1})^2(x-x_m) \



Nótese que, aparentemente, los coeficientes f[x_i,x_i] \ no están bien definidos, pues

f[x_i,x_i]=\frac{f[x_i]-f[x_i]}{x_i-x_i}=\frac{0}{0}



Sin embargo, podemos tomar límites y escribir esta expresión así:

f[x_i,x_i]=\frac{f[x_i]-f[x_i]}{x_i-x_i}=\lim_{x \to x_i}\frac{f(x)-f(x_i)}{x-x_i}



Pero esto no es más que la definición de la derivada de f en el punto x_i, de modo que

f[x_i,x_i]=f'(x_i) \



Por ello, incluiremos en nuestra tabla de Diferencias Divididas los datos sobre todas las derivadas conocidas de la función a interpolar.

Interpolación segmentaria[editar]

Existen métodos de Interpolación segmentaria que nos permiten aproximar funciones de un modo eficaz. Entre ellos cabe destacar la interpolación de Taylor y la interpolación por Splines.

La Interpolación de Taylor usa el Desarrollo de Taylor de una función en un punto para construir un polinomio de grado m que se aproxima a la función dada. Tiene dos ventajas esenciales sobre otras formas de interpolación:

  • Requiere sólo de un punto x_0 \ conocido de la función para su cálculo, si bien se pide que la función sea suficientemente diferenciable en un entorno de ese punto.
  • El cálculo del Polinomio de Taylor es sumamente sencillo comparado con otras formas de interpolación polinómica:


p_{x_0}(x)=\sum_{i=1}^n \frac{f^{(i)}(x_0)}{i!} (x-x_0)^i


Sin embargo, en ocasiones no será deseable su uso dado que el error de interpolación puede alcanzar cotas demasiado elevadas.

Es especialmente útil para emplearse en lugar de métodos de interpolación de Hermite generalizada sobre derivadas de orden superior de la función f.

La Interpolación por Splines es un refinamiento de la interpolación polinómica que usa "pedazos" de varios polinomios en distintos intervalos de la función a interpolar para evitar problemas de oscilación como el llamado Fenómeno de Runge.

La idea es que agrupamos las abscisas x_0,x_1,...,x_m \ en distintos intervalos según el grado del spline que convenga emplear en cada uno. Así, un spline será un polinomio interpolador de grado n de f para cada intervalo. A la postre, los distintos splines quedarán "unidos" recubriendo todas las abscisas e interpolando a la función.

El principal problema que presenta la interpolación por splines reside en los puntos que son comunes a dos intervalos (extremos). Por esos puntos deben pasar los splines de ambos intervalos, pero para que la interpolación sea ajustada, conviene que el punto de unión entre dos splines sea lo más "suave" posible (ej. evitar puntos angulosos), por lo que se pedirá también que en esos puntos ambos splines tengan derivada común. Esto no será siempre posible y, a menudo, se empleará otro tipo de interpolación, quizás una interpolación no-polinómica.

Otras formas de interpolación[editar]

Existen otros métodos de interpolación no-polinómica que proporcionan aproximaciones de funciones de las cuales conocemos información limitada.

En el mismo contexto que la interpolación polinómica, contamos con la interpolación racional y la interpolación trigonométrica, que consisten en aproximar funciones por cocientes de polinomios y por polinomios trigonométricos respectivamente. La segunda es especialmente útil para funciones con valores en el cuerpo de los números complejos \mathbb{C}. También es frecuente el uso de wavelets (ondaletas).

Cuando el conjunto de las abscisas x_i\ es infinito, podemos recurrir a la Fórmula de Interpolación de Whittaker-Shannon.

Cuando estamos trabajando con funciones de varias variables, disponemos de la interpolación multivariable para conseguir aproximaciones de las mismas. Entre los métodos de interpolación multivariable, destacar la interpolación bilineal y la interpolación bicúbica para funciones de dos variables y la interpolación trilineal para funciones de tres variables.

Temas relacionados[editar]

La interpolación de funciones, a menudo no consiste un problema por sí solo sino que suele tratarse de un paso dentro de la resolución de problemas mayores. Es habitual usarla como paso previo en la derivación numérica y en la integración numérica.

En el segundo caso, necesitamos realizar una partición del intervalo de definición de la función que queremos integrar, de modo que haya suficientes abscisas para que el error sea razonablemente pequeño. Sin embargo, puede que no tengamos datos acerca de algunas de las abscisas que separan los subintervalos. Cuando esto ocurra, tendremos que resolver un problema de extrapolación (ver método de extrapolación de Richardson).

Otros problemas relacionados con la interpolación son la aproximación de funciones y el cálculo de ceros de funciones no lineales.

Véase también[editar]

Referencias[editar]

  • A. Aubanell, A. Benseny, A. Delshams (1993). Útiles básicos de Cálculo Numérico. Labor/Publicaciones de la UAB.
  • Joaquín M. Ortega Aramburu (2002). Introducció a l'Anàlisi Matemàtica (2a edición, catalán). Publicacions de la UAB.
  • Burden, R.L., Faires, J.D., Análisis Numérico, Grupo Editorial Iberoamericano, 1985.

Enlaces externos[editar]