




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
随机行为的模拟:随机抛掷硬币和骰子出现特定面的概率蒙特卡罗方法的计算机模拟1摘要对蒙特卡罗(MonteCarlo)方法的简介并概述了蒙特卡罗方法的概念、应用领域、求解步骤。以抛掷硬币和骰子为例,论述了蒙特卡罗方法模拟随机行为的基本思想和基本原理。给出了实现计算机模拟的MATLAB程序,并且通过最高达千万次级别的计算机模拟试验,准确地模拟了随机抛掷硬币和骰子出现特定面的概2关键词蒙特卡罗(MonteCarlo)方法方法;计算机模拟;随机行为;模拟;概率;MATLAB程序3弓I言3.1蒙特卡罗方法的概述:蒙特卡罗方法又称统计模拟法、随机抽样技术,是一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。为象征性地表明这一方法的概率统计特征,故借用赌城蒙特卡罗命名。3.2蒙特卡洛模拟法简介:蒙特卡洛(MonteCarlo)模拟是一种通过设定随机过程,反复生成时间序列,计算参数估计量和统计量,进而研究其分布特征的方法。具体的,当系统中各个单元的可靠性特征量已知,但系统的可靠性过于复杂,难以建立可靠性预计的精确数学模型或模型太复杂而不便应用时,可用随机模拟法近似计算出系统可靠性的预计值;随着模拟次数的增多,其预计精度也逐渐增高。由于涉及到时间序列的反复生成,蒙特卡洛模拟法是以高容量和高速度的计算机为前提条件的,因此只是在近些年才得到广泛推广。3.3蒙特卡洛模拟法提出:蒙特卡罗方法于20世纪40年代美国在第二次世界大战中研制原子弹的“曼哈顿计划”计划的成员S.M.乌拉姆和J.冯■诺伊曼首先提出。数学家冯■诺伊曼用驰名世界的赌城一摩纳哥的MonteCarlo-来命名这种方法,为它蒙上了一层神秘色彩。在这之前,蒙特卡罗方法就已经存在。1777年,法国Buffon提出用投针实验的方法求圆周率。3.4蒙特卡洛模拟法的应用领域:、直接应用蒙特卡洛模拟:应用大规模的随机数列来模拟复杂系统,得到某些参数或重要指标。、蒙特卡洛积分:利用随机数列计算积分,维数越高,积分效率越高。、MCMC:这是直接应用蒙特卡洛模拟方法的推广,该方法中随机数的产生是采用的马尔科夫链形式。、蒙特卡罗方法在金融工程学,宏观经济学,生物医学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。3.5蒙特卡罗解题归结为三个主要步骤:、构造或描述概率过程;、实现从已知概率分布抽样;、建立各种估计量。4问题重述蒙特卡罗模拟的真正威力在于对随机行为建模。从长期来看,一个事件的概率可以视为比值:概率P(a)有效的事件数事件的总数下面3个随机模型:、抛掷一枚正规的硬币、抛掷一个正规的骰子、抛掷一个不正规的骰子以剖析如何用蒙特卡罗方法模拟这些随机行为,以及基于MATLAB软件的计算机实现。5抛掷一枚正规的硬币5.1过程分析抛掷一枚硬币得到正面或反面的概率是1/2,我们可以把这种随机事件和[0,1]内的随机数建立联系。概率是长期平均值,于是抛很多次时出现次数的比例接近0.5。正面一[0,0.5],反面f(0.5,1]。设x为[0,1]内的随机数,f(x)定义如下:f正面,0<x<0.5/(x)=<[反面,0.5<x<1f(x)将结果是正面或反面赋值到[0,1]内的一个数,随机赋值时我们可利用这个函数的累积性质。抛很多次时能够得到如下出现的百分比:随机数区间出现的累积值出现的百分比x<000.000<x<00.5<x<1.010.505.2符号说明n:抛掷硬币的次数COUNTER:记录得到正面的次数的计数器COUNTER/n:随机抛掷一枚正规的硬币得到正面向上的概率,n的取值越大,得到的概率越接近理论值i:第i次抛掷硬币5.3抛掷正规硬币的蒙特卡罗算法输入 模拟中生成的随机抛掷硬币的总次数n..输出 抛掷硬币时得到正面的概率.第1步 初始化:COUNTER=0.第2步 对于i=1,2,…,n,执行3,4步.第3步 得到[0,1]内的随机数第4步若0<x.<0.5,则COUNTER=COUNTER+1.否则,COUNTER不变.第5步 计算P(正面)=COUNTER/n.第6步 输出正面的概率P(正面)停止5.4MATLAB执行代码见附码(注意:重复执行代码,若不更改初始值,则每次执行,正面出现的次数会改变,正面出现的概率也随次数改变而改变)5.5结果分析下表给出了对于不同的n由随机数七得到的结果:抛硬币次数正面出现的次数正面出现的百分比抛硬币次数正面出现的次数正面出现的百分比100470.471000049690.496950024104820100000499640.499610005040.504010000005000450.5000随着抛掷硬币次数n的增大,正面出现的概率也逐渐的接近0.5,即次数的一半。当实验次数达到百万级以上时,模拟的概率值与理论值的误差仅为土0.0001。6抛掷一个正规的骰子6.1过程分析一个骰子由点数{1,2,3,4,5,6}组成,抛掷一个正规的骰子,必须设计一种定义6个事件的方法。而每个数值出现的可能性相等,所以每个数值出现的概率是1/6。一个指定的数值出现的概率定义为:{1,2,3,4,5,6}中指定的数值出现的次 数试验的总数将区间[0,1]等分为6个子区间,随机生成一个[0,1]上的随机数,它等可能的属于在6个子区间的某个区间上,这样就可将随机抛掷骰子出现的某个点数用随机生成[0,1]上的随机数属于某个子区间来模拟。例如,随机生成的一个随机数属于[0,1/6],则认为随机抛掷一个正规的骰子出现的点数为1。6.2符号说明n:抛掷骰子的次数COUNTER:记录次数的计数器COUNTER①/n:随机抛掷一个正规骰子的概率,n的取值越大,得到的概率越接近理论值i:第i次抛掷骰子
j:骰子的点数6.3抛掷一个正规骰子的蒙特卡罗算法输入输出第1步第输入输出第1步第2步第3步掷出{1,2,3,4,5,6}的百分比或概率.将COUNTER1到COUNTER6初始化为0.对于i=1,2,…,n,执行第3,4步得到一个随机数,满足0<x<1.0<xi<6得到一个随机数,满足0<x<1.0<xi<612—<x<—6i623—<x<—6i634—<x<—6i645-<x<—6i65<x<116 1COUNTER1=COUNTER1+1COUNTER2=COUNTER2+1COUNTER3=COUNTER3+1COUNTER4=COUNTER4+1COUNTER5=COUNTER5+1COUNTER6=COUNTER6+1第5步第6步第5步第6步停止输出这些概率.6.4MATLAB执行代码见附码(注意:重复执行代码,若不更改初始值,则每次执行,概率也会改变)6.5结果分析下表给出了掷10、100、1000、10000和100000次正规骰子的结果,掷100000次时接近理论值1/6^0.1667骰子出现的次数10100100010000100000理论值10.10000.12000.17200.16330.16770.166720.20000.17000.16000.16210.16740.166730.20000.19000.16900.16150.16360.166740.10000.21000.17400.16910.16600.166750.30000.17000.15900.17580.16800.166760.10000.14000.16600.16820.16730.16677抛掷一个不正规的骰子7.1过程分析在抛掷一个正规的骰子的基础上考虑每个事件不是等可能出现的模型:抛掷一个不正规的骰子。假定给骰子的某几个面加重使结果发生偏移。将区间[0,1]分成6个不等长的子区间,子区间的长度代表骰子出现的某个值的概率。例如,随机生成的一个随机数属于[0.4,0.7],对应着随机抛掷一个不正规骰子出现的点数为4的概率是0.3。详细见下表:抛掷一个不正规骰子的概率分布和函数关系不正规骰子的概率分布 算法中采用的函数关系骰子出现的值出现的概率七的值赋值10.1[0.0,0.1]120.1(0.1,0.2]230.2(0.2,0.4]340.3(0.4,0.7]450.2(0.7,0.9]560.1(0.9,1.0]67.2符号说明n:抛掷骰子的次数COUNTER:记录次数的计数器COUNTER①/n:随机抛掷一个不正规骰子的概率i:第i次抛掷骰子j:骰子的点数7.3抛掷一个不正规骰子的蒙特卡罗算法输入 模拟中随机抛掷骰子的总数n.输出 掷出{1,2,3,4,5,6}的百分比或概率.第1步 将COUNTER1到COUNTER6初始化为0.第2步对于i=1,2,…,n,执行第3,4步第3步 得到一个随机数,满足0<罕1.第4步若x属于如下的区间,则相应的COUNTER+1.0<x<0>1COUNTER1=COUNTER1+10>1<x.<0.2COUNTER2=COUNTER2+10.2<x<0.4 COUNTER3=COUNTER3+10.4<x<0.7COUNTER4=COUNTER4+10.7<x<0.9COUNTER5=COUNTER5+10.9<x<1.0COUNTER6=COUNTER6+1第5步 计算掷出j={1,2,3,4,5,6}的概率为COUNTER(j)./n.第6步 输出这些概率.停止7.4MATLAB执行代码见附码(注意:重复执行代码,若不更改初始值,则每次执行,概率也会改变)7.5结果分析卜表给出了掷100、1000、5000、10000、40000和1000000次不正规骰子的结果骰子出现次数1001000500010000400001000000理论值10.06000.10600.10300.09810.09960.09950.120.10000.10500.09540.10350.09840.10020.130.19000.19200.19460.20600.19890.19980.240.35000.30600.29740.29700.29840.30020.350.23000.19400.20580.19590.20130.20050.260.07000.09700.10380.09950.10340.09990.1为使试验的结果接近理论值需要更多的试验次数。当n=1000000,即重复进行100万次蒙特卡罗模拟试验后,得到的点数1,2,3,4,5,6的概率依次为P=0.0995 0.1002 0.1998 0.3002 0.2005 0.09998小结蒙特卡罗方法与一般计算方法有很大区别,一般计算方法对于解决多维或因素复杂的问题非常困难,而蒙特卡罗方法对于解决这方面的问题却比较简单。其特点如下:椅直接追踪粒子,物理思路清晰,易于理解。椅采用随机抽样的方法,较真切的模拟粒子输运的过程,反映了统计涨落的规律。椅不受系统多维、多因素等复杂性的限制,是解决复杂系统粒子输运问题的好方法。MC程序结构清晰简单。椅研究人员采用MC方法编写程序来解决粒子输运问题,比较容易得到自己想得到的任意中间结果,应用灵活性强。椅MC方法主要弱点是收敛速度较慢和误差的概率性质,其概率误差正比于,如果单纯以增大抽样粒子个数N来减小误差,就要增加很大的计算量。蒙特卡罗算法已成为计算数学中不可缺少的组成部分,这主要是因为以下原因:椅传统的分析方法受到了问题复杂性的限制。椅MC方法直观,对实验者很有吸引力。椅计算机变得更快更便宜。椅量子理论的发展为我们提供了辐射与物质相互作用的截面数据。9参考文献叶其孝、姜启源,FrankR..Gioradano(美)等著,数学建模(原书第3版)[M],北京机械工业出版社,2005MBA智库百科•蒙特卡罗方法/wiki/%E8%92%99%E7%89%B9%E5%8D%A1%E7%BD%97%E6%A8%A1%E6%8B%9F百度文库•蒙特卡洛模拟法/view/4d5d6307cc175527072208a1.html[4]百度百科•蒙特卡罗模拟/view/284709.htm[5]新浪博客-Dwass(1957)蒙特卡罗模拟/s/blog_4b700c4c0100i28q.html10附码10.1抛掷一枚正规的硬币COUNTER=0;
n=100; %硬币抛掷次数,赋初始值,大小可调节x=rand(1,n); %产生了n个随机数fori=1:nifx(i)>=0&&x(i)<=0.5COUNTER=COUNTER+1;endendCOUNTER %正面出现的次数P=COUNTER./n %正面出现的概率10.2抛掷一个正规的骰子forj=1:6COUNTER(j)=0;end%骰子抛掷次数,赋初始值,大小可调节%骰子抛掷次数,赋初始值,大小可调节%产生了n个随机数x=rand(1,n);fori=1:nifx(i)>=0&&x(i)<=1/6COUNTER(1)=COUNTER(1)+1;COUNTER(2)=COUNTER(2)+1;COUNTER(3)=COUNTER(3)+1;COUNTER(2)=COUNTER(2)+1;COUNTER(3)=COUNTER(3)+1;COUNTER(4)=COUNTER(4)+1;COUNTER
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年合肥市某央企外包工作人员招聘8人笔试参考题库附带答案详解
- 2024-2025学年初中生物课后服务活动教学设计:生态系统的平衡与保护
- 第二章第三节第一课时 键的极性和分子的极性 教学设计 2023-2024学年高二下学期化学人教版(2019)选择性必修2
- 教师职业道德与学前教育政策法规 教案全套 王新庆 1. 教师职业道德概述 -16. 幼儿园安全事故处理与预防
- 《望海潮(东南形胜)》教学设计 2024-2025学年统编版高中语文选择性必修下册
- 2024年中考化学利用化学方程式的综合计算教学设计
- 2024中智西安经济技术合作有限公司西安咸阳国际机场股份有限公司劳务派遣招聘160人笔试参考题库附带答案详解
- Module6Unit2教学设计2024-2025学年外研版英语八年级上册
- 2024四川雅安城投规划设计有限公司招聘1名合同制员工考察事宜阅读模式笔试参考题库附带答案详解
- 幼儿保教知识与能力-教师资格考试《幼儿保教知识与能力》模考试卷4
- 14 文言文二则 学弈 教学设计-2024-2025学年语文六年级下册统编版
- 2025年度剧本杀剧本版权授权与收益分成合同
- 2025年春季学期学校工作计划及安排表
- 2025年一种板式过滤膜装置项目投资可行性研究分析报告
- 第一课+追求向上向善的道德【中职专用】中职思想政治《职业道德与法治》高效课堂(高教版2023·基础模块)
- 生猪屠宰兽医卫生检验人员理论考试题库及答案
- 2024初中数学课程标准测试题(含答案)精华版
- 2024年陕西延长石油集团矿业公司招聘笔试参考题库含答案解析
- 人教版新教材高一上学期期末考试数学试卷及答案(共五套)
- 1-6年级美术知识点
- 大洋洲斐济群岛的成矿地质背景_矿床类型及成矿期划分_徐鸣
评论
0/150
提交评论