91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .m
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-02
  • 語言: Matlab
  • 標簽: Ising模型??

資源簡介

本人物理學生,被迫編程Ising的2D模型。。。(哭泣),在瀏覽網上大部分的程序后,個人認為我的模型具有較好的擬合性,而且由于不是編程大佬,我的備注也比較詳細,缺點是由于格點數取了10000個,運算時間較長

資源截圖

代碼片段和文件信息

%第一次用matlab,物理系學生,沒有系統的接觸過編程,不是很熟悉,很多算法很冗雜,甚至有些公式不是很精確,望見諒
%缺點:循環有兩個,運算較慢
%建立一個隨機矩陣,再選取任意一點比較反向和不反向的能量差別,確定是否翻轉
clear?all
S=2*(randi([01]100100)-0.5)%建立隨機1,-1矩陣,由于是偽隨機數,可能有很大誤差
?J=1?
?H=0.2

for?l=1:9?
x=[400600800100012001400160018002000]
T=x(l)
?E=0
?
?for?t=1:6500
??i=randi([299])%忽略邊界,如果需要討論,分別取ij等于1100即可
??j=randi([299])
??a=[i-1j;i+1j;ij-1;ij+1]
??%隨機取一個相鄰原子
??b=randi([14])
??c=a(b:)
??i1=c(1)
??j1=c(2)
?Energybefore=-J*S(ij)*S(i1j1)-H*S(ij)*S(i1j1)
?Energyafter=J*S(ij)*S(i1j1)+H*S(ij)*S(i1j1)
?Energydifference=Energyafter-Energybefore
?p=1/(1+exp(Energydifference/T));
??????if?(Energydifference<0)
?????????S(ij)=-S(ij)
??????????e=p*Energyafter+(1-p)*?Energybefore%期望值????
??????????
??????else?S(ij)=S(ij)
??????????e=Energybefore;
??????end
?????
??????if?t>1000?%1000次以后可以認為達到了熱平衡
??????????E=E+e/5500
??????end
?end
??if?(l==1)
??????E1=E
??????S1=S
??elseif?(l==2)
??????E2=E
??????S2=S
??????????elseif?(l==3)
??????????E3=E
??????????S3=S
??????????????elseif?(l==4)
??????????????E4=E
??????????????S4=S
???????

評論

共有 條評論