Tutorials

This tutorial derives an interior-point optimization formulation for incorporating stagewise equality and inequality constraints into the classic Differential Dynamic Programming (DDP) algorithm. We will also implement an example of obstacle avoidance for a 2D car.

This tutorial demonstrates how to incorporate ordinary differential equation (ODE) solvers from SciPy into JAX and make them compatible with reverse-mode automatic differentiation.

This tutorial introduces a bilevel optimization framework for parameter estimation in ordinary differential equations using JAX. We will walk through two examples: one where all states are measured, and another where only a few states are observed.

This tutorial derives the reverse- and forward-mode sensitivities of hybrid dynamical systems. We will then implement a custom ODE solver in JAX that can handle events in parallel.

This tutorial introduces how to compute gradients across an optimization problem using the implicit function theorem in JAX.

This tutorial introduces differentiable cubic spline interpolation in JAX. We will begin with a basic implementation and then enhance its computational performance by leveraging sparsity.

This tutorial explains three different parameter estimation methods: single shooting, multiple shooting, and orthogonal collocation. We will walk through a simple example and implement it in CasADi.

This tutorial introduces an emerging class of data-driven approaches for modeling systems governed by differential equations, known as hybrid modeling. We will also walk through a simple example of the Lotka–Volterra system with time-dependent parameters, implemented in JAX.

This tutorial explains DF-SINDy, an extension of the classic Sparse Identification of Nonlinear Dynamics (SINDy) method, that incorporates integral polynomial terms while keeping the optimization problem convex. We will also walk through a simple example implemented in JAX.