Desarrollo y programación de modelos matemáticos de soporte a la docencia

Espa Torres, Carlos (2018). Desarrollo y programación de modelos matemáticos de soporte a la docencia. Proyecto Fin de Carrera / Trabajo Fin de Grado, E.T.S.I. Industriales (UPM).

Descripción

Título: Desarrollo y programación de modelos matemáticos de soporte a la docencia
Autor/es:
  • Espa Torres, Carlos
Director/es:
  • Mendoza, M
  • Sansigre Vidal, Gabriela
Tipo de Documento: Proyecto Fin de Carrera/Grado
Grado: Grado en Ingeniería en Tecnologías Industriales
Fecha: Noviembre 2018
Materias:
Palabras Clave Informales: Ecuaciones diferenciales, Interfaz gráfica, Python, Compilación, Docencia, Modelos matemáticos
Escuela: E.T.S.I. Industriales (UPM)
Departamento: Matemática Aplicada a la Ingeniería Industrial
Licencias Creative Commons: Reconocimiento - Sin obra derivada - No comercial

Texto completo

[img] PDF (Document Portable Format) - Acceso permitido solamente a usuarios en el campus de la UPM hasta 5 Abril 2019 - Se necesita un visor de ficheros PDF, como GSview, Xpdf o Adobe Acrobat Reader
Descargar (11MB)

Resumen

El presente proyecto se empezó con el objetivo de programar un producto que integrara herramientas de cálculo numérico y simbólico para la resolución de ecuaciones diferenciales. Además, se pretendía sentar unas bases que permitieran una continuidad del proyecto. Del estudio de aplicaciones similares anteriores se observó que la funcionalidad en la mayoría de los casos dejaba de lado la estética. En el caso en el que la estética era especialmente atractiva los resultados proporcionados eran escaso y de acceso discreto. En general, ninguna herramienta entregaba datos simbólicos de modelos concretos. De este hecho, surgió el objetivo de crear los LiveModels. Los LiveModels integran modelos matemáticos y proporcionan al usuario la capacidad de variar sus parámetros y obtener soluciones tanto simbólicas como numéricas. En paralelo, se investigó los posibles lenguajes de programación. Las limitaciones de tiempo y los objetivos del proyecto marcaban la necesidad de encontrar un lenguaje de alto nivel que permitiera desarrollar aplicaciones complejas sin ocupar todo el tiempo disponible en el aprendizaje de este. El lenguaje elegido tras la investigación fue Python. Debido a su creciente comunidad de usuarios, Python brinda la facilidad de encontrar cantidad de información en foros. También se encuentran multitud de clases y librerías de usos tan diversos como específicos. Otra de las ventajas, que hacen la participación en el proyecto más atractiva, es el valor intrínseco de aprender este lenguaje de programación, cada vez más demandado en las empresas. Python cumple a la perfección el objetivo de integrar cálculo numérico y simbólico: El primero, se lleva a cabo con la librería NumPy. Esta librería es tan ampliamente usada que, actualmente está integrada en todas las distribuciones de Python. El segundo, se realiza con la librería SymPy. Aunque la librería SymPy no venga incluida en todas las distribuciones de Python sí viene en la distribución actual de Anaconda, con la que se ha trabajado para el desarrollo de este proyecto. Para la interfaz gráfica se ha utilizado la librería Tkinter, wrapper de las librerías Tk/Tcl. Para la graficación se empleó la librería Matplotlib. Ambas librerías se encuentran presentes en todas las actuales distribuciones de Python. La necesidad de aprender de manera continua implicó la necesidad de reajustar los objetivos a medida que se avanzaba en el proyecto y se iba comprendiendo la complejidad del lenguaje. Esto condujo a la utilización de metodologías Agile, muy presentes en el mundo del desarrollo de software, dadas las características cambiantes del mercado. El alto nivel de uso de dispositivos móviles, así como su crecimiento, llevó al interés por desarrollar plataformas de acceso a la aplicación de estos dispositivos. Sin embargo, el actual desarrollo de los paquetes de Python para Android impidió que se llevara a cabo dicho objetivo. Durante el proceso del proyecto se descubrió que la idea inicial resultaba mucho más compleja de lo imaginado. Sin embargo, esto presentaba la ventaja de constituir en sí mismas las líneas de trabajo futuro. Tener unas líneas de trabajo futuro tan amplias permite a su vez dar salida a distintos perfiles de desarrolladores. Finalmente, se han conseguido unas amplias funcionalidades. Se pueden resolver numéricamente sistemas de ecuaciones diferenciales ordinarias tanto lineales como no lineales. Simbólicamente se resuelven la mayoría de los sistemas lineales. También, se resuelven ecuaciones no lineales o sistemas de ecuaciones lineales no acopladas. Un resultado a destacar es que la aplicación reconoce funciones no elementales tabuladas como la función error. También se han desarrollado las herramientas necesarias para facilitar la creación de LiveModels, por parte de los usuarios. Esto permite la implementación de modelos, sin necesidad de cambiar el código ni tener nociones de programación. Los LiveModels pretenden ser una herramienta de apoyo a la docencia, que haga más interactivo el aprendizaje tanto de modelos concretos como de tipos de ecuaciones diferenciales. Con el objetivo de sentar unas buenas bases para la continuidad del proyecto, se incluyen en esta memoria unas extensas líneas de desarrollo futuro. Del mismo modo, se anexa una guía de referencia del programador. Esta guía permite obtener una amplía comprensión de la estructura del programa, así como de su alcance. Al mismo tiempo, la guía incorpora explicaciones concretas de sintaxis, métodos y clases. Esto permite aprender nociones de programación en Python, a la vez que se aprende el funcionamiento concreto del programa.

Más información

ID de Registro: 53879
Identificador DC: http://oa.upm.es/53879/
Identificador OAI: oai:oa.upm.es:53879
Depositado por: Biblioteca ETSI Industriales
Depositado el: 11 Feb 2019 08:45
Ultima Modificación: 11 Feb 2019 08:45
  • InvestigaM
  • GEO_UP4
  • Open Access
  • Open Access
  • Sherpa-Romeo
    Compruebe si la revista anglosajona en la que ha publicado un artículo permite también su publicación en abierto.
  • Dulcinea
    Compruebe si la revista española en la que ha publicado un artículo permite también su publicación en abierto.
  • Recolecta
  • Observatorio I+D+i UPM
  • OpenCourseWare UPM