Name: ode-midpoint
Owner: scijs
Description: Integrate a system of ODEs using the Second Order Runge-Kutta (Midpoint) method
Created: 2015-07-24 15:49:59.0
Updated: 2015-08-01 19:15:39.0
Pushed: 2015-08-01 17:46:34.0
Homepage: null
Size: 172
Language: JavaScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Integrate a system of ODEs using the Second Order Runge-Kutta (Midpoint) method
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 updatem install ode-midpoint
midpoint = require('ode-midpoint')
deriv = function(dydt, y, t) {
dt[0] = -y[1]
dt[1] = y[0]
y0 = [1,0]
n = 1000
t0 = 0
dt = 2.0 * Math.PI / n
integrator = midpoint( y0, deriv, t0, dt )
ntegrate 1000 steps:
grator.steps(n)
ntegrate all the way around a circle:
> integrator.y = [ 1.0000001939636542, 0.000041341220643982546 ]
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 is function( dydt, y, t )
. Inputs are current state y
and current time t
, output is calcualted derivative dydt
.t0
: initial time .dt
: time step .Returns: Initialized integrator object.
Properties:
n
: dimension of y0
.y
: current state. Initialized as a shallow copy of input y0
.deriv
: function that calcualtes derivative. Initialized from input. May be changed.t
: current time, incremented by dt
with each time step.dt
: time step . Initialized from input dt
. May be changed.Methods:
.step()
: takes a single step of the midpoint integrator and stores the result in-place in the y
property..steps( n )
: takes n
steps of the midpoint integrator, storing the result in-place in the y
property.(c) 2015 Ricky Reusser. MIT License