Está en la página 1de 6

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

ISSN 0122-1701

INTERFAZ GRFICA PARA LA INTERPOLACIN DE DATOS A TRAVS DE SPLINES CBICOS GUI for Data Interpolation by Cubic Spline
RESUMEN En este documento se presentan los resultados obtenidos al desarrollar una interfaz grfica en la utilidad GUIDE (Graphical User Interface Development Environment) de Matlab, la cual permite llevar a cabo la interpolacin de los datos ingresados por el usuario a travs de Splines Cbicos. El programa tambin posibilita la realizacin de la interpolacin lineal, con el objetivo de comparar los resultados obtenidos con las funciones cbicas arrojadas al realizar la reconstruccin con polinomios de tercer orden, cuyos coeficientes pueden ser recuperados en un archivo de texto una vez es ejecutado el programa. PALABRAS CLAVES: Interfaz Grfica, interpolacin, reconstruccin de funciones, splines. ABSTRACT This paper presents the results obtained by developing a GUI utility in the GUIDE (Graphical User Interface Development Environment) in Matlab, which allows interpolation of the data entered by the user via Cubic Splines. The program also enables the realization of the linear interpolation, in order to compare the results with cubic functions thrown when performing the interpolation with polynomials of third order, whose coefficients can be retrieved in a text file after running the program. KEYWORDS: GUI, interpolation, reconstruction of functions, splines. 1. INTRODUCCIN En el desarrollo de una prctica de laboratorio de fsica universitaria, generalmente los estudiantes realizan lecturas de los diferentes valores que toma cierta variable fsica en particular, que podra ser, entre otras, distancia, temperatura, presin, tiempo, etc. Naturalmente, estos datos recopilados corresponden a un conjunto finito de muestras que ofrecen una idea acerca de la tendencia existente en el comportamiento del parmetro medido. Dado que el experimentador no puede tomar una cantidad infinita de valores (de tal manera que la representacin corresponda a una curva continua), la grfica final construida con todas las muestras recopiladas corresponder a una funcin discreta, es decir, una funcin que toma algn valor de un conjunto finito de posibles valores dentro de un intervalo de tiempo dado. Debido a que todas las variables fsicas presentan un comportamiento continuo, es posible concluir que la grfica construida al unir con rectas todos los puntos tomados, corresponder a una visin un poco alejada de la realidad. Si en vez de trazar rectas para unir los puntos recolectados, se plantean funciones de orden superior que unan cada pareja de puntos sin afectar la continuidad de la curva final, entonces se estar realizando una interpolacin polinomial a trozos [1], la cual entregar como resultado final una curva mucho ms aproximada al comportamiento real de la variable medida. As, la
Fecha de Recepcin: (Letra Times New Roman de 8 puntos) Fecha de Aceptacin: Dejar en blanco

EDWIN ANDRS QUINTERO S. Ingeniero Electrnico Candidato a Magster en Instrumentacin Fsica Grupo de Investigacin en Astronoma Alfa Orin Profesor Auxiliar Universidad Tecnolgica de Pereira equintero@utp.edu.co WILLIAM ARDILA URUEA Licenciado en Fsica MSc. Fsica Profesor Titular Universidad Tecnolgica de Pereira williamar@utp.edu.co HUGO ARMANDO GALLEGO Licenciado en Fsica MSc. Fsica Profesor Asistente Universidad Tecnolgica de Pereira ugo@utp.edu.co

interpolacin por medio de Splines Cbicos permite crear funciones de orden superior que aproximan los datos tomados a una curva continua que conserva la suavidad inherente a toda variable fsica. Adems de la utilidad que presentan los Splines en la interpolacin de datos, tambin se encuentran mltiples aplicaciones de este tipo de funciones en diferentes reas de la ingeniera, especialmente en el campo del procesamiento digital de imgenes, pues son ideales en la reconstruccin, alisado, filtrado, ampliacin y reduccin de fotografas [2]; todo esto gracias, entre otras cosas, a que las funciones reconstruidas a partir de estos polinomios conservan su continuidad, lo cual permite reducir los efectos de los valores extremos de una manera muy eficaz [3]. El objetivo fundamental del programa desarrollado consiste en brindar una herramienta informtica a los estudiantes de los cursos de laboratorio de fsica para ingenieras, la cual permitir la construccin de las grficas solicitadas en las guas, a partir de la interpolacin con Splines Cbicos, facilitando as la realizacin del anlisis de cada grfica necesario para la comprensin del fenmeno estudiado. Adems, gracias a que el programa permite obtener los coeficientes de los polinomios utilizados para la interpolacin, el estudiante tambin podr familiarizarse con esta importante aplicacin de los mtodos numricos.

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

2. INTERPOLACIN POLINOMIAL Cuando se desea interpolar un conjunto de datos por medio de polinomios, es posible determinar la funcin que identifica cada pareja de puntos teniendo en cuenta nicamente la informacin suministrada por el par de valores. A este tipo de interpolacin polinomial se le conoce como local. Si por el contrario, en el momento de obtener la ecuacin que unir un par de puntos, no solamente se tiene en cuenta la informacin suministrada por la pareja, sino que adems se toma todo el conjunto de muestras, entonces se estar realizando una interpolacin polinomial global [4]. 2.1 INTERPOLACIN POR SPLINES CBICOS Un ejemplo claro de la aproximacin global de funciones descrita anteriormente consiste en la interpolacin por Splines Cbicos. Supngase que se desea interpolar cierta funcin f(ti) definida por un conjunto finito de valores yi (ver figura 1), mediante una serie de polinomios pi(t). Los datos t0,t1,,ti-1,ti,ti+1,,tn-1,tn; no necesariamente tienen que estar igualmente espaciados, pero si deben ser ordenados [5], es decir, se debe cumplir que:

pi1 (t i ) = pi (t i ) 1 (t i ) = p i p i (t i )

(4) (5)

Si pi(t) es un polinomio de grado tres, su segunda derivada corresponder a una lnea recta, tal como se observa en la figura 2.

t 0 < t1 < .... < t i 1 < t i < t i +1 < ... < t n 1 < t n

(1)

El objetivo es entonces encontrar los polinomios pi(t) que interpolen la funcin yi= f(ti) en los intervalos [ti,ti+1], con i=1,2,3,,n-1.

Figura 2. Polinomios de primer grado pi(t), y tercer grado pi(t) que interpolan la funcin yi= f(ti) en el intervalo definido por [ti,ti+1].

Bajo estas condiciones, primero se obtienen polinomios de grado uno que interpolen cada pareja de datos, para lo cual se aplica la ecuacin de la recta:

y y 0 = m( x x 0 )

(6)

pi(t ) pi(t i ) =
p i(t ) = p i(t1+1 )

pi(t i +1 ) pi(t i ) ( t ti ) t i +1 t i

(7)

t ti t ti p i(t i ) + pi(t i ) t i +1 t i t i +1 t i
(8)

Figura 1. Interpolacin de una funcin f(ti) mediante polinomios individuales para cada par de datos.

t ti t ti pi(t ) = pi(t i ) 1 + pi(t i +1 ) t i +1 t i t i +1 t i


(9)

Para que los polinomios pi(t) interpolen la funcin se debe cumplir que:

pi (t i ) = y i pi (t i +1 ) = y i +1

(2) (3)

t t ( t ti ) t ti pi(t ) = pi(t i ) i +1 i + pi(t i +1 ) t i +1 t i t i +1 t i


p i(t ) = pi(t i ) p i(t ) = pi(t i ) t t i +1 t ti + pi(t i +1 ) t i t i +1 t i +1 t i t i +1 t t ti + pi(t i +1 ) t i +1 t i t i +1 t i
(10)

Ahora, para que la funcin interpolada no contenga cambios bruscos, las derivadas en los extremos de los polinomios que aproximan cada tramo deben coincidir, al igual que su segunda derivada; esto con el fin de mantener la continuidad de la curva final obtenida:

(11)

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

Sea:

t i +1 t i = hi

(12)

yi =
Bi =

i hi2 + Bi hi 6
(20)

Entonces (11) se puede expresar como:

t t t ti p i(t ) = p i(t i ) i +1 + p i(t i +1 ) hi hi


(13) Por otra parte, si:

y i i hi hi 6
pi (t i +1 ) = y i +1

pi(t i ) = i p i(t i +1 ) = i +1
La ecuacin 12 queda:

yi +1 =
(14) (15)

i (t i +1 t i +1 ) 3 i +1 (t i +1 t i ) 3 + hi 6 hi 6

+ Ai (ti +1 ti ) + Bi (ti +1 ti +1 )

y i +1 =
(16)

pi(t ) =

i (t i +1 t ) + i +1 (t t i ) hi hi

Ai =

i +1 hi2 + Ai hi 6 y i +1 i +1 hi
hi 6

(21)

La expresin (16) representa la ecuacin de la recta que interpola la pareja de puntos pertenecientes al intervalo [ti,ti+1]. As, para obtener la ecuacin del Spline Cbico se debe integrar dos veces la ecuacin (16):

Reemplazando Ai y Bi en (19):

p i (t ) =

i (t i +1 t ) 3 i +1 (t t i ) 3 + + C i t + Di hi 6 hi 6
(17)

i +1 (t t i ) 3 i (t i +1 t ) 3 h ( t t ) hi (t t i ) + i i +1 6 hi 6 hi ( t t ) + y ( t ti ) + yi i +1 (22) i +1 hi hi p i (t ) =
Solo resta calcular los trminos i y i + 1 , para lo cual se aplica sobre (22) las condiciones (4) y (5). (t ) : Primero se determina pi

Donde los trminos Ci y Di representan las constantes originadas durante el proceso de integracin, las cuales se pueden expresar de la siguiente forma:

C i t + Di = Ai (t t i ) + Bi (t i +1 t )
As, la ecuacin (17), se puede escribir como:

(18)

pi (t ) =

i 6
i

pi (t ) =
(19)

i (ti +1 t )3 i +1 (t ti )3 + + Ai (t ti ) + Bi (ti +1 t )y i +1 y i + hi 6 hi 6 h

3( t i +1 t ) 2 + hi + i +1 hi 6
(23)

3( t t i ) 2 hi hi

Para determinar los valores de las constantes Ai y Bi, aplicamos las condiciones (2) y (3) a la ecuacin (19):

2 i +1 3( t i t i ) 2 i 3( t i +1 t i ) pi (t i ) = + hi + hi 6 hi 6 hi

pi (t i ) = y i

yi =

i (ti +1 ti ) 3 i+1 (ti ti ) 3 + hi 6 hi 6

y i +1 y i hi

(24)

+ Ai (ti ti ) + Bi (ti +1 ti )

pi (t i ) =

i ( 3hi + hi ) + i +1 ( hi ) + yi +1 y i 6 6 hi

____________________________ 1. Las notas de pie de pgina debern estar en la pgina donde se citan. Letra Times New Roman de 8 puntos

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

i hi i +1 hi y i +1 y i + (25) 3 6 hi 1 (t i ) . Para esto se Ahora se debe hallar el trmino p i (t i +1 ) : determina primero p i


pi (t i ) =

pi (t i +1 ) =
+

i 6

y i +1 y i hi

3( t i +1 t i +1 ) 2 + hi + i +1 hi 6
(26)

3( t i +1 t i ) 2 hi hi

programa desarrollado estos valores pueden ser ingresados por el usuario. 3. INTERFAZ GRFICA La figura 3 contiene uno de los tramos ms relevantes del cdigo desarrollado, en el cual se realiza el clculo de los Splines. Es importante aclarar que para esta operacin no se utiliz la funcin propietaria de Matlab.

2 y yi i i +1 3( hi ) pi (t i +1 ) = [ hi ] + hi + i +1 6 6 hi hi

pi (t i +1 ) =

i hi i +1 hi y i +1 y i + + 6 3 hi

(27)

Reemplazando

i por i 1 en (27) se obtiene:


6 +

p i1 (t i ) =

i 1 hi 1

i hi 1
3

y i y i 1 hi 1

(28)

Igualando (25) y (28), con el fin de cumplir con lo establecido en (4), se obtiene:

i 1 hi 1 i hi 1 y i y i 1 h h + + = i i i +1 i 6 3 hi 1 3 6 y yi + i +1 (29) hi
i 1 hi 1 i hi 1 i hi i +1 hi y yi + + + = i +1 6 3 3 6 hi y y i 1 i (30) hi 1 y yi i 1 hi 1 + 2 i ( hi 1 + hi ) + i +1 hi = 6( i +1 hi y y i 1 i ) (31) hi 1
Donde i=1,2,3,,n-1; siendo n el nmero de muestras que constituyen la funcin a interpolar. Al evaluar la ecuacin (31) en cada uno de estos valores, se obtendr un sistema de n-2 ecuaciones y n incgnitas. Los dos datos restantes necesarios para resolver el sistema, resultan al asignar valores a la segunda derivada de los Splines Cbicos en los extremos de la funcin. En el

Figura 3. Porcin ms representativa del cdigo desarrollado.

El programa construido en la utilidad GUIDE de Matlab, permite al usuario ingresar una cantidad determinada de datos, con el objetivo de obtener el conjunto de polinomios de grado tres que realiza la interpolacin de los mismos. La figura 4 contiene la apariencia de la aplicacin una vez es ejecutada. Para lograr la reconstruccin de la funcin, el algoritmo calcula el trmino hi determinado por la ecuacin (12), los polinomios que interpolan cada tramo establecidos en la expresin (22), y el conjunto de ecuaciones dadas por

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

(31) que permiten obtener los diferentes valores que toma i .

Figura 6. Carga de datos mediante la opcin Abrir. Figura 4. Apariencia inicial del programa elaborado.

El conjunto de valores a interpolar debe ser ingresado en un archivo de texto, en forma de matriz de n filas y 2 columnas, siendo n el nmero total de datos. En la fila uno es necesario arreglar los nmeros correspondientes a las abscisas, mientras que la fila 2 debe contener los correspondientes valores de las ordenadas. No es necesario que los datos de la columna uno se encuentren igualmente espaciados, pero si deben aparecer en orden ascendente, ya que de no ser as, no corresponderan a una funcin sino a una relacin. Para observar el funcionamiento del programa es posible utilizar el siguiente ejemplo: supngase que se desea interpolar las diez parejas de datos mostrados en la figura 5, los cuales corresponden a las lecturas tomadas de cierta variable fsica durante un experimento de laboratorio.
Figura 7. Presentacin de los datos ingresados en la interfaz grfica.

Figura 5. Conjunto de datos a interpolar por Splines Cbicos.

Al seleccionar los cuadros de chequeo Interpolacin Lineal y Spline Cbico ubicados el la parte superior izquierda, el programa presenta las curvas obtenidas al conectar los puntos a travs de lneas rectas (en color verde), y polinomios de grado tres (color rojo). Esta operacin permite comparar las diferencias existentes entre las reconstrucciones realizadas, notndose la enorme ventaja que ofrece la interpolacin por Splines Cbicos, la cual consiste en la preservacin del carcter continuo de la funcin interpolada. Esta propiedad es vital a la hora de reconstruir funciones cuyas muestras proceden de variables fsicas, (como las tomadas por los estudiantes de ingeniera durante una prctica de laboratorio tpica) pues su naturaleza es de curva suave. En la figura 8 se presenta la curva construida por el programa usando las dos estrategias anteriormente mencionadas.

El archivo de texto debe ser cargado accionando el botn Abrir, ubicado en el men Archivo, tal como se muestra en la figura 6. Una vez ingresados los datos, dentro del grupo lgico Reconstruccin de Funciones, se habilitan los cuadros de chequeo Interpolacin Lineal y Spline Cbico, mientras que en el campo de grficos se muestran todos los datos cargados del archivo de texto. La apariencia de la aplicacin en este estado es mostrada en la figura 7.
____________________________ 1. Las notas de pie de pgina debern estar en la pgina donde se citan. Letra Times New Roman de 8 puntos

Scientia et Technica Ao XIII, No x, Mes de 200x. Universidad Tecnolgica de Pereira.

Figura 8. Curva final construida por el programa al aplicar interpolacin lineal (color verde) y por Splines (color rojo).

En la figura 8 se observa que para construir la funcin en color rojo, el programa debe generar nueve polinomios individuales de tercer grado, los cuales se pueden recuperar del algoritmo mediante la opcin Guardar. Esta operacin se muestra en la figura 9.

4. CONCLUSIONES Y RECOMENDACIONES La reconstruccin de funciones por Splines Cbicos presenta una gran ventaja frente a la interpolacin lineal, ya que permite mantener el carcter de curva suave inherente a toda variable fsica, lo cual hace que el programa desarrollado sea bastante til a la hora de obtener las grficas solicitadas en las gua de laboratorio de los cursos prcticos de fsica para ingenieras. Actualmente, los estudiantes de uno de los cursos de Laboratorio de Fsica III de la Universidad Tecnolgica de Pereira, se encuentran utilizando el aplicativo para la interpolacin de los datos tomados durante la prctica, arrojando resultados satisfactorios. Gracias a que el programa permite recuperar los coeficientes de los diferentes polinomios de tercer grado generados al ejecutar el algoritmo, esta interfaz grfica tambin puede ser utilizada en los cursos de mtodos numricos con el fin de que los estudiantes puedan verificar la veracidad de los resultados obtenidos durante el desarrollo de la clase terica. 5. BIBLIOGRAFA [1] Julio G. Benedito, Mtodos numricos en ingeniera: prcticas con Matlab, II Edicin, Servicio de Publicaciones de la Universidad de Oviedo, 2006. [2] Hsieh S. Hou, Harry C. Andrews, Cubic Splines for Image Interpolation and Filtering, IEEE Transactions on Acoustics, Speech and Signal Processing, Vol 26, N 6, Diciembre de 1978. [3] Zhang X. Guang, A New Kind of SuperReconstruction Algorithm Based on the ICM and the Constrained Cubic Spline Interpolation, Software Engineering, Artificial Intelligence, Networking, and Parallel/Distributed Computing, 2008. SNPD '08. Ninth ACIS International Conference. IEEE, Agosto de 2008. [4] Alberto Sierra, Interpolacin Polinomial Cbica Segmentaria. Centro de Publicaciones de la Universidad Tecnolgica de Pereira. 1981.

Figura 9. Recuperacin de los coeficientes de los polinomios de tercer grado generados por el programa.

Los coeficientes de estos polinomios son almacenados dentro de un archivo de texto de n filas y cuatro columnas, donde n es el nmero de tramos reconstruidos. As, la primera columna contendr el nmero que acompaa a t3 en los Splines generados, la segunda corresponder a los diferentes coeficientes de t2, la tercera a t, mientras que en la ltima columna se encuentran los nmeros independientes. El archivo de texto que contiene los coeficientes generados para el ejemplo propuesto se muestra en la figura 10.

[5] Jess Garca Quesada, Tutorial de Anlisis Numrico - Interpolacin: Splines Cbicos, III Edicin, Universidad de las Palmas de Gran Canaria, 2 de octubre de 2000, Recuperado el 26 de marzo de 2010 de: http://pcm.dis.ulpgc.es/an/tutor/splines.pdf

Figura 10. Coeficientes de los 9 polinomios utilizados para interpolar los datos del ejemplo propuesto.