云南师范大学 概率论实验报告 随机模拟计算的值--蒲丰投针问题
- 格式:doc
- 大小:66.00 KB
- 文档页数:6
实验一随机模拟计算π的值--蒲丰投针问题1、问题的背景在历史上人们对π的计算非常感兴趣性,发明了许多求π的近似值的方法,其中用蒲丰投针问题来解决求π的近似值的思想方法在科学占有重要的位置,人们用这一思想发现了随机模拟的方法。
2、实验目的本实验旨在使学生掌握蒲丰投针问题,并由此发展起来的随机模拟法,从中体学会到新思想产生的过程。
(1) 学习和掌握有关数学软件的命令;(2) 掌握蒲丰投针问题;(3) 理解随机模拟法;(4) 理解概率的统计定义;3、实验主要内容蒲丰投针问题:平面上画有间隔为(0)d d>的等距平行线,向平面任意投一枚长为()<的针,求针与任一平行线相交的概率,进而求π的近似值。
l l d对于n=50、100、1000、10000、50000各作5次试验,分别求出π的近似值,写出书面报告、总结出随机模拟的思路。
实验二正态分布的综合实验1、问题的背景正态分布是实际生活中最常用的概率分布,在概率论与数理统计的理论研究和实际应用中都具有重要的价值,应熟练掌握和运用。
2、实验目的学会产生服从正态分布的随机数并作密度函数和分布函数的图形,学会相关绘图工具的使用。
3、实验主要内容(1) 利用随机数发生器分别产生n=100、1000、10000个服从正态分布N的随机数,每种情形下各取组距为2、1、0.5作直方图及累积百分比曲线(6,1)图;μ=,分别取标准差为σ=0.01、0.02、0.03,绘制(2) 固定数学期望0.05密度函数和分布函数的图形;(3) 固定标准差为0.02σ=,分别取数学期望为μ=0.03、0.05、0.07,绘制密度函数和分布函数的图形。
实验三 产生服从任意分布的随机数1、问题的背景实际中经常需要用到服从指定分布为()F x 的随机数据。
学会产生服从任意分布的随机数,对今后的学习和实际应用而言,是非常有帮助的。
2、实验目的要求学会产生分布函数为预先指定的分布函数()F x 的随机数;利用所产生的随机数据作直方图、密度函数图和分布函数图。
一、利用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;}。
(蒲丰投针问题)平面上有距离都为D 的平行线一族,向平面上任意投一根长度为L ()L D ≤的针,求针与直线相交的概率?解:设针的中点到最近直线的距离为x ,与此直线的夹角为 α则 )|0,02D S x x ααπ⎧⎫=≤≤≤≤⎨⎬⎩⎭(, 令 A=“针与直线相交”则 A ,)|0x sin ,0,022D D x x αααπ⎧⎫=≤≤≤≤≤≤⎨⎬⎩⎭(L A P A =L Ω()所以()()0sin d 2L 2L 2D D πααππ==⋅⎰ 另一方面,用统计概率的方法也可以求针与直线相交的概率,向平面投针n 次, 查得针与直线相交 m 次,当投针次数相当大时,就有2m L n D π≈ 2nL mDπ⇒≈ 由此式我们可以想象,在地面上画一族距离为D 的平行线,站在较远处,向平面上投长度为L ()L D ≤的小木棍,统计投掷次数n 和相交次数m , 当投掷 次数相当大时,就可以求出无理数 π的近似值,数学的奥妙真是不可思议!2、几何概率的性质(1)0()1P A ≤≤(2)()1P S =(3)设12,,..............k A A A 是k 个两两互不相容的事件,则 1212(..............)()()......()......k k P A A A P A P A P A ++++=++++与古典概率相比,第三条性质由有限可加性变成了可列可加性,这是由几何概型中基本事件的个数无穷多决定的,请看以下事实。
在区间 (0,1]内任意选一点,显然 {}|01(0,1]S x x =<≤=若令 122111"1]"]222A A ==点选入区间(,内,点选入区间(,内, (1)11"]22n n n A -=点选入区间(,内,…… 则有 121..............n n n S A A A A ∞==++++=而 ()1P S =1212(..............)()()......()......k k P A A A P A P A P A ++++=++++ 23111......1222=+++= 即满足可列可加性。
(2006-3-7修改, 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. 掌握几何概型、熟悉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的次数取值越多,圆周率估计与的圆周π之间的差的绝对值越小:圆周率越接近真值。
关于用蒲丰投针求∏值的实验报告实验目的理解蒲丰投针的模型,逐渐掌握用数学知识解决实际问题的能力掌握运用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>>以上得到的∏值不是十分精确,这是由于实验次数有限导致的误差,当实验的次数相当大之后,所得结果必定会更加逼近∏的精确值。
缺点和改进上述模拟实验还不是十分精确,而且没有绘图,不够直观,下次会注意模拟的更加精确,更加直观。