MATLAB模拟伽尔顿板实验

MATLAB模拟伽尔顿板实验代码展示:

clear;

b=1;

k=1;

dxdy=0.81;

r=0.1;ttt=0:pi/300:2*pi;xxx=r*exp(i*ttt);

for n=1:80

    for m=10:20

if xor(mod(m,2),mod(n,2))

            xy0(1,k)=dxdy*n;

            xy0(2,k)=dxdy*m;

            ax=xy0(1,k);

            ay=xy0(2,k);

            plot(xxx+-1+i*(-2),'r.'), plot(ax,ay,'r.','markersize',15) ,hold on

            k=k+1;

        end

    end

end

k0=k-1;

axis ([-3 n*dxdy+3 -2 m*dxdy+5])

ll=40/80*dxdy;

L=3000;

r1=n/2*dxdy*ones(1,L)+[1.5*dxdy*rand(1,L/2) -1.5*dxdy*rand(1,L/2)];

r2=(m*dxdy+1)+1.5*dxdy*rand(1,L);

xyxy=[r1;r2];

xy=[r1;r2];

vy=-1*rand(1,L);

vx=[2*rand(1,L/2) -2*rand(1,L/2)];

v=[vx;vy];

ball=plot(r1(1,:),r2(1,:),'.','markersize',15,'color','b')

hold off

pause

xy=xyxy;

m=1;

for k=1:3000

   dt=0.015;

    g=59.8;

vxm(k)=mean(v(1,:));vym(k)=mean(v(2,:));

vxstd(k)=std(v(1,:));vystd(k)=std(v(2,:));

    for numball=1:L

           if xy(2,numball)<=5

                 xy(2,numball)=5;

                 v(2,numball)=0;

                 v(1,numball)=0;

           end

if xy(1,numball)<dxdy | xy(1,numball)>=n*dxdy

   xy(1,numball)=(xy(1,numball)<dxdy)*(2*dxdy-xy(1,numball))+(xy(1,numball))>n*dxdy)*(2*n*dxdy-xy(1,

numball));

                 v(1,numball)=-v(1,numball);

             end

           dtt=dt/3*2;

           dttt=dt/3;

          dtttt=dt/2;

            xy(1,numball)=xy(1,numball)+dt*v(1,numball);

            xy(2,numball)=xy(2,numball)+dt*v(2,numball)-0.5*g*dt^2;

            v(2,numball)=v(2,numball)-g*dt;

            if xy(2,numball)>10*dxdy  

            al=xy(1,numball)-dtt*v(1,numball);

            all=xy(1,numball)-dttt*v(1,numball);

            alll=xy(1,numball)-dtttt*v(1,numball);

            bl=xy(2,numball)-dtt*v(2,numball)-0.5*g*dtt^2;

            bll=xy(2,numball)-dttt*v(2,numball)-0.5*g*dttt^2;

            blll=xy(2,numball)-dtttt*v(2,numball)-0.5*g*dtttt^2;

            cl=[al;bl];

            cll=[all;bll];

            clll=[alll;blll];

             for numxy=1:k0

              dxy=norm(xy(:,numball)-xy0(:,numxy));

              dxyl=norm(cl-xy0(:,numxy));

              dxyll=norm(cll-xy0(:,numxy));

              dxylll=norm(clll-xy0(:,numxy));

              if dxy<=0.38 | dxyl<=0.38 | dxyll<=0.38 | dxylll<=0.38

                 xy(:,numball)=xyxy(:,numball);

                 v(2,numball)=v(2,numball)+g*dt;    

                 a=xy(1,numball);b=v(1,numball);

                 c=xy(2,numball);d=v(2,numball);

                 e=xy0(1,numxy);f=xy0(2,numxy);

                 t = fsolve(@myfun2,0.000,optimset('Display','off'),a,b,c,d,e,f,g);

                 t0=min(t);

                 xy(1,numball)=xy(1,numball)+t0*v(1,numball);

                 xy(2,numball)=xy(2,numball)+t0*v(2,numball)-0.5*g*t0^2;

                  %set(ball,'xdata',xy(1,:),'ydata',xy(2,:));

                 v(2,numball)=v(2,numball)+g*t0;

                 y1=xy(2,numball);y2=xy0(2,numxy);

                 x1=xy(1,numball);x2=xy0(1,numxy);

                 vx=v(1,numball);

                 vy=v(2,numball);

                 axy=atan((y2-y1)/(x2-x1+eps));

                 v(1,numball)=(-vx*cos(2*axy)-vy*sin(2*axy));

                 v(2,numball)=(vy*cos(2*axy)-vx*sin(2*axy));

                 t0=dt-t0;

                 xy(1,numball)=xy(1,numball)+t0*v(1,numball);

                 xy(2,numball)=xy(2,numball)+t0*v(2,numball)-0.5*g*t0^2;

                 v(2,numball)=v(2,numball)-g*t0;

              end

           end 

    end

end

    xyxy=xy;

set(ball,'xdata',xy(1,:),'ydata',xy(2,:));

drawnow;

end

figure(1)

histfit(xy(1,:),31)

figure(2); 

   m=1:k;

   kk=m*dt;

plot(kk,vxm,'r:',kk,vym,'b-')

  figure(3); 

plot(kk,vxstd,'r:',kk,vystd,'b-')

figure(4)

vx1=diff(vxm);vy1=diff(vym);

n=1:(k-1);

kkt=n*dt;

plot(kkt,vx1,'r:',kkt,vy1,'b-')
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
尔顿实验报告 【仪器介绍】 有机玻璃制作的封闭式结构的耳顿。腔内分为贮存室、钉阵和狭槽三部分。粒子贮 存室位于腔的上部;钉阵位于腔的中部,由铁钉组成;钉阵下方有狭槽。粒子直径约为 1.5mm.。耳顿主要演示大量偶然事件的统计规律和涨落现象。 【操作与现象】 1.打开活门,将仪器倒置,待粒子全部流入贮存室后,按住活门,再将仪器正置于水 平桌面上。 打开并迅速按住活门,尽量使单个或少量粒子下落,可演示个别事件的偶然性。 3.启开活门,大量粒子下落可演示大量粒子按狭槽的分布,从而显示大量偶然事件所 服从的统计规律。 4.将仪器放置在投影仪上,可放大观察。用彩笔在面上将演示结果描绘出来,重复 以上三项操作,可演示涨落现象。 本实验是麦克斯韦速率分布的模拟实验,在尔顿上有销钉点阵,在点阵下方设置接 受隔槽,每个隔槽接受落球数量于一定水平位置有关。隔槽接受落球数量反映落球按水 平方向速度概率密度分布。塑料球集中在粗存储室里,由下方小孔落下,形成不对称分 布落在下方隔离槽内,当塑料球全部落下后,便形成对应温度速率分布曲线。 【原理解释】 单个随机事件的结果是无法预测的,如分子运动的速度和方向就是随机事件。描述随机 事件只能用概率统计的方法,考察大量随机事件的统计规律性。耳顿演示了大量粒 子随机运动的统计规律和涨落现象。 单个小球落入哪个槽中是随机的,大量小球的分布 却呈现出规律性。某一槽中小球的数量反映了小球落入其中的概率;与分子运动速率作 类比,对应于处在某速率区间的分子数。重复实验时,特定槽中每次落入的小球数量大 致相同,但又有些许偏差,这就是统计涨落现象。小球从漏斗口落下,在到达底部前, 与钉子发生碰撞。对于单个的小球,落到底部的哪一条狭槽完全是随机的,不确定的, 但如果不断地从漏斗口放入小球,当小球数量较多时,在的底部各狭槽内都有一定的 小球,且中间狭槽的小球最多,两边狭槽的小球较少。也就是说,对于少量的小球,从 漏斗口落下,到达哪一条狭槽完全是随机的,但对于大量的小球,在各狭槽的分布满足 一定的统计规律。 【应用】 对于气体分子而言,单个分子的运动是随机的,但大量气体分子热运动的集体表现却服 从统计规律。它是不同于个体规律的整体规律,运用统计规律解决问题的前提是存在一 个较大个体的系统。对于热力学系统而言,例如封闭在汽缸内的气体,宏观上表现上表 现为足够小的体积,但微观上看却是拥有大量的气体分子,利用统计规律进行研究,具 备研究的基础,描述热力学系统的宏观量,如压强和温度等,都是大量分子热运动的结 果,而对其中一个分子谈压强和温度是没有意义的。 ----------------------- 尔顿实验报告全文共1页,当前为第1页。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值