En el campo matemático del análisis numérico , la interpolación es un tipo de estimación , un método para construir (encontrar) nuevos puntos de datos basados en el rango de un conjunto discreto de puntos de datos conocidos. [1] [2]
En ingeniería y ciencia , a menudo se dispone de una serie de puntos de datos, obtenidos mediante muestreo o experimentación , que representan los valores de una función para un número limitado de valores de la variable independiente . A menudo se requiere interpolar , es decir, estimar el valor de esa función para un valor intermedio de la variable independiente.
Un problema estrechamente relacionado es la aproximación de una función complicada mediante una función simple. Supongamos que se conoce la fórmula de una función dada, pero es demasiado complicada para evaluarla de manera eficiente. Se pueden interpolar algunos puntos de datos de la función original para producir una función más simple que aún sea bastante cercana a la original. La ganancia resultante en simplicidad puede compensar la pérdida por error de interpolación y brindar un mejor rendimiento en el proceso de cálculo.
Esta tabla da algunos valores de una función desconocida .
La interpolación proporciona un medio para estimar la función en puntos intermedios, como
Describimos algunos métodos de interpolación que difieren en propiedades tales como: precisión, costo, número de puntos de datos necesarios y suavidad de la función interpolante resultante .
El método de interpolación más simple consiste en localizar el valor de datos más cercano y asignarle el mismo valor. En problemas simples, es poco probable que se utilice este método, ya que la interpolación lineal (ver a continuación) es casi tan fácil, pero en la interpolación multivariante de dimensiones superiores , esta podría ser una opción favorable por su velocidad y simplicidad.
Uno de los métodos más simples es la interpolación lineal (a veces conocida como lerp). Considere el ejemplo anterior de estimación de f (2,5). Dado que 2,5 está a medio camino entre 2 y 3, es razonable tomar f (2,5) a medio camino entre f (2) = 0,9093 y f (3) = 0,1411, lo que da 0,5252.
Generalmente, la interpolación lineal toma dos puntos de datos, digamos ( x a , y a ) y ( x b , y b ), y el interpolante viene dado por:
Esta ecuación anterior establece que la pendiente de la nueva línea entre y es la misma que la pendiente de la línea entre y
La interpolación lineal es rápida y sencilla, pero no es muy precisa. Otra desventaja es que el interpolante no es diferenciable en el punto x k .
La siguiente estimación del error muestra que la interpolación lineal no es muy precisa. Denotemos la función que queremos interpolar por g y supongamos que x se encuentra entre x a y x b y que g es dos veces continuamente diferenciable. Entonces el error de interpolación lineal es
En otras palabras, el error es proporcional al cuadrado de la distancia entre los puntos de datos. El error en otros métodos, como la interpolación polinómica y la interpolación spline (que se describen a continuación), es proporcional a potencias más altas de la distancia entre los puntos de datos. Estos métodos también producen interpoladores más suaves.
La interpolación polinómica es una generalización de la interpolación lineal. Nótese que el interpolante lineal es una función lineal . Ahora reemplazamos este interpolante con un polinomio de grado superior .
Consideremos nuevamente el problema planteado anteriormente. El siguiente polinomio de sexto grado pasa por los siete puntos:
Sustituyendo x = 2,5, encontramos que f (2,5) = ~0,59678.
En general, si tenemos n puntos de datos, hay exactamente un polinomio de grado n −1 como máximo que pasa por todos los puntos de datos. El error de interpolación es proporcional a la distancia entre los puntos de datos elevados a la potencia n . Además, el interpolante es un polinomio y, por lo tanto, infinitamente diferenciable. Por lo tanto, vemos que la interpolación polinómica supera la mayoría de los problemas de la interpolación lineal.
Sin embargo, la interpolación polinómica también tiene algunas desventajas. Calcular el polinomio de interpolación es computacionalmente costoso (ver complejidad computacional ) en comparación con la interpolación lineal. Además, la interpolación polinómica puede presentar artefactos oscilatorios, especialmente en los puntos finales (ver fenómeno de Runge ).
La interpolación polinómica permite estimar máximos y mínimos locales que están fuera del rango de las muestras, a diferencia de la interpolación lineal. Por ejemplo, el interpolante anterior tiene un máximo local en x ≈ 1,566, f ( x ) ≈ 1,003 y un mínimo local en x ≈ 4,708, f ( x ) ≈ −1,003. Sin embargo, estos máximos y mínimos pueden exceder el rango teórico de la función; por ejemplo, una función que siempre es positiva puede tener un interpolante con valores negativos y, por lo tanto, cuya inversa contiene asíntotas verticales falsas .
En términos más generales, la forma de la curva resultante, especialmente para valores muy altos o muy bajos de la variable independiente, puede ser contraria al sentido común; es decir, a lo que se sabe acerca del sistema experimental que ha generado los puntos de datos. Estas desventajas se pueden reducir utilizando la interpolación spline o restringiendo la atención a los polinomios de Chebyshev .
La interpolación lineal utiliza una función lineal para cada uno de los intervalos [ x k , x k+1 ]. La interpolación spline utiliza polinomios de bajo grado en cada uno de los intervalos y elige las partes del polinomio de modo que encajen perfectamente. La función resultante se denomina spline.
Por ejemplo, la spline cúbica natural es cúbica por partes y dos veces continuamente diferenciable. Además, su segunda derivada es cero en los puntos finales. La spline cúbica natural que interpola los puntos de la tabla anterior se obtiene mediante
En este caso obtenemos f (2,5) = 0,5972.
Al igual que la interpolación polinómica, la interpolación spline incurre en un error menor que la interpolación lineal, mientras que el interpolador es más suave y más fácil de evaluar que los polinomios de alto grado utilizados en la interpolación polinómica. Sin embargo, la naturaleza global de las funciones base conduce a un mal condicionamiento. Esto se mitiga completamente mediante el uso de splines de soporte compacto, como los que se implementan en Boost.Math y se analizan en Kress. [3]
Dependiendo de la discretización subyacente de los campos, pueden requerirse diferentes interpoladores. A diferencia de otros métodos de interpolación, que estiman funciones en puntos objetivo, la interpolación mimética evalúa la integral de campos en líneas, áreas o volúmenes objetivo, dependiendo del tipo de campo (escalar, vectorial, pseudovectorial o pseudoescalar).
Una característica clave de la interpolación mimética es que se satisfacen las identidades del cálculo vectorial , incluido el teorema de Stokes y el teorema de divergencia . Como resultado, la interpolación mimética conserva las integrales de línea, área y volumen. [4] La conservación de las integrales de línea puede ser deseable cuando se interpola el campo eléctrico , por ejemplo, ya que la integral de línea da la diferencia de potencial eléctrico en los puntos finales de la ruta de integración. [5] La interpolación mimética asegura que el error de estimación de la integral de línea de un campo eléctrico sea el mismo que el error obtenido al interpolar el potencial en los puntos finales de la ruta de integración, independientemente de la longitud de la ruta de integración.
La interpolación lineal , bilineal y trilineal también se consideran miméticas, incluso si son los valores del campo los que se conservan (no la integral del campo). Aparte de la interpolación lineal, la interpolación ponderada por área puede considerarse uno de los primeros métodos de interpolación mimética que se han desarrollado. [6]
La interpolación es una forma común de aproximar funciones. Dada una función con un conjunto de puntos, se puede formar una función tal que para (es decir, que interpola en estos puntos). En general, un interpolador no tiene por qué ser una buena aproximación, pero existen condiciones bien conocidas y a menudo razonables en las que lo será. Por ejemplo, si (cuatro veces continuamente diferenciable), entonces la interpolación spline cúbica tiene un límite de error dado por donde y es una constante. [7]
El proceso gaussiano es una potente herramienta de interpolación no lineal. Muchas herramientas de interpolación populares son en realidad equivalentes a procesos gaussianos particulares. Los procesos gaussianos se pueden utilizar no solo para ajustar un interpolador que pase exactamente por los puntos de datos dados, sino también para la regresión; es decir, para ajustar una curva a través de datos ruidosos. En la comunidad de geoestadística, la regresión del proceso gaussiano también se conoce como Kriging .
Se pueden construir otras formas de interpolación eligiendo una clase diferente de interpolantes. Por ejemplo, la interpolación racional es la interpolación mediante funciones racionales utilizando la aproximación de Padé , y la interpolación trigonométrica es la interpolación mediante polinomios trigonométricos utilizando series de Fourier . Otra posibilidad es utilizar wavelets .
La fórmula de interpolación de Whittaker-Shannon se puede utilizar si el número de puntos de datos es infinito o si la función a interpolar tiene soporte compacto.
En ocasiones, no sólo conocemos el valor de la función que queremos interpolar, en algunos puntos, sino también su derivada. Esto da lugar a problemas de interpolación de Hermite .
Cuando cada punto de datos es en sí mismo una función, puede resultar útil considerar el problema de interpolación como un problema de convección parcial entre cada punto de datos. Esta idea conduce al problema de interpolación de desplazamiento utilizado en la teoría del transporte .
La interpolación multivariante es la interpolación de funciones de más de una variable. Los métodos incluyen la interpolación del vecino más cercano , la interpolación bilineal y la interpolación bicúbica en dos dimensiones, y la interpolación trilineal en tres dimensiones. Se pueden aplicar a datos cuadriculados o dispersos. La interpolación mimética se generaliza a espacios dimensionales donde . [8] [9]
En el dominio del procesamiento de señales digitales, el término interpolación se refiere al proceso de convertir una señal digital muestreada (como una señal de audio muestreada) a una de una frecuencia de muestreo más alta ( Upsampling ) utilizando varias técnicas de filtrado digital (por ejemplo, convolución con una señal de impulso de frecuencia limitada). En esta aplicación existe un requisito específico de que el contenido armónico de la señal original se preserve sin crear contenido armónico alias de la señal original por encima del límite de Nyquist original de la señal (es decir, por encima de fs/2 de la frecuencia de muestreo de la señal original). Se puede encontrar una discusión temprana y bastante elemental sobre este tema en el libro de Rabiner y Crochiere Multirate Digital Signal Processing . [10]
El término extrapolación se utiliza para encontrar puntos de datos fuera del rango de puntos de datos conocidos.
En los problemas de ajuste de curvas , la restricción de que el interpolador debe pasar exactamente por los puntos de datos se relaja. Solo se requiere acercarse a los puntos de datos lo más posible (dentro de algunas otras restricciones). Esto requiere parametrizar los interpoladores potenciales y tener alguna forma de medir el error. En el caso más simple, esto conduce a una aproximación de mínimos cuadrados .
La teoría de aproximación estudia cómo encontrar la mejor aproximación a una función dada mediante otra función de una clase predeterminada y cuán buena es esta aproximación. Esto claramente arroja un límite sobre cuán bien el interpolador puede aproximarse a la función desconocida.
Si consideramos como variable en un espacio topológico , y la función se asigna a un espacio de Banach , entonces el problema se trata como "interpolación de operadores". [11] Los resultados clásicos sobre interpolación de operadores son el teorema de Riesz-Thorin y el teorema de Marcinkiewicz . También hay muchos otros resultados posteriores.
{{cite book}}
: CS1 maint: location missing publisher (link)