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 único 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 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 diez a todos ellos. La interpolación spline se prefiere a menudo a la interpolación polinomial porque el error de interpolaciónse 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 oscilación entre puntos cuando se interpola utilizando polinomios de alto grado.
Originalmente, spline era un término para las reglas elásticas que se doblaban para pasar por una serie de puntos o nudos predefinidos . Estos se utilizaron para hacer dibujos técnicos para la construcción naval y la construcción a mano, como se ilustra en la Figura 1.
Figura 1: Interpolación con splines cúbicos entre ocho puntos. Los dibujos técnicos hechos a mano para la construcción naval son un ejemplo histórico de interpolación de splines; los dibujos se construyeron utilizando reglas flexibles que se doblaban para seguir puntos predefinidos.
Deseamos modelar tipos similares de curvas usando un conjunto de ecuaciones matemáticas, con un polinomio por cada par de nudos, y , dónde . Así que habrá polinomios y nudos: El primer polinomio comienza en , y el último polinomio termina en .
La curvatura de cualquier curva. Se define como:
Para hacer que la spline tome una forma que minimice la flexión (bajo la restricción de pasar a través de todos los nudos), definiremos ambos y ser continuo en todas partes, incluso en los nudos. Por lo tanto, la primera y segunda derivadas de cada polinomio sucesivo deben tener valores idénticos en los nudos, lo que equivale a decir que
Esto solo se puede lograr si se utilizan polinomios de grado 3 o superior (polinomios cúbicos o superior). El enfoque clásico es utilizar polinomios de exactamente grado 3 - splines cúbicos .
Deseamos encontrar cada polinomio dados los puntos mediante . Para hacer esto, consideraremos solo una pieza de la curva,, que interpolará de a . Esta pieza tendrá pendientes y en sus puntos finales. O, más precisamente:
La ecuación completa se puede escribir en forma simétrica
| | ( 1 ) |
dónde
| | ( 2 ) |
| | ( 3 ) |
| | ( 4 ) |
Pero que son y ? Para derivar estos valores críticos, debemos considerar que
Luego se sigue que
| | ( 5 ) |
| | ( 6 ) |
Estableciendo 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 la segunda derivados
| | ( 7 ) |
| | ( 8 ) |
Si ahora ( x i , y i ), i = 0, 1, ..., n son n + 1 puntos y
| | ( 9 ) |
donde i = 1, 2, ..., n yson 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
| | ( 10 ) |
| | ( 11 ) |
para i = 1, ..., n donde
| | ( 12 ) |
| | ( 13 ) |
| | ( 14 ) |
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 incluso tendrá una segunda derivada continua.
De ( 7 ), ( 8 ), ( 10 ) y ( 11 ) se deduce que este es el caso si y solo si
| | ( 15 ) |
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 que las reglas elásticas sean el modelo para la interpolación spline, 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 puede moverse libremente y, por lo tanto, tomará la forma de un línea recta con q ′ ′ = 0 . Como q ′ ′ debería ser una función continua de x, se obtiene que para "splines naturales" uno además de las n - 1 ecuaciones lineales ( 15 ) debería tener que
es decir, eso
| | ( 16 ) |
| | ( 17 ) |
Finalmente, ( 15 ) junto con ( 16 ) y ( 17 ) constituyen n + 1 ecuaciones lineales que definen de manera única los n + 1 parámetros k 0 , k 1 , ..., k n .
Existen otras condiciones finales: "Spline sujetado", que especifica la pendiente en los extremos del spline, y el popular "spline sin nudo", que requiere que la tercera derivada también sea continua en x 1 y x N −1 puntos. Para la spline "no un nudo", las ecuaciones adicionales se leerán:
dónde .
Figura 2: Interpolación con splines "naturales" cúbicos entre tres puntos.
En el caso de tres puntos, los valores para se encuentran resolviendo el sistema de ecuaciones lineales tridiagonal
con
Por los tres puntos
- ,
uno consigue eso
y de ( 10 ) y ( 11 ) que
En la Figura 2, la función spline que consta de dos polinomios cúbicos y dado por ( 9 ) se muestra.