#source("c:/Work07/ShortCourse07/Programs/RandomWalkMet.txt",print.eval=TRUE)# #Hastings random walk algorithm# nsim<-5000 a<-c(.5,1,10) na<-length(a) x<-array(0,c(na,nsim)) na<-length(a) for(i in 1:na) { for(j in 2:nsim) { y<-x[i,(j-1)]+runif(1,min=-a[i],max=a[i]) r=min(exp(-.5*((y^2)-(x[i,(j-1)]^2))),1) u<-runif(1) x[i,j]<-y*(ur) } } #---------------Plot-------------------------------- par(mfrow=c(2,na)) for(i in 1:na) { hist(x[i,],freq=F,xlim=c(-4,4),ylim=c(0,.4),col='grey',ylab="",breaks=50) par(new=T) plot(function(x)dnorm(x),-4,4,lwd=2) } for(i in 1:na) { plot(c(1:nsim),cumsum(x[i,])/c(1:nsim),type="l") lines(x=c(0,nsim),y=c(0,0)) }