current.cita<-c(0.1,0.1,0.1)
> cita<-matrix(nrow=m,ncol=3)
> m<-55000
> mu.cita<-c(0,0,0)
> s.cita<-c(10000,10000,100)
> prop.s<-c(0.1,0.1,0.1)
> cita<-matrix(nrow=m,ncol=2)
> acc.prob<-0
> for(t in 1:m){
+ prop.cita<-rnorm(3,current.cita,prop.s)
+ h<-1-current.cita[3]/exp(current.cita[2])*(x-current.cita[1])
g<-1-prop.cita[3]/exp(prop.cita[2])*(x-prop.cita[1])
+ if(prod(h>0)==0){loga<-0}
+ else{loga<--770*current.cita[2]+(1/current.cita[3]-1)*sum(log(1-current.cita[3]/exp(current.cita[2])*(x-current.cita[1])))
+ }
+ if(prod(g>0)==0){logb<-0}
+ else{logb<--770*prop.cita[2]+(1/prop.cita[3]-1)*sum(log(1-prop.cita[3]/exp(prop.cita[2])*(x-prop.cita[1])))
+ }
+ if(prod(g>0)*prod(h>0)==0){logc<-10}
+logc<-sum(dnorm(prop.cita,mu.cita,sigma.cita,log=T))-sum(dnorm(current.cita,mu.cita,sigma.cita,log=T))
+ logl<-logb-loga+logc
+ u<-runif(1)
+ u<-log(u)
+ if(u<logl){
+ current.cita<-prop.cita
+ acc.prob<-acc.prob+1
+ }
+ cita[t,]<-current.cita
+ }


雷达卡



京公网安备 11010802022788号







