[DEPRECATED] ode-explicit
A simple module for integrating a system of first-order ODEs.
** This package has been deprecated and replaced with scijs modules. For grealy improved integrators, see any of:**
- scijs/ode-euler
- scijs/ode-midpoint
- scijs/ode-rk4
- scijs/ode45-cash-karp
- scijs/integrate-simpson
- scijs/integrate-adaptive-simpson
Usage
The integrators take a derivative function, initial conditions, and a hash of options. The integrator itself is just an object; you have to step it yourself. For example, the differential equations for a circle are:
![null \frac{d}{dt}\left[\begin{array}{c}y\_0\\y\_1\end{array}\right] = \left[\begin{array}{c}-y\_1\\y\_0\end{array}\right]](https://raw.githubusercontent.com/rreusser/ode-explicit/0368b72aca6c61e668d3e669f1f4a44fabcba980/docs/images/ode-example.png)
Then to set up the integration with initial conditions y0 = 1, y1 = 0 and timestep dt = 0.1,
var ode = require('ode-explicit');
var deriv = function(dydt, y, t) {
dydt[0] = -y[1];
dydt[1] = y[0];
};
var y = [1,0];
var integrator = ode.rk4( deriv, y, {dt: 0.1, t: 0} );The available integrators are euler, rk2, and rk4. Adaptive integration is on the way. To take a single timestep,
integrator.step();and to take multiple timesteps,
integrator.steps(10);The results are accessible in the original vector (or also in integrator.y).
Credits
(c) 2015 Ricky Reusser. MIT License