资源描述:
《Ising模型动态模拟(matlab).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Ising模型matlab程序clc;clearall;%H=10,14,20,26,40and80H=100;L=300;%T=2/(log(1+sqrt(2)));%温度k=1.*10^(-23);%k=1;T=2/(log(1+sqrt(2)));%温度s=round(rand(H,L))*2-1;%-1和1矩阵t=1;%模拟次数colormap([111;000]);%用于控制曲面图的颜色h1=imagesc(s);%imagesc(A)将矩阵A中的元素数值按大小转化为不同颜色,并在坐标轴对应位置处以这种颜色染色。%imagesc(x,y,A)x,
2、y分别为二维向量,Matlab会在[x1,x2]*[y1,y2]范围内染色。axisequal;axisoff;set(gcf,'color',[.5.5.5]);%gcf为当前Figure对象的句柄,设置颜色为灰色,即背景的颜色%up=round(rand(1,L))*2-1;%down=[ones(1,floor(L/2)).*(-1),ones(1,L-floor(L/2))];%zuo=ones(H,1)*(-1);%you=ones(H,1);up=ones(1,L)*(-1);down=ones(1,L)*(-1);zuo=ones(H,1)*
3、(-1);you=ones(H,1)*(-1);%while(t<=1000/3*H*L)%总模拟次数while(t<=)%总模拟次数t=t+1;i=floor(rand*H)+1;%产生均匀分布的伪随机整数的新函数j=floor(rand*L)+1;%产生均匀分布的伪随机整数的新函数ifi==1top=up(1,j);%取up中上面的值elsetop=s(i-1,j);%取s中i-1行j列的值endifi==Hbottom=down(1,j);elsebottom=s(i+1,j);endifj==1left=zuo(i,1);elseleft=s(i,
4、j-1);endifj==Lright=you(i,1);elseright=s(i,j+1);enddeltaU=2*s(i,j)*(top+bottom+left+right);%s(i,j)*(top+bottom+left+right)与四周的能量和ifdeltaU<=0%以1的概率反转s(i,j)=-s(i,j);elseifrand5、CData',B):A代表一个对象,'CData'是对象A的其中一个属性,B是准备赋给'CData'的值。GUI对象中%'CData'通常是在控件对象上显示的真彩色图像,使用矩阵表示pause(0.1);endend