https://github.com/joshburkart/bulirsch
Bulirsch-Stoer method for solving ordinary differential equations in Rust
https://github.com/joshburkart/bulirsch
bulirsch-stoer extrapolation integration numerical-methods ordinary-differential-equations rust
Last synced: 2 months ago
JSON representation
Bulirsch-Stoer method for solving ordinary differential equations in Rust
- Host: GitHub
- URL: https://github.com/joshburkart/bulirsch
- Owner: joshburkart
- License: mit
- Created: 2025-04-09T23:58:12.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-04-14T15:46:50.000Z (6 months ago)
- Last Synced: 2025-07-19T13:55:05.128Z (3 months ago)
- Topics: bulirsch-stoer, extrapolation, integration, numerical-methods, ordinary-differential-equations, rust
- Language: Rust
- Homepage:
- Size: 47.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bulirsch-Stoer Method in Rust
[](https://crates.io/crates/bulirsch)
[](https://docs.rs/bulirsch)Implementation of the Bulirsch-Stoer method for stepping ordinary differential equations.
The [(Gragg-)Bulirsch-Stoer](https://en.wikipedia.org/wiki/Bulirsch%E2%80%93Stoer_algorithm)
algorithm combines the (modified) midpoint method with Richardson extrapolation to accelerate
convergence. It is an explicit method that does not require Jacobians.This crate's implementation contains simplistic adaptive step size routines with order estimation.
Its API is designed to be useful in situations where an ODE is being integrated step by step with a
prescribed time step, for example in simulations of electromechanical control systems with a fixed
control cycle period. Only time-independent ODEs are supported, but without loss of generality
(since the state vector can be augmented with a time variable if needed).The implementation follows:
* Press, William H. Numerical Recipes 3rd Edition: The Art of Scientific Computing. Cambridge
University Press, 2007. Ch. 17.3.2.
* Deuflhard, Peter. "Order and stepsize control in extrapolation methods." Numerische Mathematik
41 (1983): 399-422.