【发布时间】:2014-12-10 23:27:36
【问题描述】:
我正在构建一个有偏差的相关随机游走,并且我已经设法构建了 RW,并将其偏向于西风运动。
问题:我需要在一侧(或所有)侧绑定步行。
目前的代码是:
walk<-function(n.times){
plot(524058:542800,2799758:2818500,type="n",
xlab="Easting",ylab="Northing")#arena
y<-2815550 ##startY
x<-542800 #startX
N<-4000
E<-4000
points(x,y,pch=16,col="red",cex=1)
for (i in 1:n.times) {
yi <- sample(c(N,N/2,N/4,N/8,N/12,N/16,
0,-N,-N/2,-N/4,-N/8,-N/12,-N/16),1)
xi<-sample(c(E,E/12,E/16, 0,-E,-E/2,-E/4,-E/8,-E/12,-E/16),1)
lines(c(x,x+xi),c(y,y+yi),col="blue")
x<-x+xi
y<-y+yi
}
}
iterations<-125
walk(iterations)
到目前为止,我最接近的是使用
if(y>2818500 | y<2799758 | x>542800 | x<524058) break
如果它离开竞技场,它只会停止步行。
【问题讨论】:
-
我对此并不熟悉,但我怀疑可能需要更多信息才能获得有用的答案。您能否分享更多代码 - 关于如何构建 RW。当 RW 越过边界时,您希望发生什么?
-
当它与边界相交时,我希望它在剩余的迭代次数中继续行走(基本上只是从墙上反弹并继续前进)
-
当它从墙上反弹时,它会以相反的角度反射还是返回原来的方向?
-
walk 代码本身很简单: > walk plot(524058:542800,2799758:2818500,type="n",xlab="Easting",ylab ="Northing")#arena >yxNEpoints(x,y,pch=16,col="red",cex =1) >for (i in 1:n.times) >{yi xi行(c(x,x+xi),c(y,y+yi), col="blue") >xyiterationswalk(iterations)
-
对不起,我还不知道如何让这个论坛里的代码读起来漂亮
标签: r random-walk