Learn the basics of convex optimization using Python, and see how to apply these ideas to vehicle control, portfolio allocation in finance, and other areas.
After working through these notebooks, you'll understand how to create and solve optimization problems using Python's CVXPY library, as well as how to apply what you've learned to real-world problems.

SpaceX solves convex optimization problems onboard to land its rockets, using CVXGEN, a code generator for quadratic programming developed at Stephen Boyd's Stanford lab. Photo by SpaceX, licensed CC BY-NC 2.0.
Thanks to our notebook authors:
To run a notebook locally, use:
uvx marimo edit <URL>
You can also open notebooks in our online playground by adding marimo.app/ to a notebook's URL.
Help us improve these learning materials by contributing to the GitHub repository. We welcome new content, bug fixes, and improvements!
Contribute on GitHub