Matlab笔记——蒙特卡罗方法018.docx

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Matlab笔记——蒙特卡罗方法018

18. 蒙特卡罗方法 (一)概述 一、原理 蒙特卡罗(Monte Carlo)方法,是一种基于“随机数”的计算机随机模拟方法,通过大量随机试验,利用概率统计理论解决问题的一种数值方法。其理论依据是:大数定律、中心极限定理(估计误差)。常用来解决如下问题: 求某个事件的概率,基于“频率的极限是概率”; 2. 可以描述为“随机变量的函数的数学期望”的问题,用随机变量若干个具体观察值的函数的算术平均值代替。一般形式为求积分: X为自变量(随机变量),定义域为[a,b], f(x)为被积函数,为概率密度函数。蒙特卡罗法步骤为: (1) 依据概率分布不断生成N个随机数x, 依次记为x1, …, xN, 并计算f(xi); (2) 用f(xi)的算术平均值近似估计上述积分 类比:“积分”同“求和”,“dx”同“1/N”,“”同“服从分布的随机数”; (3) 停止条件:至足够大的N停止;或者误差小于某值停止。 3. 利用随机数模拟各种分布的随机现象,进而解决实际问题。 二、优缺点 优点:能够比较逼真地描述具有随机性质的事物的特点及物理实验过程;受几何条件限制小;收敛速度与问题的维数无关;误差容易确定。 缺点:收敛速度慢;误差具有概率性;进行模拟的前提是各输入变量是相互独立的。 三、应用 随机模拟实验,随机最优化问题,含有大量不确定因素的复杂决策系统进行风险模拟分析(金融产品定价、期权)。 (二)用蒙特卡罗法求事件概率 一、著名的“三门问题” 源自博弈论的一个数学游戏:参赛者面前有三扇关闭的门,其中一扇门的后面藏有一辆汽车,而两扇门的后面各藏有一只山羊。参赛者从三扇门中随机选取一扇,若选中后面有车的那扇门就可以赢得该汽车。当参赛者选定了一扇门,但尚未开启它的时候,节目主持人会从剩下的两扇门中打开一扇藏有山羊的门,然后问参赛者要不要更换自己的选择,选取另一扇仍然关着的门。 该问题涉及到的问题是:参赛者更换自己的选择是否会增加赢得汽车的概率? 解:这是全概率问题。记结果事件B=“赢得汽车”,造成结果的原因事件有两个: A1=“第一次选到汽车”,A2=“第一次选到山羊” 则P(A1)=1/3, P(A2)=2/3; P(B|A1)=0, P(B|A2)=1. 利用全概率公式, P(B)=P(A1)×P(B|A1)+P(A2)×P(B|A2)=2/3 而参赛者不更换选择,抽中汽车的概率为1/3. 可见,参赛者更换选择可以增加一倍的获奖几率。下面用蒙特卡罗方法来模拟验证上面的理论结果: 将问题“随机数”化,对羊编号为1,2;对汽车编号为3. 先从1,2,3中随机选取一个数,若开始选中1或2,则更换选择后选中3, 即赢得汽车;若开始选中3, 则更换选择后选中1或2,即得不到汽车。 这样的试验重复n次,记录开始选中1或2的次数m(即更换选择后赢得汽车的次数),从而可以确定更换选择后赢得汽车的频率m/n . 由伯努利大数定律,当试验次数n增大时,频率m/n将趋于更换选择后赢得汽车的概率。 代码:先编写SheepAndCar.m函数 function p=SheepAndCar(n) % n可以是正整数,也可以是正整数的向量 for i=1:length(n) x=randsample(3,n(i),true); % 从1,2,3中随机抽取n(i)个数, true表示可以重复 p(i)=sum(x~=3)/n(i); end 再执行代码:(分别模拟10次、100次、……、1000000次) p=SheepAndCar([10,100,1000,10000,100000,1000000]) 运行结果: p = 0.6000 0.7200 0.6910 0.6641 0.6671 0.6666 二、用蒲丰投针法求圆周率π 【蒲丰投针问题】:平面上画有间隔为d的等距平行线,向平面内任意投掷一枚长为h(hd)的针,求针与任一平行线相交的概率。 用Y表示针的中点与最近一条线的距离,用X表示针与此直线间的夹角,则(X, Y)为二维随机变量,其样本空间为平面上的矩形区域: 由于是任意投掷,(X, Y)在Ω上服从均匀分布。 记事件A=“针与平行线相交”,则A所对应的区域为 由几何概率知,事件A的概率为 若h, d已知,代入上式就可求出P(A). 反过来,由P(A)的值也可以求. P(A)可以通过蒙特卡罗方法随机模拟获得:在区域Ω随机均匀投点,落在区域A中的点的频率fA,随着投点次数的增大,就趋于概率P(A). 从而 代码:先编写BuffonMonteCarlo.m函数 function [p0,pm,piv] = BuffonMonteCarlo(d,h,N) %返回p0为理论概率,pm为基于蒙特卡罗法的模拟概率,piv为pi的模拟值.

文档评论(0)

ddf55855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档