Skip to content

Probabilistic solvers in JAX¤

CI PyPI version License Python versions

Probdiffeq implements adaptive probabilistic numerical solvers for differential equations (ODEs). It builds on JAX, thus inheriting automatic differentiation, vectorisation, and GPU acceleration.

⚠️ Probdiffeq is an active research project. Expect rough edges and sudden API changes.

Features:

  • ⚡ Automatic calibration and step-size adaptation
  • ⚡ Stable implementations of filtering, smoothing, and other estimation strategies
  • ⚡ Custom information operators, dense output, posterior sampling, and prior distributions.
  • ⚡ Efficient handling of high-dimensional problems through state-space model factorisations
  • ⚡ Parameter estimation
  • ⚡ Taylor-series estimation with and without automatic differentiation
  • ⚡ Seamless interoperability with Optax, BlackJAX, and other JAX-based libraries
  • ⚡ Numerous examples (basic and advanced) -- see the documentation

Quickstart: See here for a minimal example to get you started.

Contributing: Contributions are very welcome!

  • Browse open issues (look for “good first issue”).
  • Check the developer documentation.
  • Open an issue for feature requests or ideas.

Acknowledgements:

The docs include guidance on migrating from these packages. Missing something? Open an issue or pull request!

You might also like:

  • diffeqzoo: reference implementations of differential equations in NumPy and JAX
  • probfindiff: probabilistic finite-difference methods in JAX