实验-伽尔顿板实验的模拟与验证

  • 格式:doc
  • 大小:313.00 KB
  • 文档页数:8

伽尔顿板实验的模拟与验证光电0807班孔繁琦u200815321一、实验背景在一块竖直放置的板的上部,规则的钉有许多铁钉,下部用隔板划分为许多等宽度的狭槽,从装置顶上的漏斗中可将小球向下投放。

若每次只投入一个小球,则发现小球每次落入哪个狭槽完全是偶然的。

但连续重复许多次实验后发现:小球落入中间槽的次数多,落入两边槽的次数少。

若把大量小球一次倒入,则可以看到,小球在各槽内的分布是不均匀的,以中间槽为最多,向两边逐渐减少,当一次倒入的小球总数足够多时,并且实验次数也足够多时,每次得到的分布曲线几乎相同。

图(以上内容出自《大学物理(上)》(华中科技大学版)P169)从有关书籍及概率论课上,我们得知这种分布曲线趋向于正态分布概率密度曲线。

所以我们就想通过数学实验来验证这个结论。

二、实验方法及原理因为对MA TLAB软件不熟悉,我们决定通过C语言编程来实现该过程,具体思路如下:1、小球每碰到一个铁钉,有两种结果,即向左落下和向右落下,可以用取随机数来模拟这个随机事件。

我们的想法是每次从0与1中随机取数,0表示小球向左,1表示小球向右。

2、经过一层层的选择,小球会掉入最底层的槽中。

可对槽进行编号,从最左到最右,分别为0,1,2,3…。

3、如果小球经过n层,即n次选择落入0号槽中,则该小球每次都是往左,有0+0+0+0+…+0=0;如果落入1号槽,则小球有一次往右,有1+0+0+…0=1,由此类推。

可以将每次小球的选择加起来,得到的就是它将落入的槽的编号。

4、这样,假设有m层,即每次实验取m次随机数,将结果加起来得到一个值,根据这个值,我们让对应的槽中小球数量加1。

经过大量实验,就可以得到每个槽中小球的分布,算出小球落到每个槽中的概率。

5、得到这个离散型的概率分布,我们可以利用MATLAB进行正态分布拟合优度测试,来验证我们的假设(即小球的分布是正态分布)。

另外通过一定的数学方法可以求出对应的概率密度曲线。

三、实验过程1、编写C语言程序进行模拟实验说明:①我们取槽的数量(M)为20,小球数(N)分别为5000、10000、30000做三次模拟。

②最终得到的是每个槽中落入的小球数、球落入每个槽中的概率和概率取自然对数的值。

程序如下:#include<stdio.h>#include<stdlib.h>#include<math.h>#define N 30000 \\小球数#define M 20 \\槽的数目void sort(int *p,int n,int m); \\产生随机数,并得出每个槽中的小球数void gl_f(int *p,int n,float *gl,float *gl_log,int m);\\求概率和概率的对数void output(int *p,float *gl,float *gl_log,int m);\\输出函数void main(){float gl[M],gl_log[M];\\gl[M]存放概率,gl_log[M]存放概率的对数int a[M]; \\存放槽中的小球数sort(a,N,M);gl_f(a,N,gl,gl_log,M);output(a,gl,gl_log,M);}void sort(int *p,int n,int m){int i;int j,k;k=0;for(j=0;j<m;j++)p[j]=0;randomize();for(i=0;i<n;i++){for(j=0;j<m-1;j++)k+=random(2);\\产生两个随机数0或1,存入k中p[k]++;\\对应槽中小球数加一k=0;}}void gl_f(int *p,int n,float *gl,float *gl_log,int m){float gl_n;int i;gl_n=n;for(i=0;i<m;i++){gl[i]=0;gl[i]=p[i]/gl_n;if(gl[i]>1e-6)gl_log[i]=log(gl[i]);elsegl_log[i]=0;\\若gl[i]=0就让gl_log[i]=0}}void output(int *p,float *gl,float *gl_log,int m){int i;printf("box\t\tballs\t\tgailv\t\t log\n");for(i=0;i<m;i++){printf("%d\t\t%d\t\t%f\t\t%f\n",i,p[i],gl[i],gl_log[i]);}}2、结果记录如下:0.020.040.060.080.10.120.140.160.180.2012345678910111213141516171819203、数据处理① 用MATLAB进行正态分布拟合优度测试我们选用jbtest 函数进行拟合优度测试N=5000>> X=[]; >> X=[0 0 0.0006 0.0012 0.0066 0.0194 0.0528 0.0974 0.149 0.1792 0.1726 0.144 0.0984 0.0492 0.0202 0.0078 0.0012 0.0002 0.0002 0];[H,P,JBSTAT,CV] = jbtest(X) H =0 P =0.0587JBSTAT =3.4091CV =3.8011N=10000>> X=[];>> X=[0 0 0.003 0.0015 0.0064 0.0221 0.0494 0.0954 0.1411 0.1785 0.1785 0.1393 0.0983 0.0550 0.0226 0.0091 0.0018 0.0005 0.0002 0];[H,P,JBSTA T,CV] = jbtest(X)H =P =0.0584JBSTAT =3.4232CV =3.8011N=30000>> X=[];X=[0 0 0.000167 0.0022 0.006833 0.0238 0.052567 0.095167 0.146 0.172433 0.1769 0.145633 0.095667 0.051567 0.0209 0.0077 0.002167 0.000267 0.000033 0];[H,P,JBSTAT,CV] = jbtest(X)H =0 P =0.0594JBSTAT =3.3830CV =3.8011②得出概率密度函数通过对()222)(21σμσπ--=x ex f 两边同时取对数,我们得到σπσμ2ln 2)()(ln 22---=x x f ,即σπσμσμσ2ln 2222222--+-=x x y 。

这样,就可以利用二次回归求出x 的一次项、二次项和常数项的系数,从而间接的求出σ与μ。

实验中,我们用计算器进行相关运算,结果如下: N=5000时,μ=9.503236493, σ=2.171502976 ; N=10000时,μ=,σ=; N=30000时,μ=,σ=;四、 结果分析及结论表述不同实验次数下测试结果H 都等于0,并且统计量JBSTAT 都小于接受假设的临界值CV ,这说明小球是符合正态分布的。

并且随着小球数的增加,小球在槽中的分布越来越符合正态分布。

2、根据期望与标准差得出对应的正态分布概率密度函数图像,并与实验得到的图像进行比较:N=50000.020.040.060.080.10.120.140.160.180.201234567891011121314151617181920概率密度函数值实验值N=100000.020.040.060.080.10.120.140.160.180.201234567891011121314151617181920概率密度函数值实验值N=300000.020.040.060.080.10.120.140.160.180.201234567891011121314151617181920概率密度函数值实验值可以看到,实验得到的曲线与正态分布曲线基本吻合。

3、 综上,我们可以得出结论,伽尔顿板实验中得到的小球分布是符合正态分布的。

实验目的达到。

五、 实验体会与总结通过这次实验,我们都学到的许多东西。

对MA TLAB 软件有了初步了解,对数学建模也是一次很好的尝试,另外还是一次成功的团队协作。

虽然只是很简单的一个模拟,但在这个过程之中我们也遇到的许多困难。

不过这过程是快乐的,因为我们真正体会到数学实验的乐趣,并逐渐产生了兴趣。

这次的实验不仅仅是一次作业,对我们来说有着更多的意义,我们体会到了自己动手完成一件事情是多么的惬意!。