📄 ising.asv
字号:
% 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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -