一随机模拟蒙特卡罗算法
蒙特卡罗算法

Monte Carlo方法概述一、Monte Carlo历史渊源Monte Carlo方法的实质是通过大量随机试验,利用概率论解决问题的一种数值方法,基本思想是基于概率和体积间的相似性。
它和Simulation有细微区别。
单独的Simulation只是模拟一些随机的运动,其结果是不确定的;Monte Carlo在计算的中间过程中出现的数是随机的,但是它要解决的问题的结果却是确定的。
历史上有记载的Monte Carlo试验始于十八世纪末期(约1777年),当时布丰(Buffon)为了计算圆周率,设计了一个“投针试验”。
(后文会给出一个更加简单的计算圆周率的例子)。
虽然方法已经存在了200多年,此方法命名为Monte Carlo则是在二十世纪四十年,美国原子弹计划的一个子项目需要使用Monte Carlo方法模拟中子对某种特殊材料的穿透作用。
出于保密缘故,每个项目都要一个代号,传闻命名代号时,项目负责人之一von Neumann 灵犀一点选择摩洛哥著名赌城蒙特卡洛作为该项目名称,自此这种方法也就被命名为Monte Carlo方法广为流传。
十一、Monte Carlo方法适用用途(一)数值积分计算一个定积分,如,如果我们能够得到f(x)的原函数F(x),那么直接由表达式: F(x1)-F(x0)可以得到该定积分的值。
但是,很多情况下,由于f(x)太复杂,我们无法计算得到原函数F(x)的显示解,这时我们就只能用数值积分的办法。
如下是一个简单的数值积分的例子。
数值积分简单示例如图,数值积分的基本原理是在自变量x的区间上取多个离散的点,用单个点的值来代替该小段上函数f(x)值。
常规的数值积分方法是在分段之后,将所有的柱子(粉红色方块)的面积全部加起来,用这个面积来近似函数f(x)(蓝色曲线)与x轴围成的面积。
这样做当然是不精确的,但是随着分段数量增加,误差将减小,近似面积将逐渐逼近真实的面积。
Monte Carlo数值积分方法和上述类似。
蒙特卡洛模型方法

蒙特卡罗方法(Monte Carlo method)蒙特卡罗方法概述蒙特卡罗方法又称统计模拟法、随机抽样技术,是一种随机模拟方法,以概率和统计理论方法为基础的一种计算方法,是使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。
将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解。
为象征性地表明这一方法的概率统计特征,故借用赌城蒙特卡罗命名。
蒙特卡罗方法的提出蒙特卡罗方法于20世纪40年代美国在第二次世界大战中研制原子弹的“曼哈顿计划”计划的成员S.M.乌拉姆和J.冯·诺伊曼首先提出。
数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。
在这之前,蒙特卡罗方法就已经存在。
1777年,法国Buffon提出用投针实验的方法求圆周率∏。
这被认为是蒙特卡罗方法的起源。
蒙特卡罗方法的基本思想Monte Carlo方法的基本思想很早以前就被人们所发现和利用。
早在17世纪,人们就知道用事件发生的“频率”来决定事件的“概率”。
19世纪人们用投针试验的方法来决定圆周率π。
本世纪40年代电子计算机的出现,特别是近年来高速电子计算机的出现,使得用数学方法在计算机上大量、快速地模拟这样的试验成为可能。
考虑平面上的一个边长为1的正方形及其内部的一个形状不规则的“图形”,如何求出这个“图形”的面积呢?Monte Carlo方法是这样一种“随机化”的方法:向该正方形“随机地”投掷N个点,有M个点落于“图形”内,则该“图形”的面积近似为M/N。
可用民意测验来作一个不严格的比喻。
民意测验的人不是征询每一个登记选民的意见,而是通过对选民进行小规模的抽样调查来确定可能的优胜者。
其基本思想是一样的。
科技计算中的问题比这要复杂得多。
比如金融衍生产品(期权、期货、掉期等)的定价及交易风险估算,问题的维数(即变量的个数)可能高达数百甚至数千。
蒙特卡罗树搜索算法的应用

蒙特卡罗树搜索算法的应用随着人工智能技术的快速发展,各种算法也不断涌现。
其中蒙特卡罗树搜索算法就是一种非常实用的算法。
这种算法被广泛应用于棋类游戏、自动驾驶、机器人等方面。
本文将介绍蒙特卡罗树搜索算法的基本原理、应用及优势。
一、蒙特卡罗树搜索算法的基本原理蒙特卡罗树搜索算法是一种通过模拟随机事件来得到问题解决方案的方法。
它通常用于求解那些难以找到确定性答案的问题。
蒙特卡罗树搜索算法的基本过程分为以下四个步骤:1. 随机模拟:随机模拟是蒙特卡罗树搜索算法的核心步骤。
它的基本思想是通过随机模拟事件的结果来估计事件的概率。
例如,在围棋游戏中,随机模拟就是让计算机随机下棋,模拟完成后统计获胜次数以及最终的胜率等信息。
2. 构建搜索树:在随机模拟之前,需要首先构建搜索树。
搜索树包括树根节点,各种可能的棋子位置以及对应的胜率节点。
3. 执行单步搜索:执行单步搜索一般通过选择搜索树中的节点,来确定下一步应该执行哪个行动。
4. 更新搜索树:一旦完成了单步搜索,就需要更新搜索树,以反映新的胜率信息。
基于以上四个步骤,蒙特卡罗树搜索算法可以根据当前的搜索树结构,以及之前经验的胜率信息来评估不同行动的优劣,从而获得较优的策略。
二、作为一种优秀的算法,蒙特卡罗树搜索算法在各个领域被广泛应用。
下面我们分别介绍其在围棋、自动驾驶以及机器人领域的应用。
1. 围棋领域围棋是一种棋类游戏,与其他的棋类游戏不同,它的搜索空间非常大。
由于搜索空间的复杂性,围棋一直以来被认为是人工智能领域中最具挑战性的问题之一。
而蒙特卡罗树搜索算法就是在这种背景下应运而生的。
随着AlphaGo 等围棋人工智能的问世,蒙特卡罗树搜索算法在围棋领域的应用也取得了巨大的成功。
2. 自动驾驶领域随着人工智能技术的不断发展,自动驾驶已经成为一个备受关注的领域。
在自动驾驶领域,蒙特卡罗树搜索算法被广泛应用于路径规划以及交通流优化等方面。
例如,在一个高速公路上,蒙特卡罗树搜索算法可以模拟车辆的转向、加速以及制动等行为,并且计算出最优的路线,从而提高车辆的安全性以及驾驶效率。
蒙特卡罗模拟PPT课件

问题:试验次数 n 多大时,对给定的置信度 1-α(0<α<1),估计精度达到ε.
即问:取多大的n 使
P pˆ
p
P
kn n
p
1
成立?
答案:
n
p(1 2
p) z2
其中, zα是正态分布的临界值.
证明
频率法是事件A出现的频率作为概率p的估计
pˆ kn n
n次独立试验中A出现的次数kn~B(n, p).由中 心极限定理知
相当于第i 个随机点落 在1/4圆内.
若有k 个点落在l/4圆内
随机事件“点落入1/4圆内”的 频率为 k/n 根据概率论中的大数定律, 事件发生的频率
依概率收敛于事件发生的概率p,即有
lim
n
P{
k n
p
}
1
得圆周率π的估计值为
ˆ 4k n
且当试验次数足够大时, 其精度也随之提高.
分析:实际上概率值为
01
1 x2dx 4
恰为1/4圆 的面积
频率法: 利用随机变量落进指定区域内的频 率来计算定积分.
平均值法: 利用随机变量的平均值(数学期望) 来计算定积分.
I ab f ( x)dx
平均值法的算法如下:
(1)产生RND 随机数:r1,r2,…,rn;
(2)令 ui=a+(b-a)ri,i=1,2,…,n;
要增大100倍.
P197表8.2中列出了置信度为0.95 时, 在不同
举例说明蒙特卡洛算法的解题步骤

举例说明蒙特卡洛算法的解题步骤一、简介蒙特卡洛算法是一种基于随机抽样的算法,通常用于解决一些涉及概率和统计的问题。
这种算法通过模拟随机过程,利用统计方法来求解问题,具有很高的计算效率和准确性。
二、解题步骤1.确定问题:首先,我们需要明确要解决的问题是什么。
根据问题的性质,我们可以初步判断是否适合使用蒙特卡洛算法。
2.定义随机变量:在蒙特卡洛算法中,我们需要一个或多个随机变量来模拟问题的实际情况。
这些随机变量通常与要解决的问题有关,并且可以通过随机抽样得到。
3.模拟随机过程:利用随机数生成器,对随机变量进行多次抽样,模拟问题的随机过程。
每次抽样后,我们可以根据实际情况得到一个结果。
4.统计处理:对模拟过程中得到的结果进行统计处理,通常采用平均值、中位数、方差等统计指标来评估算法的精度和效率。
5.优化和调整:根据统计结果,我们可以对算法进行优化和调整。
例如,增加抽样的次数、改进随机数生成器的性能等,以提高算法的精度和效率。
6.输出结果:最后,根据优化后的算法,我们可以得到问题的近似解。
通常,蒙特卡洛算法可以得到一个统计意义上的近似解,而不是精确解。
下面以一个简单的例子来说明上述步骤的应用:问题:在一个有100个球的盒子里,随机抽取5个球,求抽到红色球的概率为多少?解题步骤:1.确定问题:我们要通过蒙特卡洛算法估算抽到红色球的概率。
2.定义随机变量:我们将红色球的概率表示为随机变量P(红色球)。
3.模拟随机过程:我们可以通过随机抽样模拟抽取5个球的过程。
假设每次抽样得到的球是随机的,没有特定的顺序。
我们抽取5个球后,记录其中红色球的个数。
4.统计处理:我们重复这个过程多次(例如,1000次或10000次),并记录抽到红色球的总次数和总抽样次数。
根据这些数据,我们可以估算抽到红色球的平均概率。
5.优化和调整:我们发现,增加抽样的次数可以提高估计的精度。
因此,我们可以重复这个过程多次,每次增加抽样的数量,以得到更准确的估计值。
蒙特卡洛试验检验算法

蒙特卡洛试验检验算法蒙特卡洛试验是一种基于随机抽样的数值计算方法,广泛应用于科学研究、金融风险评估、工程设计等领域。
本文将介绍蒙特卡洛试验的原理、应用和优缺点。
一、蒙特卡洛试验的原理蒙特卡洛试验原理基于概率统计的思想,通过随机抽样和统计分析的方法,对未知或复杂问题进行数值计算和模拟。
其基本步骤如下:1. 定义问题:明确问题的数学模型和待求解的目标。
2. 设定参数:确定问题中的各个参数和变量,并为它们设定合适的取值范围。
3. 随机抽样:根据设定的参数范围,利用随机数发生器生成一组符合概率分布的随机数。
4. 计算模拟:使用生成的随机数代入数学模型,进行数值计算和模拟,得出结果。
5. 统计分析:对多次试验的结果进行统计分析,得出问题的近似解或概率分布。
二、蒙特卡洛试验的应用蒙特卡洛试验在各个领域有着广泛的应用,以下是几个典型的应用案例:1. 金融风险评估:蒙特卡洛试验可以用于评估金融市场中的风险。
通过随机模拟资产价格的变动情况,可以计算出投资组合的价值在不同市场情况下的分布,进而评估投资组合的风险水平。
2. 工程设计:在工程设计中,蒙特卡洛试验可以用于评估设计方案的可靠性。
通过模拟不同参数的随机变化,可以分析设计方案在不同情况下的性能表现,并评估其可靠性和安全性。
3. 科学研究:蒙特卡洛试验在科学研究中常用于模拟实验。
例如,在天体物理学中,可以使用蒙特卡洛试验模拟宇宙的演化过程;在生物医学领域,可以使用蒙特卡洛试验模拟药物的作用机制。
4. 优化问题:蒙特卡洛试验也可以用于解决优化问题。
通过多次随机抽样和计算模拟,可以搜索解空间中的最优解或接近最优解的解。
三、蒙特卡洛试验的优缺点蒙特卡洛试验作为一种数值计算方法,具有以下优点:1. 灵活性:蒙特卡洛试验适用于多种复杂问题,不受问题形式和参数分布的限制。
2. 可靠性:通过增加试验次数,可以提高结果的准确性和可靠性。
3. 直观性:蒙特卡洛试验的结果通常以概率分布的形式呈现,直观易懂。
蒙特卡罗算法
蒙特卡罗算法步骤:(1)构造或描述概率过程:对于本身就具有随机性质的问题,主要是正确描述和模拟这个概率过程,对于本来不是随机性质的确定性问题,要将不具有随机性质的问题转化为随机性质的问题。
(2)实现从已知概率分布抽样:构造了概率模型以后,由于各种概率模型都可以看作是由各种各样的概率分布构成的,因此产生已知概率分布的随机变量(或随机向量)。
最简单、最基本、最重要的一个概率分布是(0,1)上的均匀分布(或称矩形分布)。
随机数就是具有这种均匀分布的随机变量。
随机数序列就是具有这种分布的总体的一个简单子样,也就是一个具有这种分布的相互独立的随机变数序列。
产生随机数的问题,就是从这个分布的抽样问题。
在计算机上,可以用物理方法产生随机数,但价格昂贵,不能重复,使用不便。
另一种方法是用数学递推公式产生。
这样产生的序列,与真正的随机数序列不同,所以称为伪随机数,或伪随机数序列。
不过,经过多种统计检验表明,它与真正的随机数,或随机数序列具有相近的性质,因此可把它作为真正的随机数来使用。
由已知分布随机抽样有各种方法,与从(0,1)上均匀分布抽样不同,这些方法都是借助于随机序列来实现的,也就是说,都是以产生随机数为前提的。
由此可见,随机数是我们实现蒙特卡罗模拟的基本工具。
建立各种估计量:一般说来,构造了概率模型并能从中抽样后,即实现模拟实验后,我们就要确定一个随机变量,作为所要求的问题的解,我们称它为无偏估计。
(3)建立各种估计量,相当于对模拟实验的结果进行考察和登记,从中得到问题的解。
特点:(1)采用随机抽样的方法,较真切的模拟粒子输运的过程,反映了统计涨落的规律。
(2)不受系统多维、多因素等复杂性的限制,是解决复杂系统粒子输运问题的好方法。
应用:在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。
蒙特卡洛算法范文
蒙特卡洛算法范文蒙特卡洛算法(Monte Carlo Algorithm)是一种以概率统计方法为基础的计算方法,由于其随机性和模拟的特点,广泛应用于数值计算、风险评估、优化问题等领域。
本文将从原理、应用以及优缺点三个方面来详细介绍蒙特卡洛算法。
蒙特卡洛算法的原理基于统计学中的大数定律,即在大量的独立事件中,事件的频率收敛到事件的概率。
它通过随机抽样的方法,对问题进行模拟,通过多次重复实验得到的近似概率分布来估计相关的数值。
蒙特卡洛算法适用于无法通过解析方法求解的问题,可以通过模拟来近似计算。
蒙特卡洛算法的应用非常广泛,可以用于求解各种数学问题,例如求解积分、求解方程、求解微分方程等,在金融领域中,也广泛应用于期权定价、风险评估、投资组合优化等问题中。
此外,蒙特卡洛算法还可以用于计算机图形学中的光线追踪和物理仿真中的粒子模拟等。
蒙特卡洛算法的优点主要有以下几个方面。
首先,它适用于各种不规则、复杂的问题,无论问题是否可微分都可以使用蒙特卡洛算法求解。
其次,蒙特卡洛算法的结果是近似值,可以通过增加模拟次数来提高结果的精确性。
另外,蒙特卡洛算法可以并行计算,在处理大规模问题时具有一定的优势。
此外,蒙特卡洛算法相对简单直观,易于理解和实现。
然而,蒙特卡洛算法也存在一些缺点。
首先,由于是随机采样的方法,需要大量的随机抽样来达到较高的精度,因此计算成本较高。
其次,在采样过程中,数据的方差较大,可能会导致结果的不稳定性。
此外,蒙特卡洛算法对问题的维数敏感,高维问题需要更多的样本才能获得准确结果。
最后,蒙特卡洛算法依赖于概率分布的可生成性和采样的独立性,对于一些问题可能并不适用。
综上所述,蒙特卡洛算法作为一种基于概率统计的计算方法,具有广泛的应用场景和很多优点,但也存在一定的局限性。
在实际应用中,我们需要根据具体问题的性质和需求,合理选择蒙特卡洛算法的应用方式,并结合其他方法进行综合分析和求解,以达到更好的结果。
蒙特卡洛算法
蒙特卡洛算法主要用在求解最优化模型(多约束非线性规划问题)上,图像采样的问题,是以一系列随机数来模拟过程,解决问题的算法,但是求解时间很长。
以概率和统计理论方法为基础的一种计算方法。
将所求解的问题同一定的概率模型相联系,用计算机实现统计模拟或抽样,以获得问题的近似解。
步骤:Step1,根据提出的问题构造一个简单、适用的概率模型或随机模型,使问题的解对应于该模型中随机变量的某些特征(如概率、均值和方差等),所构造的模型在主要特征参量方面要与实际问题或系统相一致。
比如在多约束非线性规划问题问题中,采用的是unifrnd函数。
Step2,根据模型中各个随机变量的分布,在计算机上产生随机数,实现一次模拟过程所需的足够数量的随机数。
通常先产生均匀分布的随机数,然后生成服从某一分布的随机数,进行随机模拟试验。
Step3,根据概率模型的特点和随机变量的分布特性,设计和选取合适的抽样方法,并对每个随机变量进行抽样(包括直接抽样、分层抽样、相关抽样、重要抽样等)。
比如在多约束非线性规划问题问题中,采用的是循环随机抽样。
Step4,按照所建立的模型进行仿真试验、计算,求出问题的随机解。
Step5,统计分析模拟试验结果,给出问题的概率解以及解的精度估计。
(其精度检验需要手工来操作,因为涉及查表,但是需要在matlab 里面加入计算概率的语句。
)代码:《Matlab 在数学建模中运用》Test1.m 文件实现的是122/x x y ;例题:随机数生成方式:更为详细的在:/link?url=CF2pgipej6-j1p8V8IfxM_XDs2g RSsNBjUxgztOmfPP4d89txs0M06Yy__O48tTfY549WGn26_cW8o5jLuHdal O42KgjERnD8ZalfowTnWO/link?url=N5b5_BfgHTlzlA5OeFooJsyMJPZ PBgFddYfTo4X59iSy0JAgDw2riIHiivkxLmzsQS9BkxAxU9j4ABlGDQtcpEAgxPT6wYaX1Wc_2ytvJnaRand(n),,rand(n,m)Matlabbetarnd贝塔分布的随机数生成器binornd二项分布的随机数生成器chi2rnd卡方分布的随机数生成器exprnd指数分布的随机数生成器frndf分布的随机数生成器gamrnd伽玛分布的随机数生成器geornd几何分布的随机数生成器hygernd超几何分布的随机数生成器lognrnd对数正态分布的随机数生成器nbinrnd负二项分布的随机数生成器ncfrnd非中心f分布的随机数生成器nctrnd非中心t分布的随机数生成器ncx2rnd非中心卡方分布的随机数生成器normrnd正态(高斯)分布的随机数生成器poissrnd泊松分布的随机数生成器raylrnd瑞利分布的随机数生成器trnd学生氏t分布的随机数生成器unidrnd离散均匀分布的随机数生成器unifrnd连续均匀分布的随机数生成器weibrnd威布尔分布的随机数生成器Matlab自己产生的随机数:normrnd 可以生成一定均值和标准差的正态分布gamrnd 可以生成gamma分布的伪随机数矩阵chi2rnd 可以生成卡方分布的伪随机数矩阵trnd 可以生成t分布的伪随机数矩阵frnd 可以生成f分布的伪随机数矩阵raylrnd 可以生成rayleigh分布的伪随机数矩阵。
蒙特卡罗模拟方法
一个简单的例子(续)
上面的例子中,第一个随机数生成器的周期 长度是 10,而后两个生成器的周期长度只有 它的一半。我们自然希望生成器的周期越长 越好,这样我们得到的分布就更接近于真实 的均匀分布。
在给定 m 的情况下,生成器的周期与 a 和 初值 x0 (种子)选择有关。
11
线性同余生成器 (Linear Congruential Generator )
16
由rand()函数生成的U[0,1]随机数
17
由rand函数生成的2维随机点
18
从U(0,1)到其它概率分布的随机数
U(0,1)的均匀分布的随机数,是生成其他概率 分布随机数的基础,下面我们主要介绍两种将 U(0,1)随机数转换为其他分布的随机数的方法。
1.逆变换方法 (Inverse Transform Method)
12
常用的线性同余生成器
Modulus m 2^31-1
=2147483647
2147483399 2147483563
Multiplier a 16807
39373 742938285 950706376 1226874159
40692 40014
Reference Lewis, Goodman, and Miller L’Ecuyer Fishman and Moore Fishman and Moore Fishman and Moore L’Ecuyer L’Ecuyer
X ~ U[0,1] (均匀分布)。于是可以将上式积分看
作是f(X)的数学期望.若{Uk,1 k n}为 ~U[0,1].
则可以取n
1 n
n i 1
f (Ui )作为的估计,
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一 随机模拟(蒙特卡罗算法)
一 随机模拟法
随机模拟法也叫蒙特卡罗法,它是用计算机模拟随机现象,通过大量仿真试
验,进行分析推断,特别是对于一些复杂的随机变量,不能从数学上得到它的概
率分布,而通过简单的随机模拟就可以得到近似的解答。M onte Carlo 法也用
于求解一些非随机问题,如重积分、非线性方程组求解、最优化问题等。需要指
出的是,Monte Carlo计算量大,精度也不高,因而主要用于求那些解析方法或
常规数学方法难解问题的低精度解,或用于对其他算法的验证。
蒙特卡罗方法的基本思想是:当所求解问题是某种随机事件出现的概率,或
者是某个随机变量的期望值时,通过某种“实验”的方法,以这种事件出现的频率
估计这一随机事件的概率,或者得到这个随机变量的某些数字特征,并将其作为
问题的解。
在解决实际问题的时候应用蒙特·卡罗方法主要有两部分工作:
用蒙特卡罗方法模拟某一过程时,需要产生各种概率分布的随机变量。
用统计方法把模型的数字特征估计出来,从而得到实际问题的数值解。
使用蒙特卡罗方法进行分子模拟计算是按照以下步骤进行的:
使用随机数发生器产生一个随机的分子构型。
对此分子构型的其中粒子坐标做无规则的改变,产生一个新的分子构型。
计算新的分子构型的能量。
比较新的分子构型于改变前的分子构型的能量变化,判断是否接受该构型。
若新的分子构型能量低于原分子构型的能量,则接受新的构型。
若新的分子构型能量高于原分子构型的能量,则计算玻尔茲曼常数,同时产生一
个随机数。
若这个随机数大于所计算出的玻尔兹曼因子,则放弃这个构型,重新计算。
若这个随机数小于所计算出的玻尔兹曼因子,则接受这个构型,使用这个构型重
复再做下一次迭代。
如此进行迭代计算,直至最后搜索出低于所给能量条件的分子构型结束。
二 随机模拟法应用实例
考虑二重积分(,)AIfxydxdy,其中(,)0,(,)fxyxyA
根据几何意义,它是以(,)fxy为曲面顶点,A为底的柱体C的体积。用下列
简单思路求I的近似值:假设C被包在几何体D的内部,D的体积为已知,若杂
D内产生1个均匀分别的随机数,那么
P(随机数落在C内)C的体积/D的体积
现产生在D内N个均匀分别的随机数,若其中cN在C的内部,那么
I D的体积/cNN,
从而求得I的解。试用这一方法计算积分
22
2
11xyIxdxdy
显然该几何体在立方体|x|1,||1,01yz的内部,立方体体积为4。而C
是22221,1,0xyxzz。M文件eg8_1.m中N取1000,计算得I2.624。N
越大结果越精确。由于随机模拟的特点,,每次运行的结果都有差异。
M脚本eg8_1.m
Clear;N=1000;
X=unifrnd(-1,1,,N,1);y=unifrnd(-1,1,N,1);z=rand(N,1);
Cl=(x.^2+y.^2)<1;c2=(x.^2+y.^2)<1;
Nc=sum(c1&c2);I=Nc/N*4
三 蒙特卡罗法优缺点分析
蒙特卡罗模拟是一种有效的统计实验计算法.它无需了解计算值的分布,可以人为
地造出一种概率模型,使它的某些参数恰好重合于所需计算的量;又可以通过实验,
用统计方法求出这些参数的估值:把这些估值作为要求的量的近似值.在项目管理
中,常常用到的随机变量,如与成本和进度有关的变量如价格,用时等,由于实际工
作中可以获得的数据量有限,它们往往是以离散型变量的形式出现的.例如,对于
某种成本只知道最低价格,最高价格和最可能价格;对于某项活动的用时往往只知
道最少用时,最多用时和最可能用时三个数据.经验告诉我们,项目管理中的这些
变量服从某些概率模型.蒙特卡罗技术则提供了把这些离散型的随机分布转换为
预期的连续型分布的可能,通过将这些随机变量变成某种规律的分布,来把握项目
的风险和不确定因素但无论是理论上还是在实践中,传统的蒙特卡罗技术都存在
工作量大的问题.从理论上来说, 蒙特卡罗方法需要大量的实验.实验次数越多,所
得到的结果才越精确.而且实验表明,一直到公元20世纪初期,尽管实验次数数以
千计,利用蒙特卡罗方法所得到的圆周率n值,还是达不到公元5世纪祖冲之的推
算精度.这可能是传统蒙特卡罗方法长期得不到推广的主要原因.但计算机技术的
发展使得蒙特卡罗方法在最近10年得到快速的普及.现代的蒙特卡罗方法,己经
不必亲自动手做实验,而是借助计算机的高速运转能力,使得原本费时费力的实验
过程,变成了快速和轻而易举的事情.蒙特卡罗方法可以利用计算机针对某种概率
模型进行数以千计,甚至数以万计的蒙特卡罗模拟随机抽样.借助计算机技术, 蒙
特卡罗方法实现了两大优点:一是简单,省却了繁复的数学推导和演算过程,使得
一般人也能够理解和掌握;二是快速.简单和快速,是蒙特
卡罗方法在现代项目管理中获得应用的技术基础。