解决R中的一个ODE

我是R的新手,我正在尝试为解决ODE构建一个最小的工作示例。我想用初始条件y(0)= 1来求解dy / dt = y。我没有任何参数,所以我尝试放置def pretty(d,indent=0): for i in d: for key,value in i.items(): print('\t' * indent + str(key) + ' {') if isinstance(value,list): for item in value: if isinstance(item,dict): for key_1,value_1 in item.items(): if isinstance(value_1,list): print('\t' * (indent + 2) + str(key_1) + ' {') for x in value_1: for key_2,value_2 in x.items(): print('\t' * (indent + 3) + str(key_2) + 4 * ' ' + str(value_2)) print('\t' * (indent + 2) + '}') else: print('\t' * (indent + 1) + str(key_1) + 4 * ' ' + str(value_1)) print('}') ,并且还尝试完全省略该参数,这给了我以下几点错误:

  

func(时间,状态,参数,...)错误:未使用的参数(参数)。

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

params = NULL
bhc2955 回答:解决R中的一个ODE

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)

最好!

本文链接:https://www.f2er.com/3092960.html

大家都在问