In my last post, I mentioned that I was trying to estimate the critical temperature of the Potts model by simulation. As it turns out, there is an equation to calculate the critical value of β exactly for a 2D lattice. Details after the jump.

Kramers & Wannier derived the critical temperature of the Ising model on a regular 2D lattice in their 1941 paper:

$\frac{J}{kT_c} = 0.8814$

The book chapter of Hurn, Husby & Rue (2003; p94) states in equation (3.13) that $\beta_{\textrm{critical}} = \log\left(1 + \sqrt{2}\right) = 0.881373\dots$

However, this is contradicted by Marin & Robert (2007) who report a value of $2.269185$

So, which is it? First of all, the parameter β is known as the inverse temperature by reference to the origins of the Potts/Ising model in statistical mechanics. The relationship between the critical temperature $\mathrm{T}_c$ and the value of the parameter $\beta_c$ is as follows:

$\beta_c = \frac{2\mathrm{J}}{k\mathrm{T}_c}$

Therefore it makes sense that the value reported by Marin & Robert happens to be $2 \times \beta_c^{-1}$. Now that I’ve fixed the major bugs in my code, I’m able to verify this by simulation:

library(PottsUtils)
library(bayesImageS)

k <- 2
bcrit <- 2/log(1 + sqrt(k))
beta <- seq(0,2.5,by=0.1)
counts <- matrix(0,length(beta),1000)
neigh <- getNeighbors(matrix(1,100,100), c(2,2,0,0))
block <- getBlocks(matrix(1,100,100), 2)
for (i in 1:length(beta)) {
print(beta[i])
print(system.time(result <- mcmcPottsNoData(beta[i],k,neigh,block,11000)))
counts[i,] <- result\$sum[10001:11000]
}


## [1] 0 ## user system elapsed ## 19.53 2.89 8.29 ## [1] 0.1 ## user system elapsed ## 44.36 2.35 15.79 ## [1] 0.2 ## user system elapsed ## 43.88 2.42 14.68 ## [1] 0.3 ## user system elapsed ## 41.12 2.65 14.19 ## [1] 0.4 ## user system elapsed ## 39.34 2.48 14.08 ## [1] 0.5 ## user system elapsed ## 38.47 2.45 13.16 ## [1] 0.6 ## user system elapsed ## 38.69 2.70 13.12 ## [1] 0.7 ## user system elapsed ## 35.56 2.67 12.52 ## [1] 0.8 ## user system elapsed ## 34.88 3.06 12.27 ## [1] 0.9 ## user system elapsed ## 31.38 2.28 11.45 ## [1] 1 ## user system elapsed ## 29.72 2.55 10.87 ## [1] 1.1 ## user system elapsed ## 29.73 2.27 10.73 ## [1] 1.2 ## user system elapsed ## 27.68 2.69 10.45 ## [1] 1.3 ## user system elapsed ## 28.69 2.31 11.03 ## [1] 1.4 ## user system elapsed ## 28.03 2.73 10.51 ## [1] 1.5 ## user system elapsed ## 28.07 2.78 10.55 ## [1] 1.6 ## user system elapsed ## 26.43 2.46 10.30 ## [1] 1.7 ## user system elapsed ## 27.35 2.42 10.55 ## [1] 1.8 ## user system elapsed ## 26.46 2.67 10.30 ## [1] 1.9 ## user system elapsed ## 29.42 2.29 10.50 ## [1] 2 ## user system elapsed ## 28.47 2.45 10.45 ## [1] 2.1 ## user system elapsed ## 27.98 3.12 10.38 ## [1] 2.2 ## user system elapsed ## 28.38 2.69 10.48 ## [1] 2.3 ## user system elapsed ## 29.08 2.48 10.45 ## [1] 2.4 ## user system elapsed ## 28.32 2.51 10.51 ## [1] 2.5 ## user system elapsed ## 27.68 2.59 10.54 

x <- rep(beta,each=1000)
y <- as.vector(t(counts))
plot(x, y, xlab = expression(beta), ylab = "identical neighbours", main = "Critical temperature of the 2D Ising model")
abline(v = bcrit, col = "red")
abline(v = log(1 + sqrt(2)), col = "blue")


## References

Hurn M A, Husby O K & Rue H (2003) A Tutorial on Image Analysis in Møller J (ed.) Spatial Statistics and Computational Methods Lecture Notes in Statistics 173, Springer-Verlag: Berlin

Kramers H A & Wannier G H (1941) Statistics of the Two-Dimensional Ferromagnet. Part I Phys. Rev. 60 252, 263

Marin J M & Robert C P (2007) Bayesian Core: A Practical Approach to Computational Bayesian Statistics Springer-Verlag: New York

Onsager L (1944) A Two-Dimensional Model with an Order-Disorder Transition Phys. Rev. 65 117

From → R

1. Critical point, continued | Matt Moores
2. Interactive image stacks in R | Matt Moores
Ella Kaye on Ella Kaye

Computational Bayesian statistics

Bayes' Food Cake

A bit of statistics, a bit of cakes.

RWeekly.org - Blogs to Learn R from the Community

Computational Bayesian statistics

Richard Everitt's blog

Computational Bayesian statistics

Let's Look at the Figures

David Firth's blog

Nicholas Tierney

Computational Bayesian statistics

Musings, useful code etc. on R and data science

Another Astrostatistics Blog

The random musings of a reformed astronomer ...

Darren Wilkinson's research blog

Statistics, computing, data science, Bayes, stochastic modelling, systems biology and bioinformatics

Computational Bayesian statistics

Igor Kromin

Computational Bayesian statistics

Statisfaction

I can't get no

Xi'an's Og

an attempt at bloggin, nothing more...

Sam Clifford

Postdoctoral Fellow, Bayesian Statistics, Aerosol Science