蒲丰投针试验
- 格式:doc
- 大小:74.00 KB
- 文档页数:5
蒲丰投针 ―― 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 πθθπππ⇒≈==≈⎰下面是一些通过蒲丰投针实验计算出来的 π 的近似值:蒲丰投针问题的重要性并非是为了求得比其它方法更精确的π值,而是在于它是第一个用几何形式表达概率问题的例子。
蒲丰投针问题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,对吧。
一、利用Matlab计算机语言验证蒲丰(Buffon)投针试验问题给定a=10,b=5时,模拟100万次投针实验的Matlab程序如下:a=10;b=5;n=1000000;p=10; % a为平行线间距,b为针的长度,n为投掷次数,p为有效数字位数x=unifrnd(0,a/2,[n,1]);phi=unifrnd(0,pi,[n,1]); % 产生均匀分布的随机数,分别模拟针的中点与最近平行线的距离和针的倾斜角y=x<0.5*b*sin(phi); m=sum(y); % 计数针与平行线相交的次数PI=vpa(2*b*n/(a*m),p)运行结果PI =3.138919145二、利用C++计算机语言编程通过大量重复实验验证以下结论:三个阄,其中一个阄内写着“有”字,两个阄内不写字,三人依次抓取,各人抓到“有”字阄的概率均为1/3。
程序如下:#include<stdio.h>#include<stdlib.h>#include<time.h>void main(){int n=500000;int i,a[3]={0};srand(time(NULL));for(i=0;i<n;i++)a[rand()%3]++;printf("共测试%d次,其中有字事件有%d次, 占%.2f%%\n""抓到无字事件1有%d次,占%.2f%%\n""抓到无字事件2有%d次,占%.2f%%\n""抓到无字事件共%d次,占%.2f%%",n,a[0],a[0]*100.0/n,a[1],a[1]*100.0/n,a[2],a[2]*100.0/n,a[1]+a[2],(a[1]+a[2])*100.0/n);return 0;}。
一、蒲丰投针问题在平面上画有等距离的一些平行线,平行线间的距离为a(a>0) ,向平面上随机投一长为l(l<a)的针,针与平行线相交的概率p,结果发现π =2*l/(a*p).二、试验方法能够采纳MATLAB软件进行模拟实验,即用MATLAB编写程序来进行“蒲丰投针实验”。
1、基来源理因为针投到纸上的时候,有各样不一样方向和地点,但是,每一次投针时,其地点和方向都能够由两个量独一确立,那就是针的中点和偏离水平的角度。
以 x 表示针的中点到近来的一条平行线的距离,β表示针与平行线的交角。
明显有0<=x<=a/2 ,0<=β <=Pi 。
用边长为 a/2 及 Pi 的长方形表示样本空间。
为使针与平行线相交,一定x<=l*sinβ * ,知足这个关系的地区面积是从0 到Pi的l*sinβ对β的积分,可计算出这个概率值是(2l)/(Pi*a)。
只需随机生成n 对这样的x 和β,就能够模拟 n 次的投针实验,而后统计知足 x<=l*sin β * 的 x 的个数,就能够以为这是订交的次数。
而后利用公式求得π值。
2、MATLAB编程clear ('n')clear('a')clear('x')clear('f')clear ('y')clear ('m')disp(' 本程序用来进行投针实验的演示, a 代表两线间的宽度,针的长度 l=a/2 ,n 代表实验次数 '); a=input(' 请输入 a:');n=input(' 请输入 n:');x=unifrnd(0,a/2,[n,1]);f=unifrnd(0,pi,[n,1]);y=x<*a*sin(f);m=sum(y);PI=vpa(a*n/(a*m))三、实验数据 ( 部分程序截屏见后 )a n PI第一次310000第二次310000第三次3100000第四次3100000第五次31000000第六次31000000第七次3第八次3第九次3第十次3四、实验结论从上述数据剖析可知,跟着模拟次数的愈来愈多, PI 的值渐渐稳固在π值邻近,即愈来愈趋近于π,故蒲丰投针实验的确能够模拟出π的值。
蒲丰投针问题
1.有一只小猫,抓到20只老鼠,他准备每次吃掉奇数位置的老鼠,直到最后一只老鼠就把它放生,有一只很聪明的老鼠听到这里,就站到了一个位置上,最后它果然是那只被放生的老鼠,请问它站的是第几个位置?
2.伟大的数学家蒲丰,他邀请了他的很多朋友到他家,他在纸上画了很多间距相同的平行线,他给了他朋友很多长度是平行线间距一半的针,经过几千次的数据收集,针与平行线相交的数量与总数量的比值是
3.14,与π接近,各位知道是什么原因吗?。
/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。
可以想象得到,对于这样的圆圈来说,不管怎么扔下,都将和平行线有两个交点。
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。
实验说明1:蒲丰投针一、 实验目的1、 运用基本采样技术计算积分;2、 体会用随机模拟方法解决实际问题。
二、 问题描述在历史上人们对π的计算非常感兴趣性,发明了许多求π的近似值的方法。
1777年法国科学家蒲丰(Buffon )提出并解决了如下的投针问题来近似求解π。
蒲丰投针问题如图1所示。
桌面上画有间隔为a (a >0) 的一些平行线,向平面任意投一枚长为l (l <a )的针,可以通过求针与任一平行线相交的概率,进而求得π的近似值。
用X 表示针的中点与最近一条平行线的距离,Y 表示针与此直线间的夹角。
如果sin 2X l Y <,或sin 2l X Y <时,针与一条直线相交。
图1:蒲丰投针示意图由于向桌面投针是随机的,所以可以用二维随机向量(X ,Y )来确定针在桌面上位置。
并且X 在0,2a ⎛⎞⎜⎜⎜⎝上服从均匀分布, Y 在0,2π⎛⎞⎟⎜⎟⎜⎟⎜⎝⎠上服从均匀分布, X 与Y 相互独立。
由此可以写出的联合概率密度函数为: ()40,0,220a x y f x y a ππ⎧⎪⎪<<<<⎪=⎨⎪⎪⎪⎩其他。
用随机事件A 针与平行线相交,则事件A 发生的概率为{}()sin 2200sin 242sin ,2l y l x y l l A X Y f x y dxdy dxdy a aπππ<⎧⎫⎪⎪=<===⎨⎬⎪⎪⎪⎪⎩⎭∫∫∫∫P P 。
如果{}A P 已知,则有该概率得到{}2l a A π=P 。
当蒲丰的实验中,通过投针N 次,其中针与平行线相交n 次,用频率n N 作为{}A P 的估计值,于是得到2Nl anπ≈。
三、 实验内容1、上述概率{}A P 为积分计算,可用Monte Carlo 积分近似。
通过从分布(),f x y 中产生随机数,近似积分{}A P ,从而计算π;2、当样本数N (N =50、100、1000、10000、50000)时,每个N 重复10次实验。
关于用蒲丰投针求∏值的实验报告实验目的理解蒲丰投针的模型,逐渐掌握用数学知识解决实际问题的能力掌握运用matlab 进行一般的数学运算培养团队合作精神实验原理在一张纸上画出间距为l 的多条直线,随机在上面投放长度为 a 的针,投放n 次,记与直线相交的次数为m ,当n 相当大之后,则针与线相交的概率n m p =如下图,通过分析,针与线相交的条件简化为 ϕsin 21≤x 而πϕ≤≤≤≤0,20dx这是一个几何特型的概率问题,通过推理可得(*)22s i n 210d l dd G g p ππϕϕπ===⎰的面积的面积所以,实验过程及结果用matlab 模拟投针过程求∏值 的函数:function f=fun(a,l,n)x=pi.*rand(1,n);y=(a/2).*rand(1,n);c=(y<=((l/2).*sin(x)));m=sum(c);f=2*l*n/(m*a);随机一次实验求得的∏值>> a=input('a=');l=input('l=');n=input('n=');a=20l=15n=1000>> fun(a,l,n)ans =3.131524008350731>>以上得到的∏值不是十分精确,这是由于实验次数有限导致的误差,当实验的次数相当大之后,所得结果必定会更加逼近∏的精确值。
缺点和改进上述模拟实验还不是十分精确,而且没有绘图,不够直观,下次会注意模拟的更加精确,更加直观。
投针试验投针问题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,命题得证。
(2006-3-7, 2009-9-18再修改)例 ( 蒲丰(Buffon )投针随机试验的讨论 ) 在平面上画有相互距离均为2a 的平行线束,向平面上随机投一枚长为2l 的针,为了避免针与两平行线同时相交的复杂情况,假定0>>l a , 设M 为针的中点,y 为M 与最近平行线的距离,φ为针与平行线的交角(如图1)a y ≤≤0, πϕ≤≤0. 于是,很明显,针与平行线相交的充要条件是ϕsin l y ≤(如图2),故相交的概率为ald l a dy d a p l πϕϕπϕπϕππ2 sin 1 1sin 000===⎰⎰⎰ (1) 我们用n 表示投针次数, n S 表示针与平行线相交次数,由大数定理知,当n 充分大时,频率接近于概率,即aln S n π2≈ 于是有naS nl2≈π (2)这就是上面所说的用随机试验求π值的基本公式。
根据公式(2),19—20世纪,曾有不少学者做了随机投针试验,并得到了π的估计值 . 其中最详细的有如下两个 :其中π的估计值就是利用π的近似公式(8)得到的,即1596.363320002532455000362≈=⨯⨯⨯≈π (Wolf )1415929.31133551808334085.22≈=⨯⨯⨯≈π (Lazzarini )一般情况下,随机抽样试验的精度是不高的,Wolf 的试验结果是π≈3.1596,只准确两位有效数字 .精度是由方差n p p n S D n )1(-=⎪⎭⎫⎝⎛决定的,为了确定概率p ,不妨取l =a 这一极限情况,这时π2≈p =0.6366,n n S D n 2313.0≈⎪⎭⎫⎝⎛,由积分极限定理, dx n p p p n S P x n n ⎰-∞→=⎪⎪⎭⎪⎪⎬⎫⎪⎪⎩⎪⎪⎨⎧≤--λλπλ221-e21)1(lim即频率n S n /近似地服从正态分布律()n p p p N /)1(,- . 如果要求以大于95%的概率(96.1=λ),保证以频率n S n /作为p 的近似值精确到三位有效数字,001.0≤-=p nS nε 即≈⎪⎪⎭⎫⎝⎛≤-001,0p n S P n 95.021/)1(001.0)1(001.0212≥⎰----np p np p x dx eπ则必须有96.1/)1(001.0=≥-λnp p根据上式,要求试验次数7.88001.0/231.096.122≈⨯≥n 万次 .至于Lazzarini 的试验,为什么实验次数少反而精确度却很高呢?这是由于这一试验结果恰好和祖冲之密率355/113相合,而祖冲之密率为无理数π的连分式,属于π的最佳有理逼近 . 很明显,作为一种具有随机性质的试验,其结果恰好与最佳有理逼近的结果一致是非常偶然的;顾及到上述讨论,故Lazzarini 的试验结果是不大可能的 .注:以上的讨论是第6章“假设检验”方法的一个有实际意义的例子。
蒲丰投针实验原理1.地球是一个球体:在蒲丰时代,人们普遍相信地球是一个球体,而蒲丰的实验就是为了验证这一点。
2.光线传播是直线传播:蒲丰认为光线传播是呈直线传播的,这是基于他对光学的观察和实验中得到的结论。
基于以上前提,蒲丰提出了以下实验步骤来验证地球的球形:1.准备一个平坦的地面:选择一个平坦的地面,比如一块大理石板或者是一个平整的木板。
2.准备一把针:选择一根细长的针,尽量确保它是笔直的。
3.垂直投放针:将针垂直地向地面投放,确保它垂直于地面,并且尽量避免针倾斜或弯曲。
4.观察针在地面上的分布:观察针在地面上的分布情况,看是否存在一定的规律。
理论上,如果地球是一个平坦的平面,那么无论针的位置如何投放,针都应该均匀地分布在地面上。
然而,如果地球是一个球体,那么针的位置投放将会影响其在地面上的分布。
由于地球表面的曲率,针的投放位置不同将导致一些规律的变化。
根据蒲丰的实验,当针被随机分布在地面上时,如果地球是一个球体,那么在一些特定范围内的细长物体的位置分布将会有所偏差。
这是因为在投针的过程中,总有一些针会与地面相交,而一些则不会。
蒲丰实验的原理是基于概率统计的方法。
通过计算和观察一系列接触和不接触地面的针,可以推导出地球的曲率和球形。
如果这些数据和理论上的期望一致,那么可以得出结论地球是球状的。
总结起来,蒲丰投针实验的原理是基于光线的直线传播以及地球的球形假设。
通过观察针在地面上的分布情况,可以验证地球是否是球状的。
这个实验的重要性在于它提供了一种简单直观的方法来验证古代关于地球形状的理论,并且可以通过实验数据来验证理论的正确性。