def sample_hmc_mlabwrap(m, nsamples, burnin=1000, steps=10, step_sz=.2, diagnostics=False, persistence=0): from scikits.mlabwrap import mlab mlab.addpath('matlab') mlab.addpath('matlab/f_energy') opts = mlab.hmc2_opt() opts.nsamples = nsamples opts.nomit = burnin opts.steps = steps opts.stepadj = step_sz opts.persistence = persistence samps, E, diagn = mlab.hmc2('f_phasedist', np.zeros(m.shape[0] / 2, float), opts, 'g_phasedist', m, nout=3) print opts print diagn if diagnostics: return smod(samps.T), E, diagn else: return smod(samps.T)
def sample_hmc(m, nsamples, burnin=1000, steps=10, step_sz=.2, diagnostics=False, persistence=0): from hmc2 import opt, hmc2 from f_energy import f_phasedist, g_phasedist opts = opt(nsamples=nsamples, nomit=burnin, steps=steps, stepadj=step_sz, persistence=persistence, display=True) samps, E, diagn = hmc2(f=f_phasedist, x=np.zeros(m.shape[0] / 2, float), options=opts, gradf=g_phasedist, args=(m, ), return_energies=True, return_diagnostics=True) print opts print diagn if diagnostics: return smod(samps.T), E, diagn else: return smod(samps.T)
def sample_hmc(m,nsamples,burnin=1000,steps=10,step_sz=.2,diagnostics=False,persistence=0): from hmc2 import opt, hmc2 from f_energy import f_phasedist, g_phasedist opts = opt(nsamples=nsamples,nomit=burnin,steps=steps,stepadj=step_sz, persistence=persistence,display=True) samps, E, diagn = hmc2(f=f_phasedist, x=np.zeros(m.shape[0]/2,float), options=opts, gradf=g_phasedist, args=(m,), return_energies=True, return_diagnostics=True) print opts print diagn if diagnostics: return smod(samps.T),E,diagn else: return smod(samps.T)
def sample_hmc_mlabwrap(m,nsamples,burnin=1000,steps=10,step_sz=.2,diagnostics=False,persistence=0): from scikits.mlabwrap import mlab mlab.addpath('matlab') mlab.addpath('matlab/f_energy') opts = mlab.hmc2_opt() opts.nsamples = nsamples opts.nomit = burnin opts.steps = steps opts.stepadj = step_sz opts.persistence = persistence samps, E, diagn = mlab.hmc2('f_phasedist',np.zeros(m.shape[0]/2,float),opts,'g_phasedist',m,nout=3) print opts print diagn if diagnostics: return smod(samps.T),E,diagn else: return smod(samps.T)
def plot_phasedist_1d(phases,nbins=37,plot_fit=True,fig=None,ax=None,linewidth=2,**kargs): if fig is None and ax is None: fig=plt.figure() if ax is None: ax = fig.add_subplot(111) # default plot arguments plotargs = dict(color='b',alpha=.75) plotargs.update(kargs) phases = utils.smod(phases,2*np.pi) (N, bins, patches) = ax.hist(phases,np.linspace(-np.pi,np.pi,nbins+1),normed=1,**kargs) plt.setp(patches, 'facecolor', plotargs['color'], 'alpha', plotargs['alpha']) (kappa,mu,p,n) = model.phasedist(phases) if plot_fit: plt.plot (np.linspace(-np.pi,np.pi,100),model.mises(np.linspace(-np.pi,np.pi,100), kappa,mu),'k',linewidth=linewidth) ax.set_xlim([-np.pi,np.pi]) ax.set_xlabel('phase (rad)') ax.set_title ('[kappa=%4.2f, mu=%3.1f]' % (kappa,180.*mu/np.pi)) print 'kappa = %4.2f, mu = %1.2f, N = %d' % (kappa,mu,n) return kappa,mu