En el campo matemático del análisis numérico , la interpolación spline es una forma de interpolación donde el interpolante es un tipo especial de polinomio por partes llamado spline . Es decir, en lugar de ajustar un solo polinomio de alto grado a todos los valores a la vez, la interpolación spline ajusta polinomios de bajo grado a pequeños subconjuntos de los valores, por ejemplo, ajustando nueve polinomios cúbicos entre cada uno de los pares de diez puntos, en lugar de ajustar un solo polinomio de grado nueve a todos ellos. La interpolación spline a menudo se prefiere a la interpolación polinómica porque el error de interpolación se puede hacer pequeño incluso cuando se utilizan polinomios de bajo grado para la spline. [1] La interpolación spline también evita el problema del fenómeno de Runge , en el que puede ocurrir una oscilación entre puntos cuando se interpola utilizando polinomios de alto grado.
Introducción
En un principio, spline era un término que designaba a las reglas elásticas que se doblaban para pasar por una serie de puntos predefinidos, o nudos . Se utilizaban para hacer dibujos técnicos para la construcción y construcción naval a mano, como se ilustra en la figura.
Queremos modelar tipos similares de curvas utilizando un conjunto de ecuaciones matemáticas. Supongamos que tenemos una secuencia de nudos, a través de . Habrá un polinomio cúbico entre cada par sucesivo de nudos y que se conecta a ambos, donde . Por lo tanto, habrá polinomios, con el primer polinomio comenzando en , y el último polinomio terminando en .
donde y son las derivadas primera y segunda de con respecto a . Para hacer que la spline adopte una forma que minimice la flexión (bajo la restricción de pasar por todos los nudos), definiremos que y sean continuos en todas partes, incluidos los nudos. Cada polinomio sucesivo debe tener valores iguales (que son iguales al valor y del punto de datos correspondiente), derivadas y segundas derivadas en sus nudos de unión, es decir que
Esto solo se puede lograr si se utilizan polinomios de grado 3 (polinomios cúbicos) o superior. El enfoque clásico es utilizar polinomios de exactamente grado 3 ( splines cúbicos ).
Además de las tres condiciones anteriores, un ' spline cúbico natural ' tiene la condición de que .
Además de las tres condiciones principales anteriores, un ' spline cúbico fijado ' tiene las condiciones de que y donde es la derivada de la función interpolada.
Además de las tres condiciones principales anteriores, un ' spline sin nudo ' tiene las condiciones de que y . [2]
Algoritmo para encontrar el spline cúbico interpolador
Queremos encontrar cada polinomio dados los puntos que pasan por . Para ello, consideraremos solo una única parte de la curva, , que interpolará de a . Esta parte tendrá pendientes y en sus puntos finales. O, más precisamente,
La ecuación completa se puede escribir en forma simétrica
dónde
Pero ¿qué son y ? Para derivar estos valores críticos, debemos considerar que
De lo cual se deduce que
Fijando t = 0 y t = 1 respectivamente en las ecuaciones ( 5 ) y ( 6 ), se obtiene de ( 2 ) que efectivamente las primeras derivadas q′ ( x 1 ) = k 1 y q′ ( x 2 ) = k 2 , y también las segundas derivadas
Si ahora ( x i , y i ), i = 0, 1, ..., n son n + 1 puntos, y
donde i = 1, 2, ..., n , y son n polinomios de tercer grado que interpolan y en el intervalo x i −1 ≤ x ≤ x i para i = 1, ..., n tales que q′ i ( x i ) = q′ i +1 ( x i ) para i = 1, ..., n − 1, entonces los n polinomios juntos definen una función diferenciable en el intervalo x 0 ≤ x ≤ x n , y
para i = 1, ..., n , donde
Si la secuencia k 0 , k 1 , ..., k n es tal que, además, q′′ i ( x i ) = q′′ i +1 ( x i ) se cumple para i = 1, ..., n − 1, entonces la función resultante tendrá incluso una segunda derivada continua.
De ( 7 ), ( 8 ), ( 10 ) y ( 11 ) se deduce que este es el caso si y sólo si
para i = 1, ..., n − 1. Las relaciones ( 15 ) son n − 1 ecuaciones lineales para los n + 1 valores k 0 , k 1 , ..., k n .
Para las reglas elásticas que son el modelo para la interpolación de splines, se tiene que a la izquierda del "nudo" más a la izquierda y a la derecha del "nudo" más a la derecha la regla se puede mover libremente y, por lo tanto, tomará la forma de una línea recta con q′′ = 0. Como q′′ debe ser una función continua de x , los "splines naturales" además de las n − 1 ecuaciones lineales ( 15 ) deben tener
es decir que
Finalmente, ( 15 ) junto con ( 16 ) y ( 17 ) constituyen n + 1 ecuaciones lineales que definen de forma única los n + 1 parámetros k 0 , k 1 , ..., k n .
Existen otras condiciones finales, la "spline fija", que especifica la pendiente en los extremos de la spline, y la popular "spline sin nudos", que requiere que la tercera derivada también sea continua en los puntos x 1 y x n −1 . Para la spline sin nudos, las ecuaciones adicionales se leerán así:
^ Hall, Charles A.; Meyer, Weston W. (1976). "Límites de error óptimos para la interpolación de spline cúbico". Journal of Approximation Theory . 16 (2): 105–122. doi : 10.1016/0021-9045(76)90040-X .
Schoenberg, Isaac J. (1946). "Contribuciones al problema de aproximación de datos equidistantes mediante funciones analíticas: Parte A. Sobre el problema de suavizado o graduación. Una primera clase de fórmulas de aproximación analítica". Quarterly of Applied Mathematics . 4 (2): 45–99. doi : 10.1090/qam/15914 .
Schoenberg, Isaac J. (1946). "Contribuciones al problema de aproximación de datos equidistantes mediante funciones analíticas: Parte B.—Sobre el problema de la interpolación osculatoria. Una segunda clase de fórmulas de aproximación analítica". Quarterly of Applied Mathematics . 4 (2): 112–141. doi : 10.1090/qam/16705 .
Enlaces externos
Herramienta de cálculo y visualización en línea de interpolación de splines cúbicos (con código fuente en JavaScript)