[matlab]Monte Carlo模拟学习笔记
理论基础:大数定理,当频数足够多时,频率可以逼近概率,从而依靠概率与$\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模拟学习笔记的更多相关文章
- [其他] 蒙特卡洛(Monte Carlo)模拟手把手教基于EXCEL与Crystal Ball的蒙特卡洛成本模拟过程实例:
http://www.cqt8.com/soft/html/723.html下载,官网下载 (转帖)1.定义: 蒙特卡洛(Monte Carlo)模拟是一种通过设定随机过程,反复生成时间序列,计算参数 ...
- [matlab]bp神经网络工具箱学习笔记
基本就三个函数: newff():创建一个bp神经网络 train():训练函数 sim():仿真函数 同时具有可视化界面,但目前不知道可视化界面如何进行仿真,且设置不太全 工具箱:Neural ne ...
- 《C++ Primer Plus》12.7 队列模拟 学习笔记
Heather银行打算在Food Heap超市开设一个自动柜员机(ATM).Food Heap超市的管理者担心排队使用ATM的人流会干扰超市的交通,希望限制排队等待的人数.Heather银行希望对顾客 ...
- PHP以接口方式实现多重继承(完全模拟)--学习笔记
1.UML类图: 2.PHP代码: <?php /** * Created by PhpStorm. * User: andy * Date: 16-11-23 * Time: 下午7:57 ...
- 强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods)
强化学习读书笔记 - 05 - 蒙特卡洛方法(Monte Carlo Methods) 学习笔记: Reinforcement Learning: An Introduction, Richard S ...
- 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)
1. 蒙特卡罗方法的基本思想 蒙特卡罗方法又叫统计模拟方法,它使用随机数(或伪随机数)来解决计算的问题,是一类重要的数值计算方法.该方法的名字来源于世界著名的赌城蒙特卡罗,而蒙特卡罗方法正是以概率为基 ...
- Matlab学习笔记 figure函数
Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...
- matlab学习笔记 bsxfun函数
matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...
- matlab学习笔记(一)单元数组
matlab学习笔记(一)单元数组 1.floor(x) :取最小的整数 floor(3.18)=3,floor(3.98)=3 ceil(x) :取最大的整数 ceil(3.18)=4,ceil( ...
随机推荐
- PAT 天梯赛 L2-009. 抢红包 【排序】
题目链接 https://www.patest.cn/contests/gplt/L2-009 思路 用结构体存储,然后结构体排序 注意一下 个人编号是从 1 开始 计数的 AC代码 #include ...
- 牛客小白月赛1 G あなたの蛙は旅⽴っています【DP】
题目链接 https://www.nowcoder.com/acm/contest/85/G 思路 按照题解上的方式 存取数据 然后DP一下 就可以了 AC代码 #include <cstdio ...
- iOS 流媒体 基本使用 和方法注意
项目里面需要添加视频方法 我自定义 选用的是 avplayer 没选择 MediaPlayer 原因很简单 , avplayer 会更容易扩展 有篇博客 也很好地说明了 使用avplayer ...
- 【leetcode刷题笔记】Rotate List
Given a list, rotate the list to the right by k places, where k is non-negative. For example:Given 1 ...
- Linux电源管理(4)-Power Manager Interface【转】
本文转载自:http://www.wowotech.net/pm_subsystem/pm_interface.html 1. 前言 Linux电源管理中,相当多的部分是在处理Hibernate.Su ...
- POJ 之 Is the Information Reliable?
B - Is the Information Reliable? Time Limit:3000MS Memory Limit:131072KB 64bit IO Format:%I6 ...
- 遇到“拒绝了对对象的 EXECUTE 权限”和“无法作为数据库主体执行,因为主体 "dbo" 不存在、无法模拟这种类型的主体,或您没有所需的权限”的问题
在将数据库从sqlserver2000迁移到2005后,原有的用户名TDS在执行存储过程是报错:“拒绝了对对象的 EXECUTE 权限”. 如网上所说,在使用的数据库的属性页->权限中给TDS添 ...
- Hadoop 运行jar包时 java.lang.ClassNotFoundException: Class com.zhen.mr.RunJob$HotMapper not found
错误如下 Error: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class com.zhen.mr.RunJob$H ...
- stdcall、cdecl详解(以及WINAPI和CALLBACK之类的宏对应什么)
转自:http://blog.csdn.net/huanjieshuijing/article/details/5822942 对_stdcall 的理解在C语言中,假设我们有这样的一个函数:int ...
- Linux- 自动备份MySQL数据库脚本
数据安全很重要,所以日常中需要对数据库进行备份.