lv3 {simecol}R Documentation

Lotka-Volterra-Type Model with Resource, Prey and Predator

Description

simecol example: predator prey-model with three equations: predator, prey and resource (e.g. nutriens, grassland).

Usage

data(lv3)

Format

A valid S4 object according to the odeModel specification. The object contains the following slots:

main
Lotka-Volterra equations for predator prey and resource
.
parms
Vector with named parameters of the model:
c
growth rate of the prey population,
d
encounter rate of predator and prey,
e
yield factor (allows conversion with respect to d),
f
death rate of the predator population,
g
recycling parameter.
inputs
Time series specifying external delivery of resource.
times
Simulation time and integration interval.
init
Vector with start values for s, p and k.
s
Resource (e.g. grassland or phosphorus).
p
Producer (prey).
k
Consumer (predator).
solver
Character string specifying the integration method.

See Also

simecol-package, sim, parms, init, times.

Examples

##============================================
## Basic Usage:
##   explore the example
##============================================
data(lv3)
plot(sim(lv3))
solver(lv3) <- "lsoda"
times(lv3)["by"] <- 5  # set maximum external time step to a large value
plot(sim(lv3))         # wrong! automatic time step overlooks internal inputs
plot(sim(lv3, hmax=1)) # integration with correct maximum internal time step
    
##============================================
## Implementation:
##   The code of the model
##============================================
lv3<- new("odeModel",
  main = function(time, init, parms) {
    x <- init
    p <- parms

    s <- x[1] # substrate
    p <- x[2] # producer
    k <- x[3] # consumer
    input <- approxTime1(inputs, time, rule=2)
    with(as.list(parms),{
      s.in <- input["s.in"]
      ds <- s.in  - b*s*p + g*k
      dp <- c*s*p - d*k*p
      dk <- e*p*k - f*k
      res<-c(ds, dp, dk)
      list(res)
    })
  },
  parms = c(b=0.1, c=0.1, d=0.1, e=0.1, f=0.1, g=0),
  times  = c(from=0, to=200, by=1),
  inputs = as.matrix(
    data.frame(
      time = c(0,   99, 100,  101, 200),
      s.in = c(0.1, 0.1, 0.5, 0.1, 0.1)
    )
  ),
  init = c(s=1, p=1, k=1),
  solver = "rk4"
)


[Package simecol version 0.6-6 Index]