Bug in dog animation cell.

We were adding the movement error in the wrong place, causing the
filter output to never vary dispite changes in sensor noise.

Also some PEP-8 cleanup.
This commit is contained in:
Roger Labbe committed 2014-11-28 10:33:10 -08:00
1 parent 22375983c2
commit f9af363792
1 file changed
+231 -209
+231 -209
View File
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:c5e57a44310de3ce74648ad1f5a4bf5751547875bc0c61e507e3c7704eebb9d0"
"signature": "sha256:a7ff3c98bbd62de00e4ac578a1ebc6606df5c76dd2d2e757a71b513d92a423c5"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -257,13 +257,13 @@
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 2,
"prompt_number": 1,
"text": [
"<IPython.core.display.HTML at 0x7f00445d3898>"
"<IPython.core.display.HTML at 0x7f167808a978>"
]
}
],
"prompt_number": 2
"prompt_number": 1
},
{
"cell_type": "heading",
@@ -310,14 +310,14 @@
"\n",
"class DogSensor(object):\n",
" \n",
" def __init__(self, x0=0, velocity=1, noise=0.0):\n",
" def __init__(self, x0=0, velocity=1, variance=0.0):\n",
" \"\"\" x0 - initial position\n",
" velocity - (+=right, -=left)\n",
" noise - scaling factor for noise, 0== no noise\n",
" variance - variance in measurement\n",
" \"\"\"\n",
" self.x = x0\n",
" self.velocity = velocity\n",
" self.noise = math.sqrt(noise)\n",
" self.noise = math.sqrt(variance)\n",
"\n",
" def sense(self):\n",
" self.x = self.x + self.velocity\n",
@@ -326,13 +326,15 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
"prompt_number": 2
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The constructor `_init()__` initializes the DogSensor class with an initial position `x0`, velocity `vel`, and an noise scaling factor. The `sense()` function has the dog move by the set velocity and returns its new position, with noise added. If you look at the code for `sense()` you will see a call to `numpy.random.randn()`. This returns a number sampled from a normal distribution with a mean of 0.0. Let's look at some example output for that."
"The constructor `_init()__` initializes the DogSensor class with an initial position `x0`, velocity `vel`, and an noise scaling factor. The `sense()` function has the dog move by the set velocity and returns its new position, with noise added. If you look at the code for `sense()` you will see a call to `numpy.random.randn()`. This returns a number sampled from a normal distribution with a mean of 0.0. and a standard deviation of 1.0. *Variance* is defined as the standard deviation squared, so in `__init()__` we take the square root of the variance to get the standard deviation. Therefore the expression `self.x + random.randn() * self.noise` computes a number with the variance that we desire. \n",
"\n",
"Let's look at some example output for that."
]
},
{
@@ -351,14 +353,14 @@
"output_type": "stream",
"stream": "stdout",
"text": [
"-0.4981\t-0.0555\t-1.0808\t 0.3023\t 2.7174\t\n",
" 0.7017\t 0.1831\t 0.3057\t-0.5140\t 0.0210\t\n",
" 0.0418\t-0.1166\t-0.5818\t 1.1765\t 0.9700\t\n",
" 1.1401\t-1.0132\t-0.4607\t 1.7878\t 1.6513\t\n"
"-0.2367\t 0.2690\t 0.2938\t 1.7591\t-0.3278\t\n",
"-0.3011\t-0.2756\t-1.0273\t-0.4946\t 1.4776\t\n",
" 1.7101\t-0.7903\t-1.3902\t 0.1243\t-1.4785\t\n",
" 0.3633\t-2.3127\t-0.5851\t-1.6827\t-1.1897\t\n"
]
}
],
"prompt_number": 4
"prompt_number": 3
},
{
"cell_type": "markdown",
@@ -366,7 +368,7 @@
"source": [
"You should see a sequence of numbers near 0, some negative and some positive. Most are probably between -1 and 1, but a few might lie somewhat outside that range. This is what we expect from a normal distribution - values are clustered around the mean, and there are fewer values the further you get from the mean.\n",
"\n",
"Okay, so lets look at the output of the `DogSensor` class. We will start by setting the noise to 0 to check that the class does what we think it does"
"Okay, so lets look at the output of the `DogSensor` class. We will start by setting the variance to 0 to check that the class does what we think it does. Zero variance means there is no noise in the signal, so the results should be a straight line."
]
},
{
@@ -376,7 +378,7 @@
"import matplotlib.pyplot as plt\n",
"import matplotlib.pylab as pylab\n",
"\n",
"dog = DogSensor (noise=0.0)\n",
"dog = DogSensor (variance=0.0)\n",
"xs = []\n",
"for i in range(10):\n",
" x = dog.sense()\n",
@@ -401,11 +403,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAr4AAAF2CAYAAACI1JsxAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VPW9//H3ZLKApJBkElAhskOCcBEXZDGTsiqrF8Fr\ny+8itlqqqBd9iAtUFhvLIi5tb6/WKwhewIJswi0UMPfBTYzgfSiLjwciqewDli0kKEjMZDK/P+hM\nCWQ5mSXnzMzr+Vcyc2bOlw+jvHJy5oytuLjYKwAAACDKxZm9AAAAAKAxEL4AAACICYQvAAAAYgLh\nCwAAgJhA+AIAACAmEL4AAACICYQvAAAAYkKd4Zufn68HHnhAPXr00LRp0/y3u91uTZ8+XbfeeqsG\nDBigv/zlL2FfKAAAABCM+LrubN68uR555BFt375d5eXl/tuXLFmiAwcOqLCwUPv27dMvf/lL9erV\nS9dff33YFwwAAAAEos4jvr1799aQIUPUokWLardv3rxZEyZMUHJysnr37q1evXrpo48+CutCAQAA\ngGDUecTXx+ut/qnGR44cUfv27TV16lQNHDhQHTt21OHDh8OyQAAAACAUDL25zWazVfv+0qVLuu66\n6/T111/r9OnTatasmb7//vuwLBAAAAAIhYCO+DZt2lSXLl3S+vXrJUkvv/yymjVrds3jXC5XCJYI\nAAAA1C8zM7PO+w2F79VHfNu1a6eDBw/q5ptvliQdPHhQgwYNqvGx2dnZRnYR0xwOh9auXavc3Fyz\nl2JpzMk4ZmUMczKGORnHrIxhTsYxq+oqKj1a/fHX+v363XKduSBJ6nxjil6c4FTrhHP1Pr7O8K2q\nqpLb7ZbH45HH41FFRYXi4uI0bNgwLV26VAMGDNC+ffu0Z88ezZs3LzR/IgAAAOAKtQXv0/fdqpF3\ntlfLjAwVFRXV+zx1hu+HH36o6dOn+7/fsGGDnnjiCT366KM6dOiQcnNz1aJFC82ZM0etWrUK8o8E\nAAAA/EN9wWuPa9hnsdUZvvfdd5/uu+++Gu+bM2eO5syZ06CdoXacEmIMczKOWRnDnIxhTsYxK2OY\nk3GxOKtQB6+PoXN8EX7Z2dkqKSkxexmWx5yMY1bGMCdjmJNxzMoY5mRcLM0qXMHrQ/gCAADAVOEO\nXh/Tw7esrExut9vsZZiqtLRUklRZWWnySqytoXPyer1KTU1VQkJCOJcFAAAC1FjB62Nq+Po+9CIj\nI8PMZSBKVVVV6fTp03I4HMQvAAAW0tjB62Nq+F64cIHoRdjExcWpZcuWOnv2rFq2bGn2cgAAiHlm\nBa+PqeFrs9mu+XAMIJTi4uJ4jQEAYDKzg9fH9HN8AQAAEJ2sErw+hC8AAABCymrB60P4AgAAICSs\nGrw+5u49yrRp00arVq0yexlh16dPH73xxhtBPcdTTz2lcePGhWhFAADATBWVHr2/bb+cUz/Qsws/\nluvMBXW+MUVvPjFQ/zN/rO7t29H06JU44osAbNq0SU2bNq3xPpfLpb59+2r16tXq06dPrc/x8ssv\ny+PxhGuJAACgEVj9CO/VCF80WFpaWr3beL3eOu9PTk4O1XIAAEAji7Tg9bHmqiJAeXm5pk6dqq5d\nu+rWW2/Vn/70p2u2+dvf/qaHH35YXbt2VdeuXfWLX/xCp0+frrbNokWL1KtXL3Xt2lWzZs3S2LFj\n9fTTTxteh8vlUps2bfTmm29qwIAB6tixo37yk5/oxIkT1bZbvny5+vfvr/bt2+uuu+7SypUrq93/\n7bff6sknn1TPnj3VqVMnDRw4UOvWrau2jdPpVJs2bdSmTRu9/vrrNa6jb9++kqT777/fv+2nn37q\n3+7555/3317bqQ5btmzRoEGD1KFDB/Xu3Vv/8R//Ue3+cePG6eWXX9aTTz6pLl26qG/fvtqyZYvh\nmQEAgMBEyikNtbH8Ed/W/++dsDzvieW/COrxv/3tb/U///M/evfdd5WSkqLp06dfs80TTzyh8vJy\nrV69Wl6vV88995yeeOIJffDBB5KkTz75RC+99JJ+/etfy+l06p133tHOnTvVtm3bBq9n0aJFeuON\nN5SRkaFp06bpySef1Nq1a/37eeGFFzR79mwNHDhQ+fn5mjp1qtq1a6c777xTkvTqq6/qs88+0+LF\ni9WyZUsVFxf7P1nPZ/369aqsrNTw4cOvuTZu69attWfPHp04cUIjRozQwoULdfvtt0uSWrRo4d9u\nxowZmjp1qmbOnKmzZ89e8+c4dOiQJk2apMcee0wPPPCAdu7cqeeff16tWrWqFsrvv/++8vLy9Mwz\nz+iVV17RM888o9zcXDVp0qTBswMAAHWL1CO8V7N8+FrVsmXLNHnyZPXv31+S9OKLL2rMmDH++4uL\ni/V///d/+vDDD9WjRw9J0ksvvaSxY8fqwIED6tSpk/7rv/5LOTk5euihhyRJs2fP1vr16wNaz89/\n/nM5nU5J0syZMzV69Gh9/fXX6ty5s9577z3l5OTo4YcfliT94he/0EcffaTFixf7w/fYsWPq1KmT\nbr31VkmX36h3tdTUVEmS3W6/5r64uDilp6fr0qVLkqSUlBSlp6dfs11ycrKSk5OVlJRU4+kQy5cv\nV9u2bfXCCy9Iktq3b68dO3ZoyZIl1cI3NzdXY8eOlSQ99thj2rBhg44ePaquXbsanBgAAKhPtASv\nj+XDN9gjs+FQVlamsrIyZWVl+W/r1q1btW0OHz4sSbr55pv9t/m+PnTokDp16qRDhw4pNzfXf39S\nUpLatWsX0JquXIsv/g4fPqzOnTvr8OHD1fbjW8v27dv9348fP16PPfaYhg4dqjvvvFP9+vXTPffc\n0+ifenb48GFlZ2dfs9bNmzdXu61Dhw7+r1NSUiRd/nsBAADBi7bg9bF8+FpRqGKwpuep701hDXku\nI/f5DB06VJ999pk+/vhjffLJJ3riiSc0evTooC9b1lA2m83QDOLjr33pBjo7AABwWbQGr09kr94k\nLVq0UFpamr766iv/bfv27au2je/I7d69e/23+b5u3769pMtHLb/88kv//eXl5f4jxQ115Vr2799f\nbQ3t2rWrth/fWnzr8ElLS9O9997rP2d206ZNDV5HQkKCJKmysrLebWsK8nbt2lX7s9S2VgAAEDqR\n/qY1ozjiG6AJEyZo4cKF6tmzp1JTU/Wb3/ym2v1ZWVnq3bu3Zs2apXnz5snr9WrWrFnq27evOnfu\nLEl68MEH9cADD2jx4sXKycnRokWL5Ha7A1rP4sWL1aNHD6WnpysvL0933HGHunTp4t/PT3/6Uy1a\ntEgDBgxQfn6+duzYodWrV/sf/9prr6lbt27KysrSxYsXtXXrVnXv3t1/f3l5ub799ltJl6P2woUL\n/itUtGzZ0r9dy5YtlZycrI0bN6pHjx5KSkpSUlKSbDabqqqq/G9oKy8vV0VFhc6cOSOv16vU1FQl\nJCRo/PjxWrhwoebOnat/+Zd/0a5du7R+/XrNmzev2p+Xo7sAAAQv2o/wXo3wDdCUKVN0+vRpPfzw\nw2rWrJmeffZZ7dy5s9o2f/jDH/Tiiy/635TldDqrBXK/fv300ksv6fe//73mzZunCRMmqGfPnkpM\nTGzweh566CHNmDFDx48f1+23317tcmN33XWX5s6dq7feekt5eXlq3bq1FixYUO0DJpKSkrRgwQId\nO3ZMTZs2VZ8+fTR79mz//evXr9czzzwj6fKR2rfffltvv/22bDabXC6Xf7u4uDgtWLBAr7zyim65\n5Ra53W7/h1mcOHHCf7kz3/P06tVLNptNq1atUp8+fdSxY0f98Y9/1IIFC/Sf//mfSk9P15QpU3T/\n/fdX+/NefbS4sc9FBgAgksVa8PrYiouLw3bozOVyXfNGpSudOXNGGRkZ4dp9ROrdu7ceeughTZ48\n2dD2Rj8pLZbF4uvM4XBIkkpKSkxeibUxJ2OYk3HMyhjmZFyoZxWtwetwOFRUVKTMzMw6t+OIr8le\nffVVDRkyRC1atNCaNWtUUlKi0aNHm70sAAAQRaI1eBuK8DXZF198ocWLF6uiokJdu3bVe++9V+M1\ndOvCr/kBAEBNCN7qCF+TLV26NKjHZ2ZmVjvHFgAAgOCtGeELAAAQJQjeuhG+AAAAEY7gNcbU8PV6\nvfJ6vZyjirCpqqrimr8AgKhF8DZMUOH7+eef6+WXX9bRo0fVvn17zZkzR1lZWYYfn5ycrPPnzysl\nJSWYZQA1qqqq0unTp/2XggEAIFoQvIEJOHwrKir01FNP6bnnntOoUaP0xz/+UVOmTNGWLVsMP8d1\n113n//SuWBYff/mvwcjH/Mayhs7J6/XK4XD4P0YZAIBIR/AGJ+DwPXTokC5duuS/5uzPf/5z/e53\nv9Nf//pX/0flGsHRXi7kbRRzAgDEKoI3NEJ2jq/vXN1jx441KHwBAABQswq3R8vy92ru+x8TvCEQ\ncPh26NBBTZs21YcffqgRI0Zo0aJFstvtunTpUrXtOL+yfr5fxTOrujEn45iVMczJGOZkHLMyhjnV\nzxe8r6xcpSMnyyRJWTc5NH18f43NyZLdTvBeyehpjQGHb2Jion73u9/pN7/5jebNm6cRI0aoTZs2\nSk5OrrZdXl6e/2un06nc3NxAdwkAABDVfME7f8V2HT11XpKUfVO6po3vR/BepaCgQIWFhZIku90u\np9NZ72NsxcXFIbnWU2lpqXJzc7V582bdeOONkiSXy6Xs7OxQPH1U49xVY5iTcczKGOZkDHMyjlkZ\nw5yuVds5vDMedGpsTpbKykpNXqG1ORwOFRUVKTMzs87tgjrH99ChQ2rTpo0uXbqkvLw89enTxx+9\nAAAAqFt9b1prmZFh8gqjS1Dhm5+fr4ULF6qyslJOp1OvvPJKqNYFAAAQtbhKgzmCCt9JkyLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7f002d8fe208>"
"<matplotlib.figure.Figure at 0x7f1669269240>"
]
}
],
"prompt_number": 5
"prompt_number": 4
},
{
"cell_type": "markdown",
@@ -420,8 +422,8 @@
"cell_type": "code",
"collapsed": false,
"input": [
"def test_sensor(noise_scale):\n",
" dog = DogSensor(noise=noise_scale)\n",
"def test_sensor(variance):\n",
" dog = DogSensor(variance=variance)\n",
"\n",
" xs = []\n",
" for i in range(100):\n",
@@ -432,11 +434,11 @@
" plt.xlabel('time')\n",
" plt.ylabel('pos')\n",
" plt.ylim([0,100])\n",
" plt.title('noise = ' + str(noise_scale))\n",
" plt.title('variance = ' + str(variance))\n",
" plt.legend(loc='best')\n",
" plt.show()\n",
" \n",
"test_sensor(4.0)"
"test_sensor(variance=4.0)"
],
"language": "python",
"metadata": {},
@@ -444,13 +446,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAuAAAAGWCAYAAAA5TTZIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xdc1WX/x/HX4bC3IrhAQLQkyYWjXIjbtKxcWWnastvb\nrNQszYZmtrX8WVne3VaaaZql5tYcae6VW1RAXIAMZXM45/z+IM8dgVsZ8n4+Hj4enO+4vp8vfpN3\nF9f3ugyHDx+2IiIiIiIixcKupAsQERERESlPFMBFRERERIqRAriIiIiISDFSABcRERERKUYK4CIi\nIiIixUgBXERERESkGCmAi4iUoFdffZW2bduWdBkiIlKMFMBFREqQwWDAYDCUdBkl4r///S916tTh\n0UcfvaF2YmNjGTRoEI0aNaJp06aMHDmS5OTkm1SliMjNZ9BCPCIiJcdsNmOxWHBwcCjpUorVuXPn\n6Ny5Mzk5OdSrV4/vv//+utpJTU3lgQceAOCpp54iKyuLadOmERgYyNy5czEajTezbBGRm8K+pAsQ\nESnPjEZjuQyJEydOpHnz5uzbt++G2pkxYwYJCQn89NNP1K1bF4AaNWowbNgwFi9ebAvnIiKliYag\niIhcxvz586lTpw5//vknQ4cOpVGjRkRGRvKf//yn0LFms5kpU6bQvn17wsLCaNOmDe+//z45OTkF\njktOTqZOnTq2P5cbA56RkcH7779Pu3btqFevHq1bt2bw4MEcOnSo0LHr16/n0UcfpWHDhoSHh/Ov\nf/2LmJiYG/4e3Gx79+5l0aJFDB8+/IbbWr16NXfccYctfAN06tQJd3d3Vq1adcPti4jcCuoBFxG5\nCq+88optfPHSpUv56KOPqFmzZoHwPG7cOObMmUPHjh156qmn2LdvH9OnTyc6OpqpU6fajnN3d+fD\nDz8EYM6cOZw5c+aS1x03bhwLFy7kscceIzQ0lKSkJDZt2sT+/fupU6eO7bhffvmFV199lSZNmjBi\nxAiysrKYNWsWjz76KAsXLqRSpUrXdL9XGkNtNBrx8vK6pjYBrFYr77zzDn369CEwMPCaz/87s9nM\n0aNH6datW6HaateuXeT/pIiIlAYK4CIiVyEiIoJXX30VgO7du9OyZUtWr15tC+Bnzpxhzpw5dOjQ\ngcmTJ9vOc3Nz47vvvmP37t00aNAAAEdHR+6//34ANm7cyOnTpy953TVr1hAREcGYMWNs25599lnM\nZrPtc3p6OuPHj6dly5YFeuY7d+5M586d+eabbxgxYsQ13W/z5s0vu7969eqsXr36mtoEWLhwIVFR\nUXzxxRfXfO4/paamkpeXh4+PDyaTiZ49e2I0GpkzZw6VKlVSABeRUksBXETkKnTq1Mn2tYuLC8HB\nwZw9e9a2bcuWLQA89NBDBc57+OGH+e6779i8ebMtgF8LNzc3jh49Snx8PJUrV7Zt//u48Y0bN5Ke\nnk63bt0K9Fy7uroSEBDAtm3brvm606dPv+x+Z2fna24zIyODjz76iGeffZYKFSpc8/n/lJubC4CD\ngwMmk4mzZ89iNBrJy8vD0dHRtl9EpLRRABcRuQq+vr4FPru4uGAymWyf4+PjAahWrVqB4y5+/ntY\nvxYjRoxg1KhRREZGUqdOHRo2bMh9991HeHi47ZjY2FgAWw/9P9WoUeOar3vvvfdeV72X8+WXX2I0\nGhkwYMBNac/R0REAk8mEq6srq1evxmAw4OLiQm5uLk5OTjflOiIiN5sCuIjIVbCzK5l31rt27UrT\npk1Zu3Yt27dvZ+HChXz//fe888479OjRo8Cxb7/9Nv7+/oXauJ7e6sTExMvuNxqNVKxY8Zramz59\nOkOGDCElJcW23Ww2k5ubS3x8PB4eHri6ul51m97e3tjb25OUlATkj62/6Ny5c4X+p0lEpLRQABcR\nuQkuDg85depUgZcjT506BUCVKlWuu21fX1969epFr169SE5O5v7772fmzJm2AH7xZUZvb++b1nPd\nqlWry+6/1jHg586dw2QyMWnSJCZNmlRgX3x8PBEREYwePZr+/ftfdZtGo5FatWqxf//+Atvz8vI4\ncuQILVq0uOq2RESKkwK4iMhN0KxZMwwGA/Pnz6ddu3a27fPnzwcuP6TjUithWiwWMjIy8PDwsG3z\n9vbGzc2twMI9LVq0wM3Nja+//prIyEjs7e0LtJGYmFhg/PjVuNljwAMCApg6dWqBe7Varbz22mtU\nrFiRESNGEBISUui8mTNnMnPmTDp27MiwYcMK7W/Xrh2fffYZ+/btIywsDIDly5eTkZFR4O9BRKQ0\nUQAXEblOVuv/FhKuWrUqffr0Yfbs2Tz//PPce++97Nu3j/nz5xMZGUn9+vVtx27cuJFz584BEBcX\nR2ZmJgsXLrS11717dyB/dpPWrVvTqVMnQkNDcXZ25rfffuPEiRP069fP1p67uztjxoxh9OjRPPTQ\nQ3Tr1g1PT0+io6NZs2YN3bt3Z8iQIdd0bzd7DLi7uztt2rQptN3JyQlPT08iIiKKPC8lJYWYmJhL\nDol5/PHH+fHHHxk8eDBPPvkk2dnZTJs2jdDQ0ELTE4qIlBYK4CIiV3CpHup/bn/99dfx9fXl559/\nZs2aNfj4+DBw4EBefPHFAsdNnTrVNjPJxTZGjhxp+3wxgLu4uPDYY4+xceNGVq1ahdVqJSgoiHHj\nxtG7d+8CbT700EP4+fnxn//8h2nTpmE2m6lWrRoRERF06dLlxr8JJcRgMFzy+w9QoUIFZsyYwbvv\nvsunn36Kg4MDbdu2ZdSoUeVyhVERKRsMhw8ftl75sBu3atUqpk2bxoEDB+jWrRvvvvsukP/2+ptv\nvsmyZcvw8vJi5MiRBX5YfPfdd3z55ZeYTCYeeeSRIn8FKSIiIiJSVhRbD7inpydPP/00f/zxB9nZ\n2bbt33zzDUePHmX9+vUcOHCAQYMG0bBhQ6pUqcKePXv47LPPmDVrFu7u7jz66KOEhoaW6d4cERER\nESnfim1eraZNm9KhQ4dCSxcvW7aMfv364e7uTtOmTWnYsCErV6607evYsSMhISFUrlyZXr16sWTJ\nkuIqWURERETkpiv2MeB/f2kJICYmhuDgYEaMGEHbtm0JCQkhOjratq9JkyZ8++23nD17lvDwcH79\n9dfiLllERERE5KYp9pUl/vkyTVZWFq6urkRFRZGQkICbmxuZmZkF9sXFxREbG1tgn4iIiIhIWVTi\nPeAuLi5kZWWxYMECAMaPH4+bm5ttX2ZmJmPGjAFg5cqVl1wlLS4u7hZWLSIiIiKSLyAg4IbOL/YA\n/s8e8KCgII4dO0bdunUBOHbsmG3xhKCgII4fP2479ujRo9SsWfOSbYeGht6CiqWs8vHxYf78+Zec\nX1jKHz0TUhQ9F1IUPRflgzEmhphhbxC+5TeO1grDc92yyx7v4+PDhg0bbvi6xRbALRYLJpMJs9mM\n2WwmNzcXOzs7unTpwowZM4iMjOTAgQPs3r2b9957D4AuXbrwzDPPMGDAADw8PPjpp58YPnx4cZUs\nIiIiImVASno2p85lcCY5nTPJGZxNyeRMcgZnkjOoUsGVD55uhaP9/9YGMMbE4DF5Mi7z5lHZbCYP\nA3Y1AiAnB5ycbnm9xRbAf/nlF0aPHm37vHDhQoYMGcJzzz3H8ePHiYiIwMvLiwkTJtiWTK5Xrx7/\n/ve/6d+/P3l5eTzyyCOaglBEREREbL5eto+3Zm7GYr300jaBfp689HCj/A8mE5UefBBjYiJWo5EZ\n1RsxtnoL5k4einsxhG8oxoV4brW4uDgNQZECfHx8OHjwIH5+fiVdipQSeiakKHoupCh6LsqGQ3HJ\ndH7tZ0xmC3X8K1C1ohtVKrpR9a8/JrOF0dM34mC0Y8WEh7nDvwIAblOn4nD4MLt69qfl59sJ8HVn\n8yd9r3i9i0NQytwYcJHiFBoaSlJSUkmXIaWIngkpip4LKYqei9Itz2xh+FfrMZkt9GsXyntPtix8\nkMnE/tgkvv/tEMOnreeXN+/HaGdHxnPPAbBh9UEAwmtVLs7Si38aQhERERGRGzVt6V52H0+kmo8b\nrz3StMA+Y0wM3sOGUen++xnTpwlVKriy82gC36w4UOC47VHxAITXLt7fdJSbHnCTyURKSkqhWVik\n+Dk4OODt7V3SZYiIiEgZdexMKh/N2wHA+0+2wsPVESj4cqXBbMZqNOJz7DDvDmzJwIkrePfHbXQM\nDyTA1wOAHX8F8MZ3FG8PeLkI4CaTiaSkJPz8/LCzU6d/SUtNTSUzM/OSc7qLiIhI+bTp4BnOZ+TQ\nKTzwkp2mFouVEdPWk20y06tVbdo2yB+P7fHhh7j/3//Zgndm796kDR2KOTiYjsD9zWqyaMtxXvn6\nd75/pQvJadlEn72As6OR0ACfYrzLchLAU1JSFL5LES8vLxITExXARURExOZMcgZ9312CyWyhbf0A\nPn62NX7ehbPCt6sOsPVwPH7eLrz5+D227Xl/vRj59+D9d28/cS+/7zvFur2nmLchCi+3/BlPGob4\n4WBfvBmxXCRSg8Gg8F2KGAwGDQUSERGRAqYt3YvJbAHgtz1xtH1lHku2RRc45kTCBSbM3grAuwNb\nUsHd2bYvq0cPEtavJ3XSpELhG8DXy5W3+uUH9rdmbGb59hgAwmsV/0w3SqUiIiIiUqJSM3KY+dsh\nAKYP70jrsOqkpOfwzCereOnLdaRl5mK1Wpn48Xze3v8rDzcOoHPjoIKNODhgDgoq1Pbf9WxZm4i7\nq5OakcPsdUcACK9dvOO/oZwMQRERERGR0uu7VQfIyDbRKqw6HRsF0r5BDb5ZuZ93ftjKj+uPcGrb\nXt5L3MKs7Wuwx0oft/uu6zoGg4H3n2pF21fmkZmTBxT/DCigAC4iIiIiJSgrN4+vl+0HYPLine truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f002d3dca90>"
"<matplotlib.figure.Figure at 0x7f1668dae2e8>"
]
}
],
"prompt_number": 6
"prompt_number": 5
},
{
"cell_type": "markdown",
@@ -470,7 +472,7 @@
"cell_type": "code",
"collapsed": false,
"input": [
"test_sensor(100.0)"
"test_sensor(variance=100.0)"
],
"language": "python",
"metadata": {},
@@ -478,19 +480,19 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f002d3e49b0>"
"<matplotlib.figure.Figure at 0x7f1668f914a8>"
]
}
],
"prompt_number": 7
"prompt_number": 6
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"test_sensor(0.5)"
"test_sensor(variance=0.5)"
],
"language": "python",
"metadata": {},
@@ -498,20 +500,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAuAAAAGWCAYAAAA5TTZIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVPXixvHPzLCDgqKAishiCmoq4r4G7kuZmrZaaf1a\nzKxrZmmLpea9XS3La2XbTdNKc0stcyvT3Mjc0ixTBMQdwYV9mTm/P8y5kWS4wIzwvF8vXjHnnPnO\nM3CEp8P3nGPat2+fgYiIiIiIlAmzowOIiIiIiFQkKuAiIiIiImVIBVxEREREpAypgIuIiIiIlCEV\ncBERERGRMqQCLiIiIiJShlTARUQc6NlnnyUuLs7RMUREpAy5ODqAiEhFZjKZMJlMjo5RZrKyspgy\nZQorVqwgNzeXRo0aMWbMGBo0aHBF4/3nP//hrbfeumh5YGAg69atu9q4IiKlQgVcRMSBJk6ciM1m\nc3SMMvPEE0+wZcsWHnjgAQICApg9ezb33XcfixYtonbt2lc87uTJk4s89vT0vNqoIiKlRgVcRMSB\nLBYLFovF0THKRHx8PBs2bOCZZ55hyJAhAMTFxdGtWzfeffddJk6ceMVj33zzzdcqpohIqdMccBGR\nS1i0aBGRkZH89NNPjBgxgmbNmhEbG8sHH3xw0bZWq5Xp06fTpUsXGjVqxE033cSrr75KXl5eke3S\n09OJjIy0f1xqDnhWVhavvvoqnTt3pnHjxnTs2JFhw4bx66+/XrTt+vXrueuuu4iOjiYmJoZHH32U\npKSkq/4aXCvffPMNAP3797cvq1GjBm3btmXNmjVXPX5mZiaGYVz1OCIipU0FXESkBJ555hmqVKnC\n6NGjCQkJYcqUKXz77bdFthk/fjzTp0+nQYMGPPfcc7Rr146PPvqIJ554osh2Pj4+TJ48mcmTJ9O8\nefNLzgEfP348M2fOJDY2lnHjxnHPPfeQk5PDzz//XGS7L774goceegiLxcKoUaN49NFH2bdvH3fd\ndRenTp267Pebnp5+yY+zZ89e9pj79u2jZs2a+Pr6FlkeGRnJmTNnOHHixGWPeUHz5s1p3rw5MTEx\njBkz5oryiYiUFU1BEREpgU6dOvHss88C0LdvX9q3b88333xjP3p97Ngx5s2bR9euXZk2bZr9ed7e\n3nz88cfs3LmTpk2bAuDm5mafMrFx40aOHj36l6+7du1aOnXqxPPPP29f9tBDD2G1Wu2PMzMzmThx\nIu3bty9yZL5Hjx706NGDmTNnMmrUqMt6v23btr3k+lq1atmPaJdUamoq/v7+ALz44ot88803fPzx\nx1SrVg2AU6dOERgYeFlj+vr6cu+999KkSRNcXFzYuHEj8+fP55dffuHzzz/Hzc3tssYTESkLKuAi\nIiXQvXt3++eenp6EhYVx/Phx+7L4+HgA+vXrV+R5/fv35+OPP2bLli32An45vL29OXDgACdOnChS\nTv84b3zjxo1kZmbSp08f0tPT7cu9vLyoXbs2W7duvezX/eijjy653sPD47LHzM/Px8/PD4AjR45w\n9uxZMjIy7CU5Nzf3sse89957izzu3r27/S8US5YsYeDAgZc9pohIaVMBFxEpgerVqxd57OnpSUFB\ngf3xhekTNWvWLLLdhcd/LOuXY9SoUYwZM4bY2FgiIyOJjo6mV69exMTE2LdJTk4GsB+h/7OQkJDL\nft02bdpcUd5LcXNzs3/NZsyYQUZGBlWrVmX37t3AlZX64txzzz289tprbNmyRQVcRJySCriISAmY\nzY45ZaZ37960bNmS7777jh9//JGlS5fyySef8MorrzBgwIAi206YMIHg4OCLxriSYpuamnrJ9RaL\nhapVq17WmNWrV+fQoUMAuLq62p9/YY76hakoV8vDw4PKlStz5syZazKeiMi1pgIuInINXJgecuTI\nESIjI+3Ljxw5AkBQUNAVj129enUGDhzIwIEDSU9P5+abb2bOnDn2Al6nTh0A/Pz8rtmR6w4dOlxy\n/ZXMAa9Xrx7x8fGcPn2aKlWq2Jf/8ssv+Pn5Xfb877+SmZnJ2bNn7fPNRUScjQq4iMg10KpVK0wm\nE4sWLaJz58725YsWLQIuPaXjr66CYrPZyMrKolKlSvZlfn5+eHt74+rqal/Wrl07vL29+fDDD4mN\njcXFxaXIGKmpqZddbktjDniXLl2YPXs2ixcvZujQoQAcPXqUTZs20bdv32KfM2fOHObMmUO3bt0Y\nOXJkkXVWq5WsrCwqV65cZPl///tfADp27HjZGUVEyoIKuIjIFfrjNadr1KjB7bffzty5c3n88cdp\n06YNe/bsYdGiRcTGxtKkSRP7ths3brRPu0hJSSE7O5ulS5fax7tQRjMzM+nYsSPdu3cnKioKDw8P\nvv32Ww4dOsTgwYPt4/n4+PD8888zduxY+vXrR58+fahcuTKJiYmsXbuWvn37Mnz48Mt6b6UxB7xV\nq1a0a9eOqVOncvbsWQICAvj444/x8PDgkUceKfY5p0+fJikpqdgpMVlZWXTu3Jnu3btTt25dXF1d\niY+PZ9WqVbRp04bevXtf8/cgInItqICLiPyNvzpC/eflL7zwAtWrV2fx4sWsXbsWf39/hgwZwpNP\nPllkuxkzZtivTHJhjNGjR9sfXyjgnp6e3H333WzcuJE1a9ZgGAahoaGMHz+eQYMGFRmzX79+BAQE\n8MEHH/D+++9jtVqpWbMmnTp1omfPnlf/RbhG3nzzTaZMmcLnn39OTk4ON954I6+//vpf3obeZDL9\n5dffw8ODuLg44uPjWb58Ofn5+QQHBzN8+HAeeuihS15fXUTEkUz79u0rk9uGrVmzhvfff5+9e/fS\np08f/vnPfwJQUFDAuHHjWLFiBb6+vowePbrIL4uPP/6Yd999l4KCAu64446L/gQpIiIiInI9KbMj\n4JUrV+bBBx9k06ZNRa71OnPmTA4cOMD69evZu3cvDz/8MNHR0QQFBbFr1y7eeustPv30U3x8fLjr\nrruIiopyqqM5IiIiIiKXo8yuq9WyZUu6du160S2IV6xYweDBg/Hx8aFly5ZER0ezevVq+7pu3boR\nERFBYGAgAwcOZPny5WUVWURERETkmivzOeB/PGkJICkpibCwMEaNGkVcXBwREREkJiba17Vo0YJZ\ns2Zx/PhxYmJi+PLLL8s6soiIiIjINVPmd5b480kxOTk5eHl5sX//fk6ePIm3tzfZ2dlF1qWkpJCc\nnFxknYiIiIjI9cjhR8A9PT3JyclhyZIlAEycOBFvb2/7uuzsbJ5//nkAVq9ejZeXV7HjpqSklGJq\nEREREZHz/urKTSVV5gX8z0fAQ0NDSUhIoGHDhgAkJCTYb2IRGhrKwYMH7dseOHCA8PDwvxw7Kiqq\nFBLL9crf359FixbRqVMnR0cRJ6F9Qoqj/UKKo/2iYrAkJVFp2jQ8Fywgv3Vr0j7//JLb+/v7s2HD\nhqt+3TKbgmKz2cjLy8NqtWK1WsnPz6ewsJCePXsye/ZsMjIyiI+PZ+fOnXTt2hWAnj17snr1ag4c\nOMCJEydYuHChroAiIiIiIlfFkpSE38iRBHTsiNe8eQBYa9WCvLwyef0yOwL+xRdfMHbsWPvjpUuX\nMnz4cB555BEOHjxIp06d8PX1ZdKkSfZbJjdu3JjHHnuMe++9l8LCQu644w4VcBERERG5cgUFVLv1\nViypqRgWC9mDBpExYgTWsLAyi1BmN+IpbSkpKZqCIkX4+/vzyy+/EBAQ4Ogo4iS0T0hxtF9IcbRf\nXN8KCm18u/MQCzbsZ9/h09gMA8M4fy6izTD4v1+/o96547xRrzOJ3v5YbeeX2wwD4/fPH+3ThCdu\njS4y7oUpKNfdHHCRshQVFUVaWpqjY4gT0T4hxdF+IcXRfnF9MQyDn5PT+Pz7/SzeeID0jFxcbFYK\nzZaLtn3Rvzn4AwXAmeKvsJdXYC21rCrgIiIiInLdOnIqky9/OMj87/fzy6F0AMJz0nnvVDytC9L4\n9bOFuLq5YDabMJtMmEyc/y+cX/b7covZhMn0v8furhcX92ulwhTwgoICTp8+fdFVWKTsubq64ufn\n5+gYIiIich0yDIPdSadYte0Qq7Yn83Py//5K0dSUybRzP9Ju5/eYrVYMiwW3s0coaNLEgYkvViEK\neEFBAWlpaQQEBGA2l/m9h+RPzpw5Q3Z29l9e011ERETkz7b8cowvNiewevshjp/Osi/3cnfhpsa1\nmZi8lqYLZ2P6vXg74uTKkqoQBfz06dMq307E19eX1NRUFXAREREpka+3JvLgG2vsj4OqeNMtJoRu\nzerQJqoGHm4ueM49BQtx6uJ9QYUo4Ofn86h8OwuTyaSpQCIiIlIi2bkFvDh7MwB3x0VyT1wkN4ZW\nu6hL5AwYQH7r1lhDQx2Q8vKolYqIiIiI0/rP0p0cTcuiUag//44Lpv2stzDl51+8oavrdVG+oYIc\nARcRERGR68/B42eZ8dVPhOWk8+XJHdTo9CQmq5XC8HCy773X0fGumAq4iIiIiDgdwzB45z9LeXvP\nYu4/sQuLYbOfXJnXoYOj410VFXARERERcTqrtx/i3I+7eOD4jvPFe4Dzn1xZUirgIiIiIuJUcvIL\nGTd7M4f867H+5rup/8yj5aJ4X6CTMJ3c1KlTadmyJREREbRq1YpXXnnFvu7cuXOMHj2aJk2aEBUV\nxZ133sn+/fvt6+fNm0fr1q2ZO3cuzZs3p0GDBowePRqr9X+3Vi0oKODFF18kJiaGiIgI2rdvz3vv\nvVckw2+//cbtt99OREQEDRs25KmnniIrK6vINvPmzSM4OJg9e/bQp08fIiIiaNmyJT///HMpfWVE\nRESkvLAkJ2PKyLA/fmfZLg6lZhAV4k/oW/8qV+UbdATcqX399de88cYbvPPOOzRp0oSjR4Line truncated
"png": "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\nq1Z4eXmxdOlS3N3dOXLkCMOGDct3zIoVK8jKymLatGmEhobmbT9y5EiR59uwYQOnT59mxowZNGvW\nLG/7+vXrr/uc/v7+eHp6sn///r89LiwsDLg4HvrPY+RvxN13313oY8Br1qyJ3W5n79691KlTJ2/7\npQVzrvVB0SsxDINjx44V2k82REQKogIuIjc9FxcXYmNjWb58OW5ubri4uNCuXbt8x1waavHnIRdW\nq5WvvvqqyPMV9N6GYfD5559f9znNZjMdOnRgwYIFeXf+L8nOzsZqteLl5UXdunUJDQ1l5syZ9O7d\nG09Pz3znOX78OCEhIdf03kUxBjw2NpbXXnuN+fPn5xXw8+fPs2TJEpo2bXrZOHyA5cuX89Zbb9Gg\nQQNee+21y/afOXPmstlY5s+fT2pqKq1bty7U/CIif6YCLiJlQufOnfnuu+/48ssvadWq1WVFs3Xr\n1ri6ujJ48GD69OlDdnY2ixYtIjc397rfMykpiS1btgBw8OBBANauXZt3d7hhw4aEhYXRqFEj/P39\nGT16NPfffz9ms5nly5ff8DCIkSNHsn79eh5++GHuueceatSowenTp1mwYAHvvPMOtWrVwmQyMX78\neAYNGkT37t256667qFChAklJSaxatYq6devyyiuvXNP7FsUY8LCwMO6++25mzZqFyWSievXqzJs3\nj/T0dP7zn/8U+Jr09HQSEhIuGy9/yR133MEtt9xCzZo18fLyYseOHSxcuJDq1aszYMCAQv8aREQu\nUQEXkTKhZcuWeHt7c/78+cum9AOoXLkyH3zwAZMmTeLNN9/E29ubbt260apVKx566KECz3mlOb0v\n2bRpE88880y+4y9NRWgymXjllVcICwujXLlyfPzxx7z66qtMmTIl7wHRsWPH0r1798ve85/e95LA\nwEDmzp3L1KlTWbZsGbNnzyYkJIT27dvnDT0BaN68ObNmzeL9999n5syZZGZmEhISQqNGjbj33nuv\n6r2Kw/PPP4+fnx/ffvstX3/9NTVr1mTatGlER0cXePw/fZ86derEunXr+OWXX8jKyiIwMJD+/fvz\n+OOP4+7uXhRfgogIAKZ9+/YV/dM9XBxf+dFHH7Fnzx66deuWd0fFarUybtw4lixZgo+PD6NGjcr3\nl+Pnn3/Ohx9+iNVq5d5772XkyJHFEVdEREREpEgU2x3wcuXK8cgjj7Bu3bp887V+9tlnHDhwgNWr\nV7Nnzx4GDRpETEwMwcHBbN++nffee49Zs2bh5eXFfffdR1RUVIF3r0RERERESoNrXy3iOjVt2pQO\nHTrg4+OTb/uSJUvo378/Xl5eNG3alJiYGJYvX5637/bbbycyMpKgoCB69+7Njz/+WFyRRUREREQK\nXbGPAf/rfLYJCQmEh4fz5JNPEhsbS2RkJIcOHcrb16RJE2bMmMGJEydo1KgR33//fXFHFhEREREp\nNMV2B/ySvz4Uk5mZiYeHB/v37+fkyZN4enqSkZGRb19SUhKJiYn59omIiIiIlEYOvwPu7u5OZmYm\nCxcuBGDChAl504O5u7uTkZHBc889B1yc09XDw6PA8yYlJRVhahERERGRi/48k9T1KPYC/tc74FWr\nViU+Pj5vYYX4+Pi8BTKqVq2aN3cuwIEDB4iIiLjiuaOiooogsZRWAQEBzJ8/nzZt2jg6ipQQuiak\nILoupCC6LsoGS0ICx0e9SN1fl7PWPxzLskVEhvhe8fiAgADWrl17w+9bbENQ7HY72dnZ2Gw2bDYb\nOTk55Obm0rlzZ2bOnEl6ejpxcXFs27aNDh06ABcXzli+fDkHDhwgOTmZb775RjOgiIiIiMgNsSQk\n4DtyJBVatSb612UAhDSoSaR/8awBUGx3wBcsWJBvQYrvvvuOoUOHMnjwYA4ePEibNm3w8fFh4sSJ\nBAUFAVC/fn0ee+wxBgwYQG5uLvfee68KuIiIiIhclczsXOKPp1Lex53y5dxxspjBaqX8nXdiOXWK\nXJOZGcHR7L9/IENH3FVsuYptIZ6ilpSUpCEokk9AQAC///77FZehlrJH14QURNeFFETXRen3++Ez\n9HttMcmpFyfwMJtMlPdxI8jXk8fiVxF47DBPBTTFt0EU857rhouT5R/PeWkIyo2OAS/2WVBEipP+\nUSZ/pWtCCqLrQgqi66L02rjvBL1eWkTKmXSC/TwoX84du2FwMjWTnQmnGWypw11hnTkbVIn/Pt7u\nqsp3YSr2hzBFRERERIrKsi2JvP7qXCbF/0xr4yzmdb/g5uaCNdfOqbQMklMzSD6bwam0TG6pFUyl\nAK9iz1hmCrjVauXs2bOXzcIixc/Z2Rlf3ys/YSwiIiJyPZZ8vRLT65PYcXwbThgYFgun9/2OtUED\nnJ3MVAzwoqIDCvdflYkCbrVaSUlJITAwELNZo24cLTU1lYyMjCvO6S4iIiJyrfY9+iQDfpLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7f002d4c66d8>"
"<matplotlib.figure.Figure at 0x7f1668efb4e0>"
]
}
],
"prompt_number": 8
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"You may not have a full understanding of the exact *meaning* of a noise value of 100.0, but as it turns out if you multiply `randn()` with a number $n$, the result is just a normal distribution with $\\sigma = \\sqrt{n}$. So the example with noise = 100 is using the normal distribution $\\mathcal{N}(0,100)$. Recall the notation for a normal distribution is $\\mathcal{N}(\\mu,\\sigma^2)$. If the square root is confusing, recall that normal distributions use $\\sigma^2$ for the variance, and $\\sigma$ is the standard deviation, which we do not use in this book. `DogSensor.__init__()` takes the square root of the noise setting so that the `noise * randn()` call properly computes the normal distribution."
]
"prompt_number": 7
},
{
"cell_type": "heading",
@@ -533,7 +528,7 @@
"collapsed": false,
"input": [
"import stats\n",
"stats.plot_gaussian(23, 5)"
"stats.plot_gaussian(mean=23, variance=5)"
],
"language": "python",
"metadata": {},
@@ -543,11 +538,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f002d4bae48>"
"<matplotlib.figure.Figure at 0x7f1668e3a898>"
]
}
],
"prompt_number": 9
"prompt_number": 8
},
{
"cell_type": "markdown",
@@ -564,7 +559,7 @@
"cell_type": "code",
"collapsed": false,
"input": [
"dog = DogSensor(23, 0, 5)\n",
"dog = DogSensor(x0=23, velocity=0, variance=5)\n",
"xs = range(100)\n",
"ys = []\n",
"for i in xs:\n",
@@ -580,13 +575,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f002d8fe080>"
"<matplotlib.figure.Figure at 0x7f16692693c8>"
]
}
],
"prompt_number": 10
"prompt_number": 9
},
{
"cell_type": "markdown",
@@ -653,19 +648,25 @@
"import numpy as np\n",
"\n",
"def multiply(mu1, var1, mu2, var2):\n",
" if var1 == 0.0:\n",
" var1=1.e-80\n",
" \n",
" if var2 == 0:\n",
" var2 = 1e-80\n",
" \n",
" mean = (var1*mu2 + var2*mu1) / (var1+var2)\n",
" variance = 1 / (1/var1 + 1/var2)\n",
" return (mean, variance)\n",
"\n",
"xs = np.arange(16, 30, 0.1)\n",
"\n",
"m1,v1 = 23, 5\n",
"m, v = multiply(m1,v1,m1,v1)\n",
"mean1, var1 = 23, 5\n",
"mean, var = multiply(mean1, var1, mean1, var1)\n",
"\n",
"ys = [stats.gaussian(x,m1,v1) for x in xs]\n",
"ys = [stats.gaussian(x, mean1, var1) for x in xs]\n",
"plt.plot (xs, ys, label='original')\n",
"\n",
"ys = [stats.gaussian(x,m,v) for x in xs]\n",
"ys = [stats.gaussian(x, mean, var) for x in xs]\n",
"plt.plot (xs, ys, label='multiply')\n",
"\n",
"plt.legend(loc='best')\n",
@@ -679,11 +680,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAtEAAAF2CAYAAACoOMTMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VNX9//HXnclkmWwkkw1ICGAgLAGTsKsBRBBB64Io\nFKFaFbXaqqhFq8W6YxXqVmuLP6xUURE3kNUdRJB9EZEk7CEsWcm+z/z+iKTNV0jIerO8n4+HD5O5\n9577nsM8kk/OnDnHSExMdCEiIiIiIufMYnYAEREREZHWRkW0iIiIiEgdqYgWEREREakjFdEiIiIi\nInWkIlpEREREpI5URIuIiIiI1JGKaBERERGROqq1iD5x4gTTpk0jNjaWCRMmkJycXGuj33//Pb/6\n1a8YMGAAw4YN48EHH6SgoKDq+MaNGxk7dixxcXHcdddd5OfnN+xZiIiIiIg0o1qL6FmzZhEdHc2m\nTZsYN24cM2bMqLXR8847j//3//4fW7du5YsvviAjI4N58+YBUFRUxD333MPdd9/Nhg0bMAyDuXPn\nNvyZiIiIiIg0kxqL6Pz8fNavX8/06dNxd3fnxhtvJDU1laSkpBobDQ4OJjQ0FIDy8nJcLhfe3t5A\n5Si0n58fl19+OZ6entx8882sWLGikZ6OiIiIiEjTq7GIPnz4MO7u7tjtdqZMmcLRo0fp0qULBw4c\nqLXhY8eOMWDAAIYMGYKfnx+33XYbAAcPHqR79+5s3bqVW265hcjISHJycsjOzm6cZyQiIiIi0sRq\nLKKLiorw9vamoKCA/fv3k5ubi7e3N0VFRbU23KlTJ7Zu3crnn3/OoUOHePfddwEoLCzEbreTkZHB\n/v37cXd3r3pcRERERKQ1cKvpoJeXFwUFBYSFhbFx40YACgoKsNvt53yDiIgIbrvtNubPn8+vf/1r\n7HY7hYWFjB07lrFjx5KTkwNwxjZTUlLq8lxEREREROolIiKiTufXWERHRkZSUlLCyZMnCQ0NpbS0\nlCNHjtCtW7c63cTpdOJyuQDo2rVr1ag0wL59+/D39ycgIOCM1/bu3btO95KGczgcfPTRR4wYMcLs\nKO2S+t9c6n/zqO/Npf43l/rfPA6Hg3Xr1tX5uhqnc/j4+HDRRRcxb948SkpKePPNN+ncuTM9e/as\nOmfatGnMmTOn2nXLly8nMTERp9PJsWPHeOONNxg+fDgAQ4cOJS8vj2XLllFYWMgbb7zB+PHj6xxc\nRERERMQstS5x98QTT5CUlMTgwYNZtWoVL7zwQrXjqampZGZmVnvs1KlT3H333QwYMIBJkyYxcOBA\n7rzzTqByishLL73EK6+8wgUXXADA/fff31jPR0RERESkyRmJiYkus0OcTUpKiqZzmMDhcPDTTz8R\nEhJidpR2Sf1vLvW/edT35lL/m0v9b57T0znqOida237LGemPF3Op/82l/jeP+t5c6n9zqf9bFxXR\nIiIiIiJ1VOPqHCIiIiLtSVlZGdnZ2RiG0az3Pb3pXHl5ebPetz1wuVwEBARgs9katV0V0SIiIiJU\nFtCZmZmEhIRgsejN+rbC6XSSlpaGw+Fo1EJarxARERERKkeDVUC3PRaLhZCQkKrR/kZrt1FbExER\nEWmlDMNQAd1GWSyWRp+io1eKiIiIiEgdqYgWEREREakjFdEiIiIiInWkIlpEREREqgkPD2fx4sUN\namPixIncd999jZSoutdff53w8HDCw8MZOnRok9yjNlriTkRERESq2bFjBz4+Pg1qY/78+Vit1kZK\nVN3UqVO55pprWLJkCa+//nqT3KM2KqJFREREpJqgoKAGt+Hv798ISc7My8sLLy+vBhf6DaHpHCIi\nIiJtwEsvvcTAgQPp3r07o0eP5osvvvjFOUOGDOH5559n9uzZ9O/fn6ioKGbOnFl1vHv37lXTJN5/\n//1fXJ+Tk8P06dOJioriggsu4D//+Q/h4eF8//33VefccMMNVW3MmDHjF23MnTuXiRMn8vLLL3P+\n+efTv39/nn/++WrnvPrqq4wePZoePXrQt29fbr/9do4fP96Q7ml0GokWERERqYPONzTN9IHUhdPr\nfe2iRYt4+eWXef7554mLi+Pdd99l+vTpfPPNN0RGRladZxgGixcv5pJLLuH999/H5XKxc+fOquOb\nN2/G6XQSFxd3xnWVH330Ufbs2cO7776LzWZjxowZvzjvtddeo6SkhFtvvfWsazPv3LmT2NhYlixZ\nwqpVq3jqqacYPXo0cXFxAOTm5jJz5kyio6PJy8tj1qxZ3H777SxdurTefdTYNBItIiIi0sotWLCA\na6+9lgkTJtCtWzcefvhhOnXqxNtvv13tPJfLhcPhYPbs2fTq1YvevXszefLkquMOh4Pg4OAz3iM3\nN5clS5Ywc+ZMBg0aRGxsLPfeey8ul6vaeX5+fgQHB9e4xbafnx+PPPIIXbt25Y477sDX17daMf+n\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f00254d8710>"
"<matplotlib.figure.Figure at 0x7f1668150978>"
]
}
],
"prompt_number": 11
"prompt_number": 10
},
{
"cell_type": "markdown",
@@ -704,18 +705,18 @@
"input": [
"xs = np.arange(16, 30, 0.1)\n",
"\n",
"m1, v1 = 23, 5\n",
"m2, v2 = 25, 5\n",
"m, s = multiply(m1,v1,m2,v2)\n",
"mean1, var1 = 23, 5\n",
"mean2, var2 = 25, 5\n",
"mean, var = multiply(mean1, var1, mean2, var2)\n",
"\n",
"ys = [stats.gaussian(x,m1,v1) for x in xs]\n",
"plt.plot (xs, ys, label='measure 1')\n",
"ys = [stats.gaussian(x, mean1, var1) for x in xs]\n",
"plt.plot(xs, ys, label='measure 1')\n",
"\n",
"ys = [stats.gaussian(x,m2,v2) for x in xs]\n",
"plt.plot (xs, ys, label='measure 2')\n",
"ys = [stats.gaussian(x, mean2, var2) for x in xs]\n",
"plt.plot(xs, ys, label='measure 2')\n",
"\n",
"ys = [stats.gaussian(x,m,v) for x in xs]\n",
"plt.plot(xs, ys,label='multiply')\n",
"ys = [stats.gaussian(x, mean, var) for x in xs]\n",
"plt.plot(xs, ys, label='multiply')\n",
"plt.legend()\n",
"plt.show()"
],
@@ -727,11 +728,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f00254313c8>"
"<matplotlib.figure.Figure at 0x7f166802a438>"
]
}
],
"prompt_number": 12
"prompt_number": 11
},
{
"cell_type": "markdown",
@@ -754,17 +755,17 @@
"input": [
"xs = np.arange(0, 60, 0.1)\n",
"\n",
"m1, v1 = 10, 5\n",
"m2, v2 = 50, 5\n",
"m, v = multiply(m1,v1,m2,v2)\n",
"mean1, var1 = 10, 5\n",
"mean2, var2 = 50, 5\n",
"mean, var = multiply(mean1, var1, mean2, var2)\n",
"\n",
"ys = [stats.gaussian(x,m1,v1) for x in xs]\n",
"ys = [stats.gaussian(x, mean1, var1) for x in xs]\n",
"plt.plot (xs, ys, label='measure 1')\n",
"\n",
"ys = [stats.gaussian(x,m2,v2) for x in xs]\n",
"ys = [stats.gaussian(x, mean2, var2) for x in xs]\n",
"plt.plot (xs, ys, label='measure 2')\n",
"\n",
"ys = [stats.gaussian(x,m,v) for x in xs]\n",
"ys = [stats.gaussian(x, mean, var) for x in xs]\n",
"plt.plot(xs, ys, label='multiply')\n",
"plt.legend()\n",
"plt.show()"
@@ -777,11 +778,11 @@
"output_type": "display_data",
"png": "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\nV18NwPjx4wE4duwYL7/8Mq+99hqzZs0CYM2aNbz00ku89NJLrFq1KtBvT0goiRYRERHpNNAZ48ES\nHx/v/+j7PC4ujtbWVgD279+PaZpcddVV3R7X2tpKaWkpAE6nk8cff5y33nqLiooK2traaG1tZebM\nmf7jb7zxRl544QUWLFjAlVdeydy5c7nuuuv6XS4xd+7c827bv38/ADfffHO3210uFyUlJf06Tygo\niRYRERGxqLNngJOTk3njjTfOOyY1NRXwzkzv3LmTdevWMWnSJGw2G3fccQcej8d/bH5+Pnv27GHn\nzp2899573HfffWzatImtW7cCFy7bOPvx50pOTr7ofX/4wx9ITEzsdtuIESMueny4URItIiIiYnF5\neXk0NjbS1tbGlClTLnjMnj17WLFihb+8wul0UlZWRl5eXrfjkpKSuOaaa7jmmmsoLCxk1apV1NfX\nk5qa6k+Km5ub/ceXlZUF1BnDN/NdUVHBV77ylYCeZzhRdw4RERERi1uwYAGzZ8/me9/7Hjt27KCk\npIQdO3bwox/9iOPHjwMwadIkXnnlFQ4dOsTBgwdZvXo1HR0d3cZ56qmnePHFFzly5AiHDx/m5Zdf\nJicnxz+bnZyczMSJE3nhhRcAOHDgAH/+858DinXy5Mlcf/313HvvvbzxxhuUlJSwe/dufvrTn7J7\n9+4+j9PW1sb+/fvZv38/brebiooK9u/f361zyGDSTLSIiIhImDt7pvdCnxuGwe9+9zseeeQR1qxZ\nQ319PZmZmSxcuJC0tDQAHnjgAe655x6uv/56kpOTWblyJU1NTd3OM2LECDZs2MDx48ex2Wzk5+fz\n7LPPdjvmn//5n7nnnnv4r//6L2bPns3SpUt55513eoz5XE888QTr16/ngQceoLKykvT0dObNm9fn\nhYwAZ86c4Zprrun2/H/3u99xyy23DMnGK8ahQ4cuvJwyDJw8eZIZM2aEOgwJUEZGBgA1NTUhjkT6\nQ9fPunTtrE3Xb/BVVVX5O1fI8HOx65+RkcHOnTsZN25cQOOpnENEREREJEBKokVEREREAqQkWkRE\nREQkQEqiRUREREQCpCRaRERERCRASqJFRERERAKkJFpEREREJEBKokVEREREAqQkWkREREQkQEqi\nRUREREQCpCRaRERERCxn06ZNXH/99Vx66aXMnDmTW265hQ8//HDIzq8kWkREREQsZ/fu3dxyyy28\n8MILvPzyy2RmZrJs2TKOHz8+JOdXEi0iIiISxnbt2sXs2bNZsWIFM2bMYOPGjVx99dVcfvnlvPvu\nu/7jGhsbueeee5g1axYzZszgtttu4/Dhw/77jxw5wre//W0KCgqYNGkSixYtYtOmTd3O1dbWxv33\n309hYSGTJ09m/vz5bNiwwX//yZMnGTt2LOXl5f7b1q9fz7x587qNs3nzZsaOHcv+/fu57rrrmDx5\nMkVFRRw4cAAAt9vNww8/TGFhIZdccgk33HBDwLPITzzxBMuXL2fGjBlMmTKFf/qnf6KlpYW//OUv\nAY3TX9FDchYRERERC9h8YPmgjPvNmc8N6PFVVVXceeed5Obmsm7dOrZs2cK2bdvYsGEDCxYswDRN\nli9fTkxMDM8++ywpKSk89dRT3Hrrrbz77rvY7XZqa2spKChgzZo1ZGRksGPHDu69915ycnJYtGgR\nAP/xH//B1q1b2bBhAxMnTuTEiROcPHmy1/gMw7jg7T/5yU/4wQ9+wIwZM/jss8+IiYkBYO3atRw6\ndIhf//rXjBkzhhdffJHbbruNHTt2MHr06H59jxoaGgBISUnp1+MDpSRaREREJMxlZGRQVFREc3Mz\nL730EvPmzcPpdPL2228D8O6777J371727t1LZmYmAA899BBbt25l27Zt3HDDDRQVFVFUVOQfc9my\nZTz33HO8/fbb/iT65MmTZGVlMX/+fABycnL6FJ9pmhe8/e/+7u+4+uqrARg/fjwAx44d4+WXX+a1\n115j1qxZAKxZs4aXXnqJl156iVWrVgX67QHg4YcfZtKkSXzta1/r1+MDpSRaREREpNNAZ4wHS3x8\nvP+j7/O4uDhaW1sB2L9/P6ZpctVVV3V7XGtrK6WlpQA4nU4ef/xx3nrrLSoqKmhra6O1tZWZM2f6\nj7/xxht54YUXWLBgAVdeeSVz587luuuuIzY2tl9xz50797zb9u/fD8DNN9/c7XaXy0VJSUm/zvPo\no4/y/vvv8+KLLxIXF9evMQKlJFpERETEos6eAU5OTuaNN94475jU1FTAOzO9c+dO1q1bx6RJk7DZ\nbNxxxx14PB7/sfn5+ezZs4edO3fy3nvvcd9997Fp0ya2bt0KXLhs4+zHnys5Ofmi9/3hD38gMTGx\n220jRoy46PEX8+STT7Jx40Y2b97MlClTAn58fymJFhEREbG4vLw8GhsbaWtru2giuWfPHlLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7f00202cdbe0>"
"<matplotlib.figure.Figure at 0x7f1668019e10>"
]
}
],
"prompt_number": 13
"prompt_number": 12
},
{
"cell_type": "markdown",
@@ -852,27 +853,18 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 14
"prompt_number": 13
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Kalman filters are supposed to be hard! But this is very short and straightforward. All we are doing is multiplying the Gaussian that reflects our belief of where the dog was with the new measurement. Perhaps this would be clearer if we used more specific names:"
"Kalman filters are supposed to be hard! But this is very short and straightforward. All we are doing is multiplying the Gaussian that reflects our belief of where the dog was with the new measurement. Perhaps this would be clearer if we used more specific names:\n",
"\n",
" def update_dog(dog_pos, dog_variance, measurement, measurement_variance):\n",
" return multiply(dog_pos, dog_sigma, measurement, measurement_variance)"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def update_dog(dog_pos, dog_variance, measurement, measurement_variance):\n",
" return multiply(dog_pos, dog_sigma, measurement, measurement_variance)"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 15
},
{
"cell_type": "markdown",
"metadata": {},
@@ -886,7 +878,7 @@
"cell_type": "code",
"collapsed": false,
"input": [
"dog = DogSensor(velocity=0, noise=1)\n",
"dog = DogSensor(velocity=0., variance=1.)\n",
"\n",
"pos,s = 2, 5\n",
"for i in range(20):\n",
@@ -902,30 +894,30 @@
"output_type": "stream",
"stream": "stdout",
"text": [
"time: 0 \tposition = 1.137 \tvariance = 2.500\n",
"time: 1 \tposition = 1.010 \tvariance = 1.667\n",
"time: 2 \tposition = 0.593 \tvariance = 1.250\n",
"time: 3 \tposition = -0.018 \tvariance = 1.000\n",
"time: 4 \tposition = -0.040 \tvariance = 0.833\n",
"time: 5 \tposition = -0.093 \tvariance = 0.714\n",
"time: 6 \tposition = -0.078 \tvariance = 0.625\n",
"time: 7 \tposition = -0.180 \tvariance = 0.556\n",
"time: 8 \tposition = -0.200 \tvariance = 0.500\n",
"time: 9 \tposition = -0.165 \tvariance = 0.455\n",
"time: 10 \tposition = -0.142 \tvariance = 0.417\n",
"time: 11 \tposition = -0.220 \tvariance = 0.385\n",
"time: 12 \tposition = -0.174 \tvariance = 0.357\n",
"time: 13 \tposition = -0.094 \tvariance = 0.333\n",
"time: 14 \tposition = -0.187 \tvariance = 0.312\n",
"time: 15 \tposition = -0.147 \tvariance = 0.294\n",
"time: 16 \tposition = -0.169 \tvariance = 0.278\n",
"time: 17 \tposition = -0.082 \tvariance = 0.263\n",
"time: 18 \tposition = -0.083 \tvariance = 0.250\n",
"time: 19 \tposition = -0.060 \tvariance = 0.238\n"
"time: 0 \tposition = 1.529 \tvariance = 2.500\n",
"time: 1 \tposition = 1.416 \tvariance = 1.667\n",
"time: 2 \tposition = 1.260 \tvariance = 1.250\n",
"time: 3 \tposition = 0.756 \tvariance = 1.000\n",
"time: 4 \tposition = 0.854 \tvariance = 0.833\n",
"time: 5 \tposition = 0.728 \tvariance = 0.714\n",
"time: 6 \tposition = 0.531 \tvariance = 0.625\n",
"time: 7 \tposition = 0.376 \tvariance = 0.556\n",
"time: 8 \tposition = 0.306 \tvariance = 0.500\n",
"time: 9 \tposition = 0.353 \tvariance = 0.455\n",
"time: 10 \tposition = 0.357 \tvariance = 0.417\n",
"time: 11 \tposition = 0.268 \tvariance = 0.385\n",
"time: 12 \tposition = 0.423 \tvariance = 0.357\n",
"time: 13 \tposition = 0.455 \tvariance = 0.333\n",
"time: 14 \tposition = 0.481 \tvariance = 0.312\n",
"time: 15 \tposition = 0.399 \tvariance = 0.294\n",
"time: 16 \tposition = 0.387 \tvariance = 0.278\n",
"time: 17 \tposition = 0.432 \tvariance = 0.263\n",
"time: 18 \tposition = 0.463 \tvariance = 0.250\n",
"time: 19 \tposition = 0.489 \tvariance = 0.238\n"
]
}
],
"prompt_number": 16
"prompt_number": 14
},
{
"cell_type": "markdown",
@@ -992,7 +984,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 17
"prompt_number": 15
},
{
"cell_type": "markdown",
@@ -1011,7 +1003,7 @@
"sensor_error = 10\n",
"pos = (0, 500) # gaussian N(0,50)\n",
"\n",
"dog = DogSensor(pos[0], velocity=movement, noise=sensor_error)\n",
"dog = DogSensor(pos[0], velocity=movement, variance=sensor_error)\n",
"\n",
"zs = []\n",
"ps = []\n",
@@ -1041,28 +1033,28 @@
"output_type": "stream",
"stream": "stdout",
"text": [
"PREDICT: 1.0000 502.0000\tUPDATE: 0.8389 9.8047\n",
"PREDICT: 1.8389 11.8047\tUPDATE: 1.2876 5.4138\n",
"PREDICT: 2.2876 7.4138\tUPDATE: 2.3493 4.2574\n",
"PREDICT: 3.3493 6.2574\tUPDATE: 1.9995 3.8490\n",
"PREDICT: 2.9995 5.8490\tUPDATE: 2.7867 3.6904\n",
"PREDICT: 3.7867 5.6904\tUPDATE: 3.2452 3.6267\n",
"PREDICT: 4.2452 5.6267\tUPDATE: 4.6676 3.6007\n",
"PREDICT: 5.6676 5.6007\tUPDATE: 7.8293 3.5900\n",
"PREDICT: 8.8293 5.5900\tUPDATE: 8.5649 3.5856\n",
"PREDICT: 9.5649 5.5856\tUPDATE: 10.8447 3.5838\n"
"PREDICT: 1.0000 502.0000\tUPDATE: -1.2045 9.8047\n",
"PREDICT: -0.2045 11.8047\tUPDATE: -1.4522 5.4138\n",
"PREDICT: -0.4522 7.4138\tUPDATE: 3.2771 4.2574\n",
"PREDICT: 4.2771 6.2574\tUPDATE: 6.7788 3.8490\n",
"PREDICT: 7.7788 5.8490\tUPDATE: 7.2769 3.6904\n",
"PREDICT: 8.2769 5.6904\tUPDATE: 7.7228 3.6267\n",
"PREDICT: 8.7228 5.6267\tUPDATE: 7.7554 3.6007\n",
"PREDICT: 8.7554 5.6007\tUPDATE: 8.6251 3.5900\n",
"PREDICT: 9.6251 5.5900\tUPDATE: 9.8390 3.5856\n",
"PREDICT: 10.8390 5.5856\tUPDATE: 9.2933 3.5838\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f002543f2e8>"
"<matplotlib.figure.Figure at 0x7f16680dd160>"
]
}
],
"prompt_number": 18
"prompt_number": 16
},
{
"cell_type": "markdown",
@@ -1162,12 +1154,9 @@
"sensor_error = 4.5\n",
"pos = (0, 100) # gaussian N(0,50)\n",
"\n",
"dog = DogSensor(pos[0], velocity=movement, noise=sensor_error)\n",
"\n",
"zs = []\n",
"ps = []\n",
"vs = []\n",
"dog = DogSensor(pos[0], velocity=movement, variance=sensor_error)\n",
"\n",
"zs, ps, vs = [], [], []\n",
"for i in range(50):\n",
" pos = predict(pos[0], pos[1], movement, movement_error) \n",
" Z = dog.sense()\n",
@@ -1178,18 +1167,17 @@
" ps.append(pos[0])\n",
" \n",
"#plt.subplot(121) \n",
"p1, = plt.plot(zs,c='r', linestyle='dashed')\n",
"p2, = plt.plot(ps,)\n",
"plt.legend([p1,p2], ['measurement', 'filter'], loc=2)\n",
"plt.plot(zs,c='r', linestyle='dashed', label='measurement')\n",
"plt.plot(ps, label='filter')\n",
"plt.legend(loc=2)\n",
"plt.show()\n",
"\n",
"plt.plot(vs)\n",
"plt.title('Variance')\n",
"plt.show()\n",
"\n",
"\n",
"for i in range(0,len(vs), 5):\n",
" print ('{:.4f} {:.4f} {:.4f} {:.4f} {:.4f}'.format(*[v for v in vs[i:i+5]]))"
" print('{:.4f} {:.4f} {:.4f} {:.4f} {:.4f}'.format(*[v for v in vs[i:i+5]]))"
],
"language": "python",
"metadata": {},
@@ -1197,9 +1185,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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\n91wfisKwNEuaJUJERORHeRWb+DLzj5iESE0cS5/EMYc9vujFFwklJJBgtzMIGNBhAntKv2Zn8VJy\nKjaQWbqCzNIVAERFtCfZnUZyVBpJkak4bFFHrMfrL+bb7Nlkli4HINaRwpm7Uulz74OE3G5yn3ii\n/kVBnE5CTucxX39j0rxmx+nLL79kwIAB3HzzzaSmpvLmm29y7rnn0r9/f5YsWQJAaWkp06dP59RT\nTyU1NZVrrrmGLVu21LaxdetWbrrpJtLT0+nRowcjRozgnXfeqfM6fr+fRx99lIEDB9KzZ0/OOuss\nXnnlldr9mZmZpKSksHfv3tptzzzzDEOGDKnTzvvvv09KSgrr1q1j7Nix9OzZk0GDBrF+/XoAfD4f\nTzzxBAMHDuSkk07i4osv5uuvf5wCZfDgwdx5552kpaVx2223MWPGDHr37s1DDz100OuMGDGCnj17\nMnLkSN79yVrpKSkpvP3221xyySX06tWLsWPHsnXr1jqvk5KSwp49e3j22WdJSUkhJSWF55577pj+\nfURERFoM0zzs7iLvLpbsfoag6adH3Ej6JV11xCZDyclwwKJUNouTbnFnMbLbA4w96VnS219Px+gB\n2CxOyn3ZbCv6jC8z/8iHm6bwn22P8l3O+2SXryUQ8tVt1wyxpfBTFmydTmbpcqxGBP2Tx3Neu+mc\nNP0FAEoffLB2CERL0GJ6hjse4ou674AQeCLHH4+8vDwmT55M165deeSRR/jggw/49NNPeeWVVzj7\n7LOZMGECdrudt956i9jYWP72t79x9dVXs2TJEiIjIyksLCQ9PZ2pU6fi8XjIyMjg/vvvp1OnTowY\nMQKAN954gzlz5vDKK6/QvXt3du7cSWZm5hFrO1TP6q9+9SvuvPNOUlNTWbt2be3qbXfffTebNm3i\nT3/6Ex07dmTevHlcc801LFmyhPbt22MYBvHx8bz11ltceuml3HTTTbz33ntccskl3HvvvXg8HmbP\nns3MmTP53e9+x8CBA/nuu++4++67iY+P5/zzz6+t4dVXX+X3v/89MTExTJkyhd/85jfMmjULgAUL\nFhAMBhkzZgzjxo1j8uTJAET+ZMyUiIhIqxAI4Bk/Hu/YsVROmHDQSnNl1Tlk7P4D/pCXlOjTGdjx\nphP+66k7IpHenvPo7TmPkBmk0LuDnIp15JZvIN+7haKqHRRV7WBj/sdYDDuJkb1Idvcl1pHChvz5\nFHq3A9Ah6jQGdrgBd0Q7Yh57DGt2Nr70dCpvuOHYCjJNol58Ee/YsQR79DihazseLSYMN0cej4dB\ngwZRXl7OP/7xD4YMGYLX6+Wzzz5jyZIlrFq1ilWrVtGuXTsAZsyYwZw5c/j000+5+OKLGTRoEIMG\nDapt79prr2XWrFl89tlntWE4MzOT5ORkzjrrLAA6HeVvWuYhfsu84447OPfccwHo0qULANu3b2f+\n/Pn861//4tRTTwVg6tSp/OMf/2DevHlM2T9P4ejRozn99NPxeDyMHj2aAQMG4PF42LNnDx6Ph+ee\ne4677rqLcePGATW9wBkZGbz99tt1wvBNN93E4MGDAbj66qt58cUXa/clJCQAYLVacbvdJCYe/zgm\nERGR5i5y9mwcy5Zhzcqi8tpr64Rhr7+Ixbt+T1WghGR3GkNSpjT4NGkWw0piZC8SI3uR1u4SAqFq\n8is3k1O+juyK9RRX7Sa34ntyK76vPcdli2dAhwl0ij69NpiX3347lvx8ym+/HazWY6oh8u9/J+bJ\nJ3G/9Rb5c+cS7NatIS/xiFpMGD7WHt2G7AE+FOf+MS9Op7P2Y4fDQVVVFevWrcM0TYb9ZAB8VVUV\nu3fvBsDr9fL888+zaNEicnJy8Pv9VFVVkZaWVnv85Zdfzty5czn77LM588wzGTx4MGPHjiUiIuK4\nav4hhB5o3bp1AFx55ZUH1bpr166jut78/HxycnL4wx/+wLPPPlt7jt/vp3PnznXa7XHAb31xcXEU\nFxcf17WIiIi0ZEZxMdFPPw1A6cMPg8NRu88XrGDxrqeo8OeT4OrBsM6/xGqxH6qpI6uqwqiuxoyN\nPexhNouD9lH9aB/Vj1OpWTwjt2IDORUbKPTuIMndh7R2lx40/2+oXTuKX3rpuErzXnEFrg8/xLFi\nBZ4rr6Rg7lyC+zvsmkKLCcMtyQ+9sjExMSxYsOCg/XFxcUBNT/HSpUt55JFH6NGjB1arldtuu41Q\nKFR77GmnncaKFStYunQpX331FQ8//DDvvPMOc+bMAeofDnHg+T8VExNzyH0ffvghbnfdqVaio6MP\nc6U1DuyFfvzxx2t7sX9g+8mffH76uYiISFsU/fzzWIuKqB46lKoLLqjdHghVkbHrGUqq9xAd0ZHh\nXaad0OITERkZxN9zD1XnnEPJk08e07kOWzSdYwfTOfbgzrSGYrrdFM6aRcL11+NYubImEMLine truncated
"png": "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\ncAMvvPBC9b7o6GgALBYLdrudmJiYOt2viIiISEO0mjBc3ye6jfkE+OcEBQVVfz32OjAwEJfLxfbt\n2zEMg8GDB9c4x+VysX//fgCcTifPP/88y5cv58iRI7jdblwuF717964+/uqrr2bx4sUMHTqU888/\nn4EDB3LppZcSEBDQoJqPhdAf2759OwDXXnvtcbXu27evTvebm5vLkSNHePrpp2t88M3tdpOQkFCj\n3S5dulS/joyMpLCwsEH3IiIiInKqWk0Ybk2OPZUNDw9n6dKlx+2PjIwEqp4Ur127lscee4wuXbpg\nsVi4++678fl81cf27duXDRs2sHbtWr744gseffRR3njjDd59912g9uEQPz7/p8LDw3923wcffIDd\nbq+xLSws7AR3WuXHT6F/97vfVT/FPsZqtZ7wexERERF/USppIr1796a4uBi3203Xrl1rPWbDhg3c\nfvvt1cMWnE4nBw4cIDk5ucZxoaGhXHTRRVx00UX069ePSZMmUVhYSGRkZHW4LS0trT7+wIED9ZqN\n4diT6CNHjjBixIh63ecxMTExtG3bln379nHzzTc3qI0fs9lsuN3uU25HRERE5EQ0m0QTGTp0KKmp\nqUyYMIG0tDT27dtHWloaDz74IBkZGUDVcIF///vf7Nq1i507dzJlyhS8Xm+Ndl599VXee+899uzZ\nw+7du1myZAkdOnSofrocHh5OYmIiixcvBmDHjh18+umn9ao1KSmJyy67jOnTp7N06VL27dvH+vXr\nefzxx1m/fn2d25kyZQqvv/46r7/+Ounp6WzdupVXXnmFefPm1aseqHpv0tLSOHz4MC6X67j3RURE\nRKQxKAyfgh8/ff3pa5PJxMKFCxkwYABTp05lxIgRPPjggwBERUUBMHPmTEJCQrjsssu49dZbOffc\nc0lJSalxjbCwMObOncsll1zCFVdcgdPpZP78+TWO+eMf/8jSpUs555xzePrpp7nqqqtOWu9P/fnP\nf+bKK69k5syZXHDBBUyaNInc3Nw6f2AP4NZbb+XJJ5/kzTffZPTo0dx0002kpaXRrVu3E55XW12/\n+c1vMJvNDBs2jK5du/KXv/ylznWIiIiI1JVp165dtU870EiysrLo2bNnrfuOHj1aPdOCSEOoD50+\nHA4HAHl5eX6uRFoS9QupjfqF1MbhcLB27drjPrh/MnoyLCIiIiJnLIVhERERETljKQyLiIiIyBlL\nYVhEREREzlgKwyIiIiJyxlIYFhEREZEzlsKwiIiIiJyxFIZFRERE5IylMCwiIiIiZyyF4VNUUlLC\nHXfcQc+ePYmPj+e5556rsX/q1Klcc801x503Y8YM4uPjiY+Pr3W/iIiIiDQ9heFTtGDBAjZu3Mh7\n773Hli1bmDhxYo39s2fP5vXXXz/uvOnTp7N582YmTJiAyWT62fY///xz4uPjOXjwYKPXLiIiInKm\ns/q7gNZu7969dO/enZ49e9a6PzQ0tNbtdrsdu91OSEgIhmGc9Dp1OUZERERE6kdPhhto6tSpxMfH\n89Zbb/Hll19WD3k4Nkxi+vTppzQM4tgT4euuuw6AQYMGVbf346fEhw8fZuLEifTu3Zvk5GTuuusu\nDh8+XKOtt99+m/j4eLZv386ll15KUlISAwYMYMeOHafwDoiIiIi0fq3iyfDbO8Y2SbvX917Q4HNn\nzZrFI488wowZMzh8+DCvvfYaACEhIQA89thjTJs2jRkzZpCbm1vv9vv378+WLVvYuHEjd911F598\n8gnt27cHIDo6GoDy8nKuueYakpOTWbx4MVarlT/84Q+MHz+epUuXHjf84pFHHmHy5Mn07NmTbdu2\nYbPZGnz/IiIiIqeDVhGGW6KwsDDCwsIIDAzEarUSExNTY39oaCihoaEEBgY2aIiDzWYjJiaGiIgI\nABwOx3HX+OCDDygsLOTFF1+sDra///3vSU1NZcuWLaSkpNQ4/r777mP06NEAdOzYsd41iYiIiJxu\nWkUYPpUnuKezbdu2UVJSQu/evWtsN5lM7N+//7gwPHDgwOYsT0RERKTFaxVhWH5e165d+cc//nHc\n9p8+RQYIDw9vjpJEREREWg2F4UZwoqnRTrbfbrfjcrl+dv+x4Q8ej+e4fWeffTbvvvsuYWFh1eOI\nRURERKTuNJtEI/jpmGCfz0dOTg45OTm4XC4qKys5evQoOTk5uN3uGsf27duXHTt2kJaWRk5ODmVl\nZTX2d+7cGYvFwpIlSygpKakRnK+88kpiY2O566672LhxI5mZmSxfvpyJEyfidDqb7oZFREREThMK\nw6fIZDId9+T34MGDpKamkpqaykcffcSmTZtISUmhX79+/O9//6tx7KBBg5g4cSL33nsvqampPP30\n0zX2t2nThpkzZ7Jo0SKSk5Pp1q1b9dRqwcHBLF68mPbt23P77bczatQonnjiCWJjYwkICDLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7f0020276d68>"
"<matplotlib.figure.Figure at 0x7f1653bd9a20>"
]
},
{
@@ -1207,7 +1195,7 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAskAAAGDCAYAAADZHo16AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X901NWd//HXJJNJJjMQJEBAiCaG2iADS/gR648kG2LE\nWO1arZbVBWGpCwsev9VDPZJVthU2bbcunvXXqb92wVhLCwioC6xh7SGlQJAi2BJFkgACGkAiQn5M\nkpnM9484AxkGJIHM54Y8H+dwTD4zuZ8beR945fL+3GvbvXt3QAAAAABCYqyeAAAAAGAaQjIAAAAQ\nhpAMAAAAhCEkAwAAAGEIyQAAAEAYQjIAAAAQhpAMAAaqqKhQZmam3n//faunAgC9EiEZAE7z5ptv\nKjMzU2+99dYZr7W0tOhv/uZvdN9990VlLjabLSr3AQCciZAMAKfJycmRJG3ZsuWM13bs2KHm5mbl\n5eV1+zyys7O1c+dOjR8/vtvvBQA4k93qCQCASQYOHKjMzExVVFSc8VrwWjBIdyebzSaHw9Ht9wEA\nRMZKMgCEyc3N1aFDh3Tw4MEO17ds2aIBAwZoxIgRkqSVK1dqxowZysnJ0ahRozRx4kT927/9m06c\nOHHGmMEe461bt2rx4sUqKCjQ6NGjNWnSJJWXl4feN3PmTGVmZoZ+bd26NeIc33vvPc2ZM0f5+fka\nNWqUbrzxRs2bN0+HDx/u8L5nn31WmZmZ+vTTTzV9+nRlZWVp0qRJWrVqVcRxDx8+rPnz5ysvL0+j\nR4/WzTffrH//939XQ0NDh/d9+OGHmjFjhsaPH68xY8Zo6tSp+vDDD7/5fy4A9BCsJANAmJycHL30\n0kvasmWLfvCDH0iSmpqatHPnTt1+++2h9/3Xf/2XBg0apBkzZsjtduvjjz/W0qVL9Ze//EVLly6N\nOPaSJUv00Ucf6c4779SAAQO0a9cuHTp0KPT6jBkzdNttt6mqqkovvvjiWfuSf//73+v48eP6+7//\new0YMED79u3TG2+8oa1bt2rt2rVnrELPmTNHubm5Kiws1PLlyzVv3rxQEA86fPiw7r77bn311Ve6\n5557dPXVV+vo0aNauXKlvve974Xeu3nzZj3wwAPKyMjQgw8+KJvNphUrVmjq1KlatmyZvvWtb3Xt\nfzwAGISQDABhxowZI7fbrYqKilBI3r59u3w+X4dWi1dffVWDBg3q8LX9+vXTc889pw8//FCjR48+\nY+xdu3bp7bffVp8+fULX2traQh9nZ2dLal95fvHFF886x5/97GdKSUnpcC09PV3z5s3T//3f/6mo\nqKjDa/fcc4+mTJkiSfrbv/1bFRQU6L333usQkhctWqQjR47o9ddf79ALPWPGDLW2tobm+q//+q+6\n6qqrtHz5csXFxUmS7rrrLhUWFuqFF17Q008/fdZ5A0BPQbsFAISJi4vTdddd16EvecuWLYqJidGN\nN94YunZ6QK6vr1ddXZ2uuuoqSdKnn34acex77723Q0CWpJiYzv9RfHpAbmxsVF1dndLS0s5670mT\nJoU+vvzyy9WvXz/V1taGrrW1tamsrEzf+c53znhYMD4+Xm63W5JUWVmpTz/9VLfccotOnjypuro6\n1dXVqaWlRSNGjGDLOgCXDFaSASCCnJwclZWVae/evUpPT9eWLVs0evRo9e3bN/SeXbt26dlnn9W2\nbdtUX1/f4eubm5sjjpuRkXFR5rd//349++yz+uMf/6ivvvrqG+8dvuLtdDpDq8OSVFdXp8bGRg0f\nPvyc9w0G8GeeeUbPPPPMGa/Hxsae9/cAACYjJANABMEV44qKCg0cOFCVlZWaM2dO6PVDhw7pvvvu\n0+WXX66HH35YqampiouL065du/TUU08pEAhEHPf0kN1V9fX1uu+++xQbG6uZM2fqqquuUnx8vA4f\nPqzHHnvsrPe+mB566CFlZWV1+30AwCqEZACI4PLLL9fw4cO1efNmpaSkyO/3Kzc3N/T6+vXr5fV6\n9dJLL2nYsGGh6+E7YnSHLVu26IsvvtCSJUt07bXXhq5v3ry5y2P2799fLpdLe/bsOef7UlNTJUmJ\niYm67rrrunw/ADAdPckAcBY5OTnaunWrtmzZov79+8vj8YReC7YVnN5e0Nraqt/+9rfdPq9I9w4E\nAnrttde6PGZMTIwKCwtVUVGhbdu2dXitubk51E7i8Xg0bNgwlZaWnrEtnCR9/vnnXZ4DAJiElWQA\nOIucnBz993//t1atWnXGKXu5ubmKj4/XrFmzdM8996i5uVlvv/22fD5fl+934MABbd++XZJUU1Mj\nSdq4caM+++wzSdLYsWOVmpqqcePGqX///nrsscf0D//wD4qJiVFZWZmOHz/e5XtL0iOPPKLNmzfr\nH//xH/XDH/5QV199tb744gutWrVK//mf/6nMzEzZbDY9+eSTmjlzpm6//XbdeeedGjhwoA4cOKAN\nGzbI4/Ho5z//+QXNAwBMQEgGgLMYP368nE6nTpw4ccYpe1dccYV+/etfa9GiRXrqqafUp08f3Xbb\nbcrJydH06dMjjne2PY+D3n//fRUXF3d4f3AbOJvNpp///OdKTU1V37599corr+gXv/iFnnnmGTkc\nDt10002aP39+h32cg1/3TfcNGjRokJYtW6bnnntO7777rpYuXaohQ4bopptuCrVZSNL111+vN954\nQy+88IJKS0vV1NSkIUOGaNy4cZo8efJ53QsATGfbvXv3WZ/wWL9+vV5++WVVVlbqtttuC60OvPzy\ny1q+fLmOHj2qoUOH6sc//rEKCgpCX/faa6/pxRdfVGtrqyZPnqxHHnmk+78TAAAA4CI550py3759\n9aMf/UibNm2S1+sNXY+Li9Nzzz2nb33rW9q+fbseeOABrVq1Sqmpqdq5c6eef/55vfHGG3K73br3\n3ns1YsSIMza2BwAAAEx1zgf3srOzVVhYqKSkpA7Xp02bFjp2NNgjV1lZKUlat26dbr75ZmVkZCgl\nJUV333231qxZ003TBwAAAC6+8+pJPteem1999ZX27dsXCs379u3ThAkTtGTJEtXW1mrcuHF65513\nLs5sAQAAgCg4ry3gzvXQx/z58/X9738/dBRrU1OTEhMTdeDAAe3fv18ul0uNjY0XZ7YAAABAFFzQ\nSvKiRYt04sQJ/cd//EfomtPpVGNjox5//HFJUllZmRITEyN+/YEDBzo7XwAAAKDTTt+l53ycV0iO\ntJK8ePFi/elPf1Jpaans9lPDpKWlhfb3lKSqqqrQKnMkI0aM6Mx8cYlLTk7Wm2++ecaetOi9qAlE\nQl0gEuoCkSQnJ2vjxo2d/rpztlu0tbWpublZfr9ffr9fLS0t8vl8WrlypZYuXaqXX375jFXioqIi\nlZWVqaqqSocPH9aKFSvY2QIAAAA9yjlXkletWtVhY/u33npLDz74oFauXKmjR4922Bv5n//5n/VP\n//RPGj16tObMmaOpU6fK5/Np8uTJhGQAAAD0KOc8TKS7HThwgHYLdJCcnKyPPvpIgwYNsnoqMAQ1\ngUioC0RCXSCSYLtFZ3uSz2t3CyCa+MEJ4agJREJdIBLqAhcLIRkAAAAIQ0gGAAAAwhCSAQAAgDCE\nZAAAACAMIRkAAAAIQ0gGAAAAwhCSAQAAgDCEZAAAACAMIRkAAAAIQ0gGAAAAwhCSAQAAgDCEZAAA\nACAMIRkAAAAIQ0gGAAAAwhCSAQAAgDCEZAAAACAMIRkAAAAIQ0gGAAAAwhCSAQAAgDCEZAAAACAM\nIRkAAAAIQ0gGAAAAwhCSAQAAgDCEZAAAACAMIRkAAAAIQ0gGAAAAwhCSAQAAgDCEZAAAACAMIRkA\nAAAIQ0gGAAAAwhCSAQAAgDCEZAAAACAMIRkAAAAIQ0gGAAAAwhCSAQAAgDCEZAAAACAMIRkAAAAI\nQ0gGAAAAwhCSAQAAgDCEZAAAACAMIRkAAAAIQ0gGAAAAwhCSAQAAgDCEZAAAACAMIRkAAAAIc86Q\nvH79ev3whz/UqFGjNG/evND11tZWFRcXa+zYscrPz9fatWs7fN1rr72mG264QdnZ2Vq0aFH3zBwA\nAADoJvZzvdi3b1/96Ec/0qZNm+T1ekPXFy9erKqqKpWXl6uyslIzZ85UVlaWBg8erJ07d+r555/X\nG2+8IbfbrXvvvVcjRoxQUVFRt38zAAAAwMVwzpXk7OxsFRYWKikpqcP1devWacqUKXK73crOzlZW\nVpbKyspCr918883KyMhQSkqK7r77bq1Zs6b7vgMAAADgIjvnSnJQIBDo8Pm+ffuUnp6uuXPnauLE\nicrIyNDevXtDr02YMEFLlixRbW2txo0bp3feeefizxwAAADoJucVkm02W4fPm5qalJiYqD179sjj\n8cjlcqm2trbDa1VVVfrss8+Um5urxsbGs46dnJx8AdPHpSYuLk4SdYFTqAlEQl0gEuoCkQTrorO6\ntJLsdDrV1NSk1atXS5IWLlwol8sVeq2xsVGPP/64JKmsrEyJiYlnHXvBggWhj3Nzc5WXl9e57wAA\nAAA4zYYNG1ReXi5Jio2NVW5ubqfH6NJKclpamqqrqzVy5EhJUnV1tQoKCkKv1dTUhN5bVVWlq666\n6qxjz549u8Pnx44dO7+Z45IU/OmfOkAQNYFIqAtEQl0gyOPxyOPxSGqvi40bN3Z6jHM+uNfW1qbm\n5mb5/X75/X61tLTI5/OpqKhIpaWlOnnypCoqKrRjxw4VFhZKkoqKilRWVqaqqiodPnxYK1asOOfO\nFi0+f6cnDQAAAHSnc64kr1q1SsXFxaHP33rrLT344IOaNWuWampqlJeXp6SkJJWUlCglJUWSNHr0\naM2ZM0dTp06Vz+fT5MmTzxmS65ta1b9P7EX6dgAAAIALZ9u9e3fgm9/WPQ4cOKA+A4Zp2MLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7f00201e3278>"
"<matplotlib.figure.Figure at 0x7f1668c71128>"
]
},
{
@@ -1227,7 +1215,7 @@
]
}
],
"prompt_number": 26
"prompt_number": 17
},
{
"cell_type": "markdown",
@@ -1273,7 +1261,7 @@
"level": 2,
"metadata": {},
"source": [
"Implementation in a Class (Optional)\n"
"Implementation in a Class"
]
},
{
@@ -1342,7 +1330,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 19
"prompt_number": 18
},
{
"cell_type": "heading",
@@ -1356,7 +1344,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"In the first chapter I stated that the Kalman filter is a form of g-h filter. However, we have been reasoning about the probability of Gaussians, and not used any of the reasoning or equations of the first chapter. A trivial amount of algebra will reveal the relationship, so let's do that now. It's not particularly illuminating algebra, so feel free to skip to the bottom to see the final equation that relates *g* to the variances.\n",
"In the first chapter I stated that the Kalman filter is a form of g-h filter. However, we have been reasoning about the probability of Gaussians, and not used any of the reasoning or equations of the first chapter. A trivial amount of algebra will reveal the relationship, so let's do that now. It's not particularly illuminating algebra, so feel free to skip to the bottom to see the final equation that relates *g* and *h* to the variances.\n",
"\n",
"The equation for our estimate is:\n",
"\n",
@@ -1450,20 +1438,20 @@
"source": [
"So far we have developed our filter based on the dog sensors introduced in the Discrete Bayesian filter chapter. We are used to this problem by now, and may feel ill-equipped to implement a Kalman filter for a different problem. To be honest, there is still quite a bit of information missing from this presentation. The next chapter will fill in the gaps. Still, lets get a feel for it by designing and implementing a Kalman filter for a thermometer. The sensor for the thermometer outputs a voltage that corresponds to the temperature that is being measured. We have read the manufacturer's specifications for the sensor, and it tells us that the sensor exhibits white noise with a standard deviation of 2.13.\n",
"\n",
"We do not have a real sensor to read, so we will simulate the sensor with the following function. We have hard-coded the voltage to 16.3 - obviously the voltage will differ based on the temperature, but that is not important to our filter design."
"We do not have a real sensor to read, so we will simulate the sensor with the following function. "
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def volt(temp_variance):\n",
" return random.randn()*temp_variance + 16.3"
"def volt(voltage, temp_variance):\n",
" return random.randn()*temp_variance + voltage"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 20
"prompt_number": 19
},
{
"cell_type": "markdown",
@@ -1493,18 +1481,19 @@
"cell_type": "code",
"collapsed": false,
"input": [
"temp_variance = 2.13**2\n",
"variance = 2.13**2\n",
"movement_error = .2\n",
"actual_voltage = 16.3\n",
"\n",
"N=50\n",
"zs = [volt(temp_variance) for i in range(N)]\n",
"zs = [volt(actual_voltage, variance) for i in range(N)]\n",
"ps = []\n",
"estimates = []\n",
"\n",
"kf = KalmanFilter1D(x0=25, # initial state\n",
" P = 1000, # initial variance \n",
" # large says 'who knows?'\n",
" R=temp_variance, # sensor noise\n",
" R=variance, # sensor noise\n",
" Q=movement_error) # movement noise\n",
"\n",
"for i in range(N):\n",
@@ -1532,9 +1521,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f5ff2721198>"
"<matplotlib.figure.Figure at 0x7f1668055668>"
]
},
{
@@ -1542,7 +1531,7 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl8VOXd///3zCSTPYQMIQIBA0k1YNgKUhVIRAWNW1sU\npdLEinrrl/jzq4ILrbW2tPampfSuW4vVtixuRdyLVBS+oQgJoCy3IGgIYAwSIAFC9szy+yPMSOSQ\nmQkkc5K8ng/nwcyZa858kM9D37m4znUsu3bt8ggAAABAC9ZQFwAAAACYEUEZAAAAMEBQBgAAAAwQ\nlAEAAAADBGUAAADAAEEZAAAAMEBQBgCTKioqUkZGhjZu3BjqUgCgWyIoA8C3vP7668rIyNDbb799\nynuNjY0aPny4pk2b1iG1WCyWDvkeAMCpCMoA8C3jx4+XJBUWFp7y3pYtW9TQ0KDs7Ox2r2PMmDHa\nunWrRo8e3e7fBQA4VVioCwAAs0lKSlJGRoaKiopOec97zBum25PFYpHdbm/37wEAGGNGGQAMZGVl\nqaysTF999VWL44WFherVq5cGDx4sSXrjjTd0++23a/z48Ro6dKguu+wy/eY3v1FVVdUp5/SuOd6w\nYYP+8Y9/6PLLL9ewYcN05ZVXas2aNb5xd911lzIyMnyPDRs2GNa4atUq5efna8KECRo6dKjGjRun\n2bNnq7y8vMW4p556ShkZGfryyy912223aeTIkbryyiv15ptvGp63vLxcjz32mLKzszVs2DBNmjRJ\nv/vd71RTU9Ni3LZt23T77bdr9OjRGjFihPLy8rRt2zb//3IBoJNgRhkADIwfP17PPfecCgsLdeON\nN0qS6urqtHXrVl133XW+cX/729/Uu3dv3X777YqNjdXOnTv1yiuv6H//93/1yiuvGJ574cKF+uyz\nzzR58mT16tVL27dvV1lZme/922+/Xddee62Ki4u1YMGC065T/uc//6mjR4/qRz/6kXr16qW9e/fq\npZde0oYNG/Tee++dMhudn5+vrKwsTZw4Ua+99ppmz57tC+Ne5eXlmjJlio4dO6abbrpJ5513ng4d\nOqQ33nhD119/vW/s+vXrdeeddyotLU333HOPLBaLli1bpry8PC1dulTf+c532vYvHgBMhKAMAAZG\njBih2NhYFRUV+YLyJ598IqfT2WLZxQsvvKDevXu3+GxCQoKefvppbdu2TcOGDTvl3Nu3b9c777yj\nuLg43zG32+17PmbMGEnNM9ALFiw4bY2//OUvlZyc3OLYwIEDNXv2bH344YfKyclp8d5NN92k3Nxc\nSdKll16qyy+/XKtWrWoRlOfPn6+DBw9qyZIlLdZG33777WpqavLV+otf/EKDBg3Sa6+9pvDwcEnS\nDTfcoIkTJ+rZZ5/VH//4x9PWDQCdBUsvAMBAeHi4Lr744hbrlAsLC2W1WjVu3DjfsZNDcnV1tSor\nKzVo0CBJ0pdffml47ltuuaVFSJYkqzX4/xyfHJJra2tVWVmp1NTU0373lVde6Xvet29fJSQk6MCB\nA75jbrdbK1eu1EUXXXTKBYQRERGKjY2VJO3YsUNffvmlrrrqKh0/flyVlZWqrKxUY2OjBg8ezHZ2\nALoMZpQB4DTGjx+vlStXas+ePRo4cKAKCws1bNgwxcfH+8Zs375dTz31lDZt2qTq6uoWn29oaDA8\nb1pa2lmpb9++fXrqqaf0n//8R8eOHfP73d+e+Y6KivLNEktSZWWlamtrlZ6e3ur3ekP4k08+qSef\nfPKU9202W8C/BwAwM4IyAJyGd+a4qKhISUlJ2rFjh/Lz833vl5WVadq0aerbt6/uv/9+9e/fX+Hh\n4dq+fbvmzZsnj8djeN6Tg3ZbVVdXa9q0abLZbLrrrrs0aNAgRUREqLy8XI888shpv/tsuvfeezVy\n5Mh2/x4ACBWCMgCcRt++fZWenq7169crOTlZLpdLWVlZvvc/+OAD1dfX67nnnlNKSorv+Ld3ymgP\nhYWFOnz4sBYuXKjvfe97vuPr169v8zkTExMVExOjL774otVx/fv3lyRFR0fr4osvbvP3AYDZsUYZ\nAFoxfvx4bdiwQYWFhUpMTFRmZqbvPe8Sg5OXGjQ1Nenll19u97qMvtvj8WjRokVtPqfVatXEiRNV\nVFSkTZs2tXivoaHBt7QkMzNTKSkpWrx48SlbxknS119/3eYaAMBMmFEGgFaMHz9ef//73/Xmm2+e\ncje+rKwsRURE6O6779ZNN92khoYGvfPOO3I6nW3+vtLSUn3yySeSpJKSEknS2rVrtX//fknSd7/7\nXfXv31+jRo1SYmKiHnnkEf34xz+W1WrVypUrdfTo0TZ/tyQ98MADWr9+vaZPn66bb75Z5513ng4f\nPqw333xTf/rTn5SRkSGLxaJf/epXuuuuu3Tddddp8uTJSkpKUmlpqQoKCpSZmanf/va3Z1QHAJgB\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f5ffc053cc0>"
"<matplotlib.figure.Figure at 0x7f165c042e80>"
]
},
{
@@ -1553,7 +1542,7 @@
]
}
],
"prompt_number": 21
"prompt_number": 20
},
{
"cell_type": "markdown",
@@ -1622,7 +1611,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 22
"prompt_number": 21
},
{
"cell_type": "markdown",
@@ -1635,13 +1624,15 @@
"cell_type": "code",
"collapsed": false,
"input": [
"sensor_error = temp_variance\n",
"variance = 2.13**2\n",
"actual_voltage = 16.3\n",
"\n",
"\n",
"def VKF():\n",
" voltage=(14,1000)\n",
" for i in range(N):\n",
" Z = volt(temp_variance)\n",
" voltage = update(voltage[0], voltage[1], Z, sensor_error)\n",
" Z = volt(actual_voltage, variance)\n",
" voltage = update(voltage[0], voltage[1], Z, variance)\n",
" return voltage[0]\n",
"\n",
"vs = []\n",
@@ -1656,13 +1647,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f5ff26b3a20>"
"<matplotlib.figure.Figure at 0x7f1653b8c4a8>"
]
}
],
"prompt_number": 23
"prompt_number": 22
},
{
"cell_type": "markdown",
@@ -1697,7 +1688,7 @@
"movement_sensor = 30\n",
"pos = (0,500)\n",
"\n",
"dog = DogSensor(0, velocity=movement, noise=sensor_error)\n",
"dog = DogSensor(0, velocity=movement, variance=sensor_error)\n",
"\n",
"zs = []\n",
"ps = []\n",
@@ -1727,9 +1718,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f5ff2759c18>"
"<matplotlib.figure.Figure at 0x7f1668f3e160>"
]
},
{
@@ -1737,11 +1728,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f5ff25b72b0>"
"<matplotlib.figure.Figure at 0x7f166815b3c8>"
]
}
],
"prompt_number": 24
"prompt_number": 23
},
{
"cell_type": "markdown",
@@ -1787,7 +1778,7 @@
"movement_error = 2\n",
"pos = (0,500)\n",
"\n",
"dog = DogSensor(pos[0], velocity=movement, noise=sensor_error)\n",
"dog = DogSensor(pos[0], velocity=movement, variance=sensor_error)\n",
"\n",
"zs = []\n",
"ps = []\n",
@@ -1813,13 +1804,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f5ffe138780>"
"<matplotlib.figure.Figure at 0x7f166802d748>"
]
}
],
"prompt_number": 25
"prompt_number": 24
},
{
"cell_type": "markdown",
@@ -1852,7 +1843,7 @@
"movement_error = 2\n",
"pos = (1000,500)\n",
"\n",
"dog = DogSensor(0, velocity=movement, noise=sensor_error)\n",
"dog = DogSensor(0, velocity=movement, variance=sensor_error)\n",
"\n",
"zs = []\n",
"ps = []\n",
@@ -1877,13 +1868,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f5ff60bacc0>"
"<matplotlib.figure.Figure at 0x7f1653a7f978>"
]
}
],
"prompt_number": 26
"prompt_number": 25
},
{
"cell_type": "markdown",
@@ -1916,7 +1907,7 @@
"pos = (1000,500)\n",
"\n",
"\n",
"dog = DogSensor(0, velocity=movement, noise=sensor_error) \n",
"dog = DogSensor(0, velocity=movement, variance=sensor_error) \n",
"zs = []\n",
"ps = []\n",
"\n",
@@ -1940,13 +1931,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f5ff24ffbe0>"
"<matplotlib.figure.Figure at 0x7f16539c9128>"
]
}
],
"prompt_number": 27
"prompt_number": 26
},
{
"cell_type": "markdown",
@@ -1965,7 +1956,7 @@
"movement_error = 2\n",
"pos = None\n",
"\n",
"dog = DogSensor(0, velocity=movement, noise=sensor_error)\n",
"dog = DogSensor(0, velocity=movement, variance=sensor_error)\n",
"\n",
"zs = []\n",
"ps = []\n",
@@ -1992,13 +1983,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "iVBORw0KGgoAAAANSUhEUgAAAtgAAAF2CAYAAABULe8GAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd4FFXbh++tSTa90KNSVQRRWkBRsLwICFKsKL58AoKI\ngFh5lSKKYhewi2JXbCBYAAUsgAiiFAERIfSWENKT3Wz9/tiZyexm0xMC+NzX5cXunJkzZ2YH+Z1n\nnvN7DDt27PAhCIIgCIIgCEKNYKzrAQiCIAiCIAjC6YQIbEEQBEEQBEGoQURgC4IgCIIgCEINIgJb\nEARBEARBEGoQEdiCIAiCIAiCUIOIwBYEQRAEQRCEGkQEtiAIgiAIgiDUIOUK7OXLl3PTTTdx/vnn\n89BDD2nbX3rpJdq0aUP79u1p3749V155ZcBx77//Pt26dSMlJYUXXnghoG3dunX06tWL9u3bc9dd\nd5Gfn19DlyMIgiAIgiAIdUu5AjsmJobbb7+d66+/PmC7wWCgb9++bNy4kY0bN7JixQqtbfPmzbzy\nyiu8//77fP3113z77bcsWbIEALvdzt1338348eP59ddfMRgMPP/88zV8WYIgCIIgCIJQN5QrsFNS\nUujZsyexsbEB230+Hz5f6CKQS5cu5aqrrqJFixY0aNCAG264gcWLFwP+6HVMTAx9+/YlPDyc4cOH\na22CIAiCIAiCcKpT4RzsYDFtMBj48ccf6dKlCwMHDuTHH3/U2vbu3UuzZs147733ePrpp2nZsiV7\n9uwBYM+ePTRv3pw//viDESNGcNZZZ5GTk0NWVlYNXZIgCIIgCIIg1B0VFtgGgyHge58+fVi+fDlr\n1qzhrrvu4t5772Xv3r2APw3EZrNx4MAB9u3bR2RkJIWFhQAUFhZis9nIyMggNTUVq9WqbRcEQRAE\nQRCEUx1zRXcMjmC3aNFC+9yzZ09SUlJYtWoVTZs2JSIigsLCQiZPngzAsmXLsNlsANhsNgoLC+nV\nqxe9evUiJydH2x7MgQMHKn9FgiAIgiAIglBJzjjjjBrrq8ICOziCXRZNmzZl9+7d2vddu3bRvHlz\nrW3evHkBbbGxscTHx4fsq3Xr1hU+r3D6k5iYyIIFC+jRo0ddD0U4iZDnQgiFPBdCKOS5EIJJTExk\n9erVNdpnuSkiXq+XoqIiPB4PHo8Hp9OJ2+1m2bJl5Obm4vV6+emnn/jtt9+45JJLAH/6yLJly9i1\naxdpaWnMnz+fPn36ANC1a1fy8vL45ptvKCws5O233+bqq6+u0YsSBEEQBEEQhLqi3Aj2woULefjh\nh7XvX331FWPHjmXXrl089NBDeDwemjZtyqxZs2jWrBkA7dq146677mLo0KG43W4GDx6sCeyIiAhm\nz57NlClTmDx5Mt26deO+++6rpcsTBEEQBEEQhBOLYceOHaG99k4CDhw4ICkiQgCJiYls376d+vXr\n1/VQhJMIeS6EUMhzIYRCngshGDVFpCZzsKVUunDKIZMuIRTyXAihkOdCCIU8F0JtIwJbEARBEARB\nEGqQCruInIy4XC6ysrIq5XAinNqoBYncbneV+/D5fMTHx2OxWGpqWIIgCIIgCBqnrMB2uVwcP36c\n+vXrYzRKIF6oOF6vl/T0dBITE0VkC4IgCIJQ45yyyjQrK0vEtVAljEYj9evX16LhgiAIgiAINckp\nq04NBoOIa6HKGI1GSS0SBEEQBKFWEIUqCIIgCIIgCDWICGxBEARBEARBqEFEYAuCIAiCIAhCDSIC\nWxAEQRAEQRBqEBHYwmlFly5deOGFF+p6GIIgCIIg/IsRgS2cVogziCAIgiAIdY0I7BPMmjVr6NCh\nA8OHD6d169a8++679OzZk3bt2rFq1SoAcnNzefDBB7ngggto3bo1N998Mzt37tT62LVrF8OGDaN9\n+/Y0b96cHj168PHHHwecx+VyMXXqVDp27EiLFi245JJLmDNnjtZ+4MABkpOTOXTokLbt+eefp2vX\nrgH9fPrppyQnJ7N161b69etHixYtSElJYdu2bQA4nU4ef/xxOnbsSKtWrejfvz+///67dnyXLl0Y\nN24cbdq0YdSoUUyfPp2zzz6bhx9+uMR5evToQYsWLbjsssuYN29eQHtycjIfffQRAwcOpGXLlvTr\n149du3YFnCc5OZmDBw/ywgsvkJycTHJyMjNnzqzU7yMIgiAIglBdTtlKjhWlcZMmIbcf1gnL6uxf\nFY4dO8bo0aM566yzmDJlCp9//jnLly9nzpw5XHrppfz3v//FYrHw3nvvERsby5tvvsngwYNZtWoV\nNpuNzMxM2rdvz4QJE0hMTGTlypVMnDiRJk2a0KNHDwDeeecdvvjiC+bMmUOzZs3Yu3cvBw4cKHds\npUWAJ02axLhx42jdujVbtmzRKiDec8897Nixg1deeYXGjRuzYMECbr75ZlatWkXDhg0xGAzEx8fz\n3nvvMWjQIIYNG8Ynn3zCwIEDue+++0hMTOTDDz9kxowZPPnkk3Ts2JHNmzdzzz33EB8fT+/evbUx\nvPXWWzz11FPExMQwZswYHn30UT744AMAlixZgsfj4eqrr2bAgAGMHj0aAJvNVq3fShAEQRAEobKc\n9gL7ZCQxMZGUlBTy8/P58ssv6dq1K3a7nRUrVrBq1So2bNjAhg0bqFevHgDTp0/niy++YPny5fTv\n35+UlBRSUlK0/m655RY++OADVqxYoQnsAwcO0KBBAy655BIAmpQycQjG5/OF3D527Fh69uwJwJln\nngnA7t27WbRoEd9++y0XXHABABMmTODLL79kwYIFjBkzBoArrriCTp06kZiYyBVXXEGHDh1ITEzk\n4MGDJCYmMnPmTMaPH8+AAQMAf7R65cqVfPTRRwECe9iwYXTp0gWAwYMH89JLL2ltCQkJAJhMJiIj\nI0lKSqrQ9QqCIAiCINQ0p73ArmzkuSYj1aURHh6u/al+DgsLw+FwsHXrVnw+H926dQs4xuFwsH//\nfgDsdjuzZs1i2bJlpKWl4XK5cDgctGnTRtv/uuuuY/78+Vx66aVcfPHFdOnShX79+mG1Wqs0ZlXY\n6tm6dSsAN9xwQ4mx7tu3r0LXm5GRQVpaGs8++2zA4kSXy8UZZ5wR0G/z5s21z3FxcWRnZ1fpWgRB\nEARBEGqT015gn0qo0eOYmBiWLFlSoj0uLg7wR7RXr17NlClTaN68OSaTiVGjRuH1erV9L7zwQn77\n7TdWr17Nr7/+yuTJk/n444/54osvgNCpIPrjg4mJiSm1beHChURGRgZsi46OLuNK/eij5Y899pgW\nbVcxm81lfhcEQRAEQTgZEcVyktGmTRtyc3NxuVy0bNky5D6//fYbw4cP11I27HY7Bw8epG3btgH7\nRUVF0bt3b3r37k3Hjh0ZM2YM2dnZxMXFaYI5Pz9f2//gwYOVcuFQI+ZpaWlcfvnllbpOlaSkJBo2\nbMi+ffsYMmRIlfrQY7FYcLlc1e5HEARBEAShqoiLyEnGpZdeSocOHbjjjjtYuXIl+/btY+XKlTzw\nwAPs2bMH8KdKfPXVV+zYsYO//vqL8ePH4/F4Avp58803WbBgAbt27WLnzp0sWrSIJk2aaFHwmJgY\nmjVrxvz58wHYtm0b33//faXG2qJFC6655homTpzIkiVL2LdvH+vWreORRx5h3bp1Fe5n/PjxzJ07\nl7lz55Kamsqff/7Ja6+9xrvvvlup8YD/3qxcuZIjR47gcDhK3BdBEARBEITaRgR2HaCPEgd/NhgM\nfPjhh6SkpDBhwgQuv/xyHnjgAQDi4+MBmDZtGjabjWuuuYahQ4fSqVMn2rdvH3CO6Oho5syZQ9++\nfRkwYAB2u5333nsvYJ9nnnmGJUuW0K5dO5599lmuvfbacscbzOzZsxk0aBDTpk3jsssuY8yYMWRk\nZFR4USXA0KFDefLJJ5k3bx49e/bklltuYeXKlbRq1arM40KN63//+x9Go5Hu3bvTsmVLXnzxxQqP\nQxAEQRAEoSYw7NixI7RtxEnAgQMHaN26dci2Y8eOaS4bglAV5Bk6fUhMTATg+PHjdTwS4WRCngsh\nFPJcCMEkJiayevXqEuYK1UEi2IIgCIIgCIJQg4jAFgRBEARBEIQaRAS2IAiCIAiCINQgIrAFQRAE\nQRCEUxrjkSOYdEXu6hrxwRYEQRAEQRBOaRp26gTA4d27ISysjkcjEWxBEARBEAThNMFYUFDXQwBE\nYAuCIAiCIAinCV6bra6HAIjAFgRBEARBEE4XToL0EJAcbEEQBEEQhDrDvG0bpuPHcbVujVeKn1UN\nrxcAn8EAZVSfPpFIBLuOyMvLY8SIEbRu3Zrk5GRmzpwZ0D5hwgSuv/76EsdNnTqV5ORkkpOTQ7YL\ngiAIgnDqED17Nok334z111/reiinLgYDRzdvJu2PP+p6JBoSwa4jPvjgA9avX8+CBQuoV68ekZGR\nAe2PP/44Ho+nxHETJ05k3LhxvP766/z555+l9r9mzRpuvPFG1q1bR5MmTWp8/IIgCIIg1ABK9BWT\nqW7HcSpjMOBNSqrrUQQgAruO2L17N2effTatW7cO2R4VFRVye2RkJJGRkdhsNnw+X7nnqcg+giAI\ngiDUEWowTQT2aYWkiJxgJkyYQHJyMp988glr167V0j3UFJGJEydWKwVkzZo1JCcnc+ONNwLQtWtX\nrb9Dhw5p+x05coTRo0fTpk0b2rZty8iRIzly5EhAX59++inJycls3bqVfv360aJFC1JSUti2bVs1\n7oAgCIIgCCoGRWD7jKeoJHM6CVu+HEMd2+PFTpxIwi23YNJpnbrktI5gNxnyZq30e+ijkVU+dvr0\n6UyaNImpU6dy5MgR3nrrLQBsiq3MlClTuP/++5k6dSoZGRmV7r9z585s2rSJ9evXM3LkSBLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7f5ff2569438>"
"<matplotlib.figure.Figure at 0x7f1653abbd30>"
]
}
],
"prompt_number": 28
"prompt_number": 27
},
{
"cell_type": "markdown",
@@ -2035,8 +2026,8 @@
"def plot_kalman_filter(start_pos, \n",
" sensor_noise, \n",
" movement, \n",
" movement_noise, n\n",
" oise_scale):\n",
" movement_noise,\n",
" noise_scale):\n",
" # your code goes here\n",
" pass\n",
"\n",
@@ -2051,65 +2042,76 @@
"metadata": {},
"outputs": [
{
"ename": "SyntaxError",
"evalue": "invalid syntax (<ipython-input-29-83e872123bef>, line 9)",
"output_type": "pyerr",
"traceback": [
"\u001b[1;36m File \u001b[1;32m\"<ipython-input-29-83e872123bef>\"\u001b[1;36m, line \u001b[1;32m9\u001b[0m\n\u001b[1;33m oise_scale):\u001b[0m\n\u001b[1;37m ^\u001b[0m\n\u001b[1;31mSyntaxError\u001b[0m\u001b[1;31m:\u001b[0m invalid syntax\n"
"metadata": {},
"output_type": "pyout",
"prompt_number": 28,
"text": [
"<function __main__.plot_kalman_filter>"
]
}
],
"prompt_number": 29
"prompt_number": 28
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"######Solution\n",
"One possible solution follows."
"One possible solution follows. We have sliders for the start position, the amount of noise in the sensor, the amount we move in each time step, and how much movement error there is. Movement error is perhaps the least clear - it models how much the dog wanders off course at each time step, so we add that into the dog's position at each step. I set the random number generator seed so that each redraw uses the same random numbers, allowing us to compare the graphs as we move the sliders."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"zs = np.zeros(100)\n",
"ps = np.zeros(100)\n",
"\n",
"def plot_kalman_filter(start_pos, \n",
" sensor_noise, \n",
" movement,\n",
" movement_noise,\n",
" noise_scale):\n",
" dog = DogSensor(start_pos, velocity=movement, noise=sensor_noise)\n",
" movement_noise):\n",
" n = 20\n",
" zs = []\n",
" ps = []\n",
" \n",
" dog = DogSensor(start_pos, velocity=movement, variance=sensor_noise)\n",
" random.seed(303)\n",
" pos = (0,100)\n",
" pos = (0., 1000.) # mean and variance\n",
"\n",
" for i in range(100):\n",
" Z = dog.sense() + random.randn()*noise_scale\n",
" zs[i] = Z\n",
" for _ in range(n): \n",
" move_error = random.randn()*movement_noise\n",
" dog.x += move_error\n",
" \n",
" z = dog.sense()\n",
" zs.append(z)\n",
"\n",
" pos = update(pos[0], pos[1], Z, sensor_error)\n",
" ps[i] = pos[0]\n",
" pos = update(pos[0], pos[1], z, sensor_noise)\n",
" ps.append(pos[0])\n",
"\n",
" noise = random.randn()*movement_noise\n",
" pos = predict(pos[0], pos[1], movement + noise, movement_noise)\n",
" pos = predict(pos[0], pos[1], movement, movement_noise)\n",
"\n",
" plt.plot(zs,c='r', linestyle='dashed', label='measurement')\n",
" plt.plot(ps, c='#004080', label='filter')\n",
" plt.plot(ps, c='#004080', alpha=0.7, label='filter')\n",
" plt.legend(loc='best')\n",
" plt.show()\n",
"\n",
"interact(plot_kalman_filter,\n",
" start_pos=(-10,10), \n",
" sensor_noise=widgets.IntSliderWidget(value=5,min=0,max=100), \n",
" sensor_noise=widgets.FloatSliderWidget(value=5,min=0.,max=100), \n",
" movement=widgets.FloatSliderWidget(value=1,min=-2.,max=2.), \n",
" movement_noise=widgets.FloatSliderWidget(value=2,min=0,max=100.),\n",
" noise_scale=widgets.FloatSliderWidget(value=1,min=0,max=20.))"
" movement_noise=widgets.FloatSliderWidget(value=.1,min=0,max=.5))"
],
"language": "python",
"metadata": {},
"outputs": []
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAF2CAYAAAB3dr7TAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8VfX9x/HXufvmZm92WMoIEPYQoUAREX5VqVVri6Na\nF45CLVU6pD8t1ll/xVG1tSraOoqCo2JZghCmhhFWIBAII2STm+Tue35/JEQCAUnuODfJ5/l48Mi4\n95zzCRySd773+/1+lH379qkIIYQQQgghGtFpXYAQQgghhBCRSIKyEEIIIYQQTZCgLIQQQgghRBMk\nKAshhBBCCNEECcpCCCGEEEI0QYKyEEIIIYQQTZCgLIQQQgghRBMCDsoPPfQQY8eOZejQofzgBz9g\n5cqVAHg8HubNm8eQIUOYMGECn3/+ecDFCiGEEEIIES5KoA1H9u7dS48ePTCZTKxfv5677rqLzZs3\n884777B8+XJef/11du/ezV133cXnn39Oenp6sGoXQgghhBAiZAIeUe7Tpw8mkwlVVfF4PNhsNhRF\nYdmyZcycOZPo6GhGjBjB4MGDWb58eTBqFkIIIYQQIuQMwTjJ/PnzWbx4MRaLhVdeeQWr1UpBQQHd\nu3fnoYceYuLEifTs2ZNDhw4F43JCCCGEEEKEXFAW882fP5+cnBx+8Ytf8Ktf/QqXy4XD4SAqKor9\n+/dTXFyMzWajtrY2GJcTQgghhBAi5IIyogxgMBj4yU9+wttvv82GDRuwWq04HA6WLl0KwOOPP47N\nZjvnuMLCwmCVIIQQQgghxHl16dKlWc8PWlA+TVVVVFUlIyOD/Px8+vfvD0B+fj6TJk1q8pi+ffsG\nuwwhApKUlMSHH37I+PHjtS5FiEbk3hSRTO5PEamSkpJYt25ds48LaOpFaWkpH3zwAdXV1Xi9Xt59\n913Ky8sZPHgwU6dOZdGiRdjtdjZt2sS2bduYPHlyIJcTQgghhBAibAIaUdbpdHz66ac8++yzeDwe\nevXqxUsvvUR8fDy33norBw8eZPz48cTFxbFgwQLS0tKCVbcQQgghhBAhFfA+yoEqLCyUqRci4iQl\nJbFnzx5SU1O1LkWIRuTeFJFM7k8RqU5PvWjuHGVpYS3EecgvcCJSyb0pIpncn6ItkaAshBBCCCFE\nEyQoCyGEEEII0QQJykIIIYQQQjRBgrIQQgghhBBNkKAshBBCCCFEEyQoCyGEEEII0QQJykIIIYQQ\nQjRBgrIQQgghhBBNkKAshBBCCCFEEyQoCyGEEEII0QQJykIIIYQQQjRBgrIQQgghhBBNkKAshBBC\nCCFEEyQoCyGEEEII0QQJykIIIYQQQjRBgrIQQgghhBBNkKAshBBCCCFEEyQoCyGEEEII0QQJykII\nIYQQQjRBgrIQQgghhBBNkKAshBBCCCFEEyQoCyGEEEII0QQJykIIIYQQQjRBgrIQQgghhBBNkKAs\nhBBCCCFEEyQoCyGEEEII0YSAgrLX62Xu3LmMHTuWYcOGcfPNN3PgwAEAFi5cSP/+/Rk8eDCDBw9m\n0qRJQSlYCCGEEEKIcAgoKPv9frp168bixYvZunUrEydOZNasWQ2PT5s2jZycHHJycli5cmXAxQoh\n2ifTxo0kXXcd+oMHtS5FCCFEOxJQUDaZTMyaNYu0tDQAZsyYweHDhykvLwdAVdXAKxRCtHsxzzyD\necMGYp94QutShBBCtCNBnaOck5NDWloaCQkJAKxevZqRI0dyzTXXsHr16mBeSgjRjtgfeAAAQ36+\nxpUIIYRoTwzBOpHdbmfBggU8/PDDKIrCVVddxcyZM4mJiWHVqlXMmTOHDz/8kO7du59zbFJSUrDK\nECIojEYjIPdmxJgyBdVoxJCXR5JeD/HxWlekGbk3RSST+1NEqtP3ZnMFJSi73W5mzZrFtGnTmDp1\nKgA9e/ZseHzy5MmMGDGCdevWNRmUH3vssYb3x40bx/jx44NRlhCirYiKQh0+HF12Nrr16/FPm6Z1\nRUIIISLcmjVrWLt2LQB6vZ5x48Y1+xwBB2Wfz8ecOXPIyMjggfqXR5vr3nvvbfRxWVlZoGUJEZDT\noyFyL0aOmOHDicnOxvXFF1SNGqV1OZqRe1NEMrk/RSTJzMwkMzMTqLs3161b1+xzBDxH+fe//z06\nnY758+c3+vzy5cupqqrC7/fz5ZdfsnnzZsaOHRvo5YQQ7VTtj35E6fvvUzV3rtalCCGEaCcCGlE+\nduwYixcvxmq1MnToUAAUReHVV1/ls88+45FHHsHn85GRkcHzzz/f5LQLIYRoinn1amx//zvVd9+N\ne+xYfN2745PvIUIIIcIooKDcqVMn9u7d2+Rjw4YNC+TUQoh2zvbGG1hWr8Y9ejRueTVKCCGEBqSF\ntRAi4ugLCzGvXIlqMlF7441alyOEEKKdkqAshIg4UW+/jaKqOKZPxy/bTAkhhNCIBGUhRGRxuYj6\n5z8BqLnlliafolRUgMMRzqqEEEK0QxKUhRARxbB/P4rfj6d/fzz1i4TPFPfQQ6QPGIBlzRoNqhNC\nCNGeBK0znxBCBIM3M5OirVvRnzgBinLO4/4OHVBUFVN2Ns4rr9SgQiGEEO2FjCgLISKP1YqvR48m\nH3KNHg2AecOGcFYkhBCiHZKgLIRoVdxDhqCazRh370YpL9e6HCGEEG2YBGUhROtiseAeMgQA86ZN\nGhcjhBCiLZM5ykKIVsc1Zgz6o0dRZOcLIYQQISQjykII7akqCXffjfW998Dj+c6nVz/wAMUbN+KY\nMSMMxQkhRAu4XET94x8k3nwz+P1aVyNaSIKyEEJzpnXrsH7yCbFPPdXkThfnMMiLYUKIyKQ7cQLL\nZ5+hs9uJeeEFLCtXYl69WuuyRAtJUBZCaM721lsA1Pz0pxKChRCtmuWLL0i8807ifvtbam6/HYDo\nV1/VuCrRUhKUteZyodjtde9fxEvOQrQ1uuPHsXzxBarBQO1NN2ldjhBCBMT81VcAuMaNo+YnP8Fv\ns2Fetw5Dbq7GlYmWkKCsMfNXX5Herx8dO3WiQ8+eKJWVWpckRFjZ/vlPFJ8P59Sp+NPStC5HCCFa\nzuvFvH49UBeU1bg4am+8EZBR5dZKgrLGTJs3o9RP8ld8PgyHDmlckRDhdXr0peaWW5p9rGHXLmyv\nvCL7KQshIoJx+3Z0djvejAx8nTsDUHPHHag6HYb8fPB6Na5QNJdMBtSYeeNGAPw2G7qaGgwHD+IZ\nPFjjqoQIn9IPP8SUnY171KhmHxv3hz9gXr8eX+fOOKdNC0F1Qghx8cxr1wJ1o8mn+bp2pWT5cryX\nXnpxi5VFRJERZS05HBh37EBVFGqvvx4Aw8GDGhclRJjp9bgvv7xFP0BOt7M2STtrIUQEcA8dSu31\n1+O88spGn/f26SMhuZWSEWUNmXJyUDwePP374xk0CJCgLERzuMeMAcCcna1xJUIIAe5x43CfMZos\nWj8ZUdaQrqICX3o6rlGj8PboUfe5khKNqxKi9XBnZaFaLBj37UNXWqp1OUIIIeoZd+4katEicLu1\nLiUgMqKsIee0aTivugpcLtDpOJGbi5qQoHVZQrQeZjPuYcMwr1uHaeNGnNOna12REEIIIOapp7Cs\nWoWurIzqX/xC63JaTIKy1hQFLBYAVJNJ42KECA/L0qUYjh2j9sYb8ScmBnSu2htuwDVqFJ4+fYJU\nnRBChIZitxP98ssYd+2i/M03tS4nZIw5OVhWrcIfFUXtzTdrXU5AJCgLIcJLVYlZuBDjnj14O3XC\nefXVAZ3OMWNGkAoTQogQ0+uxvfkmuspKjFu34hk2TOuKQiLmuecAqPnZzwIeDNGazFEWQoSVacsW\njHv24EtOxjl1qtblCCFEwCyffkrizTdj+eKLCz5PjYqi5qc/BSD6lVfCUVrYnTmaXHPXXVqXEzAJ\nykKIsIqqf7mx9qabQKYbCSHaAMvy5VhWrkRfUPCdz6257TZUoxHLsmXoDx8OfXFhZv3oI6BtjCaD\nBGVt+P1EvfUWht27QVUbP+Z0ojt2TJu6hAgxXUkJ1s8+Q9XpqK0fVRFCiFZNVTGvWweA6/LLv/Pp\n/vR0HNdcg+L3Y/vb30JdXdhV/eEPlL/+epsYTQYJypow5OUR/8gjJJ01wd2Ql0eHXr1IuukmjSoT\nIrQs//0viseDc/JkfJ06aV2OEEIEzLB/P/qiInzJyXj79r2oY6p//nMA9EVF5w6YtXaKgnPKlDYx\nmgyymE8Tpvq21a6RIxt16vF16YKiqhgOH67rB2+Qfx7RttT+5Cd4+vdHNRqDfu6YBQuwrFxJ2bvv\n4k9JCfr5hRCiKeavvgLqR5Mvsvuet39/Tm7YgK9r11CWJoJARpQ1YNq8GQD3yJGNPq9arXg7dkTx\neNAfPapFaUKEnCcrC2///kE/rzE3F+PevdLOWggRVg2DXxcx7eJMEpJbh4CCstfrZe7cuYwdO5Zh\nw4Zx8803c+DAAQA8Hg/z5s1jyJAhTJgwgc8//zwoBbd6qop50ybg3KAM4Kvv0CetrIVoHvfo0YC0\nsxZChFfFiy9S+uGHuCZP1roUEQIBBWW/30+3bt1YvHgxW7duZeLEicyaNQuAN954gwMHDrB27Vqe\nfPJJ5s2bR1FRUVCKbs30R47UzWVKSMDbu/c5j3u7dwfAkJ8f7tKEaNVc9UFZRpSFEGFlMuEeObLN\nzMltifj77yf6+edRqqu1LiXoAgrKJpOJWbNmkZaWBsCMGTM4fPgw5eXlLFu2jJkzZxIdHc2IESMY\nPHgwy5cvD0rRrZlqMmF/8MG6TjW6c//6vT164EtNBb9fg+qEaL08gwbhj4rCeOAAuuJircsRQojm\naaWL+ozbthH14YdEv/giisuldTlBF9TVYjk5OaSlpZGQkEBBQQHdu3fnoYceYuLEifTs2ZLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7f1653b22048>"
]
}
],
"prompt_number": 34
},
{
"cell_type": "heading",
@@ -2181,7 +2183,17 @@
],
"language": "python",
"metadata": {},
"outputs": []
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f1653b3b278>"
]
}
],
"prompt_number": 35
},
{
"cell_type": "markdown",
@@ -2255,7 +2267,17 @@
],
"language": "python",
"metadata": {},
"outputs": []
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f165c03de10>"
]
}
],
"prompt_number": 36
},
{
"cell_type": "markdown",