代码之家  ›  专栏  ›  技术社区  ›  Anthony

R中的Lsoda函数

ode r
  •  0
  • Anthony  · 技术社区  · 8 年前

    mo=function(t,x,m){
    if(t%%2==0){
       a=m
    }else{
       a=0
    }
    dx=rep(0,2)
    dx[1]=-a*x[1]
    dx[2]=a*x[1]
    res=dx
    return(list(dx))
    }
    xs=c(10,0)
    ti=1:100
    m=1
    data1=as.data.frame(lsoda(xs,ti,mo,m))
    

    1 回复  |  直到 8 年前
        1
  •  0
  •   Dan    8 年前

    lsoda t%%2 == 0 当该条件为真时(例如。, t=2 lsoda公司 将在求解时间之间插值,以在用户要求的时间获得输出,而不一定在这些时间求解模型。根据经验,对于数值常微分方程求解器,硬时间或空间接口是一件坏事。