在 R 中求解单个 ODE

Solving a single ODE in R

我是 R 的新手,我正在尝试构建一个用于求解 ODE 的最小工作示例。我想用初始条件 y(0) = 1 求解 dy/dt = y。我没有任何参数,所以我尝试输入 params = NULL 并且我还尝试完全省略参数,这给了我以下错误:

Error in func(time, state, parms, ...) : unused argument (parms).

鉴于我没有任何参数,我不确定该怎么做。我的代码如下。

library(deSolve)
dydt <- function(y,t) {
     ydot <- y
     return(ydot)
}
tvals = c(0:5)
y0 = 1

out <- ode(y = y0, times = tvals, func = dydt, parms = NULL) 
library(deSolve)
dydt <- function(t,y,parms) {
  ydot <-y
  list(ydot)
}
tvals = c(0:5)
y0 =1
out <- ode(y = y0, parms=NULL,times = tvals, func = dydt)

?ode可以看出:

  1. 如果 func 是一个 R 函数,它必须被定义为:func <- function(t, y, parms,...) 所以dydt需要第三个参数
  2. func 的 return 值应该是一个列表 所以你需要 list(ydot) 而不是 return(ydot)

最好!