Dialnet-InterfazGraficaParaLaInterpolacionDeDatosATravesDe-4564834

download Dialnet-InterfazGraficaParaLaInterpolacionDeDatosATravesDe-4564834

of 6

description

Dialnet-InterfazGraficaParaLaInterpolacionDeDatosATravesDe-4564834

Transcript of Dialnet-InterfazGraficaParaLaInterpolacionDeDatosATravesDe-4564834

  • Scientia et Technica Ao XVI, No 44, Abril de 2010. Universidad Tecnolgica de Pereira. ISSN 0122-1701 195

    Fecha de Recepcin: Enero 26 de 2010 Fecha de Aceptacin: Marzo 25 de 2010

    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.

    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 [email protected]

    WILLIAM ARDILA URUEA Licenciado en Fsica MSc. Fsica Profesor Titular Universidad Tecnolgica de Pereira [email protected]

    HUGO ARMANDO GALLEGO Licenciado en Fsica MSc. Fsica Profesor Asistente Universidad Tecnolgica de Pereira [email protected]

    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

    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 XVI, No 44, Abril de 2010. Universidad Tecnolgica de Pereira.

    196

    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:

    nniii ttttttt

  • Scientia et Technica Ao XVI, No 44, Abril de 2010. Universidad Tecnolgica de Pereira.

    197

    Sea: iii htt =+1 (12)

    Entonces (11) se puede expresar como:

    i

    iii

    i

    iiii h

    tttp

    htt

    tptp

    +

    = ++ )()()( 11 (13)

    Por otra parte, si:

    iii tp = )( (14) 11 )( ++ = iii tp (15)

    La ecuacin 12 queda:

    )()()( 11 ii

    ii

    i

    ii tth

    tth

    tp += ++

    (16)

    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):

    iii

    i

    ii

    i

    ii DtC

    tt

    htt

    htp ++

    +

    =++

    6)(

    6)()(

    31

    31

    (17)

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

    )()( 1 ttBttADtC iiiiii +=+ + (18)

    As, la ecuacin (17), se puede escribir como:

    )()(6

    )(6

    )()( 13

    13

    1 ttBttAtth

    tt

    htp iiii

    i

    i

    ii

    i

    ii ++

    +

    = +++

    (19)

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

    iii ytp =)(

    6)(

    6)( 3131 ii

    i

    iii

    i

    ii

    tt

    htt

    hy += ++

    )()( 1 iiiiii ttBttA ++ +

    iiii

    i hBh

    y +=6

    2

    6ii

    i

    ii

    hhy

    B

    = (20)

    11)( ++ = iii ytp

    6)(

    6)( 311311

    1ii

    i

    iii

    i

    ii

    tt

    htt

    hy += +++++

    )()( 111 +++ ++ iiiiii ttBttA

    iiii

    i hAh

    y += ++ 6

    21

    1

    611 ii

    i

    ii

    hhyA ++ = (21)

    Reemplazando Ai y Bi en (19):

    +

    =+

    ++ )()(

    6)()(

    6)(

    31

    1

    31

    iii

    iiii

    i

    iii tthh

    tttth

    htt

    tp

    ( ) ( )i

    ii

    i

    ii h

    ttyh

    tty ++ ++ 11 (22)

    Solo resta calcular los trminos i y 1+i , para lo cual se aplica sobre (22) las condiciones (4) y (5). Primero se determina )(tpi :

    ( ) ( )

    +

    +

    =++

    ii

    iii

    i

    iii hh

    tthh

    tttp

    21

    21 3

    63

    6)(

    i

    ii

    hyy

    + +1 (23)

    ( ) ( )

    +

    +

    =++

    ii

    iiii

    i

    iiiii hh

    tthh

    tttp

    21

    21 3

    63

    6)(

    i

    ii

    hyy

    + +1 (24)

    ( ) ( )i

    iii

    iii

    iii h

    yyhhhtp +++= ++ 116

    36

    )(

    i

    iiiiiiii h

    yyhhtp

    += ++ 1163

    )( (25)

  • Scientia et Technica Ao XVI, No 44, Abril de 2010. Universidad Tecnolgica de Pereira.

    198

    Ahora se debe hallar el trmino )(1 ii tp . Para esto se determina primero )( 1+ ii tp :

    ( ) ( )

    +

    +

    =++++

    + ii

    iiii

    i

    iiiii hh

    tthh

    tttp

    211

    211

    13

    63

    6)(

    i

    ii

    hyy

    + +1 (26)

    [ ] ( )i

    iii

    i

    iii

    iii h

    yyhhhhtp +

    += +++

    12

    11

    366

    )(

    i

    iiiiiiii h

    yyhhtp

    ++= +++11

    1 36)(

    (27)

    Reemplazando i por 1i en (27) se obtiene:

    1

    11111 36

    )(

    ++=i

    iiiiiiii h

    yyhhtp

    (28)

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

    63361

    1

    1111 iiii

    i

    iiiiii hhh

    yyhh +

    =

    ++

    i

    ii

    hyy

    + +1 (29)

    i

    iiiiiiiiii

    hyyhhhh

    =+++ ++ 111116336

    1

    1

    i

    ii

    hyy

    (30)

    ( )i

    iiiiiiiii h

    yyhhhh =+++ ++ 11111 (62

    )1

    1

    i

    ii

    hyy

    (31)

    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 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.

    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 (31) que permiten obtener los diferentes valores que toma

    i .

  • Scientia et Technica Ao XVI, No 44, Abril de 2010. Universidad Tecnolgica de Pereira.

    199

    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 5. Conjunto de datos a interpolar por Splines Cbicos.

    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.

    Figura 6. Carga de datos mediante la opcin Abrir.

    Figura 7. Presentacin de los datos ingresados en la interfaz grfica.

    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.

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

  • Scientia et Technica Ao XVI, No 44, Abril de 2010. Universidad Tecnolgica de Pereira.

    200

    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.

    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.

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

    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 Super- Reconstruction 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.

    [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