《基于matlab的模拟生长.ppt》由会员分享,可在线阅读,更多相关《基于matlab的模拟生长.ppt(11页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、基于matlab的模拟生长,卢梦,主要内容,模拟树生长模拟石墨烯生长,树生长,大体思路:在一个区域上设置一些凝结核,然后随机产生自由粒子,粒子做随机运动,当粒子运动到凝结核附近时就凝结下来。,function la=zeros(53,303);a(2,5:80:300)=1; %设置一个零矩阵,并在底部设置凝结核for i=1:1:50000 %总共产生50000个粒子 t=randperm(301);f=t(1)+1;e=51; %在顶部随机产生粒子 while e2,生长图,模拟石墨烯生长,大体思路:与树生长类似,也是随机产生粒子做自由运动,运动到凝结核周围时进行凝结。不同的是,石墨烯的凝
2、结方式与树生长不同。从平面近似来看,石墨烯碳原子间的化学键之间是120度角,每个原子最多只能与其他三个原子结合。,原理图,从图中可以发现,凝结只发生在某些线上。绿线所指的两条线上无凝结发生。因此,将坐标轴所有的纵线进行定义,再加上凝结判据即可凝结,function smxL=151;axis(0 L 0 L); %建立坐标系x0=floor(L/2)+1;y0=x0;X=sparse(L,L); %建立相对应的矩阵X(x0,y0)=1; %设定凝结核R=floor(L/2)-5;for i=1:1:15000 r=rand*2*pi; kx=floor(x0+R*cos(r); ky=floo
3、r(y0+R*sin(r); %产生随机点 if X(kx,ky)=1 break end while (kx-76)*(kx-76)+(ky-76)*(ky-76)5184 s=randperm(4);t=rem(s(1),4); switch(t) case 0 kx=kx-1; if X(kx,ky)=1 kx=kx+1;continue end case 1 kx=kx+1; if X(kx,ky)=1 kx=kx-1;continue end,case 2 ky=ky-1; if X(kx,ky)=1 ky=ky+1;continue end otherwise ky=ky+1; if X(kx,ky)=1 ky=ky-1;continue end end %随机运动 if rem(kx-76)/3+1,2)=0,结束谢 谢 !,