蒲丰投针――MonteCarlo算法
蒙特卡罗法

蒙特卡罗法简单介绍和案例蒙特卡罗法历史悠久。
1773年法国G.-L.L.von 布丰曾通过随机投针试验来确定圆周率π的近似值,这就是应用这个方法的最早例子。
蒙特卡罗是摩纳哥著名赌城,1945年 J.von 诺伊曼等人用它来命名此法,沿用至今。
数字计算机的发展为大规模的随机试验提供了有效工具,遂使蒙特卡罗法得到广泛应用。
在连续系统和离散事件系统的仿真中,通常构造一个和系统特性相近似的概率模型,并对它进行随机试验,因此蒙特卡罗法也是系统仿真方法之一。
对于蒙特卡罗技术应用于不可预见费的估算的研究,是对蒙特卡罗技术应用的拓展,能更好地了解尝试其在项目管理方面更多的应用,用其解决项目管理的问题。
用蒙特卡罗技术研究不可预见费,尝试用蒙特卡罗解决一般项目的不可预见费求取问题,避免不可预见费过高过低的问题。
蒙特卡洛方法的基本思想是:将符合一定概率分布的大量随机数作为参数带入数学模型,求出所关注变量的概率分布,从而了解不同参数对目标变量的综合影响以及目标变量最终结果的统计特性。
蒙特卡洛方法的基本原理简单描述如下:假定函数),...,,(21nx x x f y =,蒙特卡洛方法利用一个随机数发生器通过抽样取出每一组随机变量 (ni i i x x x ,...,,21),然后按),...,,(21n x x x f y =的关系式确定函数的值),...,,(21ni i i i x x x f y =。
反复独立抽样(模拟)多次(i=1,2,…),便可得到函数的一组抽样数据(n y y y ,...,,21),当模拟次数足够多时,便可给出与实际情况相近的函数y 的概率分布与其数字特征。
蒙特卡罗法(Monte Carlo Simulation )也称随机模拟,它主要依据概率分布对随机变量进行抽样,然后将样本带入数学模型进行计算得到应变量。
虽然蒙特卡罗模拟技术只给出的是统计估计而非精确的结果且应用其研究问题需要花费大量的计算时间,但它对问题的维数不敏感,对求解对象是线性问题与否也没有原则性要求,因此在复杂系统的不确定分析中,蒙特卡罗方法成为不可或缺的手段。
Monte Carlo方法

方法
Monte Carlo 方法
• Monte Carlo 方法及其历史 • Monte Carlo 方法的基本思想 • Monte Carlo 方法的应用
Monte Carlo 方法及其历史
Monte Carlo 是地中海沿岸Monaco 的一个城 市,是世界闻名的赌城,用这个名字命名一 个计算方法,表明该算法与随机、概率有着 密切的联系。事实上,Monte Carlo 方法亦 称为随机模拟(random simulation)方法、 随机抽样(random sampling)技术或统计试 验(statisticaltesting)方法。
蒲丰投针试验示意图
针与平行线相交的充分必要条件是y ≤ lsin φ ,因此,针 与平行线相交事件的集为
则针与平行线相交的概率为
由于l 和a 均为已知常数,只要通过大量抽样试验求得 该概率p ,由上式即可算出圆周率。设投针总次数为N ,其中针与平行线相交次数为v ,由贝努里( Bernoulli)定理可知,当N充分大时,该事件出现的 频率接近于其概率,即
随机抽样方法可以追溯到18 世纪后半 叶的蒲丰(Buffon)随机投针试验,蒲丰 发现了随机投针的概率与π 之间的关系。 但是一般是将Metropolis 和Ulam 在194 9 年发表的论文作为MC 方法诞生的标志 。20 世纪40 年代是电子计算机问世 的年代,也是研制原子弹的年代。原子弹 的研制过程涉及大量复杂的理论和技术问 题,如中子运输和辐射运输等物理过程。 科学家们在解决中子运输等问题时,将随 机抽样方法与计算机技术相结合,从而产 生了MonteCarlo 方法。
式中,J 为粒子两两有效相互作用能, Si为粒子i 的状态值,B 为某个强度热 力学场对粒子i 作用所产生的能量。
蒙特卡罗算法综述

蒙特卡罗算法综述摘要:本文介绍了蒙特卡罗算法的起源,原理,描述及应用,列举了一个蒙特卡罗全局光照算法得实例及研究过程。
关键词:蒙特卡罗;全局光照;统计;自适应Monte Carlo AlgorithmsLiu BingkunAbstract: This article describes a Monte Carlo algorithm for the origin of principle, description and application cited the instance of a MonteCarlo global illumination algorithms and the research process.Keywords: Monte Carlo; global illumination; statistics; adaptive1引言蒙特·卡罗算法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。
是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。
蒙特·卡罗方法的名字来源于摩纳哥的一个城市蒙地卡罗,该城市以赌博业闻名,而蒙特·卡罗方法正是以概率为基础的方法。
起源于早期的用几率近似概率的数学思想 ,它利用随机数进行统计试验 ,以求得的统计特征值 (如均值、概率等) 作为待解问题的数值解. 随着现代计算机技术的飞速发展,蒙特卡罗算法也在不断的改进。
全局光照是三维软件中的特有名词,光具有反射和折射的性质。
在真实的大自然中,光从太阳照射到地面是经过无数次的反射和折射的,所以我们看到地面的任何地方都是清晰的(白天),在三维软件中,里面的光虽然也具有现实当中光的所有性质,但是光的热能传递却不是很明显。
全局光照,表现了直接照明和间接照明的综合效果。
蒲丰投针问题

此外,随便说出3个正数,以这3个正数为边长可以围成一个钝角三角形的概率P也与π有关,这个概率为 (π-2)/4,证明如下:
设这三个正数为x,y,z,不妨设x≤y≤z,对于每一个确定的z,则必须满足x+y>z,x^2+y^2﹤z^2,容易 证明这两个式子即为以这3个正数为边长可以围成一个钝角三角形的充要条件,用线性规划可知满足题设的可行域 为直线x+y=z与圆x^2+y^2=z^2;围成的弓形,总的可行域为一个边长为z的正方形,则可以围成一个钝角三角形 的概率P=S弓形/S正方形=(πz^2/4-z^2/2)/z^2=(π-2)/4.因为对于每一个z,这个概率都为(π-2)/4, 因此对于任意的正数x,y,z,有P=(π-2)/4,命题得证。
投针步骤
实验数据
证明
下面是利用这个公式,用概率的方法得到圆周率的近似值的一些资料。
公元1901年,意大利数学家拉兹瑞尼宣称进行了多次的投针试验,每次投针数为3408次,平均相交数为1808 次,给出π的值为3.——准确到小数后6位。不过,不管拉兹瑞尼是否实际上投过针,他的实验还是受到了美国 犹他州奥格登的国立韦伯大学的L·巴杰的质疑.通过几何、微积分、概率等广泛的范围和渠道发现π,这是着实 令人惊讶的!
布丰投针实验是第一个用几何形式表达概率问题的例子,他首次使用随机实验处理确定性数学问题,为概率 论的发展起到一定的推动作用。
证明一:找一根铁丝弯成一个圆圈,使其直径恰恰等于平行线间的距离d。可以想象得到,对于这样的圆圈来 说,不管怎么扔下,都将和平行线有两个交点。因此,如果圆圈扔下的次数为n次,那么相交的交点总数必为2n。 设想把圆圈拉直,变成一条长为πd的铁丝。显然,这样的铁丝扔下时与平行线相交的情形要比圆圈复杂些,可能 有4个交点,3个交点,2个交点,1个交点,甚至于都不相交。由于圆圈和直线的长度同为πd,根据机会均等的 原理,当它们投掷次数较多,且相等时,两者与平行线组交点的总数期望也是一样的。这就是说,当长为πd的铁 丝扔下n次时,与平行线相交的交点总数应大致为2n。
浅析蒙特卡洛方法原理及应用

浅析蒙特卡洛方法原理及应用于希明(英才学院1236103班测控技术与仪器专业6120110304)摘要:本文概述了蒙特卡洛方法产生的历史及基本原理,介绍了蒙特卡洛方法的最初应用——蒲丰投针问题求圆周率,并介绍了蒙特卡洛方法在数学及生活中的一些简单应用,最后总结了蒙特卡洛方法的特点。
关键词:蒙特卡洛方法蒲丰投针生活应用蒙特卡洛方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。
它是以概率统计理论为基础, 依据大数定律( 样本均值代替总体均值) , 利用电子计算机数字模拟技术, 解决一些很难直接用数学运算求解或用其他方法不能解决的复杂问题的一种近似计算法。
蒙特卡洛方法在金融工程学,宏观经济学,计算物理学(如粒子输运计算、量子热力学计算、空气动力学计算)等领域应用广泛。
一、蒙特卡洛方法的产生及原理蒙特卡洛方法于20世纪40年代美国在第二次世界大战中研制原子弹的“曼哈顿计划”计划的成员S.M.乌拉姆和J.冯·诺伊曼首先提出。
数学家冯·诺伊曼用驰名世界的赌城—摩纳哥的Monte Carlo—来命名这种方法,为它蒙上了一层神秘色彩。
在这之前,蒙特卡洛方法就已经存在。
1777年,法国数学家蒲丰(Georges Louis Leclere de Buffon,1707—1788)提出用投针实验的方法求圆周率π。
这被认为是蒙特卡洛方法的起源。
其基本原理如下:由概率定义知,某事件的概率可以用大量试验中该事件发生的频率来估算,当样本容量足够大时,可以认为该事件的发生频率即为其概率。
因此,可以先对影响其可靠度的随机变量进行大量的随机抽样,然后把这些抽样值一组一组地代入功能函数式,确定结构是否失效,最后从中求得结构的失效概率。
蒙特卡洛法正是基于此思路进行分析的。
设有统计独立的随机变量Xi(i=1,2,3,…,k),其对应的概率密度函数分别为fx1,fx2,…,fxk,功能函数式为Z=g(x1,x2,…,xk)。
蒙特卡罗算法

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数值积分方法和上述类似。
蒲丰投针――MonteCarlo算法
蒲丰投针 ―― Monte Carlo 算法背景:蒙特卡罗方法(Monte Carlo ),也称统计模拟方法,是在二次世界大战期间随着科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为基础的一类非常重要的数值计算方法。
蒙特卡罗方法在应用物理、原子能、固体物理、化学、生态学、社会学以及经济行为等领域中得到广泛利用。
蒙特卡罗方法的名字来源于世界著名的赌城 —— 摩纳哥的蒙特卡罗。
其历史起源可追溯到1777年法国科学家蒲丰提出的一种计算圆周的方法 —— 随机投针法,即著名的蒲丰投针问题。
问题:设在平面上有一组平行线,间距为d ,把一根长L 的针随机投上去,则这根针和平行线相交的概率是多少?(其中 L < d )分析:由于 L < d ,所以这根针至多只能与一条平行线相交。
设针的中点与最近的平行线之间的距离为 y ,针与平行线的夹角为 (0 )。
相交情形 不相交情形易知针与平行线相交的充要条件是:sin 2Ly x θ≤=由于1[0,], [0, ]2y d θπ∈∈,且它们的取值均满足平均分布。
建立直角坐标系,则针与平行线的相交条件在坐标系下就是曲线所围成的曲边梯形区域(见右图)。
所以有几何概率可知针与平行线相交的概率是sin d 2212LL p d d πθθππ==⎰Monte Carlo 方法:随机产生满足平均分布的 y 和,其中1[0,], [0, ]2y d θπ∈∈,判断 y 是否在曲边梯形内。
重复上述试验,并统计 y 在曲边梯形内的次数 m ,其与试验次数 n 的比值即为针与平行线相交的概率的近似值。
clear;n = 100000; L = 1; d = 2; m = 0;for k = 1 : ntheta = rand(1)*pi; y = rand(1)*d/2;if y < sin(theta)*L/2m = m + 1; end endfprintf('针与平行线相交的概率大约为 %f\n', m/n)计算π的近似值利用该方法可以计算的近似值:sin d 22 22 1n LL m p d m d L d n πθθπππ⇒≈==≈⎰下面是一些通过蒲丰投针实验计算出来的的近似值:实验者 年代 投掷次数 相交次数 圆周率估计值 沃尔夫 1850 5000 2531 3.1596 史密斯 1855 3204 1219 3.1554 德摩根 1680 600 383 3.137 福克斯 1884 1030 489 3.1595 拉泽里尼 1901 3408 1808 3.1415929 赖纳192525208593.1795蒲丰投针问题的重要性并非是为了求得比其它方法更精确的π值,而是在于它是第一个用几何形式表达概率问题的例子。
蒲丰投针问题
蒙特卡罗方法概述§ 8.2 引例:蒲丰投针问题在用传统方法难以解决的问题中,有很大一部分可以用概率模型进行描述.由于这类模型含有不确定的随机因素,分析起来通常比确定性的模型困难.有的模型难以作定量分析,得不到解析的结果,或者是虽有解析结果,但计算代价太大以至不能使用.在这种情况下,可以考虑采用Monte Carlo 方法。
下面通过例子简单介绍Monte Carlo 方法的基本思想.Monte Carlo 方法是计算机模拟的基础,它的名字来源于世界著名的赌城——摩纳哥的蒙特卡洛,其历史起源于1777年法国科学家蒲丰提出的一种计算圆周π的方法——随机投针法,即著名的蒲丰投针问题。
这一方法的步骤是:1) 1) 取一张白纸,在上面画上许多条间距为d 的平行线,见图8.1(1)2) 2) 取一根长度为)(d l l <的针,随机地向画有平行直线的纸上掷n 次,观察针与直线相交的次数,记为m3)计算针与直线相交的概率.由分析知针与平行线相交的充要条件是ϕsin 21≤x 其中πϕ≤≤≤≤0,20d x 建立直角坐标系),(x ϕ,上述条件在坐标系下将是曲线所围成的曲边梯形区域,见图8.l (2).由几何概率知(*)22sin 210d l d d G g p ππϕϕπ===⎰的面积的面积 4)经统计实验估计出概率,n m P ≈由(*)式即?2=⇒=ππdl n m Monte Carlo 方法的基本思想是首先建立一个概率模型,使所求问题的解正好是该模型的参数或其他有关的特征量.然后通过模拟一统计试验,即多次随机抽样试验(确定m 和n ),统计出某事件发生的百分比.只要试验次数很大,该百分比便近似于事件发生的概率.这实际上就是概率的统计定义.利用建立的概率模型,求出要估计的参数.蒙特卡洛方法属于试验数学的一个分支.************************************************************************* 提示:设x 是一个随机变量,它服从区间[0,d/2]是的均匀分布,同理,ϕ是一个随机变量,它服从区间],0[π上的均匀分布。
蒙特卡罗模拟方法-计算统计
6
6
在等概率X的F 情 n况下,可使用如下更简单的 方法:
X F [6 ] 1
其中[]表示取整数。
连续型分布的直接抽样方法
对于连续型分布,如果分布函数F(x) 的反
函数 F-1(x)存在,则直接抽样方法是 :
X F F 1( )
例3. 在[A,B]上均匀分布的抽样
在[a,b]上均匀分布的分布函数为:
Matlab常用的随机数产生函数
函数名
调用形式
函数注释
betarnd
R=betarnd(A,B)
分布随机数产生函数
binornd R=binornd(N,P,MM,NN) 二项分布随机数产生函数
chi2rnd
R=chi2rnd(v)
卡方分布随机数产生函数
frnd
R= frnd(v1,v2)
F分布随机数产生函数
计算统计 Monte Carlo
MONTE CARLO方法的发展历史
早在17世纪,人们就知道用事件发生的“频率”来 决定事件的“概率”。从方法特征的角度来说可以 一直追溯到18世纪后半叶的蒲丰(Buffon)随机投 针试验,即著名的蒲丰问题。
1777年,古稀之年的蒲丰在家中请来好 些客人玩投针游戏(针长是线距之半), 他事先没有给客人讲与π有关的事。客 人们虽然不知道主人的用意,但是都参 加了游戏。他们共投针2212次,其中 704次相交。蒲丰说,2212/704=3.142, 这就是π值。这着实让人们惊喜不已。
①能够比较逼真地描述具有随机性质的 事物的特点及物理实验过程
从这个意义上讲,蒙特卡罗方法可 以部分代替物理实验,甚至可以得 到物理实验难以得到的结果。用蒙 特卡罗方法解决实际问题,可以直 接从实际问题本身出发,而不从方 程或数学表达式出发。它有直观、 形象的特点。
Monte Carlo 方法资料
Monte Carlo方法的基本思想
Monte Carlo 方法的基本思想是: 为了求解某个问题 , 建立一个恰 当的概率模型或随机过程 , 使得其参量(如事件的概率、随机变 量的数学期望等)等于所求问题的解 , 然后对模型或过程进行反 复多次的随机抽样试验 , 并对结果进行统计分析 , 最后计算所求 参量 , 得到问题的近似解。
③ 收敛速度与问题的维数无关 , 因此 , 较适用于求解多维问题。
④ 问题的求解过程取决于所构造的概率模型 , 而受问题条件限制的 影响较小 , 因此 , 对各种问题的适应性很强。
随机数的产生
1 随机数与伪随机数
Monte Carlo 方法的核心是随机抽样。 在该过程中往往需要各种各样分 布的随机变量其中最简单、最基本的是在[0 ,1]区间上均匀分布的 随机变量。 在该随机变量总体中抽取的子样 ξ 1 ,ξ 2 , … ,ξN 称为随 机数序列 , 其中每个个体称为随机数。 用数学的方法产生随机数是目前广泛使用的方法。 该方法的基本思想 是利用一种递推公式 :
"quantum" Monte Carlo: random walks are used to compute quantum-mechanical energies and wavefunctions, often to solve electronic structure problems, using Schrödinger’s equation as a formal starting point;
即当 N 充分大时 , 有 成立的概率等于1 , 亦即可以用 ξN 作为所求量 x 的估计值。
根据中心极限定理 , 如果随机变量 ξ的标准差 σ 不为零 , 那么 Monte Carlo 方法的误差ε为
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蒲丰投针――Monte Carlo 算法
背景:
蒙特卡罗方法(Monte Carlo),也称统计模拟方法,是在二次世界大战期间随着科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为基础的一类非常重要的数值计算方法。
蒙特卡罗方法在应用物理、原子能、固体物理、化学、生态学、社会学以及经济行为等领域中得到广泛利用。
蒙特卡罗方法的名字来源于世界著名的赌城——摩纳哥的蒙特卡罗。
其历史起源可追溯到1777年法国科学家蒲丰提出的一种计算圆周的方法——随机投针法,即著名的蒲丰投针问题。
问题:
设在平面上有一组平行线,间距为d,把一
根长L的针随机投上去,则这根针和平行线相交
的概率是多少?(其中L < d )
分析:由于L < d,所以这根针至多只能与一条平行线相交。
设针的中点与最近的平行线之间的距离为y,针与平行线的夹角为θ (0 ≤θ≤π)。
相交情形不相交情形
易知针与平行线相交的充要条件是:
sin
2
L
y xθ
≤=
由于
1
[0,],[0,]
2
y dθπ
∈∈,且它们的取值均
满足平均分布。
建立直角坐标系,则针与平行线
的相交条件在坐标系下就是曲线所围成的曲边梯
形区域(见右图)。
所以有几何概率可知针与平行
线相交的概率是
sin d2
2
1
2
L
L
p
d
d
π
θθ
π
π
==
⎰
Monte Carlo 方法:
随机产生满足平均分布的 y 和 θ,其中1
[0,
], [0, ]2
y d θπ∈∈,判断 y 是否在曲边梯形内。
重复上述试验,并统计 y 在曲边梯形内的次数 m ,其与试验次数 n 的比值即为针与平行线相交的概率的近似值。
clear;
n = 100000; L = 1; d = 2; m = 0;
for k = 1 : n
theta = rand(1)*pi; y = rand(1)*d/2;
if y < sin(theta)*L/2
m = m + 1; end end
fprintf('针与平行线相交的概率大约为 %f\n', m/n)
计算π的近似值
利用该方法可以计算 π 的近似值:
sin d 22 2
2 1n L
L m p d m d L d n π
θθπππ⇒≈=
=≈⎰
下面是一些通过蒲丰投针实验计算出来的 π 的近似值:
蒲丰投针问题的重要性并非是为了求得比其它方法更精确的π值,而是在于它是第一个用几何形式表达概率问题的例子。
计算π的这一方法,不但因其新颖,奇妙而让人叫绝,而且它开创了使用随机数处理确定性数学问题的先河,是用偶然性方法去解决确定性计算的前导。