Splines
Splines
Splines
Supongamos ahora que queremos construir una curva que se ajuste por ejemplo al perfil de
un pato (ver Figura 1). Seleccionamos una serie de puntos sobre la silueta y los interpolamos
mediante un polinomio (ver Figura 2). Como se observa gráficamente, cuando el número de
datos de interpolación es grande la interpolación polinomial no es adecuada. Una alternativa
para subsanar este inconveniente es utilizar funciones polinómicas a trozos que llamaremos
splines. En particular el resultado de interpolar en el ejemplo anterior con un spline cúbico
natural proporciona un resultado satisfactorio (ver Figura 3)
Un spline es simplemente una función polinómica a trozos, más concretamente, diremos que
una función s(x) es un spline en el intervalo [a, b], si existe una partición del intervalo [a, b],
P = {a = x0 < x1 · · · < xn = b}
1
Figura 1: Silueta de un pato
2
2. Interpolación con splines cúbicos
El inconveniente que presenta la interpolación lineal a trozos es que la función que se obtiene
no es en general derivable en los nodos xi . Para obtener curvas suaves suelen utilizarse splines
cúbicos de clase 2, es dedir dada una partición
P = { a = x0 < x1 < · · · < xn = b}
interpolamos con funciones de clase 2 que restringidas a los intervalos [xi , xi+1 ] son polinomios de
grado 3. Si llamamos si (x) a la restricción del spline s(x) al intervalo [xi , xi+1 ], i = 0, 1, · · · , n−1,
entonces
si (x) = ai + bi x + ci x2 + di x3 i = 0, 1, · · · , n − 1,
por lo que tenemos 4n incógnitas a determinar. Por otra parte, el spline tiene que cumplir las
siguientes condiciones:
Observemos que se obtienen en total 4n − 2 ecuaciones, lo que significa que para determinar
el spline s(x) de forma única necesitamos imponer 2 condiciones adicionales. Dichas condiciones
suelen imponerse sobre los extremos del intervalo siendo las más habituales
s000 (a) = 0, s00n−1 (b) = 0, (spline cúbico natural),
s00 (a) = f 0 (a), s00n−1 (b) = f 0 (b), (spline cúbico sujeto).
Ejercicio 2.1. Determinar si la siguiente función
1 + x − x3 ,
0 ≤ x < 1,
f (x) = 1 − 2(x − 1) − 3(x − 1)2 + 4(x − 1)3 , 1 ≤ x < 2,
4(x − 2) + 9(x − 2)2 − 3(x − 2)3 , 2 ≤ x ≤ 3,
es el spline cúbico natural que interpola en los puntos (0, 1), (1, 1), (2, 0) y (3, 10).