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:80for m=10:20if 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 onk=k+1;endendendk0=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 offpausexy=xyxy;m=1;for k=1:3000dt=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:Lif xy(2,numball)<=5xy(2,numball)=5;v(2,numball)=0;v(1,numball)=0;endif xy(1,numball)<dxdy | xy(1,numball)>=n*dxdyxy(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);enddtt=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:k0dxy=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.38xy(:,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;endend endendxyxy=xy;set(ball,'xdata',xy(1,:),'ydata',xy(2,:));drawnow;endfigure(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-')

MATLAB模拟伽尔顿板实验相关推荐

  1. matlab模拟伯努利实验,matlab仿真随机数的发生

    概率论和数理统计实验(matlab中实现) 一.伯努利漫衍 R=binornd(N,P); //N,P为二次漫衍的俩个参数,返回遵守参数为N,P的二项漫衍的随机数,且N,P,R的形式相同. R=bin ...

  2. MATLAB中如何让分度值小点,实验6 干涉的matlab模拟.doc

    实验6 干涉的matlab模拟.doc MATLAB在光信息处理中的应用课程上机实验(三峡大学2013年)实验6干涉的MATLAB模拟一.实验目的掌握双缝干涉.牛顿环的MATLAB模拟.二.实验内容1 ...

  3. matlab模拟超声波信号_MATLAB模拟超声波声速测量实验

    MATLAB 模拟超声波声速测量实验 曾凡平 ; 田浩 [期刊名称] <高校实验室工作研究> [年 ( 卷 ), 期] 2009(000)001 [摘要] 为了实验教学演示和深入地揭示驻波 ...

  4. matlab模拟简单孔径衍射图样,夫琅和费衍射实验文献综述

    夫琅和费衍射就是光源和观察幕离障碍物(孔或屏)均为无穷远的衍射现象,又称远场衍射,在实际操作中,可通过一个凸透镜,将无穷远处的衍射图样移至凸透镜的像方焦面上观察.可在观察幕中央看到一条特别明亮的亮条纹 ...

  5. 布丰投针java实现,MATLAB模拟布丰投针实验

    MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...

  6. MATLAB模拟布丰投针实验

    MATLAB模拟布丰投针实验 标签(空格分隔): 算法 Buffon's Needle 桌面上有距离为a的若干平行线,将长度为L的针随机丢在桌面上,则这根针与平行线相交的概率是多少?假定L < ...

  7. 粒子的散射模拟matlab程序,基于Matlab的α粒子的散射实验模拟.pdf

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab 基于Matlab的α粒子的散射实验模拟.pdf3页 ...

  8. matlab牛顿环gif,牛顿环干涉实验的 Matlab模拟

    <牛顿环干涉实验的 Matlab模拟>由会员分享,可在线阅读,更多相关<牛顿环干涉实验的 Matlab模拟(5页珍藏版)>请在人人文库网上搜索. 1.牛顿环干涉牛顿环干涉实验的 ...

  9. 【物理应用】基于Matlab模拟杨氏双孔干涉实验

    1 内容介绍 根据光的双缝干涉实验理论,利用MATLAB编写程序对双缝干涉实验进行模拟,绘制出双缝干涉的图样和光强分布曲线,并且同步计算出相应的条纹间距和对比度,直观地展现了单色光的双缝干涉这一物理现 ...

最新文章

  1. 翻译们又要失业?Facebook最新无监督机器翻译成果,BLEU提升10个点!
  2. 实心和空心哪个抗弯能力强_空心楼板技术优势及施工工艺
  3. 你必须知道的容器监控 (1) Docker自带子命令与Weave Scope
  4. apple组织名称是什么_什么是Apple Macintosh?
  5. 搜狐视频怎么开启青少年模式
  6. 大型网站架构之系列(4)——分布式中的异步通信
  7. Dead Pixel
  8. Alexa排名 介绍
  9. 浅识Tomcat10和Tomcat9的区别
  10. mysql临键锁_innodb临键锁锁定范围
  11. 第一章 数字图像基础知识(图像的空间分辨率和幅度分辨率)
  12. c语言oct hex dec用法,C++ 如何用cout输出hex,oct,dec的解决方法
  13. 信息爆炸,物质丰富,你不得不知的奥卡姆剃刀原则
  14. HTML5模拟齿轮动画
  15. 项链分赃问题与Borsuk-Ulam定理
  16. 如何用Matlab进行曲线拟合
  17. 架构师必须了解的 5 种最佳软件架构模式
  18. 用php把图片合成视频,图片音乐合成视频 多张图片合成视频|图片合成视频软件...
  19. 教你使用免费的BMFont工具和Photoshop来制作纹理贴图和fnt文件
  20. 时间复杂度 P/NP/NPC

热门文章

  1. Centos修改系统时间
  2. Kinect v2一直断线重启
  3. 怎么实现角色权限的分配_新生日记2“铁血妈妈”刘璇和“艺术慈父”王弢,你家角色怎么分配?...
  4. 解决Yolov5的RuntimeError: result type Float can‘t be cast to the desired output type long int 问题
  5. oracle oci.dll无法加载_基于OGG 实现Oracle到Kafka增量数据实时同步
  6. GME散户的炮灰史:GME跌超80%,WSB论坛内斗,带头大哥被查,终极赢家浮出水面...
  7. UDP Flood攻击防御原理
  8. 用Git在coding上面拉取代码
  9. 连接器 rj45和光模块
  10. 千文详解:十分钟带你深入了解华为交换机的通信原理