Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 其它 > 资料存档
资料存档 资料存档
回复
 
主题工具 显示模式
旧 2019-12-14, 20:13   #1
poster
高级会员
 
注册日期: 2019-11-21
帖子: 3,006
声望力: 66
poster 正向着好的方向发展
帖子 从Mathematica到Matlab的ising模型

我有来自mathematica的问题,它涉及ising模型。这是一段代码:

J1k = Table[2 RandomInteger[] - 1, {L}, {L}]; J2k = Table[2 RandomInteger[] - 1, {L}, {L}]; energy1 := Module[{ii1, ii2, jj1, jj2, kk1, kk2, dG1, ener1, ener2, ener}, ener = 0.; Do[ Do[ jj1 = ii1 + 1; jj2 = ii2 + 1; kk1 = ii1 - 1; kk2 = ii2 - 1; If[jj1 > L, jj1 = 1]; If[jj2 > L, jj2 = 1]; If[kk1 < 1, kk1 = L]; If[kk2 < 1, kk2 = L]; ener1 = -J1k[[ii1, ii2]]*mlat[[ii1, ii2]]*mlat[[jj1, ii2]] - J1k[[kk1, ii2]]*mlat[[ii1, ii2]]*mlat[[kk1, ii2]]; ener2 = -J2k[[ii1, ii2]]*mlat[[ii1, ii2]]*mlat[[ii1, jj2]] - J2k[[ii1, kk2]]*mlat[[ii1, ii2]]*mlat[[ii1, kk2]]; ener = ener1 + ener2 - 2*mlat[[ii1, ii2]] *\[Mu]Bk, {ii1, 1, L}], {ii2, 1, L}]; ener = ener/2.] energy = energy1 这是我所做的:

J1k=2*randint(L,L)-1; J2k=2*randint(L,L)-1; I have created a function: function Energy1 =energy1() %spin interaction with the neighbors ener=0; L=16; J1k=2*randint(L,L)-1; J2k=2*randint(L,L)-1; for ii2=1:L for ii1=1:L jj1=ii1+1;jj2=ii2+1;kk1=ii1-1;kk2=ii2-1; if (jj1>L & jj1==1) end if (jj2>L & jj2==1) end if (kk1 L, j2 = 1]; If[k1 < 1, k1 = L]; If[k2 < 1, k2 = L]; dG1 = -J1k[[i1, i2]]*mlat[[j1, i2]] - J1k[[k1, i2]]*mlat[[k1, i2]]; dG2 = -J2k[[i1, i2]]*mlat[[i1, j2]] - J2k[[i1, k2]]*mlat[[i1, k2]]; dE = 2.*mlat[[i1, i2]] (dG1 + dG2 + \[Mu]Bk); W = N[Exp[-dE/T]]; If[W < 1 && W > Random[] || dE L & j1==1) end if (j2>L & j2==1) end if (k1
poster 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛禁用 表情符号
论坛启用 [IMG] 代码
论坛启用 HTML 代码



所有时间均为北京时间。现在的时间是 05:15


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.