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)
예제 #3
0
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)
예제 #4
0
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