Learn R Programming

growthrates (version 0.8.4)

ode_genlogistic: Generalized Logistic Growth Model

Description

Generalized logistic growth model solved as differential equation.

Usage

ode_genlogistic(time, y, parms, ...)

grow_genlogistic(time, parms, ...)

Value

For ode_genlogistic: matrix containing the simulation outputs. The return value of has also class deSolve.

For grow_genlogistic: vector of dependent variable (y).

  • time time of the simulation

  • y abundance of organisms

Arguments

time

vector of simulation time steps

y

named vector with initial value of the system (e.g. cell concentration)

parms

parameters of the generalized logistic growth model

  • mumax maximum growth rate (1/time)

  • K carrying capacity (max. abundance)

  • alpha, beta, gamma parameters determining the shape of growth. Setting all values to one returns the ordinary logistic function.

...

additional parameters passed to the ode-function.

Details

The model is given as its first derivative:

$$dy/dt = mumax * y^alpha * (1-(y/K)^beta)^gamma$$

that is then numerically integrated ('simulated') according to time (t).

The generalized logistic according to Tsoularis (2001) is a flexible model that covers exponential and logistic growth, Richards, Gompertz, von Bertalanffy, and some more as special cases.

The differential equation is solved numerically, where function ode_genlogistic is the differential equation, and grow_genlogistic runs a numerical simulation over time.

The default version grow_genlogistic is run directly as compiled code, whereas the R versions ode_logistic is provided for testing by the user.

References

Tsoularis, A. (2001) Analysis of Logistic Growth Models. Res. Lett. Inf. Math. Sci, (2001) 2, 23-46.

See Also

Other growth models: grow_baranyi(), grow_exponential(), grow_gompertz2(), grow_gompertz(), grow_huang(), grow_logistic(), grow_richards(), growthmodel, ode_twostep()

Examples

Run this code

time <- seq(0, 30, length=200)
parms <- c(mumax=0.5, K=10, alpha=1, beta=1, gamma=1)
y0    <-  c(y=.1)
out   <- ode(y0, time, ode_genlogistic, parms)
plot(out)

out2 <- ode(y0, time, ode_genlogistic, parms = c(mumax=0.2, K=10, alpha=2, beta=1, gamma=1))
out3 <- ode(y0, time, ode_genlogistic, parms = c(mumax=0.2, K=10, alpha=1, beta=2, gamma=1))
out4 <- ode(y0, time, ode_genlogistic, parms = c(mumax=0.2, K=10, alpha=1, beta=1, gamma=2))
out5 <- ode(y0, time, ode_genlogistic, parms = c(mumax=0.2, K=10, alpha=.5, beta=1, gamma=1))
out6 <- ode(y0, time, ode_genlogistic, parms = c(mumax=0.2, K=10, alpha=1, beta=.5, gamma=1))
out7 <- ode(y0, time, ode_genlogistic, parms = c(mumax=0.3, K=10, alpha=1, beta=1, gamma=.5))
plot(out, out2, out3, out4, out5, out6, out7)

## growth with lag (cf. log_y)
plot(ode(y0, time, ode_genlogistic, parms = c(mumax=1, K=10, alpha=2, beta=.8, gamma=5)))


Run the code above in your browser using DataLab