{ "metadata": { "name": "" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "from __future__ import division\n", "%pylab inline" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "Populating the interactive namespace from numpy and matplotlib\n" ] } ], "prompt_number": 1 }, { "cell_type": "code", "collapsed": false, "input": [ "from qinfer.test_models import SimplePrecessionModel\n", "from qinfer.derived_models import RandomWalkModel\n", "from qinfer.distributions import NormalDistribution, UniformDistribution\n", "from qinfer.smc import SMCUpdater" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 2 }, { "cell_type": "code", "collapsed": false, "input": [ "prior = UniformDistribution([0, 1])\n", "step_dist = NormalDistribution(0, 0.01**2)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 3 }, { "cell_type": "code", "collapsed": false, "input": [ "model = RandomWalkModel(SimplePrecessionModel(), step_dist)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 4 }, { "cell_type": "code", "collapsed": false, "input": [ "updater = SMCUpdater(model, 1000, prior)" ], "language": "python", "metadata": {}, "outputs": [], "prompt_number": 5 }, { "cell_type": "code", "collapsed": false, "input": [ "experiments = np.logspace(-2, 4, 200)\n", "true_model = prior.sample()\n", "for idx_exp, experiment in enumerate(experiments):\n", " outcome = model.simulate_experiment(true_model, experiment[np.newaxis])\n", " updater.update(outcome, experiment[np.newaxis])\n", " \n", "print true_model, updater.est_mean()" ], "language": "python", "metadata": {}, "outputs": [ { "output_type": "stream", "stream": "stdout", "text": [ "[[ 0.90754165]] [ 0.898664]\n" ] } ], "prompt_number": 38 }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }