我正在尝试使用R中的deSolve来解决一系列方程式。我希望使用for循环列出方程式但是却无法这样做。 系统如下:
X_i'= a X_i + 1 - (b + c)X_i
X_k'= 2c(X_1 + ... + X_k) - (b + c)X_k
这就是我试图写它的方式:
library(deSolve)
ode_func <- function(t, state, parms){
with(as.list(c(state, parms)),{
#rate of change
for (i in 1:k-1) {
dX[i] <- a * X[i+1] - (b + c) * X[i]
dX[k] <- 2 * c * sum(X[i]) - (b + c) * X[k]
#return the rate of change
list(c(dX[i], dX[k])) } }) }
k=10
#initial conditions
state <- c(rep(0, k-1), 1e4)
times=seq(0,500,1)
sol_ode <- ode(y= state, times=times, func = ode_func,
parms = list(a= 0.01, b= 0.01, alpha = 0.01))
我得到并且错误地说'找不到对象X'。我已成功使用deSolve很多次但是必须使用for循环。在此先感谢您的帮助。