首页 > 解决方案 > 求解具有不同初始条件的 ODE

问题描述

我正在使用deSolve包运行以下功能。我想为不同的初始值运行此函数,C_WT然后从数据框中提取所有结果的最后一行Output

有什么办法可以做到这一点吗?

kon_WT = 1         
koff_WT = 10
R_WT =   20

Complex <- function (t,y,parms){
  with(as.list(y), {
    
    dC_WT <-  koff_WT*RL_WT -kon_WT*R_WT*C_WT 
    dRL_WT <- kon_WT*R_WT*C_WT - koff_WT*RL_WT   #uM
    dR_WT <-  koff_WT*RL_WT -kon_WT*R_WT*C_WT 
      
    
    return(list(c(dC_WT, dRL_WT, dR_WT)))
  })
}
times <- seq(0,1,0.01)
Out <- ode(y = c(C_WT = 10, RL_WT = 0, R_WT= R_WT), 
        times = times, func=Complex, parms=NULL)
Output <- data.frame(Out)

标签: rfunctionloopsdataframe

解决方案


是的,有一种方法可以做到,例如:

resC_WT <- function(iC_WT) {
  times <- seq(0,1,0.01)
  Out <- ode(y = c(C_WT = iC_WT, RL_WT = 0, R_WT= R_WT), times = times, func=Complex, parms=NULL)
  Output <- data.frame(Out)
  return(Output[nrow(Output), ])
}

vectorC_WT <- 1:11
sapply(vectorC_WT, FUN=resC_WT)

推荐阅读