Splines cúbicos: propiedades y fórmulas.

Prof. Alejandro Nasif Salum

Definiciones y fórmulas de cálculo
Definición 1. Dados n ∈ N y x0 < x1 < . . . < xn , xi ∈ R:

un spline cúbico de nodos x0 , x1 , . . . , xn es cualquier función S ∈ C 2 ([x0 , xn ])
de la forma 

 P0 (x) si x ∈ [x0 , x1 )

P1 (x) si x ∈ [x1 , x2 )

S(x) = .. (1)


 .

Pn−1 (x) si x ∈ [xn−1 , xn ],

con Pi (x) ∈ P3 , 0 ≤ i ≤ n − 1;1

si además f es una función definida en [x0 , xn ] tal que S(xi ) = f (xi ), 0 ≤ i ≤ n,
entonces se dice que S interpola en sus nodos a f .

En general, usamos la representación

Pi (x) = ai + bi (x − xi ) + ci (x − xi )2 + di (x − xi )3 , (0 ≤ i ≤ n − 1) (2)

para explicitar la forma de P0 (x), ..., Pn−1 (x). También se definen —para aliviar la
notación— los incrementos hi = xi+1 − xi y ∆i = f (xi+1 ) − f (xi ) = yi+1 − yi .

Primer caso: splines cúbicos naturales y con derivadas segundas fijas
en los extremos (S 00 (x0 ) = α y S 00 (xn ) = β).
Lema 1. Dados n ∈ N; α, β ∈ R; x0 < . . . < xn , xi ∈ R; y0 , . . . , yn , yi ∈ R; si S es
un spline cúbico de nodos x0 , ..., xn tal que

S(xi ) = yi , ∀i = 0, . . . , n
1
Usamos aquí la notación Pk para representar el conjunto de todos los polinomios de grado
menor o igual a k junto con el polinomio nulo. También es usual la notación Kk [X] si se quiere
destacar el cuerpo K en el que se toman los coeficientes: en nuestro caso, trabajando con polinomios
de coeficientes reales, P3 podría denominarse también R3 [X].

1

Si S es un spline cúbico de nodos x0 < . .y S 00 (x0 ) = α. . . .   . . . . Observación 1. con la notación de las ecuaciones (1) y (2) se verifica:   ∆i−1 hi−1 ci−1 + 2(hi−1 + hi )ci + hi ci+1 = 3 ∆ i hi − hi−1 i = 1. . n − 1 a i = yi i = 0.    0 0 0 0 · · · hn−2 2(hn−2 + hn−1 ) hn−1  0 0 0 0 ··· 0 0 1 (3)   c0  α   c1   2  ∆1 ∆0 3 −      c2     h1 h0   ∆2 ∆1    c3  3 −    h2 h1  c= . . S 00 (xn ) = β. cn son solución de un sistema lineal cuadrado que puede repre- sentarse matricialmente como M c = q. . que conocidos los coeficientes ci pueden calcularse a partir de cálculos inme- diatos los valores de los bi y los di . . n − 1 ∆i bi = hi − (ci+1 + 2ci ) h3i i = 0. . n − 1 c0 = α2 cn = β2 donde cn es una incógnita adicional que se usa sólo para simplificar las ecuaciones. Definición 2. .. . En particular. .. . . . . .. . .. .      cn−2    ∆ n−1 ∆  n−2  3 hn−1 − hn−2     cn−1  β cn 2 2 . n − 1 di = 3h1 i (ci+1 − ci ) i = 0. .. se dice que S es un spline cúbico natural.  . .    .. c1 .. . . . < xn tal que S 00 (x0 ) = S 00 (xn ) = 0. . . donde   1 0 0 0 ··· 0 0 0 h0 2(h0 + h1 )  h1 0 ··· 0 0 0   0 h 1 2(h 1 + h2 ) h 2 · · · 0 0 0  M = . . . .. . .   . .  y q= . que c0 .. lo anterior significa: que los coeficientes ai surgen de inmediato a partir de los valores yi . .

(yi ∈ R). y esto implica que es inversible. desde el punto de vista numérico. que M sea diagonal dominante garantiza la estabilidad numérica de la solución. < xn . . . β ∈ R. (xi ∈ R).25 1 2 8 Si calculamos los incrementos de x e y podemos ampliarla como i 0 1 2 3 xi -2 0 1 3 yi = ai 0.. Por un lado. .. Luego el problema se reduce a verificar si es posible resolver el sistema y. si es posible hacerlo en un tiempo razonable y con una precisión adecuada. ∀i = 0.75 1 6 Notar que los ai están dados por los valores de yi (aunque a3 = y3 no es un coeficiente del spline). .. sino una variable auxiliar— c3 . Supongamos que se cuenta con la siguiente tabla y se busca un spline cúbico natural que la interpole con esos nodos: x -2 0 1 3 y 0. Además. c1 . Ahora pueden obtenerse c0 . c2 y —aunque no sea un coeficiente del spline. dado que M es tridiagonal el algoritmo de eliminación gaussiana puede sistematizarse de manera que la cantidad de cálculos necesarios para la resolución del sistema sea muy inferior al caso general. lo que prueba el siguiente Teorema 1. y0 . n y S 00 (x0 ) = α.25 1 2 8 hi 2 1 2 ∆i 0. Dados n ∈ N. . Ejemplo 1. para lo cual puede ser más cómodo y prolijo realizar algunos cálculos auxiliares como muestra la tabla: 3 . . además. . mediante el sistema       1 0 0 0 c0 0 2 6 1 0 c1   15     8 0 1 6 2 · c2  =  6   0 0 0 1 c3 0 y una vez que se resuelve el sistema pueden calcularse los valores de bi y di mediante las expresiones dadas en el Lema. la inversibilidad de M garantiza que el sistema de ecuaciones es compatible determinado. existe un único spline cúbico S de nodos x0 . . es claro que la matriz M es estrictamente diagonal dominante. . x0 < . . xn tal que S(xi ) = yi . α. En particular. yn . . S 00 (xn ) = β.

S 0 (xn ) = β. yn . 3]. ∀i = 0. x0 < . . . 0) S(x) = 1 + 23 3 2 11 3 40 x + 20 x + 40 x si x ∈ [0. α. . Dados n ∈ N. el spline buscado es  1 11 1 3  4 + 40 (x + 2) + 40 (x + 2)  si x ∈ [−2. nuevamente.. . . .  Segundo caso: splines cúbicos sujetos en los extremos (S 0 (x0 ) = α y S 0 (xn ) = β).. i 0 1 2 3 xi -2 0 1 3 1 yi = ai 4 1 2 8 hi 2 1 2 3 ∆i 4 1 6 ∆i 3 hi 8 1 3 3 39 ci 0 20 40 0 3 33 39 ci+1 − ci 20 40 − 40 3 51 39 ci+1 + 2ci 20 40 20 11 23 17 bi 40 40 10 1 11 13 di 40 40 − 80 Por lo tanto. . una incógnita adicional que se usa solo para simplificar las ecuaciones del sistema. < xn . . (xi ∈ R). 1)  2 + 17 39 2 10 (x − 1) + 40 (x − 1) − 13 80 (x − 1)3 si x ∈ [1. xn tal que S(xi ) = yi . n y S 0 (x0 ) = α. Lema 2. si S es un spline cúbico de nodos x0 . (yi ∈ R). .. β ∈ R. . que se reemplazan por:   ∆0 2h0 c0 + h0 c1 = 3 −α h0 y   ∆n−1 hn−1 cn−1 + 2hn−1 cn = 3 β − hn−1 donde cn es. . y0 . se cumplen las mismas condiciones que en el Lema 1 excepto las dos últimas. 4 .

.Observación 2. .. queda probado el siguiente Teorema 2. .. En estas condiciones el nuevo sistema a resolver para hallar los coefi- cientes ci es      2 4 2 0 0 c0 −5 2 6 1 0 c1   15      8  0 1 6 2 · c2  =  6   113 0 0 2 4 c3 20 (notar que solo cambian la primera y la última ecuación).    .. Ejemplo 2. Supongamos que para la tabla del ejemplo anterior se busca un spline cúbico (no necesariamente natural) que satisfaga las condiciones S 0 (−2) = 12061 y 0 293 S (3) = 60 . S 0 (xn ) = β. Los resultados se muestran en la tabla siguiente: 5 . . . Por lo tanto. . . . yn . . para resolver este caso se resuelve un sistema que matricialmente puede escribirse M c = q. . .. .   .   .. (yi ∈ R). . Una vez resuelto el sistema.   .. . . . se obtienen los coeficientes restantes mediante las mismas ecuaciones ya utilizadas.. . < xn .  cn−2    ∆ n−1 ∆ n−2   3 −     cn−1   hn1 hn−2     ∆n−1 cn 3 β − hn−1 y luego se obtienen el resto de los coeficientes mediante las mismas ecuaciones que en el caso anterior. xn tal que S(xi ) = yi . .     . .. . (xi ∈ R).. Además. aquí también M es tridiagonal y diagonal estrictamente dominante. .  y q= . x0 < . con las consecuencias ya mencionadas.     0 0 0 0 · · · hn−2 2(hn−2 + hn−1 ) hn−1  0 0 0 0 ··· 0 hn−1 2hn−1     (4) ∆   c0 3 h0 − α 0  c1    ∆1 ∆0   3 −      c2     h1 h0     3 ∆ −∆    c3   2 1  h2 h1  c= .. . .. y0 . . En particular. n y S 0 (x0 ) = α. existe un único spline cúbico S de nodos x0 . . ∀i = 0. . Dados n ∈ N. α. β ∈ R. con   2h0 h0 0 0 ··· 0 0 0  h0 2(h0 + h1 )  h1 0 ··· 0 0 0    0 h1 2(h1 + h2 ) h2 · · · 0 0 0  M = .

3].  Propiedades de curvatura mínima Una de las principales motivaciones de la interpolación mediante splines es la obtención de funciones de interpolación simples. como Z b 2 C (f ) = f 00 (x) dx. b]). Una de las formas de analizar este comportamiento es mediante el concepto de curvatura. Si bien existen diferentes definiciones alternativas. 1)  89 23 11 2 + 60 (x − 1) + 40 (x − 1)2 + 120 (x − 1)3 si x ∈ [1. desde un punto de vista local. para el caso de curvas que son el gráfico de funciones sobre un intervalo [a. se define la curvatura total de f sobre [a. así como con cuánto dista la misma de comportarse como una recta (a la que uno le asignaría intuitiva- mente una curvatura nula). b] (o la curvatura total de f o curvatura de f si no es necesario aclarar más). como es el caso de los polinomios interpoladores. a 6 . 0) 73 3 2 11 3 S(x) = 1 + 120 x + 10 x + 120 x si x ∈ [0. pero que resulten en cierto sentido más «estables» aun cuando aque- llos no los son. la curvatura representa en cada punto la tendencia de la curva a «enrollarse sobre sí misma». b] resulta útil a la vez que simple la siguiente definición: Definición 3. y desde un punto de vista global se relaciona en parte con el grado de «oscilación» de la curva. i 0 1 2 3 xi -2 0 1 3 1 yi = a i 4 1 2 8 hi 2 1 2 3 ∆i 4 1 6 ∆i 3 hi 8 1 3 ci − 14 3 10 23 40 9 8 11 11 11 ci+1 − ci 20 40 20 ci+1 + 2ci − 15 47 40 91 40 61 73 89 bi 120 120 60 11 11 11 di 120 120 120 Así que la solución es  1 61 1 2 11 3  4 + 120 (x + 2) − 4 (x + 2) + 120 (x + 2)  si x ∈ [−2. Dada f ∈ C 2 ([a.

a los que denominamos S0 y S1 . entonces C (S) ≤ C (S̃) ≤ C (f ).. C (S) ≤ C (P ). xn ]). Teorema 3. De hecho. . que C (S) ≤ C (g). respectivamente. Dados nodos x0 < . que las derivadas de P en los extremos del intervalo son P 0 (−2) = 61 120 = S10 (−2) y P 0 (3) = 293 0 60 = S1 (3). El siguiente teorema establece en qué sentido los splines cúbicos naturales y los sujetos resultan funciones de curvatura mínima. Si g es cualquier función que interpola a f en los nodos x0 < . Es claro que con esta definción la curvatura está bien definida para funciones C 2 y es no negativa. Es fácil también verificar que el polinomio interpolador de f en los nodos dados es 73 3 11 3 P (x) = 1 + x + x2 + x 120 10 120 y además. . es fácil probar que en tales condiciones las únicas funciones con curvatura total nula son las funciones lineales lo cual coincide con la idea intuitiva de curvatura que se buscaba definir. Del teorema anterior se deducen varias consecuencias: Si g es cualquier función C 2 que interpola a f en los nodos x0 < . En particular. < xn y a su derivada en los extremos (por ejemplo.. podemos prever que: C (S0 ) ≤ C (S1 ) C (S0 ) ≤ C (f ) C (S0 ) ≤ C (P ) C (S1 ) ≤ C (P ) 7 . Observación 3. si S(x) es el spline cúbico natural de nodos {xi } que interpola a f en x0 . < xn .. y una función f ∈ C 2 ([x0 . Notar que la tabla de valores en que se basan se verifica para la función f (x) = 2x . . Consideremos los dos splines obtenidos en los ejemplos anteriores. < xn . Ejemplo 3. si P (x) = f (x|x0 . En base a todo esto y por el teorema anterior. xn y S̃(x) es el spline cúbico con los mismos nodos que también interpola en ellos a f y a f 0 en los extremos (es decir. . . . el polinomio interpolador en esos nodos).. entonces surge de reemplazar g por f en el enunciado del teorema. verifica S̃ 0 (x0 ) = f 0 (x0 ) y S̃ 0 (xn ) = f 0 (xn )). xn ) (es decir.. entonces C (S̃) ≤ C (g). el polinomio de Hermite que satisface tales condiciones). . ..

Todas relaciones simples de verificar mediante el cálculo de las curvaturas respec- tivas.0875 −2 20 0 10 20 1 20 40 2 3 11 2 Z 0 Z 1  Z 3 2 1 11 23 11 335 C (S1 ) = − + (x + 2) dx+ + x dx+ + (x − 1) dx = −2 2 20 0 5 20 1 20 20 48 4x . que resultan: Z 0  2 Z 1 2 Z 3 2 3 3 32 39 39 C (S0 ) = (x + 2) dx+ + x dx+ − (x − 1) dx = 4.

.

3 Z 3 .

. 2 C (f ) =  2 ln (2)2x dx = ln4 (2) = 10. .646 . −2 ln(4) .

Y no hace falta ningún cálculo para chequearlo.−2 3 11 2 Z 3  335 C (P ) = + x dx = . Pero es claro que P (x). la única función C 2 formada por polinomios de grado menor o igual a 3 en cada intervalo— que tiene en los extremos las mismas derivadas que P y que interpola a P (así como a f ) en los nodos. en realidad es una consecuencia inme- diata de algo que a simple vista no se notó acerca de S1 y P . −2 5 20 48 Lo único llamativo en este ejemplo es que las curvaturas de S1 y P resultaron iguales. Se sugiere pensarlo un poco más en profundidad. P ≡ S1 . por ser un polinomio de grado 3. 8 . es en sí una función que cumple con todas esas condiciones.2 2 En realidad resulta que. pero en cualquier caso. pero esto no es ninguna casualidad. a pesar de las diferentes expresiones que presentamos. sino un simple razonamiento: S1 (x) es el único spline cúbico —es decir. la respuesta está al pie de esta página. teniendo en cuenta la unicidad del spline que asegura el Teorema 2. Por lo tanto. P (x) = S1 (x) en todo el intervalo.