If I have the statistical uncertainties of the ensemble average magnetisation and the average energy from a monte carlo simulation of an Ising Model, how do I find the errors on the specific heat capacity and the magnetic susceptibility?
2 Answers
Depending on the size of lattice, the error is calculated using the Jackknife method or Bootstrap method. Both plans are discussed in Chapter 3 of "Monte Carlo Methods in Statistical Physics" by M. E. J. Newman and G. T. Barkema. If your lattice size is smaller, then 100x100 use Jackknife otherwise use the Bootstrap method.
For calculation of specific heat and susceptibility, you must have calculated correlation time. If not, you first need to find correlation time. Refer to chapter 3 of the book, as mentioned above, to know how to calculate correlation time. After calculating the correlation time, you now know when to measure the specific heat. Number of measurements if given by $$n=\frac{t_{max}}{2\tau}$$
I am discussing the Jackknife method here:
- Choose n independent samples out of those that were made during the run, taking one approximately every two correlation times or more. Use these samples to calculate a value $c$ for the specific heat.
- Now from the set of n measurements, remove the first one, leaving $n − 1$, and calculate the specific heat $c_1$ from the subset.
- Put the first one back, but remove the second and calculate $c_2$ from the subset, as so forth.
- Each $c_i$ is the specific heat calculated with $i$-th measurement of the energy removed from the set, leaving $n − 1$ measure.
The estimate of the error in our value of c is given by squareroot of Jackknife variance: $$\sigma^2_{JK}=\frac{N-1}{N}\sum_{i=1}^{N}(\overline{c}_{JK}-\overline{c}_{i_{JK}})^2$$
For troubleshooting refer Needed Clarification: In Calculation of specific heat of Ising model (Simulation) and https://physics.stackexchange.com/a/549401/203743 .
Assuming that you have magnetization as a function of the external field at constant temperature and energy as a function of temperature at constant external field, and that your Monte Carlo is a standard Monte Carlo where temperature and external field are fixed parameters, for both cases the problem is the estimate of error for numerical differentiation of noisy data. If you look at the literature, with the above keywords, you'll realize that the problem is ill-posed without specifying which method is used for the numerical differentiation.
Finite difference methods are quite dangerous when used with exact data and become almost useless with noisy data. Safer procedures involve some smoothing of the data like fitting them with a smoothing spline or by Fourier noise filtering. Then the derivative can be taken on the smooth approximation and the error analysis of the derivative becomes equivalent to error propagation from the errors on the smooth representation.
Unfortunately, it is difficult to provide explicit formulae without additional information on the planned smoothing procedure which is somewhat depending on the quality of data and on the required level of accuracy. However, some packages for smoothing spline fitting could provide error estimates (although I do not have immediately available references).