matlab程序编写概率,概率论问题MATLAB仿真求解程序.pdf

本文介绍了使用MATLAB进行概率论问题的蒙特卡洛仿真求解,通过具体的Buffon问题实例展示了如何编写程序来估算概率和圆周率。程序包括多次随机抽样试验,随着试验次数增加,结果逐渐接近理论值。
摘要由CSDN通过智能技术生成

概率论问题MATLAB仿真求解程序

Monte Carlo仿真原理

Monte Carlo方法的的基本思想是首先建立一个概率模型,使所

求问题的解正好是该模型参数或其他有关特征量,然后通过模

拟 ———— 统计试验,即多次随机抽样试验(确定m和n),统计

出某事件发生的百分比,只要试验次数很大,该百分比就近拟于

事件发生的概率。这实际上就是事件发生概率的统计定义。利用

建立的概率模型,求出要估计的参数。蒙特卡洛属于试验数学的

一个分支。

MATLAB实现Buffon问题仿真求解程序

程序1

clear all;

L=1; %针的长度;

d=2; %平行线间的距离(d>L);

m=0; %统计满足针与线相交条件的次数并赋初值;

n=10000; %投针试验次数

for k=1:n %迭代次数

x=unifrnd(0,d/2); %随机产生数的长度,即投针之后针中点与平行线的距离

p=unifrnd(0,pi); %随机产生的针与线相交的角度

if x<=L*sin(p)/2 %针与线相交的条件

m=m+1; %针与线相交则记数

else

end

end

p=vpa(m/n,4) %n 次中与平行线相交的次数的频率比,即相交的概率,vpa()

以任意精度(4 位小数点,默认值为 32 位)显示出来

pi_m=vpa((2*L*n)/(m*d),15) %利用投针频率估计圆

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值