1.0.6 • Published 10 years ago
ode-midpoint v1.0.6
ode-midpoint

Integrate a system of ODEs using the Second Order Runge-Kutta (Midpoint) method
Introduction
This module integrates a system of ordinary differential equations of the form where is a vector of length . Given time step , the midpoint method integrates the ODE with update
Install
$ npm install ode-midpointExample
var midpoint = require('ode-midpoint')
var deriv = function(dydt, y, t) {
dydt[0] = -y[1]
dydt[1] = y[0]
}
var y0 = [1,0]
var n = 1000
var t0 = 0
var dt = 2.0 * Math.PI / n
var integrator = midpoint( y0, deriv, t0, dt )
// Integrate 1000 steps:
integrator.steps(n)
// Integrate all the way around a circle:
// => integrator.y = [ 1.0000001939636542, 0.000041341220643982546 ]API
require('ode-midpoint')( y0, deriv, t0, dt )
Arguments:
y0: an array or typed array containing initial conditions. This vector is updated in-place with each integrator step.deriv: a function that calculates the derivative. Format isfunction( dydt, y, t ). Inputs are current stateyand current timet, output is calcualted derivativedydt.t0: initial time .dt: time step .
Returns: Initialized integrator object.
Properties:
n: dimension ofy0.y: current state. Initialized as a shallow copy of inputy0.deriv: function that calcualtes derivative. Initialized from input. May be changed.t: current time, incremented bydtwith each time step.dt: time step . Initialized from inputdt. May be changed.
Methods:
.step(): takes a single step of the midpoint integrator and stores the result in-place in theyproperty..steps( n ): takesnsteps of the midpoint integrator, storing the result in-place in theyproperty.
Credits
(c) 2015 Ricky Reusser. MIT License