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-9 Index]