upca {simecol} | R Documentation

## The Uniform Period Chaotic Amplitude Model

### Description

simecol example: resource-predator-prey model, which is able to exhibit chaotic behaviour.

### Usage

      data(upca)

### Format

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

`main`
  The differential equations for predator prey and resource with:

`u`
  resource (e.g. grassland or phosphorus),
`v`
  producer (prey),
`w`
  consumer (predator).

`equations`
  Two alternative (and switchable) equations for the functional response.
`parms`
  Vector with the named parameters of the model, see references for details.
`times`
  Simulation time and integration interval.
`init`
  Vector with start values for `u`, `v` and `w`.
`solver`
  Character string with the integration method.

### Details

To see all details, please have a look into the implementation below and the original publications.

### References

Blasius, B., Huppert, A., and Stone, L. (1999) Complex dynamics and phase synchronization in spatially extended ecological systems. Nature, 399 354–359.

Blasius, B. and Stone, L. (2000) Chaos and phase synchronization in ecological systems. International Journal of Bifurcation and Chaos, 10 2361–2380.

### See Also

`sim`, `parms`, `init`, `times`.

### Examples

    ##============================================
    ## Basic Usage:
    ##   explore the example
    ##============================================
    data(upca)
    plot(sim(upca))

    # omit stabilizing parameter wstar
    parms(upca)["wstar"] <- 0
    plot(sim(upca))

    # change functional response from
    # Holling II (default) to Lotka-Volterra
    equations(upca)$f <- function(x, y, k) x * y
    plot(sim(upca))

    ##============================================
    ## Implementation:
    ##   The code of the UPCA model
    ##============================================
    upca <- new("odeModel",
      main = function(time, init, parms) {
        u      <- init[1]
        v      <- init[2]
        w      <- init[3]
        with(as.list(parms), {
          du <-  a * u           - alpha1 * f(u, v, k1)
          dv <- -b * v           + alpha1 * f(u, v, k1) +
                                 - alpha2 * f(v, w, k2)
          dw <- -c * (w - wstar) + alpha2 * f(v, w, k2)
          list(c(du, dv, dw))
        })
      },
      equations  = list(
        f1 = function(x, y, k){x*y},           # Lotka-Volterra
        f2 = function(x, y, k){x*y / (1+k*x)}  # Holling II
      ),
      times  = c(from=0, to=100, by=0.1),
      parms  = c(a=1, b=1, c=10, alpha1=0.2, alpha2=1,
        k1=0.05, k2=0, wstar=0.006),
      init = c(u=10, v=5, w=0.1),
      solver = "lsoda"
    )

    equations(upca)$f <- equations(upca)$f2

[Package simecol version 0.6-9 Index]