# Matlab Ising model: Anti-ferromagnet

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.

## Answers and Replies

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?

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

If I understand what you're asking for (a checkerboard pattern?)
Code:
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

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.

try "doc imagesc"
you can call options to customize the colors, read up on it.

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.

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