In this homework we'll be exploring topics in dynamics and optimization. Here's an overview of the problems:
- Implement an implicit integrator and compare performance against an explicit method
- Find an equilibrium state to balance a quadruped on one leg using Newton's method and unconstrained optimization
- Simulate a falling brick by solving a quadratic program. Implement your own augmented Lagrangian QP solver
Please follow these instructions. If you do not follow all of these instructions you will have points deducted from your homework.
- Fill out your name and AndrewID in
src/HW1.jl
- Commit and push all of your changes to GitHub
- Create a release called "Submission" with a tag
v1.x
wherex
can be any number (start withv1.0
, if you need to "patch" your submission change it tov1.1
, thenv1.2
, i.e. follow semantic versioning). For more details, see these instructions.
See this document for details on our grading policy. Do NOT attempt to hack the autograder. We will be looking at all of your solutions and any attempt to modify the autograder in any way will result in heavy penalties. It's there to help make your lives easier, don't abuse it!
All the homeworks are distributed as Jupyter notebooks. Follow these instructions to get everything set up.
- Install Julia. Download v1.6.5 from the Julia website. Extract the binaries onto a stable location on your computer, and add the
/bin
folder to your system path. - Clone this repo, and open a terminal in the root directory
- Start a Julia REPL in your terminal using
julia
. This should work as long as the binaries are on your system path. - Install the IJulia using the Julia package manager. In the REPL, enter the package manager using
]
, then enteradd IJulia
to add it to your system path. - In the REPL (hit backspace to exit the package manager), enter
using IJulia
- Launch the notebook using
notebook()
orjupyterlab()
Check out Kevin's video walkthrough for HW0 for more details.
These homeworks can be pretty challenging, which is why we provide 2 weeks to complete them. Here are some tips for success:
- Start early
- Commit and push changes often. Don't be afraid to use git branches. This is super helpful if you ever need to go back to a previous version because you broke something.
- Get with a study group!
- Keep your code clean. Avoid global variables. If you get odd behavior, consider restarting your kernel.
- Come to office hours
If you have questions as you work through the homework, please post to the
hw1
folder on Pizza.