Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
INTERPOLACIÓN DE SPLINES
Así pues, podemos decir de manera informal, que una función spline está formada por
varios polinomios, cada uno definido en un intervalo y que se unen entre si bajo ciertas
condiciones de continuidad.
donde suponemos que 𝑥0 < 𝑥1 < ⋯ < 𝑥𝑛 , y dado k un número entero positivo, una
función de interpolación spline de grado k, para la tabla de datos, es una función 𝑠(𝑥)
tal que :
i) 𝑠(𝑥𝑖 ) = 𝑦𝑖 , para toda 𝑖 = 0,1, ⋯ 𝑛. .
ii) 𝑠(𝑥) es un polinomio de grado ≤ 𝑘 en cada subintervalo [𝑥𝑖−1 , 𝑥𝑖 ] .
iii ) 𝑠(𝑥) tiene derivada contínua hasta de orden 𝑘 − 1 en [𝑥0 , 𝑥𝑛 ] .
Una función spline de grado 1 que interpole los datos es simplemente unir cada uno de
los puntos mediante segmentos de recta, como sigue:
Claramente esta función cumple con las condiciones de la spline de grado 1. Así, tenemos
que para este caso:
s1 x si x x0 , x1
s x s x x1 , x2
s ( x) 2
sn x si x xn 1 , xn
donde:
y0 f x1 , x0 x x0 si x x0 , x1
y f x , x x x x x1 , x2
si
s x 1 2 1 1
yn 1 f xn , xn 1 x xn 1 si x xn 1 , xn
Para aclarar bien la idea, veamos un ejemplo concreto, consideremos los siguientes
datos:
3,4.5
4.5,7
7,9
En cada uno de estos intervalos, debemos definir una función polinomial de grado 2,
como sigue:
a1 x 2 b1 x c1 si x 3,4.5
s x a2 x 2 b2 x c2 si x 4.5,7
a x2 b x c si x 7,9
3 3 3
Primero, hacemos que la spline pase por los puntos de la tabla de datos. Es decir, se
debe cumplir que:
2a1 x b1 si x 3,4.5
s x 2a2 x b2 si x 4.5,7
2a x b
3 3 si x 7,9
Vemos que esta derivada está formada por segmentos de rectas, que pudieran presentar
discontinuidad en los cambios de intervalo. Es decir, las posibles discontinuidades son
𝑥 = 4.5 ; 𝑦 = 7. Por lo tanto para que 𝑠 ′(𝑥) sea contínua, se debe cumplir que:
2a2 7 b2 2a3 7 b3
o lo que es lo mismo,
14a2 b2 14a3 b3
Así, tenemos un total de 8 ecuaciones con 9 incógnitas; esto nos da un grado de libertad
para elegir alguna de las incógnitas. Elegimos por simple conveniencia 𝑎1 = 0.
De esta forma, tenemos un total de 8 ecuaciones vs. 8 incógnitas. Estas son las siguientes:
3b1 c1 2.5
4.5b1 c1 1
20.25a2 4.5b2 c2 1
49 a2 7b2 c2 2.5
49 a3 7b3 c3 2.5
81a3 9b3 c3 0.5
b1 9a2 b2
14 a2 b2 14 a3 b3
Este sistema de ecuaciones tiene la siguiente forma matricial:
3 1 0 0 0 0 00 b1 2.5
4 .5
1 0 0 0 0 0 0 c1 1
0 0 20.25 4.5 1 0 0 0 a2 1
0 0 49 7 1 0 0 0 b2 2.5
0 0 0 0 0 49 7 1 c2 2.5
0 0 0 0 0 81 9 1 a3 0.5
1 0 9 1 0 0 0 0 b3 0
0 0 14 1 0 14 1 0 c3 0
x 5.5 si x 3,4.5
s x 0.64 x 6.76 x 18.46 si
2
x 4.5,7
1.6 x 2 24.6 x 91.3 si
x 7,9
La gráfica que se muestra a continuación, contiene tanto los puntos iniciales de la tabla
de datos, así como la spline cuadrática. Esta gráfica se generó usando Matlab.
El siguiente caso, que es el más importante en las aplicaciones, sigue exactamente los
mismos pasos del ejemplo que acabamos de resolver, solamente que en vez de trabajar
con polinomios cuadráticos, lo hace con polinomios cúbicos.
Una spline cúbica que interpola estos datos, es una función 𝑠(𝑥) definida como sigue:
s0 x si x x0 , x1
s x si x x1 , x2
s x 1
sn 1 x si x xn 1 , xn
donde cada 𝑠𝑖 (𝑥) es un polinomio cúbico; 𝑠𝑖 (𝑥𝑖 ) = 𝑦𝑖 , para toda 𝑖 = 0,1, ⋯ , 𝑛 y tal
que 𝑠(𝑥) tiene primera y segunda derivadas contínuas en [𝑥0 , 𝑥𝑛 ] .
Ejemplo 1.
Interpolar los siguientes datos mediante una spline cúbica:
Solución.
a1 x 3 b1 x 2 c1 x d1 si x 2,3
s x 3
a2 x b2 x c2 x d 2
2
si x 3,5
A continuación, hacemos que se cumpla la condición de que la spline debe pasar por los
puntos dados en la tabla. Así, tenemos que:
3a x 2 2b1 x c1 si x 2,3
s x 1 2
3a 2 x 2b2 x c 2 si x 3,5
Al igual que en el caso de las splines cuadráticas, se presentan ecuaciones que pueden
presentar discontinuidad en los cambios de intervalo; las posibles discontinuidades son
los puntos donde se cambia de intervalo, en este caso x=3. Para evitar esta discontinuidad,
evaluamos x=3 en los dos polinomios e igualamos:
o lo que es lo mismo:
27 a1 6b1 c1 27 a 2 6b2 c 2
6a x 2b1 si x 2,3
s x 1
6a 2 x 2b2 si x 3,5
En este punto contamos con 6 ecuaciones y 8 incognitas, por lo tanto tenemos 2 grados
de libertad; en general, se agregan las siguientes 2 condiciones:
s x 0 0
s x n 0
De lo cual vamos a obtener:
Dra. Pilar Nuñez Blas Página 6
Métodos Numéricos Splines
8 4 2 1 0 0 0 0 a1 1
27
9 3 1 0 0 0 0 b1 2
0 0 0 0 27 9 3 1 c1 2
0 0 0 0 125 25 5 1 d1 7
27 6 1 0 27 6 1 0 a2 0
18 2 0 0 18 2 0 0 b2 0
12 2 0 0 0 0 0 0 c2 0
0 0 0 0 30 2 0 0 d 2 0
a1 1.25
b1 7.5
c1 10.75
d1 0.5
a2 0.625
b2 9.375
c2 39.875
d2 50.125
Sustituyendo estos valores en nuestra función inicial, vemos que la spline cúbica para la
tabla de datos dada, queda definida como sigue:
Obsérvese la finura con la que se unen los polinomios cúbicos que conforman a la spline.
Prácticamente ni se nota que se trata de dos polinomios diferentes. Esto es debido a las
condiciones que se impusieron sobre las derivadas de la función. Esta finura casi artística,
es la que permite aplicar las splines cúbicas, para cuestiones como el diseño de letras por
computadoras, o bien a problemas de aplicación donde la interpolación que se necesita es
de un carácter bastante delicado, como podría tratarse de datos médicos sobre algún tipo
de enfermedad.
Ejemplo 2.
Interpolar los siguientes datos utilizando splines cúbicas:
Solución.
Nuevamente, definimos un polinomio cúbico en cada uno de los intervalos:
a1 x 3 b1 x 2 c1 x d1 si x 1,1
s ( x) a2 x 3 b2 x 2 c2 x d 2 si x 1,2
a x3 b x 2 c d si x 2,4
3 3 3 3
Después, hacemos que la spline pase por los puntos dados en la tabla. Así, tenemos que:
Y finalmente 𝑠(4) = −2
64a3 16b3 4c3 d3 2
Vemos entonces, que las posibles discontinuidades de 𝑠 ′(𝑥) son x=1 y x=2. Por lo tanto,
para hacer que 𝑠 ′(𝑥) sea contínua, igualamos las ecuaciones correspondientes en ambos
valores:
3a1 2b1 c1 3a2 2b2 c2
12a2 4b2 c2 12a3 4b3 c3
Nuevamente, las posibles discontinuidades son x =1 y x = 2. Por lo tanto, para que 𝑠 ′′(𝑥)
sea contínua, se igualan las ecuaciones en ambos valores:
Finalmente, se agregan las condiciones de que la doble derivada se anule en los puntos
inicial y final de la tabla. En este caso,
1 1 1 1 0 0 0 0 0 0 a1 1
0 0
1
1 1 1 0 0 0 0 0 0 0 0 b1 1
0 0 0 0 1 1 1 1 0 0 0 0 c1 1
0 0 0 0 8 4 2 1 0 0 0 0 d1 5
0 0 0 0 0 0 0 0 8 4 2 1 a2 5
0 0 0 0 0 0 0 0 64 16 4 1 b2 2
3 2 1 0 3 2 1 0 0 0 0 0 c2 0
0 0 0 0 12 4 1 0 12 4 1 0 d 2 0
3 1 0 0 3 1 0 0 0 0 0 0 a3 0
0 0 0 0 6 1 0 0 6 1 0 0 b3 0
3 1 0 0 0 0 0 0 0 0 0 0 c3 0
0 0 0 0 0 0 0 0 12 1 0 0 d 3 0
51 21 24
a1 a2 a3
140 , 10 , 35
153 297 288
b1 b2 b3
140 , 35 , 35
89 473 1867
c1 c2 c3
140 , 70 , 70
153 48 732
d1 d2 d3
40 , 35 , 35
Por lo tanto, la spline cúbica es:
140
51 3
x 140
153 2
x 140
89
x 153
40 si x 1,1
s( x) 1021 x 3 297
35 x 70 x 35
2 473 48
si x 1,2
24 x 3 288 x 2 1867 x 732 si x 2,4
35 35 70 35
EJEMPLO
Tenemos la siguiente imagen.