stringtranslate.com

Interpolación linear

Dados los dos puntos rojos, la línea azul es la interpolación lineal entre los puntos, y el valor y en x se puede encontrar mediante 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 están dados por las coordenadas y , la interpolante 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 viene dado por la ecuación de pendientes

interpolación polinomial.

Al resolver esta ecuación para , que es el valor desconocido en , se obtiene

.la extrapolación lineal

Esta fórmula también puede entenderse 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. Así, los pesos son y , que son distancias normalizadas entre el punto desconocido y cada uno de los puntos finales. Debido a que estos suman 1,

Interpolación de un conjunto de datos

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

La interpolación lineal en 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 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

ppolinomio

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 "curvada" sea la función, peores serán las aproximaciones realizadas con una simple interpolación lineal.

Historia y aplicaciones

La interpolación lineal se ha utilizado desde la antigüedad para llenar los huecos en 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 manera fácil de hacerlo. Se cree que fue utilizado 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 el Almagesto (siglo II d. C.) de Ptolomeo .

La operación básica de interpolación lineal entre dos valores se usa comúnmente en gráficos por computadora . En la jerga de ese campo a veces se le llama lerp ( de interpolación lineal ). El término puede usarse como verbo o sustantivo para la operación. por ejemplo, " el algoritmo de Bresenham avanza incrementalmente entre los dos puntos finales de la línea".

Las operaciones Lerp están integradas en el hardware de todos los procesadores de gráficos por computadora modernos. A menudo se utilizan como componentes básicos 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 manera de implementar tablas de búsqueda precisas con búsqueda rápida para funciones fluidas sin tener demasiadas entradas en la tabla.

Extensiones

Comparación de interpolación lineal y bilineal algunas interpolaciones unidimensionales y bidimensionales. Los puntos
negro y rojo / amarillo / verde / azul 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 polinómica .

multivariado

La interpolación lineal como 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 denomina 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 con el ejemplo claramente no lineal de interpolación bilineal en la siguiente figura. Se pueden aplicar otras extensiones de interpolación lineal a otros tipos de malla , 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 a continuación).

Ejemplo de interpolación bilineal en el cuadrado unitario con los valores de z 0, 1, 1 y 0,5 como se indica. Los valores interpolados intermedios se representan por color.
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 los formularios (v0, v1, t)como en (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. Este formulario se puede utilizar cuando el hardware tiene una instrucción de suma múltiple fusionada nativa. flotante lerp ( flotante v0 , flotante v1 , flotante t ) { retorno v0 + t * ( v1 - v0 ); }               // Método preciso, que garantiza v = v1 cuando t = 1. Este método es monótono sólo cuando v0 * v1 < 0. // Lerping entre los mismos valores puede no producir el mismo valor float lerp ( float v0 , float v1 , float t ) { return ( 1 - t ) * v0 + t * v1 ; }                 

Esta función lerp se usa 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 r , g , b componentes de color) en paralelo.

Ver 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. Prensa de la Universidad de Cambridge. págs. 147–. ISBN 978-0-521-05801-8.

enlaces externos