Решение ODE с параметром, зависящим от времени, в R с использованием deSolve - PullRequest
0 голосов
/ 15 мая 2018

У меня есть значения параметров, которые характерны для каждого времени.Я хочу передать значения этого параметра для решения следующего ODE: dN/dt = mu*N, где 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.2, t = 0.1, X = 57.19989 и так далее .... и это должно бытьпредоставляется для расчета N с течением времени.Это не работает.Может ли кто-нибудь помочь с этим?

Спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...