首页 > 解决方案 > 使用 deSolve 在 R 中求解具有时间相关参数的 ODE

问题描述

我有每次特定的参数值。我想输入这个参数值来解决以下 ODE:dN/dt = mu*N where mu = b*(X-12.2)^2. 该X值随时间变化。请参阅下面我提出的代码:

library(deSolve)
times = seq(from = 0, to = 2, by = 0.1)
X = c(57.20000, 57.19989, 57.18739, 57.08867, 56.80817, 56.31114, 55.61912,
         54.77622, 53.82779, 52.81217, 51.75900, 50.69015, 49.62139, 48.56372,
         47.52467, 46.50934, 45.52096, 44.56154, 43.63211, 42.73310, 41.86450)


N0 <- 1
b <- 7.45      # Model parameter
Xmin = 12.2

model <- function(t, y, parms) {
  with(as.list(c(y, parms)),{
   mu <- b*(X-Xmin)^2
    dN <- mu*N
    return(list(dN))
})
}


yini <- c(N=N0)
parms <- mu
t <- times

out <- ode(y=yini, times=times, func=model, parms=parms)

X值是特定于每个时间的,即在t = 0, X = 57.2t = 0.1, X = 57.19989等等....并且需要提供这些值来计算 N 随时间的变化。它不工作。有人可以帮忙吗?

谢谢,

标签: rparametersodenumerical-analysis

解决方案


推荐阅读