JuliaCon 2026

DifferentialRiccatiEquations.jl: Solving matrix equations with low-rank solutions
2026-08-13 , Room 6

Solving large matrix equations can be very expensive. For many applications, however, the dense solutions can be well approximated by low-rank factorizations: products of two or three matrices with a substantially smaller inner dimension. And certain quantities can yet again be computed as a linear function of the solution, meaning one does not even need to assemble the low-rank factors. DifferentialRiccatiEquations.jl is a package to cater all these use cases for differential and (continuous-time) algebraic Riccati and Lyapunov equations.


The differential Riccati equation arises, for example, in optimal control of the linear-quadratic regulator. DifferentialRiccatiEquations.jl (DRE.jl) started as a port of some low-rank Rosenbrock methods written in MATLAB (with the aim to distribute the computations using the parareal method; but this is a story for another day). At every Rosenbrock step one has to solve an algebraic Lyapunov equation, which can be done using the Alternating-Direction Implicit (ADI) method. Therefore, the package quickly evolved into a test bed for improving the low-rank Lyapunov ADI method, from GPU support to mixed-precision low-rank factorizations.

  • PhD student at the Max Planck Institute for Dynamics of Complex Technical Systems, Magdeburg, Germany
  • Works in mixed precision for matrix equations with low-rank solution
  • @jonas-schulze on GitHub