delay: Delayed state for delay differential equations

View source: R/dde.R

delayR Documentation

Delayed state for delay differential equations

Description

delay(state, T) evaluates an ODE state at the past time t - T, turning an ordinary differential equation model into a delay differential equation (DDE). The semantics match the delay() function of Monolix.

Usage

delay(state, T)

Arguments

state

An ODE state (compartment) defined in the model whose past value is required.

T

The delay duration. May be a constant, a parameter, a covariate, or any model expression. The value returned is the state at time t - T.

Details

Delayed states are interpolated from the solver's dense output, so delay models are solved on a dense path: the default method becomes the dense AutoSwitch composite "dop853+ros4", and dense methods such as "dop853" or "ros4" also work. The step size is capped to the smallest delay, and methods that cannot record dense history raise an error. The dense-output and delay-history machinery is adapted from the dde package by Rich FitzJohn and Wes Hinsley (Imperial College of Science, Technology and Medicine).

Value

Inside an rxode2 model, the value of state at the past time t - T. Before the start of integration the constant initial-condition history is used.

Author(s)

Matthew L. Fidler

See Also

rxSolve()

Examples


# Classic linear delay differential equation y'(t) = -y(t - 1)
dde <- rxode2({
  y(0) <- 1
  d/dt(y) <- -delay(y, 1)
})

s <- rxSolve(dde, et(seq(0, 5, by = 0.1)))

# Delayed (Hutchinson) logistic growth
hutch <- rxode2({
  r <- 0.5
  K <- 10
  tau <- 1
  N(0) <- 2
  d/dt(N) <- r * N * (1 - delay(N, tau) / K)
})

s2 <- rxSolve(hutch, et(seq(0, 40, by = 0.5)))



rxode2 documentation built on July 28, 2026, 5:08 p.m.