ivp

Crates.ioivp
lib.rsivp
version0.3.0
created_at2025-09-10 20:44:57.966664+00
updated_at2025-09-20 22:38:01.866217+00
descriptionA Rust library for solving initial value problems (IVPs) for ordinary differential equations (ODEs).
homepagehttps://github.com/Ryan-D-Gast/ivp
repositoryhttps://github.com/Ryan-D-Gast/ivp
max_upload_size
id1832995
size258,396
Ryan Gast (Ryan-D-Gast)

documentation

https://docs.rs/ivp

README

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.

Planned additions in development:

  • BDF: A variable-order (1 to 5) Backward Differentiation Formula method with 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.

Commit count: 135

cargo fmt