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