理论基础:大数定理,当频数足够多时,频率可以逼近概率,从而依靠概率与$\pi$的关系,求出$\pi$

  所以,rand在Monte Carlo中是必不可少的,必须保证测试数据的随机性。

用蒙特卡洛方法进行计算机模拟的步骤:
[1] 设计一个逻辑框图,即模拟模型.
[2] 根据流程图编写程序,模拟随机现象.可通过具有各种概率分布的模拟随机数来模拟随机现象.
[3] 分析模拟结果,计算所需要结果.

ex1.投针试验求$\pi$

    %蒲丰投针实验的计算机模拟
format long; %设置15位显示精度
a=1; l=0.6; %两平行线间的宽度和针长
figure; axis([0,pi,0,a/2]); %初始化绘图板
set(gca,'nextplot','add'); %初始化绘图方式为叠加
counter=0; n=1120; %初始化计数器和设定投针次数
x=unifrnd(0,a/2,1,n); phi=unifrnd(0,pi,1,n); %样本空间Ω
frame=moviein(n); %建立一个1120列的大矩阵
for i=1:n
if x(i)<l*sin(phi(i))/2 %满足此条件表示针与线的相交
plot(phi(i),x(i),'b.');
counter=counter+1; %统计针与线相交的次数
frame(:,counter)=getframe; %描点并取帧
end
end
fren=counter/n; pihat=2*l/(a*fren); %用频率近似计算π
disp(counter);
disp(pihat);

  

ex2.依然求$\pi$

n=10000000; a=2; m=0;
for i=1:n
x=rand*a; y=rand*a;
if ( (x-a/2)^2+(y-a/2)^2 <= (a/2)^2 )
m=m+1;
end
end
disp(['投点法近似计算的π为: ',num2str(4*m/n)]);

ex3.

在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点.经过长期观察发现,我方指挥所对敌方目标的指示有50%是准确的,而我方火力单位,在指示正确时,有1/3的射击效果能毁伤敌人一门火炮,有1/6的射击效果能全部毁伤敌人火炮.现在希望能用某种方式把我方将要对敌人实施的20次打击结果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。

p=0.5;m=2000;
efreq=zeros(1,m);efreq2=zeros(1,m);
randnum1 = binornd(1,p,1,m);
randnum2 = unidrnd(6,1,m);k1=0;k2=0;k3=0;
for i=1:m
if randnum1(i)==0
k1=k1+1;
else
if randnum2(i)<=3
k1=k1+1;
elseif randnum2(i)==6
k3=k3+1;
else
k2=k2+1;
end
end
efreq(i)=(k2+k3)/i;
efreq2(i)=(k2+2*k3)/i;
end
num=1:m;plot(num,efreq,num,efreq2)

  

最新文章

  1. 转:亿级Web系统的高容错性实践(好博文)
  2. 如何在在WinFrom的DataGridView中做到数据持续动态加载而不卡死
  3. java:利用xpath删除xml中的空节点
  4. windows2003 iis6.0站点打不开,找不到服务器或 DNS 错误。
  5. 【转】Android中intent传递对象和Bundle的用法
  6. js大文件分割上传
  7. 深入理解spring中的各种注解(转)
  8. URAL - 1153 Supercomputer 大数开方
  9. react native 安卓home返回键页面刷新
  10. Java虚拟机垃圾收集器
  11. python---基于memcache的自定义session类
  12. pj1--学生信息管理系统
  13. 洛谷P3348 [ZJOI2016]大森林(LCT,虚点,树上差分)
  14. 打造html右键菜单
  15. Logback学习笔记
  16. python3使用xlrd、xlwt、xlutils、openpyxl、xlsxwriter操作excel
  17. lambda,map,filter,reduce
  18. 动态网页开发jsp
  19. vue.js的特点-1
  20. MySQL里执行SHOW INDEX结果中Cardinality的含义

热门文章

  1. mysql设计表时出错
  2. 转 Hadoop傻瓜化:Datameer大数据收入翻三番
  3. Python核心编程课后习题-第六章
  4. 20145239 GDB调试汇编堆栈过程分析
  5. 彻底搞懂word-break、word-wrap、white-space
  6. UOJ78 二分图最大匹配
  7. Jquery实现动态导航栏和轮播导航栏
  8. WCF REST开启Cors 解决 No &#39;Access-Control-Allow-Origin&#39; header is present on the requested resource. Origin &#39;http://localhost&#39; is therefore not allowed access. The response had HTTP status code 405.
  9. js 禁止用户使用Ctrl+鼠标滚轮缩放网页
  10. idea中java异常