伽尔顿板实验的模拟与验证
光电0807班 孔繁琦 u200815321
一、 实验背景
在一块竖直放置的板的上部,规则的钉有许多铁钉,下部用隔板划分为许多等宽度的狭槽,从装置顶上的漏斗中可将小球向下投放。若每次只投入一个小球 ,则发现小球每次落入哪个狭槽完全是偶然的。但连续重复许多次实验后发现:小球落入中间槽的次数多,落入两边槽的次数少。若把大量小球一次倒入,则可以看到,小球在各槽内的分布是不均匀的,以中间槽为最多,向两边逐渐减少,当一次倒入的小球总数足够多时,并且实验次数也足够多时,每次得到的分布曲线几乎相同。
图
(以上内容出自《大学物理(上)》(华中科技大学版)P169)
从有关书籍及概率论课上,我们得知这种分布曲线趋向于正态分布概率密度曲线。所以我们就想通过数学实验来验证这个结论。
二、 实验方法及原理
因为对MATLAB软件不熟悉,我们决定通过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]);
else
gl_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、 结果记录如下:
N=50000
N=10000
N=30000
3、数据处理
① 用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.0587
JBSTAT =
3.4091
CV =
3.8011
N=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,JBSTAT,CV] = jbtest(X)
H =
0
P =
0.0584
JBSTAT =
3.4232
CV =
3.8011
N=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.0594
JBSTAT =
3.3830
CV =
3.8011
②得出概率密度函数
通过对两边同时取对数,我们得到,即。
这样,就可以利用二次回归求出x的一次项、二次项和常数项的系数,从而间接的求出σ与μ。实验中,我们用计算器进行相关运算,结果如下:
N=5000时,μ=9.503236493, σ=2.171502976 ;
N=10000时,μ=,σ=;
N=30000时,μ=,σ=;
四、 结果分析及结论表述
1、通过正态分布拟合优度的测定,可得出下表:
不同实验次数下测试结果H都等于0,并且统计量JBSTAT都小于接受假设的临界值CV,这说明小球是符合正态分布的。并且随着小球数的增加,小球在槽中的分布越来越符合正态分布。
2、根据期望与标准差得出对应的正态分布概率密度函数图像,并与实验得到的图像进行比较:
N=5000
N=10000
N=30000
可以看到,实验得到的曲线与正态分布曲线基本吻合。
3、 综上,我们可以得出结论,伽尔顿板实验中得到的小球分布是符合正态分布的。实验目的达到。
五、 实验体会与总结
通过这次实验,我们都学到的许多东西。对MATLAB软件有了初步了解,对数学建模也是一次很好的尝试,另外还是一次成功的团队协作。虽然只是很简单的一个模拟,但在这个过程之中我们也遇到的许多困难。不过这过程是快乐的,因为我们真正体会到数学实验的乐趣,并逐渐产生了兴趣。这次的实验不仅仅是一次作业,对我们来说有着更多的意义,我们体会到了自己动手完成一件事情是多么的惬意!
第二篇:双向翻转伽尔顿板实验
双向翻转伽尔顿板实验
伽尔顿板实验通常是分别多次投入单个小球或者同时投入许多小球,观察比较小球在各个槽中的分布。实验结果发现:投入单个小球,小球与铁钉碰撞后落入哪个槽中完全是偶然的或者随机的。大量小球同时投入或单个小球分别多次投入,最终落入中间部位槽中的小球总是较多,而落入两侧槽中的小球总是较少。多次重复实验发现各槽中小球数目分布基本不变,但又不是绝对相同。
伽尔顿板实验演示了大量偶然事件的统计规律和涨落现象,阐述了物理学中统计与分布的概念。伽尔顿板演示实验是个理想模型,可以演示单个粒子随机性,也可以演示大量粒子的统计规律。
实验表明:单个小球落入某个槽内是随机事件或者偶然事件,大量小球按槽分布遵从确定的规律,这种对大量偶然事件的整体所表现出来的规律成为统计规律。在伽尔顿板实验中,单个小球的运动服从力学规律,大量小球的按槽分布服从统计规律。
在物理的统计规律性的学习中,我们就是以伽尔顿板实验为例,清晰的阐述了归一化条件的概念,这对之后热学相关问题的引入与讲解奠定了基础。我们知道,热力学研究的对象是大量微观粒子以及其周围环境所组成的体系,对于单独的粒子,研究其运动规律没有意义,并且,粒子的运动时无规律的,我们不能够很精确地将其表述出来。所以,就需要运用统计学方面的知识,对这些微观粒子的宏观表象做深入的研究与分析。例如,我们所学习到的麦克斯韦速率分布规律、玻尔兹曼能量分布律等都是在满足归一化条件下进行阐述与研究的。
通常,见到的伽尔顿板是单向的,即一端开口,加入小球,而双向翻转伽尔顿板是一个封闭的容器,两端均可观察实验现象,这就大大优化了操作步骤,减少步骤,节省了大量的时间,提高了教学效率。
所以,综上所述,双向翻转伽尔顿板是一个有重要意义的器具,使我们在统计学方面的学习研究有了更直观、确切的认识与体会,有助于对归一化的理解和在实践中的应用。