これを行うにはもっとエレガントな方法があるかもしれませんが、今はこのロジックを理解したいだけです...私の問題は、Y[t]=Y[t-1]+i[t]
シミュレーションの典型的なことを行うと、関数に入れても機能しないことです。時間または t 1-10 の各行に正しい変数値を含むデータ フレームを出力したいと考えています。ループ内の猫は、私が間違っていることを明らかにします。
これが私のコードです:
iter <- 10; i <- rep(0.1,iter);
i <- c(0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0)
Y0 <- 0.25 ; O0 <- 4.16
Y <- rep(0,iter); O <- rep(0,iter)
Tot <- rep(0,iter)
t <- seq(1,iter) #start time and fill vector
Y[1]=Y0 #First iter
O[1]=O0
Tot[1]= Y0+O0
time<-rep(1,iter)#runtime unit
#This is a simplified version of the ICBM function, to test the logic and output
Isim <- function(i, h, Y0, O0,iter,time) {
for (t in 2:iter) {
time<- time+1
Y[t]=(Y[t-1]+i[t-1]); O[t]=(O[t-1]+i[t-1]); Tot[t]=Y[t]+O[t];
simout <- data.frame(i,Y0,O0,Y,O,Tot,time)
cat(time)
}
return(simout)
}
result <- Isim(i, h, Y0, O0,iter, time)