|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
我有一个单独循环(一下代码),现在我想把它整体重复1000次如何实现呢?
K<-10000
a<-1
r<-0.04
Bt<-c()
Nmin<-c()
Bt[1]<-as.numeric(0.3*K)
Kill<-129
####先求t——t+1之间的N###
for (t in 1:100) {
Bt[t+1]<-Bt[t]+r*Bt[t]*(1-Bt[t]/K)
if(t%%4==0){
set.seed(555)
Nmean<-rnorm(1000,mean=Bt[t+1],sd=Bt[t+1]*0.2)
Nmean<-sample(Nmean, size=1, replace=FALSE)
set.seed(777)
Nmin<-rnorm(1000,mean=Nmean,sd=Nmean*0.2)
PBR=min(Nmin)*0.1*1.04
set.seed(666)
Kill[t+1]<-rnorm(1000,mean=PBR,sd=PBR*0.2)
Kill[t+1]<-sample(Kill[t+1], size=1, replace=FALSE)
Bt[t+1]=Bt[t+1]-Kill[t+1]
Kill<-Kill[t+1]
print(Bt[t+1])
}
else{
Bt[t+1]=Bt[t+1]-Kill
print(Bt[t+1])
}
}
plot(Bt)
####重复1000次####这个结果不太符合我的预期,想知道自己哪里出错了
K<-10000
r<-0.04
Bt<-c()
Nmin<-c()
Bt<-matrix(NA,101,1000)
Nmin<-c()
Nmean<-c()
Bt[1,]<-as.numeric(0.3*K)
Kill<-129
####先求t——t+1之间的N###
for (j in 1:1000) {
for (t in 1:100) {
Bt[t+1,j]<-Bt[t,j]+r*Bt[t,j]*(1-Bt[t,j]/K)
if(t%%4==0){
Nmean<-rnorm(1000,mean=Bt[t+1,j],sd=Bt[t+1,j]*0.5)
Nmean<-sample(Nmean, size=1, replace=FALSE)
Nmin<-rnorm(1000,mean=Nmean,sd=Nmean*0.5)
PBR=min(Nmin)*0.1*1.04
Kill<-rnorm(1000,mean=PBR,sd=PBR*0.5)
Killnew<-sample(Kill[t+1], size=1, replace=FALSE)
Bt[t+1,j]=Bt[t+1,j]-Killnew
Kill<-Killnew
}
else{
Bt[t+1,j]=Bt[t+1,j]-Kill
}
}
}
View(Bt)
|
|