我有一个模型中有一个微分方程,我在R中使用odesolver解决。你给ode函数的一个参数是时间。有没有办法可以根据解算器中的时间更改另一个变量(例如季节性变化)。我想做的是如下所示,其中ODETIME是ODE中的时间变量。
function1 <- function(r, y, x) {
z <- x[which(x$time = ODETIME),2]
list(- r * y * z)
}
N <- 10
r <- runif(N, 15, 20)
yini <- runif(N, 1, 40)
vals <- rep(1:5, 22)
times <- 0:10
x <- data.frame(time = rep(times, 10), vals)
out <- ode(y = yini, parms = NULL, times = times, func = function1)