0

これは単純であるべきだと思います。R の一連の微分方程式を数値的に解いています。ただし、いくつかのグループのパラメーターについて一連の微分方程式をテストする必要があるため、ループを使用しています。問題は、すべてのパラメータ セットで同じ値が表示されることです。これは正しくありません。

contrand<-sample(paste0("p",1:18), 
                 size=nb, replace=TRUE, 
                 prob=c(0, 0, 0.052, 0.013, 0.033,  0.017, 0.002,0.026, 0.005, 0.093, 
                        0.186, 0.006, 0.001, 0.004, 0.0044, 0.4395, 0.005, 0.113))

z.cont <- data.frame(matrix(rep(NA,1*nb),nrow=nb,ncol=1))
for (i in 1:nb){
    params <- get(contrand[i])
    model<-function(t,x,params){
      S<-x[1]
      I<-x[2]
      R<-x[3]
      with(as.list(params),{
        N<- S+I+R
        dS <- birth*N - beta*S*I- death*S
        dI <- beta*S*I - gamma*I - death*I
        dR <- gamma*I - death*R

        dx <- c(dS,dI,dR)
        list(dx)
      })
    }
    out<-as.data.frame(lsoda(xstart,times,model,params))
    I<-as.data.frame(out$I)
    z.cont[i,1] <- Iv[157,]
}
4

0 に答える 0