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 + -
显示快捷键?