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

Description

Title: Desarrollo y programación de modelos matemáticos de soporte a la docencia
Author/s:
  • Espa Torres, Carlos
Contributor/s:
Item Type: Final Project
Degree: Grado en Ingeniería en Tecnologías Industriales
Date: November 2018
Subjects:
Freetext Keywords: Ecuaciones diferenciales, Interfaz gráfica, Python, Compilación, Docencia, Modelos matemáticos
Faculty: E.T.S.I. Industriales (UPM)
Department: Matemática Aplicada a la Ingeniería Industrial
Creative Commons Licenses: Recognition - No derivative works - Non commercial

Full text

[thumbnail of TFG_CARLOS_ESPA_TORRES.pdf]
Preview
PDF - Requires a PDF viewer, such as GSview, Xpdf or Adobe Acrobat Reader
Download (2MB) | Preview

Abstract

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.

More information

Item ID: 53879
DC Identifier: https://oa.upm.es/53879/
OAI Identifier: oai:oa.upm.es:53879
Deposited by: Biblioteca ETSI Industriales
Deposited on: 11 Feb 2019 08:45
Last Modified: 14 Jul 2020 14:19
  • Logo InvestigaM (UPM)
  • Logo GEOUP4
  • Logo Open Access
  • Open Access
  • Logo Sherpa/Romeo
    Check whether the anglo-saxon journal in which you have published an article allows you to also publish it under open access.
  • Logo Dulcinea
    Check whether the spanish journal in which you have published an article allows you to also publish it under open access.
  • Logo de Recolecta
  • Logo del Observatorio I+D+i UPM
  • Logo de OpenCourseWare UPM