理论基础:大数定理,当频数足够多时,频率可以逼近概率,从而依靠概率与$\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)

  

[matlab]Monte Carlo模拟学习笔记的更多相关文章

  1. [其他] 蒙特卡洛(Monte Carlo)模拟手把手教基于EXCEL与Crystal Ball的蒙特卡洛成本模拟过程实例:

    http://www.cqt8.com/soft/html/723.html下载,官网下载 (转帖)1.定义: 蒙特卡洛(Monte Carlo)模拟是一种通过设定随机过程,反复生成时间序列,计算参数 ...

  2. [matlab]bp神经网络工具箱学习笔记

    基本就三个函数: newff():创建一个bp神经网络 train():训练函数 sim():仿真函数 同时具有可视化界面,但目前不知道可视化界面如何进行仿真,且设置不太全 工具箱:Neural ne ...

  3. 《C++ Primer Plus》12.7 队列模拟 学习笔记

    Heather银行打算在Food Heap超市开设一个自动柜员机(ATM).Food Heap超市的管理者担心排队使用ATM的人流会干扰超市的交通,希望限制排队等待的人数.Heather银行希望对顾客 ...

  4. PHP以接口方式实现多重继承(完全模拟)--学习笔记

     1.UML类图: 2.PHP代码: <?php /** * Created by PhpStorm. * User: andy * Date: 16-11-23 * Time: 下午7:57 ...

  5. 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)

    强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods) 学习笔记: Reinforcement Learning: An Introduction, Richard S ...

  6. 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)

    1. 蒙特卡罗方法的基本思想 蒙特卡罗方法又叫统计模拟方法,它使用随机数(或伪随机数)来解决计算的问题,是一类重要的数值计算方法.该方法的名字来源于世界著名的赌城蒙特卡罗,而蒙特卡罗方法正是以概率为基 ...

  7. Matlab学习笔记 figure函数

    Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...

  8. matlab学习笔记 bsxfun函数

    matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...

  9. matlab学习笔记(一)单元数组

    matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x)  :取最大的整数 ceil(3.18)=4,ceil( ...

随机推荐

  1. iOS UITableViewCell UITableVIewController 纯代码开发

    iOS UITableViewCell UITableVIewController 纯代码开发 <原创> .纯代码 自定义UITableViewCell 直接上代码 ////// #imp ...

  2. pyspark

    http://www.aboutyun.com/thread-18150-1-1.html

  3. Python stdout

    (1)stdout 与 print 当我们在 Python 中打印对象调用 print obj 时候,事实上是调用了 sys.stdout.write(obj+'\n') print 将你需要的内容打 ...

  4. Data Structure Binary Tree: Check if a given Binary Tree is SumTree

    http://www.geeksforgeeks.org/check-if-a-given-binary-tree-is-sumtree/ #include <iostream> #inc ...

  5. 使用 sqoop 将mysql数据导入到hdfs(import)

    Sqoop 将mysql 数据导入到hdfs(import) 1.创建mysql表 CREATE TABLE `sqoop_test` ( `id` ) DEFAULT NULL, `name` va ...

  6. php简单实现通讯录采集,我的第一个php,适合新手

    起源于要整理通讯录,原先用的是文件调查,现在学了php,就自己试一下.程序短小精悍,适于学习.有两个文件,bj.html用于显示和采集表单信息.bj.php用于处理数据和反馈结果.突出之处在于可以上传 ...

  7. (转)JSP九大内置对象

    原文出处:http://www.importnew.com/19128.html 虽然现在基本上使用SpringMVC+AJAX进行开发了Java Web了,但是还是很有必要了解一下JSP的九大内置对 ...

  8. codeforces 631C C. Report

    C. Report time limit per test 2 seconds memory limit per test 256 megabytes input standard input out ...

  9. 判断CPU是大端还是小端

    #include "stdafx.h" #include <iostream> using namespace std; /* #大端模式(Big_endian):字数 ...

  10. bzoj5329 战略游戏

    有一个圆方树,每次给出一个点集,询问虚树上圆点数量-询问点数量 sol:题意读懂就很简单了...可以建虚树dp 也可以考虑每一条链对答案的贡献,最后要注意单独计算虚树根对答案的贡献 #pragma G ...