文档介绍:蒙特卡罗(Monte carlo)方法
【实验目的】
z 了解 Monte carlo 随机摸拟方法的具体应用
z 学习使用 MATLAB 软件中有关随机数生成函数
【实验准备与内容】
carlo 方法
蒙特卡罗(Monte Carlo)方法,又称计算机随机模拟方法,是一种基于"随机数"的计算方法。这
一方法源于美国在第二次世界大战研制原子弹的"曼哈顿计划"。该计划的主持人之一数学家冯诺伊
曼用驰名世界的赌城-摩纳哥的 Monte Carlo 来命名这种方法。
Monte Carlo 方法的基本思想很早以前就被人们所发现和利用。早在 17 世纪,人们就知道用事
件发生的"频率"来决定事件的"概率"。1777 年,蒲丰(Buffon)提出著名的 Buffon 投针试验永来近
似计算圆周率π。本世纪 40 年代电子计算机的出现,特别是近年来高速电子计算机的出现,使得人
们在计算机上利用数学方法大量、快速地模拟这样的试验成为可能。目前这一方法已经广泛地运用
到数学、物理、管理、生物遗传、社会科学等领域,并显示出特殊的优越性。
实际应用中的随机数通常都是某些数学公式计算而产生的伪随机数,这样的伪随机数从数学意
义上讲不是严格的随机数,但是,只要伪随机数能够通过随机数的一系列统计检验,我们就可以将
它当作真随机数而放心使用。这样我们就可以方便、经济、重复地产生随机数。理论上要求伪随机
数产生器具备以下特征:良好的统计分布特性,高效率的伪随机数产生,伪随机数产生的循环周期
长,伪随机数可以重复产生等。到目前为止,已经提出了各种分布的伪随机数产生方法,在这里,
我们不准备从数学上介绍随机数的产生原理,而只给出伪随机数的 MATLAB 产生函数。
z 生成各类分布的随机数统一生成函数
random('name',A1,A2,A3,m,n)——生成以 A1,A2,A3 为参数分布为 name 的× nm 阶随机数矩阵,
其中,‘name’为包含特定分布名称的字符串(如表*.*),A1,A2,A3 是分布参数矩阵,根据分布不同,
各参数的含义也不相同,且其中一些参数也不是必须的。
z 针对不同分布的随机数产生函数
MATLAB 还提供了不同分布的随机数产生函数,这些函数的具体使用格式及参数含义较 random
函数更明确(如表*.*)。
表*.*
特定分布
分布名随机数
字符串函数格式
称产生函数
‘name’
'beta‘β分布 Betarnd Betarnd(A,B,m,n)
二项分
'bino‘ Binornd Binornd(N,P,m,n)
布
'chi2' χ 2 分布 chi2rnd chi2rnd(V,m,n)
'exp‘指数分 Exprnd Exprnd(MU,m,n)
布
'f' F 分布 frnd Frnd(V1,V2,m,n)
'gam' γ分布 Gamrnd Gamrnd(A,B,m,n)
几何分
'geo' Geornd Geornd(P,m,n)
布
超几何
'hyge' Hygernd Hygernd(M,K,N,mm,nn)
分布
对数正
'logn' Lognrnd Lognrnd(Mu,Sigma,m,n)
态分布
负二项
'nbin' Nbinrnd Nbinrnd((R,P,m,n)
分布
非中心 F
'ncf‘ Ncfrnd Ncfrnd(Nu1,Nu2,Delta,m,n)
分布
非中心 t
'nct‘ Nctrnd Nctrnd(V,Delta,m,n)
分布
非中心
'ncx2' ncx2rnd ncx2rnd(V,Delta,m,n)
χ 2 分布
正态分
'norm' Normrnd Normrnd(Mu,Sigma,m,n)
布
泊松分
'poiss' Poissrnd Poissrnd(Lambda,m,n)
布
Rayleigh
'rayl' raylrnd Raylrnd(B,m,n)
分布
't' t 分布 Trnd Trnd(V,m,n)
连续均
'unif' unifrnd Unifrnd(A,B,m,n)
匀分布
离散均
'unid' Unidrnd Unidrnd(N,m,n)
匀分布
Weibull
'weib‘ weibrnd Weibrnd(A,B,m,n)
分布
为了说明函数的使用方法,我们举两个例子。
例:用 random