【发布时间】:2021-12-18 21:47:09
【问题描述】:
我正在尝试通过 deSolve 求解这个 ODE 系统,dX/dt = -X*a + (YX)b + c 和 dY/dt = -Ya + (XY)* b 对于时间 [0,200],a=0.30,b=0.2 但对于时间 [50,70],c 为 1,否则为 0。我一直在使用的代码是,
time <- seq(0, 200, by=1)
parameters <- c(a=0.33, b=0.2, c=1)
state <- c(X = 0, Y = 0)
two_comp <- function(time, state, parameters){
with(as.list(c(state, parameters)), {
dX = -X*a + (Y-X)*b + c
dY = -Y*a + (X-Y)*b
return(list(c(dX, dY)))
})
}
out <- ode(y = state, times = time, func = two_comp, parms = parameters)
out.df = as.data.frame(out)
我已经省略了 c 参数的时变部分,因为我想不出一种方法来包含它并顺利运行它。我尝试将它包含在函数定义中,但无济于事。请帮忙。
【问题讨论】:
标签: r ode differential-equations equation-solving desolve