Está en la página 1de 10

Instituto Tecnol

ogico de L
azaro C
ardenas
Ingeniera Electr
onica
Interpolaci
on Spline
Asignatura: Analisis Numerico
Docente: M.C. Julio Cesar Gallo Sanchez

Alumno: Jose Armando Lara Ramos

Equipo: 9

4o Semestre

Abril 26 de 2012

Jose Armando Lara Ramos

Interpolaci
on Spline
Resumen
En este documento se detalla la descripcion de la interplacion spline de
primer, segundo y tercer grado. Ademas se muestran los calculos necesarios
para poder realizarlos y aplicarlos en diferentes ambitos.

1.

Introducci
on

La construccion de polinomios de interpolacion de grado alto aunque justificable


teoricamente plantea muchos problemas. Por un lado, la forma de la funcion polinomica de grado alto a menudo no responde al fenomeno debido al gran n
umero
de extremos e inflexiones. Por otro lado, su calculo es muy complicado, lo que limita
su utilidad en analisis numerico. Es a menudo mas conveniente dividir el intervalo
de interes en subintervalos mas peque
nos y usar en cada subintervalo polinomios de
grado relativamente bajo, tratando de que la funcion a trozos definida de este modo
tenga un aspecto final adecuado al fenomeno que estamos representando.
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
interpolacion. Podemos decir, que una funcion spline esta formada por varios polinomios, cada uno definido en un intervalo y que se unen entre si bajo ciertas condiciones
de continuidad. Cabe mencionar que entre todas, las splines c
ubicas han resultado
ser las mas adecuadas.
Definici
on (Splines de grado k) Dada nuestra tabla de datos:
Tabla 1: Datos
x
y
x0
y0
x1
y1
... ...
xn
yn

donde suponemos que x0 < x1 < x2 < . . . < xn y dado que k es un n


umero entero
positivo, una funcion de interpolacion spline de grado k, para la tabla de datos, es
una funcion S(x) tal que :
1. S(xi ) = yi , para toda i = 0, 1, . . . , n.
2. S(x) es un polinomio de grado k en cada subintervalo [xi1 , xi ].
3. S(x) tiene derivada continua hasta de orden k 1 en [x0 , xn ].

Jose Armando Lara Ramos

2.

Funciones spline de grado uno

Dados los n + 1 puntos de la Tabla 1, Una funcion spline de grado 1 que interpole
los datos es simplemente unir cada uno de los puntos mediante segmentos de recta,
como sigue:

Figura 1: Naturaleza de la interpolacion spline de grado uno.


Claramente esta funcion cumple con las condiciones de la spline de grado 1. As,
tenemos que para este caso:

s1 (x) si x [x0 , x1 ]

s2 (x) si x [x1 , x2 ]
S(x) = s3 (x) si x [x2 , x3 ]

..

sn (x) si x [xn1 , xn ]
donde:
1. Sj (x) es un polinomio de grado menor o igual que 1
2. S(x) tiene derivada continua de orden k 1 = 0.
3. S(xj ) = yj , para j = 0, 1, . . . , n.
Por lo tanto, la spline de grado 1 queda definida como:

y0 + f [x1 , x0 ](x x0 )
si x [x0 , x1 ]

y1 + f [x2 , x1 ](x x1 )
si x [x1 , x2 ]
S(x) =
.
..

si x [x2 , x3 ]

y
n1 + f [xn , xn1 ](x xn1 ) si x [xn1 , xn ]
donde f [xi , xj ] es la diferencia dividida de Newton.

Jose Armando Lara Ramos

3.

Funciones spline de grado dos


Veamos un ejemplo concreto, consideremos los siguientes datos:
Tabla 2: Datos
x
y
3
2.5
4.5
1
7
2.5
9
0.5

procedamos a calcular la interpolacion por splines de grado 2. Primero que nada, vemos que se forman tres intervalos: [3, 4,5], [4,5, 7], [7, 9] En cada uno de estos
intervalos, debemos definir una funcion polinomial de grado 2, como sigue:

a1 x + b1 x + c1 si x [3, 4,5]
S(x) = a2 x2 + b2 x + c2 si x [4,5, 7]

2
a3 x + b3 x + c3 si x [7, 9]
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
As se forman las siguientes ecuaciones:
s(3) = 2,5 9a1 + 3b1 + c1 = 2,5
(
(4,5)2 a1 + 4,5b1 + c1 = 1
s(4,5) = 1
(4,5)2 a2 + 4,5b2 + c2 = 1
(
(49)2 a2 + 7b2 + c2 = 2,5
s(7) = 2,5
(49)2 a3 + 7b3 + c3 = 2,5
s(9) = 81a3 + 9b3 + c3 = 0,5
Hasta aqu, tenemos un total de 6 ecuaciones con 9 incognitas. 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 continua de orden k 1 = 1, es decir,
primera derivada continua.
Calculamos primero la primera derivada:

2a1 + b1 si x [3, 4,5]


0
S (x) = 2a2 + b2 si x [4,5, 7]

2a3 + b3 si x [7, 9]

Jose Armando Lara Ramos

Vemos que esta derivada esta formada por segmentos de rectas, que pudieran
presentar discontinuidad en los cambios de intervalo. Es decir, las posibles discontinuidades son x = 4,5 y x = 7 . Por lo tanto para que S 0 (x) sea continua, se debe
cumplir que:
2a1 (4,5) + b1 = 2a2 (4,5) + b2 9a1 + b1 = 9a2 + b2
Tambien debe cumplirse que:
2a2 (7) + b2 = 2a3 (7) + b3 14a2 + b2 = 14a3 + b3
As, tenemos un total de 8 ecuaciones vs. 9 incognitas; esto nos da un grado
de libertad para elegir alguna de las incognitas. Elegimos por simple conveniencia
a1 = 0 . De esta forma, tenemos un total de 8 ecuaciones con 8 incognitas. Estas son
las siguientes:
3b1 c1 = 2,5
4,5b1 c1 = 1
20,25a2 + (4,5)b2 + c2 = 1
49a2 + 7b2 + c2 = 2,5
49a3 + 7b3 + c3 = 2,5
81a3 + 9b3 + c3 = 0,5
b1 = 9a2 + b2
14a2 + b2 = 14a3 + b3
Este sistema de ecuaciones tiene

3 1
0
0
4,5 1
0
0

0 0 20,25 4,5

0 0 49
7

0 0
0
0

0 0
0
0

1 0 9 1
0 0 14
1

la siguiente forma matricial:



0 0
0 0
b1
2,5
c1 1
0 0
0 0


1 0
0 0
a2 1

1 0
0 0
b2 = 2,5


0 49
7 1
c2 2,5

0 81
9 1
a3 0,5
0 0
0 0 b3 0
0 14 1 0
c3
0

Se obtiene la siguiente solucion:


b1 = 1,

c1 = 5,5,

a2 = 0,64,

b2 = 6,76, c2 = 18,46, a3 = 1,6, b3 = 24,6, c3 = 91,3

Sustituyendo estos valores (junto con a1 = 0 ), obtenemos la funcion spline


cuadratica que interpola la tabla de datos dada:

Jose Armando Lara Ramos

six [3, 4,5]


x + 5,5
2
S(x) = 0,64x 6,76x + 18,46 six [4,5, 7]

1,6x2 + 24,6x 91,3 six [7, 9]


La grafica de la Figura 2, contiene tanto los puntos iniciales de la tabla de datos,
as como la spline cuadratica.

Figura 2: Interpolacion spline de grado dos.


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

4.

Funciones spline de grado tres

Dados n + 1 datos: Una spline c


ubica
S(x) definida como sigue:

S1 (x)

S2 (x)
S(x) = S3 (x)

..

Sn (x)

que interpola estos datos, es una funcion

si x [x0 , x1 ]
si x [x1 , x2 ]
si x [x2 , x3 ]
si x [xn1 , xn ]

Jose Armando Lara Ramos

Tabla 3: Datos
x
y
x0
y0
x1
y1
... ...
xn
yn

donde Si (x) es un polinomio c


ubico; Si (xi ) = yi , para toda i = 0, 1, ..., n y tal
que S(x) tiene primera y segunda derivadas continuas en [x0 , xn ].

4.1.

Ejemplo 1

Interpolar los siguientes datos mediante una spline c


ubica:
Tabla 4: Datos
x y
2 -1
3 2
5 -7

Soluci
on:
Definimos un polinomio c
ubico en cada uno de los intervalos que se forman:
(
a1 x3 + b1 x2 + c1 x + d1 six [2, 3]
S(x) =
a2 x3 + b2 x2 + c2 x + d2 six [3, 5]
A continuacion, hacemos que se cumpla la condicion de que la spline debe pasar
por los puntos dados en la tabla. As, tenemos que:
S(2) = 1 8a1 + 4b1 + 2c1 + d1 = 1
S(3) = 2 27a1 + 9b1 + 3c1 + d1 = 2
S(5) = 7 125a2 + 25b2 + 5c2 + d2 = 7
Ahora calculamos la primera derivada de s (x) :
(
3a1 x2 + 2b1 x + c1 six [2, 3]
0
S (x) =
3a2 x2 + 2b2 x + c2 six [3, 5]

Jose Armando Lara Ramos

Al igual que en el caso de las splines cuadraticas, 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)2 + 2b1 (3) + c1 = 3a2 (3)2 + 2b2 (3) + c2 27a1 + 6b1 + c1 = 27a2 + 6b2 + c2
Analogamente procedemos con la segunda derivada:
(
6a1 x + 2b1 six [2, 3]
S 0 (x) =
6a2 x + 2b2 six [3, 5]
Para lograr que S 00 (x) sea continua:
6a1 (3) + 2b1 = 6a2 (3) + 2b2 18a1 + 2b1 = 18a2 + 2b2
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 00 (x0 ) = 0 y S 00 (xn ) = 0
De lo cual vamos a obtener:
S 00 (2) = 0 6a1 (2) + 2b1 = 0 12a1 + 2b1 = 0
S 00 (5) = 0 6a2 (5) + 2b2 = 0 30a2 + 2b2 = 0
Con lo cual, hemos completado un juego de 8 ecuaciones vs. 8 incognitas, el cual
es el siguiente:
8a1 + 4b1 + 2c1 + d1 = 1
27a1 + 9b1 + 3c1 + d1 = 2
27a2 + 9b2 + 3c2 + d2 = 2
125a2 + 25b2 + 5c2 + d2 = 7
27a1 + 6b1 + c1 = 27a2 + 6b2 + c2
18a1 + 2b1 = 18a2 + 2b2
12a1 + 2b1 = 0
30a2 + 2b2 = 0
Cuya forma matricial es la siguiente:

Jose Armando Lara Ramos


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
c1 2
9
3
1


0 0 0 0 125 25 5 1 d2 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
d2
0
Obtenemos la siguiente solucion:
a1 = 1,25 b1 = 7,5 c1 = 10,75 d1 = 0,5 a1 = 0,625 b2 = 9,375 c3 = 39,875 d3 = 50,125
Sustituyendo estos valores en nuestra funcion inicial, vemos que la spline c
ubica
para la tabla de datos dada, queda definida como sigue:
(
1,25x3 + 7,5x2 10,75x + 0,5
si x [2, 3]
S(x) =
0,625x3 9,375x2 + 39,875x 50,125 si x [3, 5]
Mostramos la grafica correspondiente a este ejercicio en la Figura 3.

Figura 3: Interpolacion spline de grado tres.


Practicamente ni se nota que se trata de dos polinomios diferentes. Esto es debido
a las condiciones que se impusieron sobre las derivadas de la funcion. Esta finura casi
artstica, es la que permite aplicar las splines c
ubicas, para cuestiones como el dise
no
de letras por computadoras, o bien a problemas de aplicacion donde la interpolacion
que se necesita es de un caracter bastante delicado, como podra tratarse de datos
medicos sobre alg
un tipo de enfermedad.

Jose Armando Lara Ramos

10

Referencias
[1] D. Hearn, M. P. Baker, Graficas por Computadora, 2o edicion. Prentice Hall
Hispanoamerica S.A., 1994.
[2] C. Delrieux, Introduccion a la Computacion Grafica. Dep de Ingeniera Electrica, Universidad Nacional del Sur, 2000.
[3] T. Sederberg, BYU Bezier curves, Chapter 2
[4]J.D. Foley et al, Computer Graphics: Principles and Practice in C, 2nd ed.,
Addison Wesley,1992.

También podría gustarte