#differential-equations #ode #solve-ivp

ivp

A Rust library for solving initial value problems (IVPs) for ordinary differential equations (ODEs)

5 releases (breaking)

Uses new Rust 2024

new 0.5.0 Oct 30, 2025
0.4.0 Oct 2, 2025
0.3.0 Sep 20, 2025
0.2.0 Sep 14, 2025
0.1.0 Sep 10, 2025

#679 in Math

Download history 50/week @ 2025-09-04 258/week @ 2025-09-11 140/week @ 2025-09-18 14/week @ 2025-09-25 135/week @ 2025-10-02 19/week @ 2025-10-09 12/week @ 2025-10-16

184 downloads per month

Apache-2.0

260KB
5.5K SLoC

ivp

crates.io docs.rs

Documentation | Examples | GitHub | Crates.io


A library of numerical methods for solving initial value problems (IVPs)
for the Rust programming language.


This library provides a pure rust implementation of SciPy's solve_ivp function with slight modifications to the API to better fit Rust's design patterns.

Currently implemented solvers:

  • DOP853: An 8th order Dormand-Prince method with step-size control and dense output.
  • DOPRI5: A 5th order Dormand-Prince method with step-size control and dense output.
  • RK4: The classic 4th order Runge-Kutta method with fixed step-size and cubic Hermite interpolation for dense output.
  • RK23: A 3rd order Runge-Kutta method with 2nd order error estimate for step-size control.
  • Radau: A 5th order implicit Runge-Kutta method of Radau IIA type with step-size control and dense output.
  • BDF: A variable-order (1 to 5) Backward Differentiation Formula method for stiff ODEs with adaptive step-size control and dense output.

Note: This library uses dynamically sized arrays (Vec) internally to allow for flexibility in use cases and future deployment as a Python package. For a more performant solution with statically sized arrays (and thus require compile-time declaration of system), consider using differential-equations, which also supports a wider variety of solvers and features. Including SDE, DDE, and DAE equations. This library is primarily intended for users looking for a rust version of SciPy's solve_ivp function with a familiar API.

Dependencies

~0.9–1.4MB
~30K SLoC