You are on page 1of 14

Catedrtico Ing.

Oscar Segura

Splines
En anlisis numrico, un spline es una curva definida en porciones mediante polinomios. Se le llama interpolacin segmentaria o interpolacin por splines. La idea central es que en vez de usar un solo polinomio para interpolar los datos, podemos usar segmentos de polinomios y unirlos adecuadamente para formar nuestra interpolacin. Cabe mencionar que entre todas, las splines cbicas han resultado ser las ms adecuadas para aplicaciones

Se utiliza a menudo porque da lugar a resultados que requieren solamente el uso de polinomios de bajo grado, evitando as las oscilaciones, indeseables en la mayora de las aplicaciones, encontradas al interpolar mediante polinomios de grado elevado. Definicin. (Splines de grado k) Dada la tabla de datos,

Suponemos que x0 x1 xn , y dado k un nmero entero positivo, una funcin de interpolacin spline de grado k, para la tabla de datos, es una funcin s(x) tal que : i) s ( para toda i=0,1,,n ii) s(x) es un polinomio de grado en cada subintervalo [ . iii) s(x) tiene derivada contnua hasta de orden k-1 en [

Splines cbicos naturales: La derivada segunda s(x) se hace 0 para el primer y ltimo punto sobre el que est definido el conjunto de Splines [

Interpolacin Segmentaria Cuadrtica


Los polinomios P(x) a travs de los que construimos el Spline tienen grado 2. Esto quiere decir, que va a tener la forma P(x) = ax + bx + c Consideremos los siguientes datos:

Vemos que se forman tres intervalos

3,4.5 4.5,7 7,9


En cada uno de estos intervalos, debemos definir una funcin polinomial de grado 2, como sigue:

sx

a1 x 2 b1 x c1 a2 x 2 b2 x c2 a3 x 2 b3 x c3

si si si

x x x

3,4.5 4.5,7 7,9

Primero, hacemos que la spline pase por los puntos de la tabla de datos. Es decir, se debe cumplir que:

s(3)

2.5,

s(4.5) 1,

s(7)

2.5,

s(9)

0.5

Se forman las siguientes ecuaciones:

s(3)

2.5

9a1 3b1 c1

2.5

s(4.5) 1

(4.5)2 a1 4.5b1 c1 1 (4.5) 2 a2 4.5b2 c2 1

s (7 )
s(9)

2.5
0.5

49a2 7b2 49a3 7b3


81a3 9b3 c3

c2 c3

2.5 2.5
0.5

Tenemos 6 ecuaciones y 9 incgnitas. El siguiente paso es manejar la existencia de las derivadas continuas. En el caso de las splines de grado 2, necesitamos que la spline tenga derivada contnua de orden k-1=1, es decir, primera derivada continua. Calculamos primero la primera derivada:

2a1 x b1 s x 2a2 x b2 2a3 x b3

si si si

x x x

3,4.5 4.5,7 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 x =4.5 x =7 y. Por lo tanto para que sea contnua, se debe cumplir que:

2a1 4.5

b1

2a2 4.5

b2

O lo que es lo mismo,

9a1 b1

9a2

b2

Tambin debe cumplirse que:


2a2 7 b2 2a3 7 b3

o lo que es lo mismo,
14 a2 b2 14 a3 b3

As, tenemos un total de 8 ecuaciones y 9 incgnitas; esto nos da un grado de libertad para elegir alguna de las incgnitas. Elegimos por conveniencia

a1

0.

De esta forma, tenemos un total de 8 ecuaciones vs. 8 incgnitas. Estas son las siguientes:

3b1 c1 4.5b1 c1 20.25a2 49a2 49a3 81a3 b1 14a2

2.5 1 4.5b2 c2 c3 c3 b2 14a3 b3 c2 2.5 2.5 0.5 1

7b2 7b3 9b3

9 a2 b2

Este sistema de ecuaciones tiene la siguiente forma matricial:

3 4.5 0 0 0 0 1 0

0 0 1 1 0

0 0 0 0 49 81 0 14

0 0 0 0 7 9 0

1 0 0 0 20.25 4.5 0 49 7 0 0 0 0 0 0 0 9 14

0 b1 0 c1 0 a2 0 b2 1 c2

2.5 1 1 2.5 2.5 0.5 0 0

0 0 1 0 1 0

1 a3 0 b3 1 0 c3

Usando Matlab se obtiene la siguiente solucin:

b1 c1 a2 b2 c2 a3 b3 c3

1 5 .5 0.64 6.76 18.46 1 .6 24.6 91.3

Sustituyendo estos valores obtenemos la funcin spline cuadrtica que interpola la tabla de datos dada:

x 5.5 sx 0.64 x
2 2

si si

x x x

3,4.5 4.5,7 7,9

6.76 x 18.46 si 24.6 x 91.3

1.6 x

La grfica que se muestra a continuacin, contiene tanto los puntos iniciales de la tabla de datos, as como la spline cuadrtica.

5 4 3 2 1

3 -1

4.5

El siguiente caso, que es el ms importante en las aplicaciones, sigue exactamente los mismos pasos del ejemplo que acabamos de resolver, solamente que en vez de trabajar con polinomios cuadrticos, lo hace con polinomios cbicos.

Interpolacin Segmentaria Cbica


Dados los n+1 datos:

Una spline cbica que interpola estos datos, es una funcin definida como sigue :

s0 x sx s1 x sn
1

si si si

x x x

x0 , x1 x1 , x2 xn 1 , xn

cada

si x si xi

es un polinomio cbico;

yi ,

0,1,, n

s(x) tiene primera y segunda derivadas contnuas en [

Ejemplo 1. Interpolar los siguientes datos mediante una spline cbica:

Solucin.

Definimos un polinomio cbico en cada uno de los intervalos que se forman:

sx

a1 x3 b1 x 2 a2 x3 b2 x 2

c1 x d1 c2 x d 2

si si

x x

2,3 3,5

A continuacin, hacemos que se cumpla la condicin de que la spline debe pasar por los puntos dados en la tabla. As, tenemos que:

s2
s3 2

8a1 4b1 2c1 d1


27 a1 9b1 3c1 d1 2

s5

125 a2

25b2

5c2

d2

Ahora calculamos la primera derivada de

s x

3a1 x 2 3a 2 x 2

2b1 x c1 2b2 x c2

si si

x x

2,3 3,5

Al igual que en el caso de las splines cuadrticas, 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:

3a1 3

2b1 3

c1

3a 2 3

2b2 3

c2

27 a1

6b1

c1

27 a 2

6b2

c2

Procedemos con la segunda derivada:

s x

6a1 x 2b1 6a 2 x 2b2

si si

x x

2,3 3,5

Para lograr que sea continua:

s x
6a1 3 2b1 6a 2 3 2b2

18 a1 2b1

18 a2

2b2

En este punto contamos con 6 ecuaciones y 8 incgnitas, por lo tanto tenemos 2 grados de libertad; en general, se agregan las siguientes 2 condiciones:

s x0 s xn
De lo cual vamos a obtener:

0 0

s 2

6a1 2
0

2b1

12 a1 2b1

s 5

6a2 5 2b2 0

2b2

30 a2

Tenemos 8 ecuaciones vs. 8 incgnitas:

8a1 27a1 27a 2 125a 2 27a1 18a1 12a1 30a 2

4b1 9b1 9b2

2c1 3c1 3c 2

d1 d1 d2

1 2 2 d2 2b2 7 6b2 c2

25b2 6b1 2b1 2b1 2b2 c1

5c 2

27a 2

18a 2 0 0

Cuya forma matricial es la siguiente:

8 27 0 0 27 18 12 0

4 9 0 0 6 2 2 0

2 3 0 0 1 0 0 0

1 1 0 0 0 0 0 0

0 0 27 125 27 18 0 30

0 0 9 25 6 2 0 2

0 0 3 5 1 0 0 0

0 0 1 1 0 0 0

a1 b1 c1 d1 a2 b2

1 2 2 7 0 0 0 0

c2 0 d2

Usando Matlab, obtenemos la siguiente solucin:

a1 b1 c1 d1 a2 b2 c2 d2

1.25 7.5 10.75 0.5 0.625 9.375 39.875 50.125

Sustituyendo estos valores en nuestra funcin inicial, vemos que la spline cbica para la tabla de datos dada, queda definida como sigue:

sx

1.25x3 7.5 x 2 10.75x 0.5 si 3 2 0.625x 9.375x 39.875x 50.125 si

x x

2,3 3,5

Mostramos la grfica correspondiente a este ejercicio,

Prcticamente ni se nota que se trata de dos polinomios diferentes! Esto es debido a las condiciones que se impusieron sobre las derivadas de la funcin. Esta finura casi artstica, es la que permite aplicar las splines cbicas, para cuestiones como el diseo de letras por computadoras, o bien a problemas de aplicacin donde la interpolacin que se necesita es de un carcter bastante delicado, como podra tratarse de datos mdicos sobre algn tipo de enfermedad.

Ejemplo 2. Interpolar los siguientes datos utilizando splines cbicas:

Solucin.

Nuevamente, definimos un polinomio cbico en cada uno de los intervalos:


a1 x 3 b1 x 2 a2 x 3 b2 x 2 a3 x 3 b3 x 2

s ( x)

c1 x d1 c2 x d 2 c3 d3

si si si

x x x

1,1 1,2 2,4

Despus, hacemos que la spline pase por los puntos dados en la tabla. As, tenemos que: s( 1) 1

a1 b1 c1 d1

s(1) 1
a1 b1 c1 d1 1

a2 b2
s(2) 5

c2

d2

8a2
8a3

4b2
4b3

2c2
2c3

d2
d3

5
5

s(4)

64 a3 16 b3

4c3

d3

Calculamos la primera derivada:

s ( x)

3a1 x 2 3a2 x 2 3a3 x 2

2b1 x c1 2b2 x c2 2b3 x c3

si1 si si

x x x

1,1 1,2 2,4

Vemos entonces, que las posibles discontinuidades son x 1 y x 2 . Por lo tanto, para hacer que sea contina, igualamos las ecuaciones correspondientes en ambos valores:

3a1 2b1 c1
12 a2 4b2 c2

3a2

2b2

c2
4b3 c3

12 a3

La segunda derivada:

6a1 x 2b1 s ( x) 6a2 x 2b2 6a3 x 2b3

si si si

x x x

1,1 1,2 2,4

Nuevamente, las posibles discontinuidades son x 1 y x sea continua, se igualan las ecuaciones en ambos valores:

2 . Por lo tanto, para que

6a1 2b1
12 a2 2b2

6a2
12 a3

2b2
2b3

3a1 b1
6a2

3a2
b2

b2
b3

6a3

Finalmente, se agregan las condiciones de que la doble derivada se anule en los puntos inicial y final de la tabla.

s ( 1)
s (4)

0
0

6a1 2b1
24 a3 2b3

0
0

3a1 b1
12 a3 b3

0
0

Tenemos doce ecuaciones vs. doce incgnitas: a1 b1 c1 d1

a1 b1 c1 d1 a2 b2
8a2
8a3

1 1
d2
d3 d3

c2

d2
2c2
2c3 4c3

4b2
4b3

5
5 2

64 a3 16 b3

3a1 2b1 c1
12 a2 4b2 c2

3a2

2b2

c2
4b3 c3

12 a3

3a1 b1
6 a2 b2

3a2
6a3

b2
b3

3a1 b1
12 a3 b3

0
0

Este sistema tiene la siguiente forma matricial:


1 1 1 0 0 0 0 3 0 3 0 0 1 0 0 0 0 2 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 8 0 0 0 0 1 4 0 0 2 4 1 1 0 0 0 0 1 2 0 0 0 0 1 1 0 0 0 0 0 0 8 64 0 12 0 6 0 12 0 0 0 0 4 16 0 4 0 1 0 1 0 0 0 0 2 4 0 a1 0 b1 0 c1 0 d1 1 a2 1 b2 0 c2 1 1 1 5 5 2 0 0 0 0 0 0

0 3 0 12 0 0 0 0 3 6 0 0

1 0 1 0 0 0 0 0 0 0 0 0

0 1 0 d2 0 0 a3 0 0 0 0 b3 0 c3 0 d3

3 1

Obtenemos la solucin:

a1

51 140 , 153 140 ,

a2

21 10 , 297 35 ,

a3

24 35 288 35

b1

b2

b3

c1

89 140 ,

c2

473 70 ,

c3

1867 70

d1

153 40 ,

d2

48 35 ,

d3

732 35

Por lo tanto, la spline cbica es:

s( x)

51 3 153 2 89 140 140 140 297 2 473 21 3 10 35 70 288 2 1867 24 3 35 35 70

x x

x x

x x x

153 40 48 35 732 35

si x si x si x

1,1 1,2 2,4

Mostramos la grfica

8 6

4 2

-1 -2