funch.m

来自「用Monte-Carlo方法解决二维Ising模型」· M 代码 · 共 45 行

M
45
字号
function Hsigma=FuncH(sigma)
%函数调用格式: Hsigma=FuncH(sigma)
%输出:      sigma - 读入sigma的值,注意本函数的读入仅适用于sigma
%                    是矩阵,即二维数组的情况
%输出值:      Hsigma - 返回H(sigma)的值,即状态sigma的能量
% 说明:       本文中J=1


%初始化Hsigma和n
Hsigma=0;
Hsigma2=0;
n=length(sigma);
J=1;

%n为sigma的实际边长M-1

%对横向相邻格点求和
for i=1:n
    for j=1:n-1
        Hsigma=Hsigma+sigma(i,j)*sigma(i,j+1);
    end
    Hsigma=Hsigma+sigma(i,1)*sigma(i,n);
    if (i==1)
        Hsigma=2*Hsigma; 
    end
end

%纵向相邻格点求和
for j=1:n
    for i=1:n-1
        Hsigma2=Hsigma2+sigma(i,j)*sigma(i+1,j);
    end
    Hsigma2=Hsigma2+sigma(1,j)*sigma(n,j);
    if (j==1)
        Hsigma2=2*Hsigma2;
    end
end

%乘上系数 -J
Hsigma=Hsigma+Hsigma2;
Hsigma=-1*J*Hsigma;

end
    

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?