【问题标题】:Solving a single ODE in R在 R 中求解单个 ODE
【发布时间】:2019-11-15 19:43:16
【问题描述】:

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

func(time, state, parms, ...) 中的错误:未使用的参数 (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) 

【问题讨论】:

    标签: r ode


    【解决方案1】:
    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
    2. func 的返回值应该是一个列表 所以你需要list(ydot) 而不是return(ydot)

    最好的!

    【讨论】:

      猜你喜欢
      • 2018-09-23
      • 2019-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-01
      相关资源
      最近更新 更多