from __future__ import division %pylab inline from qinfer.test_models import SimplePrecessionModel from qinfer.derived_models import RandomWalkModel from qinfer.distributions import NormalDistribution, UniformDistribution from qinfer.smc import SMCUpdater prior = UniformDistribution([0, 1]) step_dist = NormalDistribution(0, 0.01**2) model = RandomWalkModel(SimplePrecessionModel(), step_dist) updater = SMCUpdater(model, 1000, prior) experiments = np.logspace(-2, 4, 200) true_model = prior.sample() for idx_exp, experiment in enumerate(experiments): outcome = model.simulate_experiment(true_model, experiment[np.newaxis]) updater.update(outcome, experiment[np.newaxis]) print true_model, updater.est_mean()