ising模型c语言程序,Ising模型动态模拟(matlab).docx

Ising模型动态模拟(matlab)

Ising 模型matlab程序clc;clear all;%H=10, 14, 20, 26, 40 and 80H=100;L=300;%T=2/(log(1+sqrt(2))); %温度k=1.3806488*10^(-23);%k=1;T=2/(log(1+sqrt(2))); %温度s=round(rand(H,L))*2-1;%-1和1矩阵t=1;%模拟次数320000colormap([1 1 1;0 0 0]);%用于控制曲面图的颜色h1=imagesc(s);%imagesc(A)将矩阵A中的元素数值按大小转化为不同颜色,并在坐标轴对应位置处以这种颜色染色。%imagesc(x,y,A) x, y分别为二维向量,Matlab会在[x1,x2]*[y1,y2]范围内染色。axis equal;axis off;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)*(-1);you=ones(H,1)*(-1);%while(t<=1000/3*H*L) %总模拟次数while(t<=3200000) %总模拟次数 t=t+1; i=floor(rand*H)+1;%产生均匀分布的伪随机整数的新函数 j=floor(rand*L)+1;%产生均匀分布的伪随机整数的新函数 if i==1 top=up(1,j);%取up中上面的值 else top=s(i-1,j);%取s中i-1行j列的值 end if i==H bottom=down(1,j); else bottom=s(i+1,j); end if j==1 left=zuo(i,1); else left=s(i,j-1); end if j==L right=you(i,1); else right=s(i,j+1); end deltaU=2*s(i,j)*(top+bottom+left+right);%s(i,j)*(top+bottom+left+right)与四周的能量和 if deltaU<=0 %以1的概率反转 s(i,j)=-s(i,j); elseif rand

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值