⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ising.asv

📁 用Monte-Carlo方法解决二维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 + -