Interpolación linear

AjustarCompartirImprimirCitar
Método de ajuste de curva para construir nuevos puntos de datos dentro de la gama de puntos de datos conocidos
Dados los dos puntos rojos, la línea azul es el interpolante lineal entre los puntos, y el valor Sí. a x puede ser encontrado por interpolación lineal.

En matemáticas, la interpolación lineal es un método de ajuste de curvas que usa 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 son dados por las coordenadas ()x0,Sí.0){displaystyle (x_{0},y_{0}} y ()x1,Sí.1){displaystyle (x_{1},y_{1}}, el linear interpolant es la línea recta entre estos puntos. Para un valor x en el intervalo ()x0,x1){displaystyle (x_{0},x_{1}}, el valor Sí. a lo largo de la línea recta se da de la ecuación de pendientes

Sí.− − Sí.0x− − x0=Sí.1− − Sí.0x1− − x0,{fnMicroc} {y-y_{0}{x-x_{0}}={frac {y_{1}-y_{0} {x_{1}
n = 1

Resolviendo esta ecuación para y, que es el valor desconocido en x, da

Sí.=Sí.0+()x− − x0)Sí.1− − Sí.0x1− − x0=Sí.0()x1− − x0)x1− − x0+Sí.1()x− − x0)− − Sí.0()x− − x0)x1− − x0=Sí.1x− − Sí.1x0− − Sí.0x+Sí.0x0+Sí.0x1− − Sí.0x0x1− − x0=Sí.0()x1− − x)+Sí.1()x− − x0)x1− − x0,{displaystyle {begin{aligned}y {0}+(x-x_{0}{frac} {y_{1}-y_{0} {x_{1}-x_{0}\\c={frac} {y_{0} {x_{1}-x_{0}} {x_{0}}}+{frac} {y_{1}(x-x_{0})-y_{0} {x-x_{0} {x_{1}-x_{0}}\\\c={frac} {y_{1}x-y_{1}x_{0}-y_{0}x+y_{0}+y_{0}x_{0}-y_{0}_{0}{0} {x_{1}-x_{0}}}\={0={0}={0}==={0} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0} {0}==}}}}}}}====================}=}====================================================================================== {y_{0}(x_{1}-x)+y_{1} {x-x_{0}}{x_{1}-x_{0}}}end{aligned}}}
()x0,x1){displaystyle (x_{0},x_{1}}

Esta fórmula también se puede entender como un promedio ponderado. Los pesos están inversamente relacionados con la distancia de los puntos finales al punto desconocido; el punto más cercano tiene más influencia que el punto más lejano. Así, los pesos son 1− − x− − x0x1− − x0{textstyle 1-{frac {x-x_{0} {x_{1}-x_{0}}} y 1− − x1− − xx1− − x0{textstyle 1-{frac {x_{1}-x}{x_{1}-x_{0}}, que son distancias normalizadas entre el punto desconocido y cada uno de los puntos finales. Porque estas sumas a 1,

Sí.=Sí.0()1− − x− − x0x1− − x0)+Sí.1()1− − x1− − xx1− − x0)=Sí.0()1− − x− − x0x1− − x0)+Sí.1()x− − x0x1− − x0)=Sí.0()x1− − xx1− − x0)+Sí.1()x− − x0x1− − x0){displaystyle {begin{aligned}y {0}left(1-{frac} {x-x_{0}{x_{1}-x_{0}right)+y_{1}left(1-{frac} {x_{1}-x} {x_{0}}right)\\fnK}left(1-{frac] {x-x_{0}{x_{1}-x_{0}}right)+y_{1}left({frac {x-x_{0}{x_{1}-x_{0}}right)\\fnMicroc {x_{1}-x}{x_{1}-x_{0}}right)+y_{1}left({frac {x-x_{0} {x_{0}}derecha)end{aligned}}}

produciendo la fórmula para la interpolación lineal dada arriba.

Interpolación de un conjunto de datos

La interpolación lineal en un conjunto de datos (puntos rojos) consiste en piezas de interpolantes lineales (líneas azules).

Interpolación lineal en un conjunto de puntos de datos ()x0, Sí.0), (x1, Sí.1),...xn, Sí.n) se define como la concatenación de interpoladores lineales entre cada par de puntos de datos. Esto resulta en una curva continua, con un derivado discontinua (en general), por lo tanto de clase de diferenciabilidad C0{displaystyle C^{0}.

Interpolación lineal como aproximación

La interpolación lineal se usa a menudo para aproximar un valor de alguna función f usando dos valores conocidos de esa función en otros puntos. El error de esta aproximación se define como

RT=f()x)− − p()x),{displaystyle R_{T}=f(x)-p(x),}
p

p()x)=f()x0)+f()x1)− − f()x0)x1− − x0()x− − x0).{displaystyle p(x)=f(x_{0})+{frac {f(x_{1})-f(x_{0}}{x_{1}-x_{0}}(x-x_{0}}} {0}}

Se puede probar usando el teorema de Rolle que si f tiene una segunda derivada continua, entonces el error es delimitada por

SilencioRTSilencio≤ ≤ ()x1− − x0)28maxx0≤ ≤ x≤ ≤ x1Silenciof.()x)Silencio.{displaystyle ¿Por qué?

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: el "curvier" la función es, peores se vuelven las aproximaciones hechas con interpolación lineal simple.

Historia y aplicaciones

La interpolación lineal se ha utilizado desde la antigüedad para llenar los espacios en blanco en las tablas. Supongamos que uno tiene una tabla que enumera la población de algún país en 1970, 1980, 1990 y 2000, y que desea 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 (九章算術), fechado entre el 200 a. C. y el 100 d. C. y el Almagesto (siglo II dC) por 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 linternet linealerpolation). El término puede usarse como verbo o sustantivo para la operación. p.ej. "El algoritmo de Bresenham falla de forma incremental entre los dos extremos de la línea."

Las operaciones Lerp están integradas en el hardware de todos los procesadores de gráficos de computadora modernos. A menudo se utilizan como bloques de construcción para operaciones más complejas: por ejemplo, se puede lograr una interpolación bilineal en tres lerp. 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 la interpolación lineal y bilineal algunas interpolaciones de 1 y 2 dimensiones.
Negro y rojo/amarillo/verde/azul los puntos corresponden al punto interpolado y las muestras vecinas, respectivamente.
Sus alturas por encima del suelo corresponden a sus valores.

Precisión

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

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. Tenga en cuenta, sin embargo, 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 figura a continuación. 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. Estos pueden definirse como una función lineal por partes de mayor dimensión (ver la segunda figura a continuación).

Ejemplo de interpolación bilineal en la plaza unidad con la z valores 0, 1, 1 y 0.5 como se indica. Valores interpolados entre representados por el color.
Una función lineal en dos dimensiones (top) y los politopes convexos en los que es lineal (bottom)

Soporte de lenguaje de programación

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

// Método de Imprecise, que no garantiza v = v1 cuando t = 1, debido al error aritmético de punto flotante.// Este método es monotónico. Esta forma se puede utilizar cuando el hardware tiene una instrucción multiadd nativa fusionada.flotador lerp()flotador v0, flotador v1, flotador t) {} retorno v0 + t * ()v1 - v0);}// Método de precisión, que garantiza v = v1 cuando t = 1. Este método es monotónico sólo cuando v0 * v1 se realizó 0.// La fijación entre los mismos valores podría no producir el mismo valorflotador lerp()flotador v0, flotador v1, flotador t) {} retorno ()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 puede extenderse para combinar varios componentes de un vector (como ejes espaciales x, y, z o r, g, b) en paralelo.

Contenido relacionado

Ley de caña

La ley de Reed es la afirmación de David P. Reed de que la utilidad de las grandes redes, en particular las redes sociales, puede escalar exponencialmente...

Lista de transformadas relacionadas con Fourier

Aplicadas a funciones de argumentos continuos, las transformaciones relacionadas con Fourier...

Magnitud

Magnitud puede referirse...
Más resultados...
Tamaño del texto: