【MATLAB】蒙特卡洛估计pi值

x =-1+ 2*rand(1e4,1);
y =-1+ 2*rand(1e4,1);

%搜寻落到半径为1的圆内的个数
z = x((x.^2 + y.^2 )<=1);%其实是先判断,后索引符合条件的x值

pitest = 4*length(z)/length(x); %原理: 所有随机数落到半径为1的圆内的概率等
err = abs(pitest - pi)/pi;
fprintf( '2.梦塔卡罗模拟π的值为%3.4f,相对误差为%3.4f\n\n ' ,pitest,err)
figure(1)
hold on
axis equal
set(gca, 'XLim',[-1 1]);
set(gca, 'YLim',[-1 1]);
for k = 1:1000 %length(x)
    if x(k)^2 + y(k)^2 <= 1
        %the point is inside the sphere, show it in red
        plot(x(k),y(k), '*b')
    else
        %the point is outside the sphere, show it in blue .
        plot(x(k), y(k),'.g')
    end
    drawnow update
end



  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值