ising.asv
来自「用Monte-Carlo方法解决二维Ising模型」· ASV 代码 · 共 43 行
ASV
43 行
% Ising模型估计U和C
function [U,C]=Ising(M,p,N,N1,N2,nu,preselect)
%函数格式:[U,C] = Ising(n,p,N,N1,N2,times,preselect,image)
%输入: n - 二维Ising模型的边长,满足周期边界条件
% p - beta的取值个数
% N,N1,N2,times - 组策略,具体地,N为马氏链长度,N1为求beta中舍去的开头的
% 状态数,N2为取样本(状态)的间隔,times为计算次数
% preselect - 预选方式,1=等可能预选,2=单点变化预选
% image - 选择输出输出的图像,1=U的图像,2=C的图像
%输出: U - 内能U的结果序列
% C - 比热容C的结果序列
n=M-1;
U([1:p+1])=0;
C([1:p+1])=0;
for k=1:times
for i=0:p
beta=i/p;
sigma=initiate(n);
[H,H2]=FuncHSpace(sigma,N,N1,N2,beta,preselect);
U(i+1)=U(i+1)+H/(n+1)/(n+1);
C(i+1)=C(i+1)+beta^2/(n+1)^2*(H2-H*H);
end
end
U=U/times;
C=C/times;
figure;
subplot(1,2,1);
plot([0:1/p:1],U,'r','linewidth',2);
xlabel('\beta');
ylabel('U');
%figure;
subplot(1,2,2);
plot([0:1/p:1],C,'b','linewidth',2);
xlabel('\beta');
ylabel('C');
end
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?