蒲丰投针问题

蒲丰投针问题
蒲丰投针问题

蒲丰投针问题

1777年法国科学家布丰提出的一种计算圆周率的方法——随机投针法,即著名的蒲丰投针问题。

投针步骤

这一方法的步骤是:

1) 取一张白纸,在上面画上许多条间距为d的平行线。

2) 取一根长度为l(l

次,观察针与直线相交的次数,记为m

3)计算针与直线相交的概率.

18世纪,法国数学家布丰和勒可莱尔提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为d的平行线,将一根长度为l (l

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是平行线间的距离,π是圆周率)。

由于它与π有关,于是人们想到利用投针试验来估计圆周率的值。

此外,随便说出3个正数,以这3个正数为边长可以围成一个钝角三角形的概率P也与π有关,这个概率为 (π-2)/4,证明如下:设这三个正数为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,命题得证。

为了估算π的值,我们需要通过实验来估计它的概率,这一过程可交由计算机编程来实现,事实上x+y>z,x²+y²﹤z²等价于(x+y-z)(x²+y²-z²)﹤0,因此只需检验这一个式子是否成立即可。若进行了m次随机试验,有n次满足该式,当m足够大时,

n/m趋近于(π-2)/4,令n/m=(π-2)/4,解得π=4n/m+2,即可估计出π值。

值得注意的是这里采用的方法:设计一个适当的试验,它的概率与我们感兴趣的一个量(如π)有关,然后利用试验结果来估计这个量,随着计算机等现代技术的发展,这一方法已经发展为具有广泛应用性的蒙特卡罗方法。

投针试验——计算π的最为稀奇的方法之一

计算π的最为稀奇的方法之一,要数18世纪法国的博物学家C·布丰和他的投针实验:在一个平面上,用尺画一组相距为d的平行线;一根长度小于d的针,扔到画了线的平面上;如果针与线相交,则该次扔出被认为是有利的,否则则是不利的.

布丰惊奇地发现:有利的扔出与不利的扔出两者次数的比,是一个包含π的表示式.如果针的长度等于d,那么有利扔出的概率为2/π.扔的次数越多,由此能求出越为精确的π的值.

公元1901年,意大利数学家拉兹瑞尼作了3408次投针,给出π的值为3.1415929——准确到小数后6位.不过,不管拉兹瑞尼是否实际上投过针,他的实验还是受到了美国犹他州奥格登的国立韦伯大学的L·巴杰的质疑.通过几何、微积分、概率等广泛的范围和渠道发现π,这是着实令人惊讶的!

下面就是一个简单而巧妙的证明。找一根铁丝弯成一个圆圈,使其直径恰恰等于平行线间的距离d。可以想象得到,对于这样的圆圈来说,不管怎么扔下,都将和平行线有两个交点。因此,如果圆圈扔下的次数为n次,那么相交的交点总数必为2n。现在设想把圆圈拉直,变成一条长为πd的铁丝。显然,这样的铁丝扔下时与平行线相交的情形要比圆圈复杂些,可能有4个交点,3个交点,2个交点,1个交点,甚至于都不相交。由于圆圈和直线的长度同为πd,根据机会均等的原理,当它们投掷次数较多,且

相等时,两者与平行线组交点的总数期望也是一样的。这就是说,当长为πd的铁丝扔下n次时,与平行线相交的交点总数应大致为2n。现在转而讨论铁丝长为l的情形。当投掷次数n增大的时候,这种铁丝跟平行线相交的交点总数m应当与长度l成正比,因而有:m=kl,式中k是比例系数。为了求出k来,只需注意到,对于l=πd的特殊情形,有m=2n。于是求得k=(2n)/(πd)。代入前式就有:m≈(2ln)/(πd)从而π≈(2ln)/(dm)

基于MATLAB的布丰投针实验仿真

系统建模与仿真题目:Buffon实验的仿真 院系: 电子工程学院 专业:信息对抗技术 班级:021231 姓名:余颖智 学号:02123021 指导老师:刘洋 完成时间:2015年4月 西安电子科技大学

基于MATLAB的投针实验仿真 摘要 在求证圆周率的过程中经过割圆术后,出现的投针试验以求出圆周率,目前利用MATLAB数学建模的仿真实验,运用到计算机中,简化其随机实验的操作量大,运算慢等特点。不同针距相同实验量运算后得出不同的π,其针距与线间距离相等,所得值接近于π。

目录 摘要 (2) 二、实验内容 (4) 三、建模流程图 (5) 四、程序主要代码 (6) 五、运行结果 (6) 六、结论 (7)

一、实验原理 1777年法国科学家布丰提出的一种计算圆周率的方法——随机投针法,即著名的布丰投针问题。该投针实验主要有如下三个步骤:(一)取一张白纸,在上面画许多条间距为a的平行线;(二)取一根长度为l(l

三、建模流程图

四、程序主要代码 str(handles.edit1,'string'); %取得变量,定义变量,变量初始化 n = str2double(str); str = get(handles.edit2,'string'); l = str2double(str); str = get(handles.edit3,'string'); a = str2double(str); counter = 0; %变量初始化 phi = 0; frequency = 0; Pi = 0; x = unifrnd(0,a/2,1,n);%产生n个(0,a/2)之间均匀分布的随机数,这里a/2是投针的中点到最近的平行线的距离 phi = unifrnd(0,pi,1,n);% 产生n个(0,pi)之间均匀分布的随机数,这里pi是投针与最近平行线的角度 for i=1:n if x(i)

几何概型的解析方法和类型例解以及蒲丰投针试验、贝特朗奇论的解析

几何概型的解析方法和类型例解 及蒲丰投针试验、贝特朗奇论的解析 几何 概型是高中数学新课程的新增加内容之一.部分师生在几何概型知识的理解上存在一些偏差,在有关内容的教学中有说理不清或解法错误的现象。本文依据几何概型理论知识和课例,谈谈几何概型问题的解析方法和基本事件为线段、圆、球射线等非质点问题的转化,以及蒲丰投针试验、贝特朗奇论的解析。 1 问题引入 题 1 如图所示,A 、B 两盏路灯之间长度是30米,由于光线较暗,想在其间再随意安装两盏路灯C 、D ,问A 与C ,B 与D 之间的距离都不小于10米的概率是多少? 在第99页里和网上一些教师课件中有上述习题及如下答案。 解::记E :“A 与C ,B 与D 之间的距离都不小于10米”,把AB 三等分,由于中间长度为130103? =米,所以101()303 P E ==。 笔者认为:上述解答错误。错误主要原因几何概型问题的解析方法不正确。 题2 欧阳修《卖油翁》中写到:(翁)乃取一葫芦置于地,以钱覆其口,徐以杓酌油沥之,自 钱孔入,而钱不湿.可见“行行出状元”,卖油翁的技艺让人叹为观止.若铜钱是直径为4cm 的圆,中间有边长为1cm 的正方形孔,若你随机向铜钱上滴一滴油(油滴不出铜钱面),油滴的直径是0.2cm 的球,则油滴整体落入孔中的概率是 。 关于此题的教学中,部分学生和教师出现分析无方,说理不清等现象,那么几何概型应怎样分析解决呢? 题3 苏教版必修3提到的“贝特朗奇论”:在半径为1的圆内任作一条弦,求该弦的长度长于圆的内接正三角形边长的概率。 贝特朗奇论的经典解法有如下三种。 解法一:如图1弦被其中点位置唯一确定。只有当弦的中点落在半径缩小了一半的同心圆内,其长才合乎要求。中点位置都是等可能的,则所求概率为4 1。 解法二:如图2由于对称性,可预先指定弦的方向。作垂直于此方向的直径,只有交直径于41点与43 点间的弦,其长才大于内接正三角形边长。所有交点是等可能的,则所求概率为2 1 。 图 1

布丰投针实验模拟

系统建模与仿真 基于MATLAB的布丰实验模拟 姓名:石星宇 学号: 02123010 指导教师:刘洋 2015年4月9日

目录 基于MATLAB的布丰实验模拟 .................................................................... - 1 - 一、实验原理......................................................................................... - 1 - 二、编程模拟......................................................................................... - 1 - 1、程序流程图............................................................................... - 1 - 2、程序代码................................................................................... - 2 - 三、实验结果......................................................................................... - 2 -

基于MATLAB 的布丰实验模拟 一、实验原理 找一根铁丝弯成一个圆圈,使其直径恰恰等于平行线间的距离a 。可以想象得到,对于这样的圆圈来说,不管怎么扔下,都将和平行线有两个交点。因此,如果圆圈扔下的次数为n 次,那么相交的交点总数必为n 2。现在设想把圆圈拉直,变成一条长为a π的铁丝。显然,这样的铁丝扔下时与平行线相交的情形要比圆圈复杂些,可能有4个交点,3个交点,2个交点,1个交点,甚至于都不相交。由于圆圈和直线的长度同为a π,根据机会均等的原理(即等概率事件),当它们投掷次数较多,且相等时,两者与平行线组交点的总数期望也是一样的。这就是说,当长为a π的铁丝扔下n 次时,与平行线相交的交点总数应大致为n 2。现在转而讨论铁丝长为l 的情形。当投掷次数n 增大的时候,这种铁丝跟平行线相交的交点总数k 应当与长度l 成正比,因而有:l k λ=,式中λ是比例系数。为了求出λ来,只需注意到,对于a l π=的特殊情形,有n k 2=。于是求得a n πλ2=。代入前式就有:a m πln 2≈从而ak nl 2≈π。 二、编程模拟 1、程序流程图 参数初始化 产生位置随机数; 产生角度随机数 判断相交 1+=k k 1+=n n 是 否 判断结束

蒲丰氏投针问题的模拟过程

蒲丰氏投针问题的模拟过程,随机数发生器也是自编的,以供大家参考和提出建议。谢谢。(seed1和seed2最好选择3和5,为了使投针次数达到1000000,CVF进行如下设置Project->settings->link-> output,将stack allocations reserve:设为1000000000) program getpi implicit none real,parameter::a=5,L=4,pi=3.14159 integer::n1,i,counter=0 real,allocatable::R1(:),R2(:) real::theta,x,pi1 write(*,*) 'input the size of the array:' read(*,*) n1 allocate(R1(n1)) allocate(R2(n1)) call random(n1,R1,R2) do i=1,n1 x=a*(2*R1(i)-1) theta=pi*R2(i) if(abs(x)

蒲丰投针问题

蒲丰投针问题 1.蒲丰简介 蒲丰有的时候翻译成布丰,是18世纪法国著名 的博物学家。他喜欢研究数学和生物学。主要的贡献 有:(1)翻译了牛顿的《流数法》,流数法按现在的 说法就叫微积分。(2)写了一本巨著,这部巨著的名 字叫《自然史》,因为他特别喜欢研究生物。这个自 然史一共有44卷,其中他生前写了36卷,后来他学 生又完成了。这本书对后来的世界有很大的影响,尤 其影响到一个人叫达尔文,所以蒲丰这个人其实是很 厉害的。 2.蒲丰投针 1777年,在蒲丰晚年的时候,他有一次举行了一 个家庭宴会。邀请了一大堆他的朋友来帮他做实验。 做什么实验呢,就“投针”。那朋友来了之后发现,就 是桌子上有很多根间距相等的平行线。然后蒲丰就说 了,给你们同样大的针,你把这些针随机扔到这个桌子上。然后宾客就随便扔吗,有可能这样,有可能 这样……,随便扔是吧,这都有可能,什么情况都 有可能。有的针就没有跟平行线相交,比如这个, 这个,这个,就没有相交,也有相交的,比如这个, 这个,这个,这是相交的,对吧,然后他就数,他 说这个针一共投了多少个呢?一共投了n =2212个。 其中与这个平行线相交的针有多少 个,数了一下有m =704个。然后他说, 我现在可以计算圆周率了,别人都不 信,他说你看我圆周率怎么算,我只 要把这两个数相除就行了。我用n 除 以m ,这个数除完了大概是3.142,这个就是圆周率了。别人说好神奇,这怎么回事儿,蒲丰说我给你解释解释这个原理是什么?其实这个原理并不复杂,我们来看一下它的原理是什么。 3. 蒲丰投针原理 (1)首先,它这个平行线是严格平行的,那平行线之间的距离是固定的,是a 。然后我随意地把一根针投上去,也许相交,也许不相交,这不一定。比如说这个针投上去了,投上去了之后,针的总长是b ,针有一个中点叫M ,对吧,这个M 到它比较近的平行线之间的距离我们设为x ,大家注意,这个是针的中点到比较近的平行线的距离是x ,所以我们应该知道x 的范围。x 的最小值就是这个终点正好落在平行线上,那最小值是0,对吧。最大值就 是针的中点正好在两条平行线中间,那最大值是a 2 ,不会再大了。因为我这个x 的定义是针的终点到比较近的平行线的距离,对吧!所以x ∈[0,a 2 ]。 (2)其次就是我想知道这个针与这个平行线的夹角是多少?令夹角为α,α的范围是什么呢,如果你完全跟这个平行线平行的话,那么这个夹角是00,对吧。如果你往上竖过来,

蒲丰投针实验模拟

概率论与数理统计实验 蒲丰投针与蒙特卡罗法 班级应数12级01班 学号2012444086 姓名张旭东

蒲丰投针与蒙特卡罗法 张旭东2012444086 (重庆科技学院数学与应用数学,重庆沙坪坝) 【摘要】通过设计一个投针实验使这个事件的概率和未知量π有关,然后通过重复实验,以频率估计概率,即可求得未知参数π的近似解。这种方法称为随机模拟法,也称为蒙特卡罗法。一般来说,实验次数越多所得的近似值就越接近真值。可以利用MATLAB来大量重复地模拟所设计的随机实验。 【关键词】随机模拟;投针实验;重复实验

1 引言 蒲丰投针问题是由法国科学家蒲丰(Buffon)在1777年提出的,它是概率中非常有代表性的问题,它是第一个用几何形式表达概率问题的例子,其结论具有很强的理论与实际意义。蒲丰针问题的解决不仅较典型的反应了集合概率的特征及处理方法,而且还可以由此领略到从“概率土壤”上开出的一朵瑰丽的鲜花——蒙特卡洛(Monte-Carlo)方法。 蒙特卡罗(Monte Carlo)方法,也称计算机模拟方法,是一种基于“随机数”的计算方法,大数定律为近年来发展迅速的随机计算机和随机模拟方法提供了理论基础。 MATLAB是一个适合多学科,具有多种工作平台的功能强大的大型软件。MATLAB已经成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的进本教学工具,Matlab随机数发生器的种类丰富且用法简便。 本文介绍了利用随机模拟方法和大数定律的相关理论解决蒲丰投针问题计算π的近似值。

2 有关数学实验的有关基础 定理(贝努力大数定律) 设n μ是n 重贝努力实验中事件A 出现的次数,P 是事件A 每次实验中出现的概率,即P(A)=p,则对任意的 ε>0,有 3 实验 蒲丰投针问题 在平面上画有等距离的一些平行线,平行线间的距离为a(a>0),向平面上随机投一长为l(l

蒲丰投针问题

蒙特卡罗方法概述 § 8.2 引例:蒲丰投针问题 在用传统方法难以解决的问题中,有很大一部分可以用概率模型进行描述.由于这类模型含有不确定的随机因素,分析起来通常比确定性的模型困难.有的模型难以作定量分析,得不到解析的结果,或者是虽有解析结果,但计算代价太大以至不能使用.在这种情况下,可以考虑采用Monte Carlo 方法。下面通过例子简单介绍Monte Carlo 方法的基本思想. Monte Carlo 方法是计算机模拟的基础,它的名字来源于世界著名的赌城——摩纳哥的蒙特卡洛,其历史起源于1777年法国科学家蒲丰提出的一种计算圆周π的方法——随机投针法,即著名的蒲丰投针问题。这一方法的步骤是: 1) 1) 取一张白纸,在上面画上许多条间距为d 的平行线,见图8.1(1) 2) 2) 取一根长度为)(d l l <的针,随机地向画有平行直线的纸上掷n 次,观察针与直线相交的次数,记为 m 3)计算针与直线相交的概率. 由分析知针与平行线相交的充要条件是 ?sin 21≤ x 其中 π?≤≤≤≤0,2 0d x 建立直角坐标系),(x ?,上述条件在坐标系下将是曲线所围成的曲边梯形区域,见图 8.l (2). 由几何概率知 (*)22 sin 210d l d d G g p ππ??π===?的面积的面积 4)经统计实验估计出概率,n m P ≈由(*)式即?2=?=ππd l n m Monte Carlo 方法的基本思想是首先建立一个概率模型,使所求问题的解正好是该模型的参数或其他有关的特征量.然后通过模拟一统计试验,即多次随机抽样试验(确定m 和n ),统计出某事件发生的百分比.只要试验次数很大,该百分比便近似于事件发生的概率.这实际上就是概率的统计定义.利用建立的概率模型,求出要估计的参数.蒙特卡洛方法属于试验数学的一个分支. ************************************************************************* 提示:设x 是一个随机变量,它服从区间[0,d/2]是的均匀分布,同理,?是一个随机变量,它服从区间],0[π上的均匀分布。按照某种抽样法,产生随机变量的可能取值,例如

Buffon投针实验的理论证明

Buffon投针实验的理论证明 我们知道,当正多边形的边数无限增多时,它的极限是圆。所以“圆”这种图形可以代表弯曲得最厉害的小针。现在假定圆形小针的直径恰好与纸上两条相邻的平行线间的距离相等,那末这个圆形小针投掷下来时,不是和一条直线相交两次,就是和两条相邻的平行线相切。不管怎样,它的相交次数是2。因此,当投掷的次数为n时,碰线的次数便是2n。 现在小针的长度只有两条相邻平行线间距离的一半,所以针的长度只有上述圆形小针长度(即圆周长)的。但是可能碰线的次数是与针的长度成正比的,因此小针的可能碰线的次数k就必须满足下面的比例式: 1:(1/2π) =2n: k 于是就得到π=n/k,也就是 π=投掷总次数/碰线次数 这就是上面“投针实验”的理论根据。它又叫莆丰氏实验,在概率论中是很出名的,也可以说是近代的“统计试验法”(又叫“蒙特卡罗法”)的滥觞。 蒲丰(Buffon)投针求π 蒲丰(Buffon)投针问题:在平面上画有等距离的一些平行线,平行线间的距离为a(a>0),向平面上随机投一长为l (l

我们也可以来做这个实验,而且希望做更多次,但是投针又比较费时费力,于是,可以采用另一种设计随机实验的方法,随机模拟的办法来模拟蒲丰投针实验。从而求得π的近似值。 二、实验方法 可以采用MatLAB软件进行模拟实验,即用MATLAB编写程序来进行“蒲丰投针实验”。 1.基本原理:由于针投到纸上的时候,有各种不同的方向和位置(图a),但是,每一次投针时,其位置和方向都可以由两个量唯一确定,那就是针的中点和偏离水平的角度(图b)。 随机投针图

蒲丰投针及蒙特卡罗模拟电子教案模拟

概率模型的随机模拟与蒲丰投针实验 第1章模拟 1.1 模拟的概念 每一个现实系统外部环境之间都存在着一定的数学的或者逻辑的关系,这些关系在系统内部的各个组成部分之间也存在。对数学、逻辑关系并不复杂的模型,人们一般都可用解析论证和数值计算求解。但是,许多现实系统的这种数学、逻辑模型十分复杂,例如大多数具有随机因素的复杂系统。这些系统中的随机性因素很多,一些因素很难甚至不可以用准确的数学公式表述,从而无法对整个系统采用数学解析法求解。这类实际问题往往可以用模拟的方法解决。 模拟主要针对随机系统进行。当然,也可以用于确定性系统。本文讨论的重点是其中的随机模拟。采用模拟技术求解随机模型,往往需要处理大批量的数据。因此,为了加速模拟过程,减少模拟误差,通常借助于计算机进行模拟,因此又称为计算机模拟。 计算机模拟就是在已经建立起的数学、逻辑模型的基础之上,通过计算机试验,对一个系统按照一定的决策原则或作业规则,由一个状态变换为另一个状态的行为进行描述和分析。 1.2 模拟的步骤 整个模拟过程可以划分为一定的阶段,分步骤进行。 (1)明确问题,建立模型。 在进行模拟之前,首先必须正确地描述待研究的问题,明确规定模拟的目的和任务。确定衡量系统性能或模拟输出结果的目标函数,然后根据系统的结构及作业规则,分析系统各状态变量之间的关系,以此为基础建立所研究的系统模型。为了能够正确反映实际问题的本质,可先以影响系统状态发生变化的主要因素建立较为简单的模型,以后再逐步补充和完善。 (2)收集和整理数据资料。 模拟技术的正确运用,往往要大量的输入数据。在随机模拟中,随机数据仅靠一些观察值是不够的。应当对具体收集到的随机性数据资料进行认真分析。确定系统中随机性因素的概率分布特性,以此为依据产生模拟过程所必需的抽样数

投针实验计算圆周率的数学分析

投针实验计算圆周率的数学分析 王向东 投针实验计算圆周率的数学证明方法,初中一般是采取假设针弯成直径等于平行线距离的方法巧妙证明。这个方法是基于不管针弯成什么形状,针上的每一个部位与平行线相交的概率相同,但这是感观上的认识,要把其中原因解释清楚不是很容易。笔者从纯数学的角度来推导这个公式。 一、投针问题的由来 1777年法国科学家布丰提出的一种计算圆周率的方法——随机投针法,即著名的蒲丰投针问题。 这一方法的步骤是: 1) 取一张白纸,在上面画上许多条间距为d 的平行线。 2) 取一根长度为()l l d <的针,随机地向画有平行直线的纸上掷n 次,观察针与直线相交的次数,记为m 3)计算针与直线相交的概率. 18世纪,法国数学家布丰和勒可莱尔提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为d 的平行线,将一根长度为()l l d <的针任意掷在这个平面上,求此针与平行线中任一条相交的概率。”布丰本人证明了,这个概率是: 2l p d π=,π为圆周率。 二、投针实验的数学证明 投针这个动作是由两个事件构成的。 事件1:针投下后与平行线构成一定的夹角。 我们来分析一下针投下后与平行线之间的成某一特定夹角时的概率。 设针投下后与平行线之间的夹角为θ,则θ在0与π之间。针与平行线之间的夹角在θ到θ+θ?之间的概率为1p θ π?=,当0θ?→时,可看作针投下后与平行线之 间成某一特定夹角为θ的概率。 事件2:针投下后会在平行线垂直的方向形成一个投影,针与平行线相交等于它的垂直投影与平行线相交。这个投影的长度'l 在0到l 之间。

蒲丰投针――MonteCarlo算法

蒲丰投针――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 π θθπππ?≈= =≈? 下面是一些通过蒲丰投针实验计算出来的 π 的近似值: 蒲丰投针问题的重要性并非是为了求得比其它方法更精确的π值,而是在于它是第一个用几何形式表达概率问题的例子。计算π的这一方法,不但因其新颖,奇妙而让人叫绝,而且它开创了使用随机数处理确定性数学问题的先河,是用偶然性方法去解决确定性计算的前导。

蒲丰氏投针计算圆周率

用C语言计算蒲丰氏投针计算圆周率 #include #include main() { int n1=0,n,i;double rand_num1,rand_num2; printf(" input the n:"); printf("%d"); for(i=0;i1)rand_num1-=2; rand_num2=(double)time(0)*rand(); while(rand_num2>1)rand_num2-=2; if(rand_num1*rand_num1+rand_num2*rand_num2<1) n1++; } printf("π=%f\n",4*n1/n); /* n1/n=π/4 距离小于1就是在圆里,取点范围在(-1,-1)到(1,1)的正方形里*/ }

MATLAB计算蒲丰氏投针计算圆周率(蒙特卡罗方法) clear a=1; l=0.6; counter=0; n=10000000;% 投掷次数 x=unifrnd(0,a/2,1,n);%产生n个(0,a/2)之间均匀分布的随机数,这里a/2是投针的中点到最近的平行线的距离 phi=unifrnd(0,pi,1,n);% 产生n个(0,pi)之间均匀分布的随机数,这里pi是投针到最近的平行线的角度 for i=1:n if x(i)> test Pi = 3.1416

布丰投针实验原理

布丰投针实验原理 在张远南先生的著作《偶然中的必然》里,有关于“布丰投针实验”的故事。为了增加阅读的趣味性,我稍微做了一点改动。 1777 年的一天,法国科学家布丰的家里宾客满堂,原来他们是应主人的邀请前来观看一次奇特试验的。 试验开始,但见年已古稀的布丰先生兴致勃勃地拿出一张纸来,纸上预先 画好了一条条等距离的平行线。接着他又抓出一大把原先准备好的小针。然后 布丰先生宣布:“请诸位把这些小针一根一根往纸上扔吧!不过,请大家务必 把扔下的针是否与纸上的平行线相交,以及相交的次数告诉我。 客人们不知布丰先生要玩什么把戏,只好客随主意,一个个加入了试验的 行列。一把小针扔完了,把它捡起来再扔。而布丰先生本人则不停地在一旁数着、记着,如此这般地忙碌了将近一个钟头。最后,布丰先生高声宣布:“先 生们,我这里记录了诸位刚才的投针结果,共投针 2212 次,其中与平行线相交的有 704 次。总次数 2212 与相交次数 704 的比值为 3.142。”说到这里,布丰先生故意停了停,并对大家报以神秘的一笑,接着有意提高声调说:“先生们,这就是圆周率π的近似值!” 客人们一片哗然,议论纷纷,大家全都感到莫名其妙:“圆周率π?这可跟投针半点也不沾边呀!” 布丰先生似乎猜透了大家的心思,得意洋洋地解释道:“诸位,这里用的是概率的原理,如果大家有耐心的话,再增加投针的次数,还能得到π 的更精确的近似值呢。” 那么,“布丰投针实验”的依据究竟是什么呢?下面就是书中简单而巧妙 的证明。为了便于理解,我把证明过程说得稍微详细一点。 假设那组平行线的间距等于 d。如果把一个直径为 d 的铁丝圆圈,扔到平行线组上,因为它的周长等于πd,所以,不论怎样扔,每个圆圈都会与平行线有两个交点。因此,如果扔下的次数为 n,交点的总数为 m,必定有 m=2n。 还用那组平行线,不过这回把圆圈剪开拉直,变成长度为πd的直铁丝。显然,直铁丝与平行线相交的情形要比圆圈复杂,最多可能有 4 个交点,也可能有 3 个、2 个、1 个交点,也可能不相交,没有交点。不过,由于圆圈和直铁

布丰投针实验

1777年法国科学家布丰提出的一种计算圆周率的方法——随机投针法,即著名的蒲丰投针问题。 投针步骤 这一方法的步骤是: 1) 取一张白纸,在上面画上许多条间距为d的平行线。 2) 取一根长度为l(lz,x²+y²﹤z²,容易证明这两个式子即为以这3个正数为边长可以围成一个钝角三角形的充要条件,用线性规划可知满足题设的可行域为直线x+y=z与圆x²+y²=z²围成的弓形,总的可行域为一个边长为z的正方形,则可

蒲丰投针――MonteCarlo算法

蒲丰投针 ―― 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 d 2212 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 π θθπππ?≈= =≈? 下面是一些通过蒲丰投针实验计算出来的 的近似值: 实验者 年代 投掷次数 相交次数 圆周率估计值 沃尔夫 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 赖纳 1925 2520 859 3.1795 蒲丰投针问题的重要性并非是为了求得比其它方法更精确的π值,而是在于它是第一个用几何形式表达概率问题的例子。计算π的这一方法,不但因其新颖,奇妙而让人叫绝,而且它开创了使用随机数处理确定性数学问题的先河,是用偶然性方法去解决确定性计算的前导。

蒲丰投针问题

蒲丰投针问题 1777年法国科学家布丰提出的一种计算圆周率的方法——随机投针法,即著名的蒲丰投针问题。 投针步骤 这一方法的步骤是: 1) 取一张白纸,在上面画上许多条间距为d的平行线。 2) 取一根长度为l(lz,x²+y²﹤z²,容易证明这两个式子即为以

“投针实验 ”求圆周率的方法

教材提到了“投针实验”求圆周率的方法。1777年,法国数学家蒲丰取一根针,量出它的长度,然后在纸上画上一组间距相等的平行线,这根针的长度是这些平行线的距离是的一半。把这根针随机地往画满了平行线的纸面上投去。小针有的与直线相交,有的落在两条平行直线之间,不与直线相交。这次实验共投针2212次,与直线相交的有704次,2212÷704≈3.142。得数竟然是π的近似值。这就是著名的蒲丰投针问题。后来他把这个试验写进了他的论文《或然性算术尝试》中。 蒲丰证明了针与任意平行线相交的概率为 p = 2l/πd 。这个公式中l为小针的长,d为平行线的间距。由这个公式,可以用概率方法得到圆周率的近似值。当实验中投的次数相当多时,就可以得到π的更精确的值。 蒲丰实验的重要性并非仅仅是为了求得比其它方法更精确的π值。而在于它是第一个用几何形式表达概率问题的例子。计算π的这一方法,不但因其新颖,奇妙而让人叫绝,而且它开创了使用随机数处理确定性数学问题的先河,是用偶然性方法去解决确定性计算的前导。 找一根粗细均匀,长度为d 的细针,并在一张白纸上画上一组间距为l 的平行线(方便起见,常取l = d/2),然后一次又一次地将小针任意投掷在白纸上。这样反复地投多次,数数针与任意平行线相交的次数, 布丰(Comte de Buffon)设计出他的著名的投针问题(needle problem)。依靠它,可以用概率方法得到π的近似值。假定在水平面上画上许多距离为a的平行线,并且,假定把一根长为l<a的同质均匀的针随意地掷在此平面上。布丰证明:该针与此平面上的平行线之一相交的概率为:p=2l/(api) 把这一试验重复进行多次,并记下成功的次数,从而得到P的一个经验值,然后用上述公式计算出π的近似值,用这种方法得到的最好结果是意大利人拉泽里尼(Lazzerini)于1901年给出的。他只掷了3408次针,就得到了准确到6位小数的π的值。他的试验结果比其他试验者得到的结果准确多了,甚至准确到使人们对它有点怀疑。还有别的计算π的概率方法。例如,1904年,查尔特勒斯(R·Chartres)就写出了应用下列实例的报告:如果写下任意两个整数测它们互素的概率为6/π2。

蒲丰投针问题 概率论论文

Buffon投针问题 摘要 本文讨论了Buffon投针问题的解法及其不同解法之间的内在联系,同时从投针到投平面图形对Buffon投针问题给出了一些推广,并得到一般的结论,指出了其概率在探矿、近似计算中的应用。 关键词 蒲丰投针概率随机试验近似计算 一、引言 蒲丰投针问题是由法国科学家蒲丰(Buffon)在1777年提出的,它是概率中非常有代表性的问题,它是第一个用几何形式表达概率问题的例子,其结论具有很强的理论与实际意义。蒲丰针问题的解决不仅较典型的反应了集合概率的特征及处理方法,而且还可以由此领略到从“概率土壤”上开出的一朵瑰丽的鲜花——蒙特卡洛(Monte-Carlo)方法。 二、Buffon投针问题及其解法 Buffon投针问题:平面上画有等距离的平行线,每两条平行线之间的距离为2a,向平面任意投掷一枚长为2l(l

与π有关的故事——布丰投针问题

与π有关的故事——布丰投针问题 1777年法国科学家布丰提出的一种计算圆周率的方法 ——随机投针法,即著名的布丰投针问题。 投针步骤 这一方法的步骤是: 1)取一张白纸,在上面画上许多条间距为a的平行线。 2)取一根长度为l 3)计算针与直线相交的概率. 18世纪,法国数学家布丰和勒可莱尔提出的“投针问题”,记载于布丰1777年出版的著作中:“在平面上画有一组间距为a的平行线,将一根长度为l(l平行线中任一条相交的概率。”布丰本人证明了,这个概率是p=2l/(πd)(π为圆周率) 最简单些:1)取一张白纸,在上面画上许多条间距为a的平行线; 2)取一根长度为a; 3)计算针与直线相交的概率为2/π =m/n m相交次数,n投针总次数π= 2n/m 公元1901年,意大利数学家拉兹瑞尼作了3408次投针,给出π的值为3.1415929——准确到小数后6位.不过,不管拉兹瑞尼是否实际上投过针,他的实验还是受到了美国犹他州奥格登的国立韦伯大学的L·巴杰的质疑.通过几何、微积分、概率等广泛的范围和渠道发现π,这是着实令人惊讶的! 下面是一些资料: 1850年,一位叫沃尔夫的人在投掷5000多次后,得到π的近似值为3.1596。1901年,意大利数学家拉兹瑞尼作了3408次投针,给出π的值为3.1415929——准确到小数后6位.不过,不管拉兹瑞尼是否实际上投过针,他的实验还是受到了美国犹他州奥格登的国立韦伯大学的L?巴杰的质疑.通过几何、微积分、概率等广泛的范围和渠道发现π,这是着实令人惊讶的!

不过,蒲丰实验的重要性并非是为了求得比其它方法更精确的π值。蒲丰投针问题的重要性在于它是第一个用几何形式表达概率问题的例子,他首次使用随机实验处理确定性数学问题,为概率论的发展起到一定的推动作用。计算π的这一方法,不但因其新颖,奇妙而让人叫绝,而且它开创了使用随机数处理确定性数学问题的先河,是用偶然性方法去解决确定性计算的前导。 在用概率方法计算π值中还要提到的是:R?查特在1904年发现,两个随意写出的数中,互素的概率为6/2π。1995年4月英国《自然》杂志刊登文章,介绍英国伯明翰市阿斯顿大学计算机科学与应用数学系的罗伯特?马修斯,如何利用夜空中亮星的分布来计算圆周率。马修斯从100颗最亮的星星中随意选取一对又一对进行分析,计算它们位置之间的角距。他检查了100万对因子,据此求得π 的值约为3.12772。这个值与真值相对误差不超过5%。 像投针实验一样,用通过概率实验所求的概率来估计我们感兴趣的一个量,这样的方法称为蒙特卡罗方法(Monte Carlo method)。蒙特卡罗方法是在第二次世界大战期间随着计算机的诞生而兴起和发展起来的。这种方法在应用物理、原子能、固体物理、化学、生态学、社会学以及经济行为等领域中得到广泛利用。 此外,随便说出3个正数,以这3个正数为边长可以围成一个钝角三角形的概率P也与π有关。 蒲丰投针问题的原理探究(需要用到微积分) 在1777年出版的《或然性算术实验》一书中,蒲丰(Buffon)提出的一种计算圆周率π的方法——随机投针法,即著名的蒲丰投针问题。 这个实验方法的操作很简单: 1) 取一张白纸,在上面画上许多条间距为d的平行线; 2) 取一根长度为l(l

相关文档
最新文档