Learn R Programming

lsoda (version 1.2)

ode: 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, ...)

Value

a matrix for times in the first column and the state andd results values in the other columns.

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

Examples

Run this code
 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)

Run the code above in your browser using DataLab