mosaic (version 0.14.4)

integrateODE: Integrate ordinary differential equations

Description

A formula interface to integration of an ODE with respect to "t"

Usage

integrateODE(dyn, ..., tdur)

Arguments

dyn

a formula specifying the dynamics, e.g. dx ~ -a*x for $dx/dt = -ax$.

tdur

the duration of integration. Or, a list of the form list(from=5,to=10,dt=.001)

arguments giving additional formulas for dynamics in other variables, assignments of parameters, and assignments of initial conditions

Value

a list with splined function of time for each dynamical variable

Details

The equations must be in first-order form. Each dynamical equation uses a formula interface with the variable name given on the left-hand side of the formula, preceded by a d, so use dx~-k*x for exponential decay. All parameters (such as k) must be assigned numerical values in the argument list. All dynamical variables must be assigned initial conditions in the argument list. The returned value will be a list with one component named after each dynamical variable. The component will be a spline-generated function of t.

Examples

Run this code
# NOT RUN {
soln = integrateODE(dx~r*x*(1-x/k), k=10, r=.5, tdur=20, x=1)
soln$x(10)
soln$x(30) # outside the time interval for integration
plotFun(soln$x(t)~t, tlim=range(0,20))
soln2 = integrateODE(dx~y, dy~-x, x=1, y=0, tdur=10)
plotFun(soln2$y(t)~t, tlim=range(0,10))
# SIR epidemic
epi = integrateODE(dS~ -a*S*I, dI ~ a*S*I - b*I, a=0.0026, b=.5, S=762, I=1, tdur=20)
# }

Run the code above in your browser using DataCamp Workspace