This assignment was mostly a warmup to get us started in this class, but it highlighted a couple of important limitations of numerical differentiation.
My original submission for this class took the form of a C script and Latex-style writeup.
Please see the solution description below:
Takeaways
A derivative is better with smaller evaluation steps. A central difference can prevent leading and lagging derivatives, provided you are ok
with losing some higher frequency content (tips of hills and troughs).
Assignment 2: Numerical Integration
Goals
This assignment introduces a use-case for numerical integration in the form of Fresnel diffraction.
My original submission for this class took the form of a C script and Latex-style writeup.
Please see the solution description below:
Takeaways
Although I was taught calculus with the concept of a Riemann sum (and trapezoid sum), I had not implemented a programmatic version until
finishing this assignment. The equations which made the solution were given to us, but executing
this highlighted the power of breaking down a complicated problem into a set of solvable individual problems.
This also served as a good example of an equation which had no analytical solution, but which yields to a numerical approach.
Assignment 3: Root Finding and Special Functions
Goals
This assignment was partially about finding access to special scientific functions for numerical analysis,
and partially about comparing a couple methods for root finding. In particular: how to access Bessel functions,
useful for all sorts of physics, and then comparing Regula Falsi or the False Position Method to the method of
Bisection for root finding.
My original submission for this class took the form of a Latex-style writeup.
Please see the solution description below:
Takeaways
Some algorithms accomplish the same task as another but more efficiently (using fewer function calls). Some algorithms vary in their efficiency if given
a different starting point or set of inputs. These conclusions are a bit obvious, but it still helps to see the differences in practice between,
for example, a bisection method and regula falsi.
Assignment 4: Ordinary Differential Equations and Chaotic Systems
Goals
This assignment introduced the Runge-Kutta method of ODE propagation and asked for solutions to a set of chaotic differential equations. My original solution
was pretty single-shot, so I tried to spend a little time making the python version more reusable and modular.
My original submission for this class took the form of a Latex-style writeup.
Please see the solution description below:
Takeaways
The Runge-Kutta method is a good way to propagate differential equations which have no analytical solution (if they can be written in the appropriate form).
It is sometimes worth it to make functions and algorithms more modular and reusable to avoid re-writing code. Being able to apply
your program to a wider range of tasks requires time and effort to architect correctly.
LAB 5: Obstacle Avoidance
Goals
Please see my more detailed solution description here.
My original submission for this class took the form of a Latex-style writeup.
Takeaways
LAB 6: Inertial Measurement Unit
Goals
Please see my more detailed solution description here.
My original submission for this class took the form of a Latex-style writeup.
Takeaways
LAB 7: Mapping and Bayes Filter Prep
Goals
Please see my more detailed solution description here.
My original submission for this class took the form of a Latex-style writeup.
Takeaways
LAB 8: Grid Localization and Bayes Filter
Goals
Please see my more detailed solution description here.
My original submission for this class took the form of a Latex-style writeup.
Takeaways
LAB 9: Online Localization
Goals
Please see my more detailed solution description here.
My original submission for this class took the form of a Latex-style writeup.
Takeaways
LAB 10: Path Planning and Execution
Goals
Please see my more detailed solution description here.
My original submission for this class took the form of a Latex-style writeup.
Takeaways
LAB 11b: Inverted Pendulum Simulation Part 1: LQR control
Goals
Please see my more detailed solution description here.
My original submission for this class took the form of a Latex-style writeup.
Takeaways
LAB 12b: Inverted Pendulum Simulation Part 2: LQG
Goals
Please see my more detailed solution description here.
My original submission for this class took the form of a Latex-style writeup.