【发布时间】:2016-04-11 22:50:26
【问题描述】:
我想在 matlab 中以与我在其他任何地方看到的方式略有不同的方式实现蒙特卡罗算法。 我有一个工作示例,我生成一个包含 1000 个点的向量并从中计算 pi。 现在我想要一个模型,我可以在其中为同一个示例添加额外的点。
这是我目前的代码:
a=rand(1000,1); %initial random vectors
b=rand(1000,1);
n=1000;
m=0; %Number of points inside circle
while true
x1=a-0.5;
y1=b-0.5; %cirle has centre at (0.5,0.5)
r=x1.^2+y1.^2;
for i=1:n
if r(i)<=0.25
m=m+1;
end
end
pi=m/(0.25*n);
a=rand(1000,1);
b=rand(1000,1);
n=n+1000;
pause(1);
end
但这不起作用,因为您检查变量的 for 循环... r(i) 值应该转移到我在 while 循环底部创建的下 1000 个值... 有人知道这个问题的解决方案吗?
【问题讨论】:
标签: matlab montecarlo