资源描述:
《蒙特卡洛算法解析ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、蒙特卡洛算法解析主讲人:李小永时间:2012.8.28*蒙特卡洛算法解析1.蒙特卡洛方法初探2.综合知识的提升3.结合例题练习4.*作业模拟题训练5.*有关赛题和资料1.蒙特卡洛方法初探蒙特卡洛(MonteCarlo)方法是一种应用随机数来进行计算机模拟的方法.此方法对研究的系统进行随机抽样观察,通过对样本值的统计分析,求得所研究系统的某些参数.1.1用蒙特卡洛方法进行计算机模拟的步骤[1]设计一个逻辑框图,即模拟型.这个框图要正确反映系统各部分运行时的逻辑关系。[2]模拟随机现象.可通过具有各种概率分布的模拟随机数来模拟随机现象.1.2产生模拟随机数的计算机命令在Matlab软件中,可以直
2、接产生满足各种分布的随机数,命令如下:1.产生m*n阶(a,b)均匀分布U(a,b)的随机数矩阵:unifrnd(a,b,m,n);产生一个[a,b]均匀分布的随机数:unifrnd(a,b)2.产生mm*nn阶离散均匀分布的随机数矩阵:R=unidrnd(N)R=unidrnd(N,mm,nn)其中>0为常数,则称X服从参数为的指数分布。期望为产生1个参数为n,p的二项分布的随机数binornd(n,p),产生mn个参数为n,p的二项分布的随机数binornd(n,p,m,n)随机数rand及其相关用法rand%产生0~1的一个随机数;rand(n)%产生0~1的n*n的矩阵;rand(
3、m,n)%产生0~1的m*n的矩阵;2.综合能力的提升系统仿真(Simulation)1.系统仿真:使用计算机对一个系统的结构和行为进行动态模拟。为决策提供必要的参考信息。特点:对象真实、复杂,进行模仿。2.仿真模型:由计算机程序控制运行从数值上模仿实际系统的动态行为。仿真过程1.现实系统的分析:了解背景,明确目的,提出总体方案。2.组建模型:确定变量,明确关系,设计流程,编制程序3.运行检验:确定初始状态,参量数值,运行程序,检验结果,改进模型。4.输出结果fix(x):截尾取整,直接将小数部分舍去floor(x):不超过x的最大整数ceil(x):不小于x的最小整数round(x):四舍
4、五入取整1.两1人约定于12点到1点到某地会面,先到者等20分钟后离去,试求两人能会面的概率?解:设x,y分别为甲、乙到达时刻(分钟)令A={两人能会面}={(x,y)
5、
6、x-y
7、≤20,x≤60,y≤60}P(A)=A的面积/S的面积=(602-402)/602=5/9=0.5556functionproguji=liti(mm)frq=0;randnum1=unifrnd(0,60,mm,1);randnum2=unifrnd(0,60,mm,1);randnum=randnum1-randnum2;proguji=0;forii=1:mmifabs(randnum(ii,1))<=20
8、frq=frq+1;endendproguji=frq/mmliti(10000)proguji=0.55573.例题训练例1:蒲丰氏问题为了求得圆周率π值,在十九世纪后期,有很多人作了这样的试验:将长为l的一根针任意投到地面上,用针与一组相间距离为a(l<a)的平行线相交的频率代替概率P,再利用准确的关系式:求出π值:其中N为投计次数,n为针与平行线相交次数。这就是古典概率论中著名的蒲丰氏问题。分析知针与平行线相交的充要条件是:其中:建立直角坐标系,上述条件在坐标系下将是曲线所围成的曲边梯形区域。由几何概率知:实验者年份投计次数π的实验值沃尔弗185050003.1596斯密思185532
9、043.1553福克斯189411203.1419拉查里尼190134083.1415929例:在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点.经过长期观察发现,我方指挥所对敌方目标的指示有50%是准确的,而我方火力单位,在指示正确时,有1/3的概率能毁伤敌人一门火炮,有1/6的概率能全部消灭敌人现在希望能用某种方式把我方将要对敌人实施的1次打击结果显现出来,利用频率稳定性,确定有效射击(毁伤一门炮或全部消灭)的概率分析:这是一个复杂概率问题,可以通过理论计算得到相应的概率.1.问题分析需要模拟出以下两件
10、事:[1]观察所对目标的指示正确与否模拟试验有两种结果,每一种结果出现的概率都是1/2.因此,可用投掷一枚硬币的方式予以确定,当硬币出现正面时为指示正确,反之为不正确.[2]当指示正确时,我方火力单位的射击结果情况模拟试验有三种结果:毁伤一门火炮的可能性为1/3(即2/6),毁伤两门的可能性为1/6,没能毁伤敌火炮的可能性为1/2(即3/6).这时可用投掷骰子的方法来确定:如果出现的是1、2、3三个点:则认为