Ir al contenido

Interpolador cúbico de Hermite

De Wikipedia, la enciclopedia libre
(Redirigido desde «Interpolación cúbica»)
Las cuatro funciones básicas de Hermite. El interpolante en cada subintervalo es una combinación lineal de estas cuatro funciones

En análisis numérico, un interpolador cúbico de Hermite es un tipo de spline en el que cada pieza es un polinomio de tercer grado determinado según las condiciones de Hermite, es decir, por los valores de los puntos de paso y por la primera derivada en los puntos finales del intervalo del dominio correspondiente.[1]

Los splines cúbicos de Hermite se utilizan normalmente para la interpolación de datos numéricos especificados en un conjunto de valores de argumento dados , para obtener una función continua. Los datos deben consistir en el valor de la función deseada y la derivada en cada . Si solo se proporcionan los valores, las derivadas pueden estimarse a partir de ellos. La fórmula de Hermite se aplica a cada intervalo por separado. El spline resultante será continuo y tendrá una primera derivada continua.

Los splines polinómicos cúbicos se pueden especificar de otras formas, siendo la curva de Bézier la más común. Sin embargo, estos dos métodos proporcionan el mismo conjunto de splines y los datos se pueden convertir fácilmente entre las formas Bézier y de Hermite; por eso los nombres se suelen utilizar como si fueran sinónimos.

Los splines polinomiales cúbicos se utilizan ampliamente en computación gráfica y modelado geométrico para obtener curvas o trayectorias de movimiento que pasan por puntos específicos del plano o del espacio tridimensional. En estas aplicaciones, cada coordenada del plano o espacio se interpola por separado mediante una función spline cúbica de un parámetro t independiente. Los splines polinomiales cúbicos también se utilizan ampliamente en aplicaciones de análisis estructural, como curvas elásticas. También se han aplicado splines polinómicos cúbicos al análisis de mortalidad[2]​ y a la prognosis de mortalidad.[3]

Los splines cúbicos se pueden extender a funciones de dos o más parámetros, de varias maneras. Los splines bicúbicos (utilizando interpolación bicúbica) se utilizan a menudo para interpolar datos en una cuadrícula rectangular regular, como el valor de los píxeles en una imagen digital o los datos de altitud de un terreno. Los parches de superficie bicúbica, definidos por tres splines bicúbicos, son una herramienta esencial en gráficos por computadora.

Los splines cúbicos a menudo se denominan csplines, especialmente en gráficos por computadora. Las splines de Hermite llevan el nombre del matemático francés Charles Hermite.

Interpolación en un solo intervalo

[editar]

Intervalo unitario [0, 1]

[editar]

En el intervalo unitario , dado un punto inicial en y un punto final en con tangente inicial en y tangente final en , el polinomio se puede definir por

donde t ∈ [0, 1].

Interpolación en un intervalo arbitrario

[editar]

La interpolación de en un intervalo arbitrario se realiza asignando este último a mediante un cambio de variable afín (de grado 1). La fórmula es:

donde y se refieren a las funciones básicas, definidas más adelante. Téngase en cuenta que los valores de la tangente han sido escalados por en comparación con la ecuación en el intervalo unitario.

Unicidad

[editar]

La fórmula especificada anteriormente proporciona la única ruta polinómica de tercer grado entre los dos puntos con las tangentes dadas.

Demostración. Sean dos polinomios de tercer grado que satisfacen las condiciones de contorno dadas. Defínase entonces:

Dado que tanto como son polinomios de tercer grado, es como máximo un polinomio de tercer grado. Entonces, debe tener la forma

Calcular la derivada da

Se sabe además que

 

 

 

 

(1)

 

 

 

 

(2)

Combinando (1) y (2) se deduce que , y por lo tanto, y en consecuencia

Representaciones

[editar]

Se puede escribir el polinomio de interpolación como

donde , , , son funciones de base de Hermite, que se pueden escribir de diferentes maneras, cada una de las cuales revela propiedades diferentes:

Expandido Factorizado Bernstein

La columna "Expandido" muestra la representación utilizada en la definición anterior.

La columna "Factorizado" muestra inmediatamente que y son cero en los límites. Además, se puede concluir que y tienen una raíz de multiplicidad 2 en 0, y y tienen ese cero en 1, por lo que tienen pendiente 0 en esos límites.

La columna "Bernstein" muestra la descomposición de las funciones básicas de Hermite en polinomios de Bernstein de orden 3:

Usando esta conexión se puede expresar la interpolación cúbica de Hermite en términos de una curva de Bézier cúbica con respecto a los cuatro valores y hacer la interpolación de Hermite usando el algoritmo de De Casteljau, con el que se demuestra que en un parche de Bézier cúbico los dos puntos de control en el medio determinan las tangentes de la curva de interpolación en los respectivos puntos exteriores.

También se puede escribir el polinomio en forma estándar como

donde los puntos de control y las tangentes son coeficientes. Esto permite una evaluación eficiente del polinomio en varios valores de t, ya que los coeficientes constantes se pueden calcular una vez y reutilizar.

Interpolación de un conjunto de datos

[editar]

Un conjunto de datos, para , se puede interpolar aplicando el procedimiento anterior en cada intervalo, donde las tangentes se eligen de manera adecuada, lo que significa que las tangentes de los intervalos que comparten puntos finales son iguales. La curva interpolada consta entonces de splines cúbicos de Hermite por partes y es globalmente diferenciable de forma continua en .

La elección de tangentes no es única, y hay varias opciones disponibles.

Diferencias finitas

[editar]
Ejemplo con tangentes por diferencias finitas

La opción más sencilla es aplicar el método de las diferencias finitas a tres puntos, lo que no requiere longitudes de intervalo constantes:

para puntos internos y diferencia unilateral en los puntos finales del conjunto de datos.

Spline cardinal

[editar]
Ejemplo de spline cardinal en 2D. La línea representa la curva y los cuadrados representan los puntos de control . Obsérvese que la curva no llega al primer ni al último punto. Estos puntos, sin embargo, afectan a la forma de la curva. El parámetro de tensión utilizado es 0,1

Un spline cardinal, a veces llamado spline canónico,[4]​ se obtiene si:[5]

lo que se utiliza para calcular las tangentes. El parámetro c es un parámetro de tensión que debe estar en el intervalo [0, 1]. En cierto sentido, esto puede interpretarse como la longitud de la tangente. Al elegir c = 1 se obtienen todas las tangentes cero, y al elegir c = 0 se obtiene un spline de Catmull-Rom en el caso de parametrización uniforme.

Spline de Catmull–Rom

[editar]
Interpretación geométrica de la interpolación cúbica de Catmull-Rom del punto negro con abscisas espaciadas uniformemente.[6]

Para tangentes fijadas como

se obtiene un spline de Catmull-Rom, siendo un caso especial de spline cardinal. Esto supone un espaciado de parámetros uniforme.

La curva lleva el nombre de Edwin Catmull y Raphael Rom. La principal ventaja de esta técnica es que los puntos en el conjunto original también constituyen los puntos de control de la curva spline.[7]​ Se requieren dos puntos adicionales en cada extremo de la curva. La implementación uniforme de Catmull-Rom puede producir bucles y autointersecciones. Las implementaciones cordales y del spline centrípeto de Catmull-Rom[8]​ resuelven este problema, pero utilizan un cálculo ligeramente diferente.[9]​ En computación gráfica, los splines de Catmull-Rom se utilizan con frecuencia para obtener un movimiento interpolado suave entre fotogramas de referencia. Por ejemplo, la mayoría de las animaciones de trayectoria de cámara generadas a partir de fotogramas clave discretos se manejan mediante splines de Catmull-Rom. Son populares principalmente por ser relativamente fáciles de calcular, lo que garantiza que cada posición del fotograma clave se alcanzará exactamente y también garantiza que las tangentes de la curva generada sean continuas en múltiples segmentos.

Spline de Kochanek-Bartels

[editar]

Un spline de Kochanek-Bartels es una generalización adicional sobre cómo elegir las tangentes dados los puntos de datos , y , con tres parámetros posibles: tensión, sesgo y un parámetro de continuidad.

Interpolación cúbica monótona

[editar]

Si se utiliza un spline cúbico de Hermite de cualquiera de los tipos enumerados anteriormente para la interpolación de un conjunto de datos monótono, la función interpolada no será necesariamente monótona, pero la monotonicidad se puede preservar ajustando las tangentes.

Interpolación en el intervalo unitario con derivadas coincidentes en los puntos finales

[editar]

Considérese una sola coordenada de los puntos y como los valores que toma una función f(x) en ordenadas enteras x = n −  1, n, n+1 y n+2,

Además, supóngase que las tangentes en los puntos finales se definen como las diferencias centradas de los puntos adyacentes:

Para evaluar la f(x) interpolada para una x real, primero sepárese x en la porción entera n y en la porción fraccionaria u:

donde denota la función suelo, que devuelve el número entero más grande no mayor que x.

Entonces, el spline de Catmull-Rom es[10]

donde denota la matriz transpuesta. La igualdad inferior representa la aplicación del algoritmo de Horner.

Este escrito es relevante para la interpolación tricúbica, donde una optimización requiere calcular CINTu dieciséis veces con la misma u y diferente p.

Véase también

[editar]

Referencias

[editar]
  1. Erwin Kreyszig (2005). Advanced Engineering Mathematics (9 edición). Wiley. p. 816. ISBN 9780471488859. 
  2. Stephen Richards (2020). «A Hermite-spline model of post-retirement mortality». Scandinavian Actuarial Journal (Taylor and Francis): 110-127. doi:10.1080/03461238.2019.1642239. 
  3. Sixian Tang, Jackie Li and Leonie Tickle (2022). «A Hermite spline approach for modelling population mortality». Annals of Actuarial Science (Cambridge University Press): 1-42. doi:10.1017/S1748499522000173. 
  4. Petzold, Charles (2009). «Canonical Splines in WPF and Silverlight». 
  5. «Cardinal Splines». Microsoft Developer Network. Consultado el 27 de mayo de 2018. 
  6. La interpolación cúbica no es única: este modelo que utiliza una spline de Catmull-Rom y polinomios de base de Lagrange pasa por los cuatro puntos. Nota: Si el punto negro está a la izquierda del punto amarillo, la distancia horizontal amarilla es negativa; si el punto negro está a la derecha del punto verde, la distancia horizontal verde es negativa.
  7. Catmull, Edwin; Rom, Raphael (1974), «A class of local interpolating splines», en Barnhill, R. E.; Riesenfeld, R. F., eds., Computer Aided Geometric Design, New York: Academic Press, pp. 317-326 .
  8. N. Dyn, M. S. Floater, and K. Hormann. Four-point curve subdivision based on iterated chordal and centripetal parameterizations. Computer Aided Geometric Design, 26(3):279–286, 2009.
  9. P. J. Barry and R. N. Goldman. A recursive evaluation algorithm for a class of Catmull-Rom splines. SIGGRAPH Computer Graphics, 22(4):199–204, 1988.
  10. Two hierarchies of spline interpolations. Practical algorithms for multivariate higher order splines.

Enlaces externos

[editar]