mixture = beta.ExpFamilyMixture(T, weights, options.K, exp_family, -np.ones(2), 1., options=options) eta_0 = np.array([ 0.17656734, 0.16734223]) epsilon = 1e-1 * np.ones(2) mixture.q_eta.eta[0] = eta_0 + epsilon mixture.q_eta.eta[1] = eta_0 - epsilon for _i in xrange(options.max_iter): mixture.update() bound = mixture.variational_bound() logging.info( 'Iteration %3d: Variational bound = %e; eta distance = %e', _i+1, bound, np.sqrt((mixture.q_eta.eta[0]-mixture.q_eta.eta[1])**2).sum() ) from cookbook.pylab_utils import set_rcParams_for_latex, get_fig_size_for_latex set_rcParams_for_latex() fig_size = get_fig_size_for_latex(1000) pl.rcParams['figure.figsize'] = fig_size pl.figure() mixture_x, density = mixture.plot(legend=True) pl.savefig('mixture-fixed-point') pl.close() pl.rcParams['figure.figsize'] = fig_size pl.figure() mixture_x, density = mixture.plot(legend=True, scale=False) pl.savefig('mixture-fixed-point-unscaled') pl.close() #beta.plot_density_with_R(x, weights, 'mixture-fixed-point-R', mixture_x, density)