%script general para hacer una corrida a un set de parámetros, %beta, tamaño de la red, %Tamaño en x, Lx=10; %Tamaño en y, Ly=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 Sij=2*(rand(Lx,Ly)>0.5) -1; figure(1) pcolor(Sij); title('Estado inicial'); Sij0=Sij; npre = 100; npasos = 2000; energia=zeros(npasos+1,1); magnet=zeros(npasos+1,1); %pretermalizo for n=1:npre Sij=ising2Dpaso(Sij,beta); end pcolor(Sij),caxis([-1 1]) title('Estado inicial, despues de pre-termalizar'); pcolor(Sij),caxis([-1 1]) energia(1) = En(Sij); magnet(1) = sum(Sij(:)); for n=1:npasos [Sij,DE,dM] = ising2Dpaso(Sij,beta); energia(n+1) = energia(n) + DE; magnet(n+1) = magnet(n) + dM; if(mod(n,20) == 0) pcolor(Sij), caxis([-1 1]);shading flat; title(['T = ' num2str(1./beta) ' e = ' num2str(energia(n)/(Lx*Ly)) ' m = ' num2str(magnet(n)/(Lx*Ly)) ' paso ' num2str(n)]); drawnow; end end figure(2) subplot(2,1,1) plot(energia,'o-'); ylabel('e'); subplot(2,1,2); plot(magnet,'o-'); ylabel('m') xlabel('paso')