Class Projects

As part of the senior year of the Applied and Computational Math Emphasis at BYU, I was required to complete four group projects (each with 3-4 group members). Here are the finished project reports and GitHub repositories, along with a short description of each project.


Optimal Spacecraft Control (April 2021)

Project Report GitHub Animations

One of the most interesting control problems is that of controlling a spacecraft. Because spacecraft set out with a limited amount of fuel, and the amount of thrust the fuel provides changes with the amount of fuel that has been used up (due to the change in mass of the spacecraft), the problem of arriving at a destination in the minimal amount of time is nontrivial. For this project, we solve an optical control problem related to spacecraft trajectories and the gravitational slingshot effect. We will start with a simple model, and work our way up to a more complicated slingshot model, incorporating ideas of control theory to the trajectories we produce.


Forecasting Great Salt Lake Water Level Using Weather Data (April 2021)

Project Report GitHub

The Great Salt Lake is a vital component to the ecology and economy of the Greater Salt Lake Area. Local precipitation is highly correlated with changes in depth levels of the Great Salt Lake. This paper inves- tigates the effectiveness of using Ordinary Least Squares (OLS), Vector Auto Regressive Moving Average (VARMA), and Neural Network (NN) models to use local weather data in order to predict lake depth levels of the Great Salt Lake. VAR models outperformed OLS and NN. As the length of the train set increased, predictions became more accurate. As the length of forecasts increased, predictions became less accurate since models could not account for variations in normal weather patterns.


Modeling the Graviatational Slingshot Effect (December 2020)

Project Report GitHub Animations

We attempt to model the physics of the gravitational slingshot effect, whereby a satellite can swing around a planet and receive a boost in speed so that it can successfully reach its destination. Beginning with a system of ordinary differential equations derived from Newton’s Laws, we code up a numerical N-body problem solver. We determine which assumptions are necessary to produce a workable model, and implement a method to obtain a slingshot trajectory passing through a specific point by casting the problem in terms of optimizing an objective function.


Predicting the Winner of RISK Games Based on Board State (December 2020)

Project Report GitHub

The goal of this project is to predict which player will win a game of RISK given only the state of the board at a given turn. In order to train a model to make such predictions, we forked and modified a RISK game engine written in Python called PyRisk. PyRisk contains several different automated RISK playing computer agents which use different strategies to play RISK. We used PyRisk to run tens of thousands of games pitting these AIs against each other. With this dataset, we developed several models that predict the winner based on the state of the board at a given turn.