Building a MATLAB Graphical User Interface to Solve Ordinary Differential Equations as a Final Project for an Interdisciplinary Elective Course on Numerical Computing

Steve M. Ruggiero, Jianan Zhao, and Ashlee N. Ford Versypt

Volume 9, Issue 1 (May 2018), pp. 19–28

https://doi.org/10.22369/issn.2153-4136/9/1/3

PDF icon Download PDF

BibTeX
@article{jocse-9-1-3,
  author={Steve M. Ruggiero and Jianan Zhao and Ashlee N. Ford Versypt},
  title={Building a MATLAB Graphical User Interface to Solve Ordinary Differential Equations as a Final Project for an Interdisciplinary Elective Course on Numerical Computing},
  journal={The Journal of Computational Science Education},
  year=2018,
  month=may,
  volume=9,
  issue=1,
  pages={19--28},
  doi={https://doi.org/10.22369/issn.2153-4136/9/1/3}
}
Copied to clipboard!

A final project assignment is described for an interdisciplinary applied numerical computing upper division and graduate elective in which students develop a GUI for defining and solving a system of ordinary differential equations (initial value problems) and the associated explicit algebraic equations such as values for parameters. The primary task is to develop a GUI for MATLAB using GUIDE that takes a user-specified number of differential equations and explicit algebraic equations as input, solves the system of ODEs using \mcode{ode45}, returns the solution vector, and plots the solution vector components vs. the independent variable. The code for the GUI must be verified by showing that it returns the same results and the same figures as a system of ODEs with a known solution. The purpose of the final project assignment is threefold: (1) to practice GUI design and construction in MATLAB, (2) to verify code implementation, and (3) to review content covered throughout the course. The manuscript first introduces the course and the context and motivation for the project. Then the project assignment is detailed. Two student project submissions are described. The verification case study is also provided.