# Matlab Ising model: Anti-ferromagnet

1. Nov 5, 2011

### Beer-monster

Hi

I'm working on a matlab simulation of the 2D Ising model, and would like to verify my code and its results. One thing I'd like to try and observe is the transition from anti-ferromagnet to ferromagnet, but I'm not sure how to create the initial lattice in Matlab. I've already made a (pseudo)random lattice of spins and one that starts as a ferromagnet.

In other words, how can I create a lattice with alternating elements (1s and -1s)?

Also, is there a way to plot or graph my matrix as a colour/greyscale grid, so that -1s are black and +1s are black say? Currently I've used a surface plot but have to rotate the 3D image to a plan view.

2. Nov 6, 2011

### Beer-monster

As an additional point. I'd also like to calculate the thermal average of magnetisation and Energy $<M>,<E>$ as a function of temperature. I'm not quite sure how to do this with a Monte Carlo algorithm, without a partition function. Is the best way to run the alogrithm for different temperatures then average the results for each temperature?

3. Nov 6, 2011

### Pythagorean

If I understand what you're asking for (a checkerboard pattern?)
Code (Text):

Y = zeros(m,n) %make a mxn matrix of zeros

%now make checkerboard 1,-1
Y(1:2:end,1:2:end) = 1
Y(2:2:end,1:2:end) = -1
Y(1:2:end,2:2:end) = -1
Y(2:2:end,2:2:end) = 1
try "doc imagesc"
you can call options to customize the colors, read up on it.

4. Nov 7, 2011

### Beer-monster

Thanks for the tip. That did the trick nicely. The simulation is showing the wrong behaviour but the graphs look good

Does anyone have any tips for debugging a code in matlab, I'm really not seeing my error at the moment.

5. Nov 8, 2011

### Pythagorean

Just follow the input/output chain backwards (pause ad display function can help with this).