test.asv

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

ASV
30
字号
function [newHsigma,newHsigmaa,newsigma]=test(sigma)
n=length(sigma);
k=unidrnd(n);
l=unidrnd(n);
newsigma=sigma;
newsigma(k,l)=-sigma(k,l); %随机变化一个sigma中的值   

    if l==n
        deltax=2*(sigma(k,l-1)*sigma(k,l)+sigma(k,1)*sigma(k,l));
    elseif l==1
        deltax=2*(sigma(k,l+1)*sigma(k,l)+sigma(k,n)*sigma(k,1));
    else
        deltax=2*(sigma(k,l-1)*sigma(k,l)+sigma(k,1+1)*sigma(k,l));  
    end
    if k==1
        deltax=2*deltax;
    end
    if k==n
        deltay=2*(sigma(k-1,l)*sigma(k,l)+sigma(1,l)*sigma(k,l));
    elseif k==1
        deltay=2*(sigma(k+1,l)*sigma(k,l)+sigma(k,l)*sigma(n,l));
    else
        deltay=2*(sigma(k-1,l)*sigma(k,l)+sigma(k+1,l)*sigma(k,l));  
    end
    if l==1
        deltay=2*deltay;
    end
    Hsigma=FuncH(sigma);
    newHsigma=Hsigma+deltax+deltay;
    newHsigmaa=FuncH(newsigma);

⌨️ 快捷键说明

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