stringtranslate.com

Interpolación lineal

Dados los dos puntos rojos, la línea azul es el interpolante lineal entre los puntos, y el valor y en x se puede encontrar por interpolación lineal.

En matemáticas, la interpolación lineal es un método de ajuste de curvas que utiliza polinomios lineales para construir nuevos puntos de datos dentro del rango de un conjunto discreto de puntos de datos conocidos.

Interpolación lineal entre dos puntos conocidos

En esta visualización geométrica, el valor en el círculo verde multiplicado por la distancia horizontal entre los círculos rojo y azul es igual a la suma del valor en el círculo rojo multiplicado por la distancia horizontal entre los círculos verde y azul, y el valor en el círculo azul multiplicado por la distancia horizontal entre los círculos verde y rojo.

Si los dos puntos conocidos se dan por las coordenadas y , el interpolador lineal es la línea recta entre estos puntos. Para un valor en el intervalo , el valor a lo largo de la línea recta se da a partir de la ecuación de pendientes que se puede derivar geométricamente de la figura de la derecha. Es un caso especial de interpolación polinómica con .

Resolviendo esta ecuación para , que es el valor desconocido en , se obtiene que es la fórmula para la interpolación lineal en el intervalo . Fuera de este intervalo, la fórmula es idéntica a la extrapolación lineal .

Esta fórmula también se puede entender como un promedio ponderado. Los pesos están inversamente relacionados con la distancia desde los puntos finales hasta el punto desconocido; el punto más cercano tiene más influencia que el punto más lejano. Por lo tanto, los pesos son y , que son distancias normalizadas entre el punto desconocido y cada uno de los puntos finales. Como estos suman 1, se obtiene la fórmula para la interpolación lineal dada anteriormente.

Interpolación de un conjunto de datos

La interpolación lineal en un conjunto de datos (puntos rojos) consta de fragmentos de interpoladores lineales (líneas azules).

La interpolación lineal sobre un conjunto de puntos de datos ( x 0 , y 0 ), ( x 1 , y 1 ), ..., ( x n , y n ) se define como lineal por partes , resultante de la concatenación de interpoladores de segmentos lineales entre cada par de puntos de datos. Esto da como resultado una curva continua , con una derivada discontinua (en general), por lo tanto de clase de diferenciabilidad .

Interpolación lineal como aproximación

La interpolación lineal se utiliza a menudo para aproximar un valor de alguna función f utilizando dos valores conocidos de esa función en otros puntos. El error de esta aproximación se define como donde p denota el polinomio de interpolación lineal definido anteriormente:

Se puede demostrar utilizando el teorema de Rolle que si f tiene una segunda derivada continua, entonces el error está acotado por

Es decir, la aproximación entre dos puntos de una función dada empeora con la segunda derivada de la función que se aproxima. Esto también es intuitivamente correcto: cuanto más "curvilínea" es la función, peores son las aproximaciones realizadas con interpolación lineal simple.

Historia y aplicaciones

La interpolación lineal se ha utilizado desde la antigüedad para rellenar los huecos de las tablas. Supongamos que tenemos una tabla que enumera la población de algún país en 1970, 1980, 1990 y 2000, y que queremos estimar la población en 1994. La interpolación lineal es una forma sencilla de hacerlo. Se cree que se utilizó en el Imperio seléucida (últimos tres siglos a. C.) y por el astrónomo y matemático griego Hiparco (siglo II a. C.). Se puede encontrar una descripción de la interpolación lineal en el antiguo texto matemático chino llamado Los nueve capítulos sobre el arte matemático (九章算術), [1] que data del 200 a. C. al 100 d. C. y en el Almagesto (siglo II d. C.) de Ptolomeo .

La operación básica de interpolación lineal entre dos valores se utiliza comúnmente en gráficos por computadora . En la jerga de ese campo, a veces se la denomina lerp (de interpolación lineal ) . El término se puede utilizar como verbo o sustantivo para la operación. Por ejemplo, " el algoritmo de Bresenham realiza lerps de manera incremental entre los dos puntos finales de la línea".

Las operaciones Lerp están integradas en el hardware de todos los procesadores gráficos de computadora modernos. A menudo se utilizan como bloques de construcción para operaciones más complejas: por ejemplo, una interpolación bilineal se puede lograr en tres lerps. Debido a que esta operación es económica, también es una buena forma de implementar tablas de búsqueda precisas con búsqueda rápida para funciones fluidas sin tener demasiadas entradas de tabla.

Extensiones

Comparación de interpolaciones lineales y bilineales en algunas interpolaciones unidimensionales y bidimensionales. Los puntos
negros y rojos / amarillos / verdes / azules corresponden al punto interpolado y a las muestras vecinas, respectivamente.
Sus alturas sobre el suelo corresponden a sus valores.

Exactitud

Si una función C 0 es insuficiente, por ejemplo si se sabe que el proceso que ha producido los puntos de datos es más suave que C 0 , es común reemplazar la interpolación lineal con interpolación spline o, en algunos casos, interpolación polinomial .

Multivariante

La interpolación lineal que se describe aquí es para puntos de datos en una dimensión espacial. Para dos dimensiones espaciales, la extensión de la interpolación lineal se llama interpolación bilineal y, en tres dimensiones, interpolación trilineal . Sin embargo, observe que estos interpoladores ya no son funciones lineales de las coordenadas espaciales, sino productos de funciones lineales; esto se ilustra mediante el ejemplo claramente no lineal de interpolación bilineal en la figura siguiente. Se pueden aplicar otras extensiones de interpolación lineal a otros tipos de mallas , como mallas triangulares y tetraédricas, incluidas las superficies de Bézier . Estas pueden definirse como funciones lineales por partes de dimensiones superiores (consulte la segunda figura siguiente).

Ejemplo de interpolación bilineal en el cuadrado unitario con los valores z 0, 1, 1 y 0,5, como se indica. Los valores interpolados intermedios se representan mediante colores.
Una función lineal por partes en dos dimensiones (arriba) y los politopos convexos en los que es lineal (abajo)

Soporte de lenguaje de programación

Muchas bibliotecas y lenguajes de sombreado tienen una función auxiliar "lerp" (en GLSL conocida como mix ), que devuelve una interpolación entre dos entradas (v0, v1)para un parámetro ten el intervalo unitario cerrado [0, 1]. Las firmas entre funciones lerp se implementan de diversas formas tanto en las formas (v0, v1, t)como (t, v0, v1).

// Método impreciso, que no garantiza v = v1 cuando t = 1, debido a un error aritmético de punto flotante.// Este método es monótono. Esta forma se puede utilizar cuando el hardware tiene una instrucción de multiplicación-suma fusionada nativa.flotador lerp ( flotante v0 , flotador v1 , flotador t ) {        devuelve v0 + t * ( v1 - v0 );       }// Método preciso, que garantiza v = v1 cuando t = 1. Este método es monótono solo cuando v0 * v1 < 0.// La comparación entre los mismos valores podría no producir el mismo valorflotador lerp ( flotante v0 , flotador v1 , flotador t ) {        devolver ( 1 - t ) * v0 + t * v1 ;         }

Esta función lerp se utiliza comúnmente para la combinación alfa (el parámetro " t " es el "valor alfa"), y la fórmula se puede extender para combinar múltiples componentes de un vector (como los ejes espaciales x , y , z o los componentes de color r , g , b ) en paralelo.

Véase también

Referencias

  1. ^ Joseph Needham (1 de enero de 1959). Ciencia y civilización en China: volumen 3, Matemáticas y ciencias de los cielos y la tierra. Cambridge University Press. pp. 147–. ISBN 978-0-521-05801-8.

Enlaces externos