ode {lsoda} | R Documentation |
Ordinary differential equation solver using lsoda
Description
Ordinary differential equation solver using lsoda
Usage
ode(y, times, func, parms, rtol = 1e-06, atol = 1e-06, ...)
Arguments
y |
vector of initial state values |
times |
vector of times – including the start time |
func |
R function with signature function(t,y,parms,...) that returns a list. The first list element is a vector for dy/dt. The second list elements, if it exists, is a vector of result calculations to be retained. |
parms |
list or vector of parameters that are pass to func |
rtol |
double for the relative tolerance |
atol |
double for the absolute tolerance |
... |
other parameters that are passed to func |
Value
a matrix for times in the first column and the state andd results values in the other columns.
Examples
times = c(0,0.4*10^(0:10))
y = c(1,0,0)
func = function(t,y,parms,b=-0.04E0) {
ydot = rep(0,3)
ydot[1] = parms$a * y[2] * y[3] + b * y[1]
ydot[3] = 3.0E7 * y[2] * y[2]
ydot[2] = -1.0 * (ydot[1] + ydot[3])
list(ydot, sum(y))
}
lsoda::ode(y, times, func, parms=list(a=1.0E4), rtol=1e-8, atol=1e-8)
[Package lsoda version 1.2 Index]