ode_cpp {lsoda}R Documentation

Ordinary differential equation solver using lsoda (C++ code)

Description

Ordinary differential equation solver using lsoda (C++ code)

Usage

ode_cpp(y, times, func, 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) that returns a list: the first list element is a vector for dy/dt; the second list element, if it exists, is a vector of result calculations to be retained.

rtol

double for the relative tolerance

atol

double for the absolute tolerance

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) {
     ydot = rep(0,3)
     ydot[1] = 1.0E4 * y[2] * y[3] - .04E0 * y[1]
     ydot[3] = 3.0E7 * y[2] * y[2]
     ydot[2] = -1.0 * (ydot[1] + ydot[3])
     list(ydot, sum(y))
 }
 lsoda::ode_cpp(y,times,func, rtol=1e-8, atol=1e-8)

[Package lsoda version 1.2 Index]