用for循环数值求解R中的ODE系统

时间:2017-10-15 17:51:45

标签: r for-loop numerical-integration

我正在尝试使用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循环。在此先感谢您的帮助。

0 个答案:

没有答案