- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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)