【发布时间】:2019-08-06 16:24:29
【问题描述】:
我正在尝试执行以下代码,其中主函数 (LV) 包含另一个函数 (fun_sp),用于在每个时间点查找根。根称为 p。根据我的理解,p取决于变量C,它是一个向量并且在每个时间点都在变化,所以p也应该是一个在每个时间点都变化的向量。但是当我输出 p 时,我只得到一个值。我理解错了吗? 任何输入都会有所帮助?
library(deSolve)
library(rootSolve)
ka = 0.1; CL = 0.2; Ke = 0.3; R = 10; KD = 0.1
LV <- function(time,state, params)
{
C <- state[1]
P <- state[2]
fun_sp <- function(p){p + ((C/R)*p/(p+(KD/R))) -1}
p <<- uniroot.all(fun_sp, c(0,1))
fb <- p/(p+(KD/R))
dC <- fb*ka*C - CL*C + P*CL - Ke*C
dP <- CL*C - P*CL
list(c(dC, dP))
}
state_ini = c(C=100,P=0)
time = c(seq(1, 24 , 1))
fv <- ode(state_ini, time, LV, parms, method = "lsoda", rtol=1e-6, atol=1e-6, verbose=FALSE)
p
fv = as.data.frame(fv)
str(fv)
【问题讨论】:
-
另外,我想在此之后在另一个函数中使用根 (p)。目前,我无法做到这一点。有没有办法做到这一点?
标签: function output rstudio root