Matlab中的随机漫步

时间:2017-03-16 09:48:59

标签: matlab random stochastic-process

我正在尝试创建一个简单的随机游走。这是我写的代码。

 n=50;
 p=0.5;

Y=zeros(n,1);
X=zeros(n,1);
X(1)=0;

for i=1:length(n)
    Y(i,1)=(rand(1)<=p);
end

for i=1:length(n)
    X(i+1)=X(i)+(2*Y(i)-1);
end
plot(1:n,X,'.-')

但是,如果我检查存储随机伯努利变量的Y,我会得到全零。为什么会这样?

我得到了一个类似this的情节 这看起来不像是随机游走。有人可以告诉我我做错了吗

1 个答案:

答案 0 :(得分:1)

关于Noel的评论,确实length(n)应该被n替换,而绘图函数应该是plot(1:(n+1),X,'.-'),而不是X中有n+1个元素。你最终以下内容:

n=50;
p=0.5;

Y=zeros(n,1);
X=zeros(n,1);
X(1)=0;

for i=1:n
    Y(i,1)=(rand(1)<=p);
end

for i=1:n
    X(i+1)=X(i)+(2*Y(i)-1);
end
plot(1:(n+1),X,'.-')

情节看起来更像是随机游走:

enter image description here