# Estimating Partition functions

I have a finite state ensemble with an energy functional (you can think of it as an ferromagnetic Ising model if you like), and I need very careful estimates of the partition function. What methods are available to me to get reasonable estimates (in reasonable temperature regimes) of $Z(\beta)$?

-
Why do you need the numerical value of the partition function? It's just a normalization factor -- there's a number of ways at getting at any sort of observable without explicit reference to the value of Z. – wsc Jan 18 '11 at 23:56

Good question! The reponse really depends on what you 'need': if you're sampling a small system and you're lucky enough to actually be able to count (or estimate...) the number of states $\mathcal{N}(E)$ for a given energy $E$, then you can explicitly work out $Z$. Such algorithms exist for the Ising model, but in the generic case you're not this lucky.

There is the possibility of 'naively sampling' the integral/sum you're doing: you can use any Monte Carlo algorithm (especially for Ising-like systems the literature is very rich) to generate a sequence of states and you use this representative sample to calculate $Z$ for any range of temperatures. (It's important though that you do not change $\beta$ during an MC run, since this tends to break detailed balance.)

Then, like Greg P said, there are rather indirect methods, but they're sometimes rather subtle. You can go from histograms to path integrals (Wick rotated ones, that is!), but these methods all take time to understand. I'll just post my favorite reference on everything related to statistical physics/Monte Carlo, which is 'Statistical Mechanics: Algorithms and Computations' [Oxford Univ. Press] by Werner Krauth. Good luck!

-

Monte Carlo simulations would be ideal. You can also look at weak coupling and strong coupling expansions but don't extrapolate beyond any likely phase transitions. Mean field theory is another technique but the answer may be more qualitative than quantitative.

-
Monte Carlo simulations are a good way to estimate observables such as energy or magnetization, but it is not so easy to get the partition function itself. There are some methods (thermodynamic integration/histogram reweighting and so on) to calculate free energy differences between different states, but it is not so obvious. – Greg P Jan 18 '11 at 21:17
You can use Monte Carlo to find partition functions, perhaps with some limitations. Just Google it for examples – Philip Gibbs - inactive Jan 22 '11 at 13:59

Here is a paper on using belief population to approximate the partition function http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.143.9334 by a former colleague.

-