package paramagnetico; import java.util.*; public class Paramagnetico { private int mu; //momento magnético en unidades de Bohr private double[] p; //distribución de probabilidades de ocupación public int nParticulas; //números aleatorios private Random rnd=new Random(); private static final double COEFICIENTE=9.2732e-24/1.3805e-23; //Magnetón de Bohr/cte de Boltzmann public Paramagnetico(int nParticulas, int momento) { this.nParticulas=nParticulas; mu=momento; p=new double[mu+1]; } private void probabilidades(double campo, double temperatura){ for(int i=0; i<=mu; i++){ p[i]=Math.exp(COEFICIENTE*(2*i-mu)*campo/temperatura); } //acumulada for(int i=1; i<=mu; i++){ p[i]+=p[i-1]; } //normalizar for(int i=0; i<=mu; i++){ p[i]/=p[mu]; } } private int sorteo(){ double aleatorio=rnd.nextDouble(); int i=0; for(i=0; i<=mu; i++){ if(aleatorio