蒲丰投针――MonteCarlo算法
- 格式:doc
- 大小:67.00 KB
- 文档页数:2
蒙特卡罗法简单介绍和案例蒙特卡罗法历史悠久。
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 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),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。
是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。
蒙特·卡罗方法的名字来源于摩纳哥的一个城市蒙地卡罗,该城市以赌博业闻名,而蒙特·卡罗方法正是以概率为基础的方法。
起源于早期的用几率近似概率的数学思想 ,它利用随机数进行统计试验 ,以求得的统计特征值 (如均值、概率等) 作为待解问题的数值解. 随着现代计算机技术的飞速发展,蒙特卡罗算法也在不断的改进。
全局光照是三维软件中的特有名词,光具有反射和折射的性质。
在真实的大自然中,光从太阳照射到地面是经过无数次的反射和折射的,所以我们看到地面的任何地方都是清晰的(白天),在三维软件中,里面的光虽然也具有现实当中光的所有性质,但是光的热能传递却不是很明显。
全局光照,表现了直接照明和间接照明的综合效果。
浅析蒙特卡洛方法原理及应用于希明(英才学院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数值积分方法和上述类似。
蒲丰投针 ―― 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[π上的均匀分布。
第八章 蒙特卡罗方法蒙特卡罗(Monte Carlo )方法在计算物理学中占有极其重要的地位,它直接影响和推动了计算物理学的发展和应用。
作为蒙特卡罗方法最基本的思想,可以追溯到18世纪法国科学家蒲丰(Buffon )提出的求圆周率π近似值的随机试验方法,但真正使蒙特卡罗方法得到广泛实际的应用,还是在计算机出现之后,这其中首先要归功于著名的数学家和物理学家冯·纽曼(Von Neumann )和他的合作者乌拉姆(S. Ulam ),为模拟中子的链式反应,他们设计了随机试验的第一个计算机程序,在计算机中模拟中子游动的“生命”历史,然后做出统计处理,并且把这种方法称为蒙特卡罗方法。
蒙特卡罗是欧洲摩纳哥国的一个著名赌城,蒙特卡罗方法借用这一城市的名称,虽属象征性的,但也反应了该方法是以概率和统计为其基本特点,故此方法也称为统计模拟方法、统计试验方法、随机模拟方法、随机抽样方法等等。
§8.1 引言为了说明蒙特卡罗方法的基本思想,我们来看几个例子。
[例题8-1] 产品合格率的计算某厂家生产一批产品,总数是N ,其中合格品数是M ,产品合格率可用下式表示:P MN = (8-1)如将这批产品全部检验,从中检出合格品M ,则合格率可以准确知道。
但实际情况却并不总是这样,一是产品太多,检验不过来;二是检验可能带有破坏性。
因此,通常的做法是对全部产品进行抽样检验,如果抽样产品总数为~N ,其中合格品数为~M ,则抽样合格率为 ~~~P M N = (8-2) 显然,以抽样合格率~P 代表真实合格率P 是具有随机性质的。
人们从经验中知道,~N 的数值越大,越接近N 值,抽样合格率~P 越接近真实合格率P 。
类似这种把部分产品的合格率近似全部产品合格率的例子在生产实际中是很常见的。
[例题8-2] 定积分的计算设有定积分()I F x x =⎰d 01(8-3)为了方便,将上式做一简单变换:设在区间[]01,上,()0≤≤F x L (L 是定值),令 ()()f x L F x =1 (8-4) 则()01≤≤f x ,将式(8-4)代入到式(8-3)中,并记 ()I IL f x x 001==⎰d (8-5)显然,积分I 0就是图8-1中所示的阴影区域面积。
综合实验三 蒲丰投针问题实验一、实验目的1. 掌握几何概型、熟悉Monte Carlo 方法的基本思想;3.会用MATLAB 实现简单的计算机模拟二、实验内容在用传统方法难以解决的问题中,有很大一部分可以用概率模型进行描述.由于这类模型含有不确定的随机因素,分析起来通常比确定性的模型困难.有的模型难以作定量分析,得不到解析的结果,或者是虽有解析结果,但计算代价太大以至不能使用.在这种情况下,可以考虑采用Monte Carlo 方法。
下面通过例子简单介绍Monte Carlo 方法的基本思想.Monte Carlo 方法是计算机模拟的基础,它的名字来源于世界著名的赌城——摩纳哥的蒙特卡洛,其历史起源于1777年法国科学家蒲丰提出的一种计算圆周π的方法——随机投针法,即著名的蒲丰投针问题。
这一方法的步骤是:1) 取一张白纸,在上面画上许多条间距为d 的平行线,见图8.1(1)2) 取一根长度为()l l d <的针,随机地向画有平行直线的纸上掷n 次,观察针与直线相交的次数,记为m3)计算针与直线相交的概率.由分析知针与平行线相交的充要条件是 ϕs i n 21≤x 其中πϕ≤≤≤≤0,20d x 建立直角坐标系),(x ϕ,上述条件在坐标系下将是曲线所围成的曲边梯形区域,见图 8.l (2).由几何概率知(*)22s i n 210d l d d G g p ππϕϕπ===⎰的面积的面积 4)经统计实验估计出概率,n m P ≈由(*)式即?2=⇒=ππd l n m Monte Carlo 方法的基本思想是首先建立一个概率模型,使所求问题的解正好是该模型的参数或其他有关的特征量.然后通过模拟一统计试验,即多次随机抽样试验(确定m 和n ),统计出某事件发生的百分比.只要试验次数很大,该百分比便近似于事件发生的概率.这实际上就是概率的统计定义.利用建立的概率模型,求出要估计的参数.蒙特卡洛方法属于试验数学的一个分支.问题:(1) 经过n次试验后圆周率估计与的圆周 之间的差的绝对值的规律是?其中n分别取100,1000,2000,5000,10000,20000,50000(2) 参数l,d的不同选择,会对圆周率的估计有什么影响?可以选择d为l.5倍,2倍,3倍,4倍,5倍,8倍,10倍,20倍,50倍三、实验要求写出实验步骤、结果显示及分析四、实验分析以x 表示针的中点与最近一条平行线的距离,以j表示针与此线间的交角.显然0≤x≤a/20≤j≤p针与平行线相交的充要条件是x≤lsin(j)/2因(x,j)在图(4)中下面的矩形中等可能地取点,可见针与平行线相交的概率p 为图(4)正弦曲线线段与横轴围成的面积同图(4)中矩形面积的比.经计算得p= 另一方面得到如大量得投针实验,利用大数定理知:随着实验次数的增加,针与平行线相交的频率依概率收敛到概率p.那么在上式中以频率代替相应的概率p,则可以获得圆周率p的近似值.下面的程序是用matlab语言编写的计算机模拟投针以计算p 的近似值的程序.五、实验步骤1.编写MATLAB程序cleard=2l=0.5counter=0n=100x=unifrnd(0,d/2,1,n)fi=unifrnd(0,pi,1,n)for i=1:nif x(i)<1*sin(fi(i))/2counter=counter+1endendfren=counter/npihat=2*1/(d*fren)sqrt((pihat-pi)^2)结果显示:fren = 0.3300pihat =3.0303ans =0.1113以此类推:将n=1000,2000,5000,10000,20000,50000分别代入,可得:当n=1000时,fren =0.3240pihat =3.0864ans =0.0552当n=2000时,fren =0.3230pihat =3.0960ans =0.0456当n=5000时,fren =0.3204pihat =3.1211ans =0.0205当n=10000时,fren =0.3190pihat =3.1348ans =0.0068当n=20000时,fren =0.3172pihat =3.1521ans =0.0105当n=50000时,fren =0.3177pihat =3.1478ans =0.00622.改变d的取值,分别为1.5,2 ,3 ,4,5,8,10,20,50倍仍用1中的程序:cleard=3l=0.5counter=0n=100x=unifrnd(0,d/2,1,n)fi=unifrnd(0,pi,1,n)for i=1:nif x(i)<1*sin(fi(i))/2counter=counter+1endendfren=counter/npihat=2*1/(d*fren)sqrt((pihat-pi)^2)结果显示:d为1.5倍时fren =0.2300pihat =2.8986ans =0.2430d为2倍时fren =0.1700pihat =2.9412ans =0.2004d为3倍时fren =0.1100pihat =3.0303ans =0.1113d为4倍时fren =0.0800pihat =3.1250ans =0.0166d为5倍时fren =0.0600pihat =3.3333ans =0.1872d为8倍时fren =0.0400pihat =3.1250ans =0.0211d为10倍时fren =0.0300pihat =3.3333ans =0.1872d为20倍时fren =0.0100pihat =5ans =1.8539d为50倍时fren =0pihat =Infans =Inf六、结果分析1.经过n次试验后圆周率估计与的圆周π之间的差的绝对值的规律是:n的次数取值越多,圆周率估计与的圆周π之间的差的绝对值越小:圆周率越接近真值。
蒲丰投针与蒙特卡洛(Monte —Carlo)方法1777年法国科学家蒲丰(Buffon )提出并解决了如下的投针问题:桌面上画有一些平行线,它们之间的距离都是,一根长为a )(a l l ≤的针随机地投在桌面上。
问:此针与任一直线相交的概率是多少?设表示针的中点到最近的一条平行线的距离,Y 表示针与平行线的夹角(如图),如果X 2sin l Y X <, 或Y lX sin 2<时,针与一条直线相交。
由于向桌面投针是随机的,所以用来确定针在桌面上位置的是二维随机向量。
并且在),(Y X X ⎟⎠⎞⎜⎝⎛2,0a 上服从均匀分布,在Y ⎟⎠⎞⎜⎝⎛2,0π上服从均匀分布,与Y 相互独立。
由此可以写出的联合概率密度函数:X ),(Y X⎪⎩⎪⎨⎧<<<<=其它20,204),(ππy ax ay x f 于是,所求概率为:∫∫∫∫===⎭⎬⎫⎩⎨⎧<<20sin 20sin 224),(sin 2πππal dxdy adxdy y x f Y l X P y ly lx ①由于最后的结果与π有关,因此有些人想利用它来计算π的值。
其方法是向桌面投针次,若针与直线相交次,则针与直线相交的频率为n k n k ,以频率代替概率,则有al n k π2=,所以aknl2=π。
下表列举了这些试验的有关资料。
投针试验的历史资料(折算为1)a 试验者 年份 针长投针次数n 相交次数k π的试验值Wolf 1850 0.85000 2532 3.1596 Smith1855 0.63204 1219 3.1554 De.Morgan 1860 1600 383 3.137 Fox 1884 0.751030 489 3.1595 Lazzerini 1901 0.833408 1801 3.1415929 Reina1925 0.5425208593.1795这个思路已被人们发展成为统计学的一个分支—随机试验法或称为蒙特卡洛(Monte—Carlo )方法,其中随机试验可借助计算机大量重复,以致结果更接近真值。
蒲丰投针问题1777年法国科学家布丰提出的一种计算圆周率的方法——随机投针法,即著名的蒲丰投针问题。
投针步骤这一方法的步骤是:1) 取一张白纸,在上面画上许多条间距为d的平行线。
2) 取一根长度为l(l<d)的针,随机地向画有平行直线的纸上掷n次,观察针与直线相交的次数,记为m3)计算针与直线相交的概率.18世纪,法国数学家布丰和勒可莱尔提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为d的平行线,将一根长度为l (l<d)的针任意掷在这个平面上,求此针与平行线中任一条相交的概率。
”布丰本人证明了,这个概率是p=2l/(πd) π为圆周率利用这个公式可以用概率的方法得到圆周率的近似值。
下面是一些资料实验者年代投掷次数相交次数圆周率估计值沃尔夫 1850 5000 2531 3.1596 L/D=0.8史密斯 1855 3204 1219 3.1554 L/D=0.6德摩根 1680 600 383 3.137 L/D=1福克斯 1884 1030 489 3.1595 L/D=0.75拉泽里尼 1901 3408 1808 3.1415929 L/D=0.8赖纳 1925 2520 859 3.1795 L/D=0.5布丰投针实验是第一个用几何形式表达概率问题的例子,他首次使用随机实验处理确定性数学问题,为概率论的发展起到一定的推动作用。
像投针实验一样,用通过概率实验所求的概率来估计我们感兴趣的一个量,这样的方法称为蒙特卡罗方法(Monte Carlo method)。
蒙特卡罗方法是在第二次世界大战期间随着计算机的诞生而兴起和发展起来的。
这种方法在应用物理、原子能、固体物理、化学、生态学、社会学以及经济行为等领域中得到广泛利用。
法国数学家布丰(1707-1788)最早设计了投针试验。
并于1777年给出了针与平行线相交的概率的计算公式P=2L/πd(其中L是针的长度,d是平行线间的距离,π是圆周率)。
投针试验投针问题1777年法国科学家布丰提出的一种计算圆周率的方法——随机投针法,即著名的布丰投针问题。
投针步骤这一方法的步骤是:1)取一张白纸,在上面画上许多条间距为a的平行线。
2)取一根长度为l(l<a)的针,随机地向画有平行直线的纸上掷n次,观察针与直线相交的次数,记为m3)计算针与直线相交的概率.18世纪,法国数学家布丰和勒可莱尔提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为a的平行线,将一根长度为l(l<a)的针任意掷在这个平面上,求此针与平行线中任一条相交的概率。
”布丰本人证明了,这个概率是p=2l/(πd) π为圆周率利用这个公式可以用概率的方法得到圆周率的近似值。
下面是一些资料试验者时间投掷次数相交次数圆周率估计值Wolf1850年5000 2532 3.1596Smith 1855年3204 1218.5 3.1554C.De Morgan 1680年600 382.5 3.137Fox1884年1030 489 3.1595Lazzerini 1901年3408 1808 3.1415929Reina 1925年2520 859 3.1795设这三个正数为x,y,z,不妨设x≤y≤z,对于每一个确定的z,则必须满足x+y>z,x²+y²;﹤z²;,容易证明这两个式子即为以这3个正数为边长可以围成一个钝角三角形的充要条件,用线性规划可知满足题设的可行域为直线x+y=z与圆x²+y²=z²;围成的弓形,总的可行域为一个边长为z的正方形,则可以围成一个钝角三角形的概率P=S弓形/S正方形=(πz²/4-z²/2)/z²=(π-2)/4.因为对于每一个z,这个概率都为(π-2)/4,因此对于任意的正数x,y,z,有P=(π-2)/4,命题得证。
Buffon投针问题摘要本文讨论了Buffon投针问题的解法及其不同解法之间的内在联系,同时从投针到投平面图形对Buffon投针问题给出了一些推广,并得到一般的结论,指出了其概率在探矿、近似计算中的应用。
关键词蒲丰投针概率随机试验近似计算一、引言蒲丰投针问题是由法国科学家蒲丰(Buffon)在1777年提出的,它是概率中非常有代表性的问题,它是第一个用几何形式表达概率问题的例子,其结论具有很强的理论与实际意义。
蒲丰针问题的解决不仅较典型的反应了集合概率的特征及处理方法,而且还可以由此领略到从“概率土壤”上开出的一朵瑰丽的鲜花——蒙特卡洛(Monte-Carlo)方法。
二、Buffon投针问题及其解法Buffon投针问题:平面上画有等距离的平行线,每两条平行线之间的距离为2a,向平面任意投掷一枚长为2l(l<a)的针,试求针与平行线相交的概率。
解:以x表示针的中点M到最近一条平行线的距离,以φ表示该针与平行线的夹角。
针与平行线的关系见图1.则有:0≤x≤a,0≤φ≤π,由它们所围成的矩形区域记为G1。
针与平行线相交的充要条件是:0≤x≤lsinφ,记满足这个关系的区域为g1(图2中的阴影部分)。
则所求概率为P1=g1的面积G1的面积=∫lsinφdφπaπ=2laπ三、Buffon投针问题不同解法及其内在联系上述解法是常见解法之一(记为解法一),这里讨论一下蒲丰针问题的其他解法及其之间的联系。
1.其他解法解法二:以x表示针的重点M到最近一条平行线的距离,y表示该针在此平行线上投影和长度,如图3所示。
易知x和y的取值范围是0≤x≤a,0≤y≤2l,这两个不等式确定了xOy平面上的矩形区域G2,针与平行线相交的充要条件是(y2)2+x2≤l2,该不等式确定了矩形区域G2(如图4所示)中的区域g2,从而所求概率为P2=g2的面积G2的面积=14·l·2l·π2l·a=lπ4a解法三:作垂直于平行线的直线,在该直线上选定一方向为正向,用z1,z2分别表示针头与针尾关于某平行线的纵坐标(如图5所示),该平行线的选取应使|z1+z2|≤2a。
蒲丰投针――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 π
θθπππ⇒≈=
=≈⎰
下面是一些通过蒲丰投针实验计算出来的 π 的近似值:
蒲丰投针问题的重要性并非是为了求得比其它方法更精确的π值,而是在于它是第一个用几何形式表达概率问题的例子。
计算π的这一方法,不但因其新颖,奇妙而让人叫绝,而且它开创了使用随机数处理确定性数学问题的先河,是用偶然性方法去解决确定性计算的前导。