图2 假设我们向
中进行随机投点.若点落在下方(即
)称为中的,否则称不中.则点中的概率为
我们进行
次投点,其中
,若
次中的.则可以得到的一个估计该方法的具
体计算步骤为: ① 独立地产生2个 ② 计算 ③ 统计
随机数, 的个数
;
,
,i=1,…,n; ,和
;
④ 用(3)估计.
例1:1777年,法国学者Buffon提出用试验方法求圆周率理如下:
假设平面上有无数条距离为1的等距平行线,现向该平面随机地投掷一根长度为
的针.则我们可以计算该针与任一平行线相交的概率.
的值.原
此处随机投针可以这样理解:针中心与最近的平行线间的距离x均匀地分布在区间
上,针与平行线间的夹角(不管相交与否)均匀地分布
5
在区间上(如图1).于是,针与线相交的充要条件是,从
而针线相交概率为:
图1
而由大数定律可以估计出针线相交的概率,其中为掷针次
数,为针线相交次数,从而圆周率.其mathematical实现语句
见附录1.
2.2 样本平均值法 对积分
,设
是
上的一个密度函数,改写
由矩法,若有个来自便是样本平均值法的基本原理.
(4)
的观测值,则可给出的一个矩估计,这
若,有限,可取
6
.设是来自的随机
数,则的一个估计为
该方法的具体计算步骤为: ① 独立地产生个 ② 计算
③用(5)估计.
随机数和
(5)
; ,
;
后面将给出一个例子说明此方法的应用. 3 Monte Carlo方法在计算多重积分中的应用
方法一: 其中有:
空间长方体V:
为S维单位立方体,
(重积分)(7) ,在
上维
.很明显.此时积分(5)可以看作为求
的体积.即:
(8)
对于这种较为一般形式的多重积分计算问题,采用的还是随机投点. 具体步骤如下: 首先产生向量 论.检验
个随机数
(i=1,2,…,
)及,构造
维随机
,然后检验是否落后在V中,同理可以推是否成立,如果在构成的
7
个随机向量中,
有个随机向量落于V中,那么取作为积分的近似值,即,
如果积分区域及被积函数不满足上述条件,那么可以通过变换便可达到所希望的条件.
方法二: 其中积分区域
包含在
.
设函数
,
的随机质点的个数,是在
在是在
维多面体中,此多面体决定于
个不等式
内连续且满足条件:维多面体
中均匀分布维区域V为底以
个随机点之中落入以
为顶之曲顶柱体内的随机点的个数. 这里
表示由不等式面体.则
和
决定的
维多
重积分的Monte Carlo近似计算公式为:
=
,
(9)
,
例2:在三维空间中,由三个圆柱面:
围成一个立体,利用Monte Carlo方法求它的体积。
分析:据题意,所求体积
,其中
,
8
{,且,
,
记
}.
,
,
},考虑在空间
内
随机的产生个点,落在空间内有个,则.在
Mathematical中模拟程序见附录2. 4 在古典概率问题中的应用
下面的例子说明了Monte Carlo方法在古典概率中的应用. 例3:甲乙两位棋手棋艺相当,现他们在一项奖金为1000元的比赛中相遇,比赛为五局三胜制,已经进行了三局的比赛,结果为甲三胜一负,现因故要停止比赛,问应该如何分配这1000元比赛奖金才算公平? 分析:平均分对甲欠公平,全归甲则对乙欠公平.合理的分法是按一定的比例分配.
现在我们用计算机模拟两位棋手后面的比赛,是否就可以知道奖金分配方案.由于两位棋手的棋艺相当,可以假定他们在以下每局的比赛胜负的机会各半.Mathematical中函数产生随机数0或1,0与1出现的机会各占一半,可以用随机数1表示甲棋手胜,而随机数0表示乙胜.(也可以用
中的随机实数来模拟两人的胜负,随机数大于0.5表示甲胜,否则
乙胜)连续模拟1000次(或更多次数)每次模拟到甲乙两方乙有一方胜了三局为止.按所说方案分配奖金,1000次模拟结束后,计算两棋手每次的平均奖金,就是该棋手应得的奖金.
模拟结果:甲:750,乙:250(程序见附录1)
最终以甲分到;乙分到.即甲750元,乙250元.
实际上,因为比赛只需进行两局.则可分出胜负.结果无非是以下四种
9