Matlab 中的随机游走
Random Walk in Matlab
我正在尝试创建一个简单的随机游走。这是我写的代码。
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
,我会得到全零。为什么会这样?
我得到了这样的情节,。
这看起来不像是随机游走。有人可以告诉我我做错了什么吗
关于 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,'.-')
情节看起来更像是随机游走:
我正在尝试创建一个简单的随机游走。这是我写的代码。
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
,我会得到全零。为什么会这样?
我得到了这样的情节,
这看起来不像是随机游走。有人可以告诉我我做错了什么吗
关于 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,'.-')
情节看起来更像是随机游走: