%script general para hacer una corrida a un set de parámetros, %beta, tamaño de la red, %Lado de la red, L=10; % beta = 1/T beta=0.1; %propongo un estado inicial al azar %Sij es una matriz de 1 y -1 indicando las dos proyecciones de %espin S=2*(rand(L,L)>0.5) -1; npre = 100; npasos = 1e3; energia=zeros(npasos+1,1); magnet=zeros(npasos+1,1); %pretermalizo %ising2Dpaso hace un nuevo elemento de la cadena de Markov %la tienen que escribir Uds... for n=1:npre [S, DE, DM]=ising2Dpaso(S,beta); end energia(1) = Energia(S); magnet(1) = sum(sum(S)); for n=1:npasos [S,DE,dM] = ising2Dpaso(S,beta); energia(n+1) = energia(n) + DE; magnet(n+1) = magnet(n) + dM; if(mod(n,10) == 0) imagesc(S);shading flat; title(['T = ' num2str(1/beta) ' e = ' num2str(energia(n)/(L*L)) ' m = ' num2str(magnet(n)/(L*L))]); drawnow; end end %otros plots que pueden/deben hacer, sobreescribe los anteriores. plot(energia/(L*L)) xlabel('paso') ylabel('Energia por sitio')