Added variance to voltage animation.

Voltage animation now displays the Gaussion as it innovates.
This commit is contained in:
Roger Labbe committed 2014-09-14 11:18:14 -07:00
1 parent 15de2dad71
commit 0952f14c75
3 files changed
+317 -119

No files matched your search

+110 -90
View File
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:eb5b8609726afd3ea3868dd795d6475e74e63d38a908e6972ad35ee3c6f0b2f1"
"signature": "sha256:ce50ae76601ee29b27998c3d04ed65d7a05c21cf63a83e520527e96fff2359e3"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -255,13 +255,13 @@
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 1,
"prompt_number": 2,
"text": [
"<IPython.core.display.HTML at 0x7f209db34f98>"
"<IPython.core.display.HTML at 0x7feedcb960f0>"
]
}
],
"prompt_number": 1
"prompt_number": 2
},
{
"cell_type": "heading",
@@ -324,7 +324,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
"prompt_number": 3
},
{
"cell_type": "markdown",
@@ -349,14 +349,14 @@
"output_type": "stream",
"stream": "stdout",
"text": [
" 0.0276\t 1.7666\t-0.6031\t 0.0895\t-0.9401\t\n",
" 0.2449\t-0.4231\t 0.2825\t 1.7339\t-2.7824\t\n",
" 1.1785\t-1.0472\t-0.3156\t 1.3697\t 1.1010\t\n",
" 0.8988\t-0.6833\t-0.1195\t-2.1915\t-2.8026\t\n"
" 0.3063\t 0.0614\t 0.7215\t 0.8443\t-0.6958\t\n",
" 0.3727\t 1.0889\t 0.2490\t 0.1126\t-1.0971\t\n",
" 2.5001\t 1.0345\t 1.0200\t 0.2969\t-1.5525\t\n",
" 0.9133\t-1.1189\t 0.9056\t-0.8069\t-0.5581\t\n"
]
}
],
"prompt_number": 3
"prompt_number": 4
},
{
"cell_type": "markdown",
@@ -399,11 +399,11 @@
"output_type": "display_data",
"png": "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\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 0x7f2083ecbc18>"
"<matplotlib.figure.Figure at 0x7feec4299b70>"
]
}
],
"prompt_number": 4
"prompt_number": 5
},
{
"cell_type": "markdown",
@@ -442,13 +442,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "iVBORw0KGgoAAAANSUhEUgAAAuAAAAGWCAYAAAA5TTZIAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt8znXjx/HXtWvnjZ2Y49jMaQgzZ2Y5ZXJKopBSOkoq\n3Ip0d6fSXd0RP90puikSIVHO5BxzzinMbDOnmTF23rXrun5/jCtrc55t7P18PHq06/p+Pp/r892+\nePv4HAyHDx+2IiIiIiIihcKuqDsgIiIiIlKSKICLiIiIiBQiBXARERERkUKkAC4iIiIiUogUwEVE\nRERECpECuIiIiIhIIVIAFxEpQm+99Rbt2rUr6m6IiEghUgAXESlCBoMBg8FQ1N0oEv/73/+oXbs2\n/fr1u6N2YmNjefHFF2nUqBFNmzZl5MiRnD9/voB6KSJS8Aw6iEdEpOiYzWYsFgsODg5F3ZVCde7c\nOcLDw8nMzKR+/fp8//33t9VOUlIS3bt3B2DQoEGkp6czdepUqlatyrx58zAajQXZbRGRAmFf1B0Q\nESnJjEZjiQyJ48ePp2XLluzfv/+O2pk5cyZnz55lwYIF1K1bF4AqVaowbNgwlixZYgvnIiLFiaag\niIhcx08//UTt2rXZu3cvQ4cOpVGjRrRt25Zp06blKWs2m5k8eTIdOnSgXr16PPjgg3z88cdkZmbm\nKnf+/Hlq165t++96c8BTU1P5+OOPad++PfXr16dNmzYMHjyYQ4cO5Sm7YcMG+vXrR3BwMCEhIbz8\n8svExMTc8fegoO3bt49ffvmF4cOH33Fba9asoWbNmrbwDdCpUyfc3d1ZvXr1HbcvInI3aARcROQm\nvPnmm7b5xcuWLeM///kP1apVyxWex44dy9y5c3nooYcYNGgQ+/fvZ/r06URHRzNlyhRbOXd3dz79\n9FMA5s6dy+nTp6/5uWPHjmXx4sX079+foKAgEhMT2bJlCwcOHKB27dq2cj///DNvvfUWTZo0YcSI\nEaSnpzN79mz69evH4sWLKVOmzC3d743mUBuNRjw8PG6pTQCr1cqHH37I448/TtWqVW+5/tXMZjNH\njx6la9euefpWo0aNfP+SIiJSHCiAi4jchLCwMN566y0AevToQevWrVmzZo0tgJ8+fZq5c+fSsWNH\nJk2aZKvn5ubGd999x549e2jYsCEAjo6OdOvWDYDNmzdz6tSpa37u2rVrCQsLY8yYMbb3XnjhBcxm\ns+11SkoKH3zwAa1bt841Mh8eHk54eDgzZsxgxIgRt3S/LVu2vO71SpUqsWbNmltqE2Dx4sVERkby\n5Zdf3nLdv0tKSiI7OxsfHx9MJhOPPfYYRqORuXPnUqZMGQVwESm2FMBFRG5Cp06dbF+7uLgQEBDA\nmTNnbO9FREQA0LNnz1z1Hn30Ub777ju2bt1qC+C3ws3NjaNHjxIfH0+5cuVs7189b3zz5s2kpKTQ\ntWvXXCPXrq6u+Pn5sX379lv+3OnTp1/3urOz8y23mZqayn/+8x9eeOEFvLy8brn+32VlZQHg4OCA\nyWTizJkzGI1GsrOzcXR0tF0XESluFMBFRG5C2bJlc712cXHBZDLZXsfHxwNQsWLFXOWuvL46rN+K\nESNGMGrUKNq2bUvt2rUJDg7m4YcfJiQkxFYmNjYWwDZC/3dVqlS55c9t0aLFbfX3er766iuMRiMD\nBw4skPYcHR0BMJlMuLq6smbNGgwGAy4uLmRlZeHk5FQgnyMiUtAUwEVEboKdXdGsWe/SpQtNmzZl\n3bp17Nixg8WLF/P999/z4Ycf0qtXr1xl33//fSpXrpynjdsZrU5ISLjudaPRiLe39y21N336dIYM\nGcKFCxds75vNZrKysoiPj6dUqVK4urredJuenp7Y29uTmJgI5Mytv+LcuXN5/tIkIlJcKICLiBSA\nK9NDTp48mWtx5MmTJwEoX778bbddtmxZevfuTe/evTl//jzdunVj1qxZtgB+ZTGjp6dngY1ch4aG\nXvf6rc4BP3fuHCaTiQkTJjBhwoRc1+Lj4wkLC2P06NE89dRTN92m0WikevXqHDhwINf72dnZHDly\nhFatWt10WyIihUkBXESkADRr1gyDwcBPP/1E+/btbe//9NNPwPWndFzrJEyLxUJqaiqlSpWyvefp\n6Ymbm1uug3tatWqFm5sb33zzDW3btsXe3j5XGwkJCbnmj9+Mgp4D7ufnx5QpU3Ldq9Vq5e2338bb\n25sRI0YQGBiYp96sWbOYNWsWDz30EMOGDctzvX379nzxxRfs37+fevXqAbBixQpSU1Nz/RxERIoT\nBXARkdtktf51kHCFChV4/PHHmTNnDq+++iotWrRg//79/PTTT7Rt25YGDRrYym7evJlz584BEBcX\nR1paGosXL7a116NHDyBnd5M2bdrQqVMngoKCcHZ25rfffuP48eMMGDDA1p67uztjxoxh9OjR9OzZ\nk65du1K6dGmio6NZu3YtPXr0YMiQIbd0bwU9B9zd3Z0HH3wwz/tOTk6ULl2asLCwfOtduHCBmJiY\na06JefLJJ/nxxx8ZPHgwzz77LBkZGUydOpWgoKA82xOKiBQXCuAiIjdwrRHqv7//zjvvULZsWRYu\nXMjatWvx8fHhmWee4fXXX89VbsqUKbadSa60MXLkSNvrKwHcxcWF/v37s3nzZlavXo3VasXf35+x\nY8fSp0+fXG327NkTX19fpk2bxtSpUzGbzVSsWJGwsDA6d+5859+EImIwGK75/Qfw8vJi5syZfPTR\nR0ycOBEHBwfatWvHqFGjSuQJoyJybzAcPnzYeuNid2716tVMnTqVgwcP0rVrVz766CMgZ/X6u+++\ny/Lly/Hw8GDkyJG5/rD47rvv+OqrrzCZTDzxxBP5/hOkiIiIiMi9otBGwEuXLs1zzz3H77//TkZG\nhu39GTNmcPToUTZs2MDBgwd58cUXCQ4Opnz58vzxxx988cUXzJ49G3d3d/r160dQUNA9PZojIiIi\nIiVboe2r1bRpUzp27Jjn6OLly5czYMAA3N3dadq0KcHBwaxatcp27aGHHiIwMJBy5crRu3dvli5d\nWlhdFhEREREpcIU+B/zqRUsAMTExBAQEMGLECNq1a0dgYCDR0dG2a02aNOHbb7/lzJkzhISE8Ouv\nvxZ2l0VERERECkyhnyzx98U06enpuLq6EhkZydmzZ3FzcyMtLS3Xtbi4OGJjY3NdExERERG5FxX5\nCLiLiwvp6eksWrQIgA8++AA3NzfbtbS0NMaMGQPAqlWrrnlKWlxc3F3stYiIiIhIDj8/vzuqX+gB\n/O8j4P7+/kRFRVG3bl0AoqKibIcn+Pv7c+zYMVvZo0ePUq1atWu2HRQUdBd6LPcqHx8ffvrpp2vu\nLywlj54JyY+eC8mPnouSwRgTQ6lJk3CZP5+s5s1J/PHH65b38fFh06ZNd/y5hTYFxWKxkJmZidls\nxmw2k5WVRXZ2Np07d2bmzJkkJycTERHBnj176NixIwCdO3dm1apVHD16lPj4eBYsWKAdUERERETk\njhhjYvAcNgzfNm1wnTsXAHOlSpCZWSifX2gj4D///DOjR4+2vV68eDFDhgzhpZde4tixY4SFheHh\n4cG4ceNsRybXr1+fV155haeeeors7GyeeOIJBXARERERua6sbDOb9p9i+Y4YMMB7T7bAxely7DWZ\nKPPIIxgTErAajaT16UPy0KGYAwIKrX+FdhDP3RYXF6cpKJKLj48Pf/75J76+vkXdFSkm9ExIfvRc\nSH70XNx70jOzWbc3jqXbY1i9+ziX0rJs19rUq8T04Q/h7JgTwt2mTMHh8OFbDt5XpqDc6RxwBXC5\nb/n4+ACQmJhYxD2R4kLPhORHz4XkR8/FvSMuIZn3Z0fw2x9xpGdm294P8vOmU4OKfL8xioSL6bRr\n6Me01zvi5GC87c8qqABe6NsQioiIiEjJ9UvEMR4d+wsnEpLvuC2r1crgyb+xZFs06ZnZBAeWZfQT\nTdj+enN2ZG3m42/fY86b4Xi5O/Hbnjhe/r81mLItBXAXd6bQd0EpKiaTiQsXLuTZhUUKn4ODA56e\nnkXdDRERESkCkxfvYX9MIuMX7mL8C3e2y8zircfYdfQsZT1c+OW9HvinJtp2NTGYzViNRh5IOsmc\nUV14fNwSVuyMZch/f+OLV9phbyy6cegSEcBNJhOJiYn4+vpiZ6dB/6KWlJREWlraNfd0FxERkfvT\nuYvp7I/JmdazYFMkwx8NoVIZ99tqKyMrm4/mbgPgH481ps6MKbj/3//ZgvfViyvrAbPf6szj45bw\na0Q0jvbr+fylMIxFlAtLRBq9cOGCwncx4uHhQUpKSlF3Q0RERArZxv0nbV9nm618tXTvbbf1vxUH\niEtIIcjPmycerEn25XnZaX36cHb9epImTMi1wLJBtbLMerMzbs4O/LT5KP+YthGL5a+lkFarlaxs\nM8lpWSRcTCP5qkWcBa1EjIAbDAaF72LEYDBoKpCIiEgJtOFyAO/VujoLNh3l+7WHeO2RYHxKu9xS\nO4mX0pm0aDcA7/RrhtHOjvRevchq3hyzv/816zWuUY7vRnTiyU+XM3f9EVbvPo7ZYiXTZCYjK5ur\nD2wf/mgjhvUKueV7vBlKpSIiIiJy11mtVjbsOwHAS13q0yG4ChlZZqYt33/TbRhjYyn9r38xcW4E\nyekm2jXwI6x+5ZyLDg7XDd9XNA+qwPRhD+Hu7EDipQySUjJJz8wJ3/ZGA27ODviUdsbB/vZ3S7mR\nEjECLiIiIiJFK/JkEmcupFHWw4UgP2+GdG/I6t3HmbHqIIO7NqCUq+M16xpjY3GfNAnXefMwmM04\n1jqNXcUmjOnX9Lb6ElqvEru/6E9SaibOjvY4ORhxcjAW2sJMjYCLiIiIyF23/vLod2i9ShLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7f2083b76710>"
"<matplotlib.figure.Figure at 0x7feec3fbfb38>"
]
}
],
"prompt_number": 5
"prompt_number": 6
},
{
"cell_type": "markdown",
@@ -476,13 +476,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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\ngC0gbanMdUJCQqPPt2YN+KBBgwA4dOgQ5557rvr4oUOHHJ7X6XTExMTU25BaXV3N0aNHmTBhgsf3\njomJQavVcujQIS6//HL18SNHjmC1WtV7CyFEW5AAXAghGnHuueei0Wj48ssvHfpbf/nll0DjJR0N\ndUGxWCyUlZURGBioPhYSEkJAQAB6vV59bMKECQQEBPDee+8xefJkvLy8HK6Rk5PjUD/ujvasAY+N\njaV79+6sXr2am2++Wf32YdWqVQQGBjJu3Dj12KlTp/LWW29x4MABhg4dCsDatWspKytrsM/4woUL\n2b9/Pw8++CDTpk1zeC4kJIT4+Hh+/PFH5s+fj7+/PwBffPEFXl5eTJ48uTX+ZCGEcEoCcCGEqMO+\nl3VUVBTXXHMNn376Kffddx/jx4/nwIEDfPnll0yePJnhw4erx27ZskXt5JGWlkZ5eTnffPONer05\nc+YAtu4mEydOZMaMGcTGxuLr68svv/zCyZMn1emPYCu9eOKJJ3jssceYO3cus2fPJigoiBMnTrBh\nwwbmzJnDvffe69Hf1lo14KtXryY9PZ2SkhIA/vjjD/75z38CcNlll6k18/Pnz2fBggXccccdzJgx\ng+3bt7N582YWLlzo0J/7xhtv5LPPPuPuu+/mtttuw2g0smzZMmJjY5k9e7bTNWRkZHDixAm1pryu\nBx54gJtvvplbbrmFK664gsTERD777DNuuOEGGcIjhGhTEoALITqthjLUdR//+9//TkREBF999RUb\nNmwgPDycW2+9lb/97W8Ox7399ttqZxLlGgsXLlR/VwJwPz8/brjhBrZs2cK6deuwWq307duXRYsW\ncfXVVztcc+7cuURGRvLuu++ybNkyzGYz3bt3Z9KkScyaNav5L0ILWbVqlcPf/scff7Bz5040Gg1j\nxoxRA/DZs2dTXV3NsmXLWLRoEVFRUTz22GPcdNNNDtcLDQ1lxYoVvPjii7zxxhvo9XqmTJnCo48+\n2uiE0cZ6r48ePZp//etfvPHGGzz//POEhYVx9913c88997TAKyCEEO7TJCYmNjy2rAWtW7eOZcuW\ncejQIWbPns2LL74I2HafP/XUU/z4448EBwezcOFCh/+ofPjhh/z73//GZDJx7bXXMn/+/LZYrhBC\nCCGEEK2izTLgQUFB/OUvf2Hr1q1qr1eA999/n6SkJDZt2sShQ4e48847GTlyJN26dePPP//krbfe\n4uOPP8ZgMHD99dcTGxvbobI+QgghhBBCeKLN+m+NHTuW6dOnExwc7PD4jz/+yLx58zAYDIwdO5aR\nI0fy888/q89deOGFREdH07VrV6666ip++OGHtlqyEEIIIYQQLa7Na8DtNzcBpKSk0K9fPxYsWMCU\nKVOIjo7mxIkT6nNjxozhgw8+IDMzk/j4eL777ru2XrIQQgghhBAtps0nUNTdIFNRUYG/vz/Hjh0j\nOzubgIAAysvLHZ5LS0sjNTXV4TkhhBBCCCHORO2eAffz86OiooKvv/4agOeee46AgAD1ufLycp54\n4gkAfv75Z7V3a11paWmtuGohhBBCCCFsevXq1azz2zwAr5sB79u3L8nJycTFxQGQnJysDlno27cv\nx48fV49NSkqif//+DV47Nja2FVYszlTh4eF8+eWXTJo0qb2XIjoIeU8IZ+R9IZyR90Wtgbe/T5nR\nxJQRvVjx0EyXx2cVlDPq3o8AiAzxY89bNzZ7DRc89DnH0gv56YXLuenltWQWlPHN05cSP8CzYWR1\n6VJS2HLTfC5N/p38EfFUf/91o8eHh4ezefPmZt0T2rAExWKxUFlZidlsxmw2U1VVRXV1NbNmzWLF\nihWUlJSwY8cO9u7dy/Tp0wGYNWsWP//8M0lJSWRlZbFq1SrpgCKEEEII0UbKjCbKjCYAdidl16tk\ncGZPcrb6c36J0a1zXMkrsXXQiwj249JxtmTs6q3JTb6eLiWFkPnziZw4kcuTd4BGg19MP6isbPZa\n3dFmGfDVq1fz2GOPqb9/88033Hvvvdx1110cP36cSZMmERwczAsvvKCOVh42bBj33HMPN910E9XV\n1Vx77bUSgAshhBBCtJGswtq9d4WllSRnFBHTPaTRc/Yk1Qbg1WYrJRUmgvy9m7wGs8VCYaktMA41\n+DJ3QjTvrNnPtzuO89SN4/DSeZhPNpnoctll6HJysGh1vN9tBD9MuYI3Xr6tyWv0VJsF4JdffjmX\nX3650+deeOEFXnjhBafP3XTTTfUmpAnhLilLEnXJe0I4I+8L4Yy8LyC7wLH5xa5jWa4D8OM5Dr/n\nlxibFYAXlVVhsVoJ9vdG76XlnL5d6NctiBOZxWw9lM7Ec3p6dkG9ntK77kKfmMhzvc7nxV35PDhu\neJPX1xRt3gVFiLYk/89T1CXvCeGMvC+EM/K+cMyAA+w6lt3AkTZmi4U/k20BePdwW1ON/BLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7f2083ecb470>"
"<matplotlib.figure.Figure at 0x7feec428f4a8>"
]
}
],
"prompt_number": 6
"prompt_number": 7
},
{
"cell_type": "code",
@@ -496,13 +496,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f2083ab2208>"
"<matplotlib.figure.Figure at 0x7feec3f060b8>"
]
}
],
"prompt_number": 7
"prompt_number": 8
},
{
"cell_type": "markdown",
@@ -541,11 +541,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f2083a4d5c0>"
"<matplotlib.figure.Figure at 0x7feec3eb3c50>"
]
}
],
"prompt_number": 8
"prompt_number": 9
},
{
"cell_type": "markdown",
@@ -578,13 +578,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f2083ecbcf8>"
"<matplotlib.figure.Figure at 0x7feec4299940>"
]
}
],
"prompt_number": 9
"prompt_number": 10
},
{
"cell_type": "markdown",
@@ -677,11 +677,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 0x7f207c43cf28>"
"<matplotlib.figure.Figure at 0x7feec0193ba8>"
]
}
],
"prompt_number": 10
"prompt_number": 11
},
{
"cell_type": "markdown",
@@ -725,11 +725,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f207ab86a20>"
"<matplotlib.figure.Figure at 0x7feec00e27f0>"
]
}
],
"prompt_number": 11
"prompt_number": 12
},
{
"cell_type": "markdown",
@@ -775,11 +775,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 0x7f207ab044e0>"
"<matplotlib.figure.Figure at 0x7feec00479e8>"
]
}
],
"prompt_number": 12
"prompt_number": 13
},
{
"cell_type": "markdown",
@@ -850,7 +850,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 13
"prompt_number": 14
},
{
"cell_type": "markdown",
@@ -869,7 +869,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 14
"prompt_number": 15
},
{
"cell_type": "markdown",
@@ -898,30 +898,30 @@
"output_type": "stream",
"stream": "stdout",
"text": [
"time: 0 \tposition = 1.519 \tvariance = 2.500\n",
"time: 1 \tposition = 0.769 \tvariance = 1.667\n",
"time: 2 \tposition = 1.024 \tvariance = 1.250\n",
"time: 3 \tposition = 0.897 \tvariance = 1.000\n",
"time: 4 \tposition = 0.705 \tvariance = 0.833\n",
"time: 5 \tposition = 0.665 \tvariance = 0.714\n",
"time: 6 \tposition = 0.479 \tvariance = 0.625\n",
"time: 7 \tposition = 0.486 \tvariance = 0.556\n",
"time: 8 \tposition = 0.528 \tvariance = 0.500\n",
"time: 9 \tposition = 0.353 \tvariance = 0.455\n",
"time: 10 \tposition = 0.218 \tvariance = 0.417\n",
"time: 11 \tposition = 0.280 \tvariance = 0.385\n",
"time: 12 \tposition = 0.344 \tvariance = 0.357\n",
"time: 13 \tposition = 0.506 \tvariance = 0.333\n",
"time: 14 \tposition = 0.394 \tvariance = 0.312\n",
"time: 15 \tposition = 0.358 \tvariance = 0.294\n",
"time: 16 \tposition = 0.338 \tvariance = 0.278\n",
"time: 17 \tposition = 0.334 \tvariance = 0.263\n",
"time: 18 \tposition = 0.346 \tvariance = 0.250\n",
"time: 19 \tposition = 0.306 \tvariance = 0.238\n"
"time: 0 \tposition = 1.650 \tvariance = 2.500\n",
"time: 1 \tposition = 1.081 \tvariance = 1.667\n",
"time: 2 \tposition = 0.837 \tvariance = 1.250\n",
"time: 3 \tposition = 0.305 \tvariance = 1.000\n",
"time: 4 \tposition = 0.540 \tvariance = 0.833\n",
"time: 5 \tposition = 0.393 \tvariance = 0.714\n",
"time: 6 \tposition = 0.301 \tvariance = 0.625\n",
"time: 7 \tposition = 0.262 \tvariance = 0.556\n",
"time: 8 \tposition = 0.257 \tvariance = 0.500\n",
"time: 9 \tposition = 0.240 \tvariance = 0.455\n",
"time: 10 \tposition = 0.204 \tvariance = 0.417\n",
"time: 11 \tposition = 0.147 \tvariance = 0.385\n",
"time: 12 \tposition = 0.261 \tvariance = 0.357\n",
"time: 13 \tposition = 0.330 \tvariance = 0.333\n",
"time: 14 \tposition = 0.297 \tvariance = 0.312\n",
"time: 15 \tposition = 0.287 \tvariance = 0.294\n",
"time: 16 \tposition = 0.269 \tvariance = 0.278\n",
"time: 17 \tposition = 0.168 \tvariance = 0.263\n",
"time: 18 \tposition = 0.173 \tvariance = 0.250\n",
"time: 19 \tposition = 0.116 \tvariance = 0.238\n"
]
}
],
"prompt_number": 15
"prompt_number": 16
},
{
"cell_type": "markdown",
@@ -988,13 +988,13 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 16
"prompt_number": 17
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"What is left? Just calling these functions. The histogram did nothing more than loop over the `sense()` and `update()` functions, so let's do the same. "
"What is left? Just calling these functions. The histogram did nothing more than loop over the `update()` and `predict()` functions, so let's do the same. "
]
},
{
@@ -1037,28 +1037,28 @@
"output_type": "stream",
"stream": "stdout",
"text": [
"PREDICT: 1.0000 502.0000\tUPDATE: -0.2825 9.8047\n",
"PREDICT: 0.7175 11.8047\tUPDATE: 1.3165 5.4138\n",
"PREDICT: 2.3165 7.4138\tUPDATE: 1.6450 4.2574\n",
"PREDICT: 2.6450 6.2574\tUPDATE: 3.7906 3.8490\n",
"PREDICT: 4.7906 5.8490\tUPDATE: 3.6658 3.6904\n",
"PREDICT: 4.6658 5.6904\tUPDATE: 5.7559 3.6267\n",
"PREDICT: 6.7559 5.6267\tUPDATE: 7.8662 3.6007\n",
"PREDICT: 8.8662 5.6007\tUPDATE: 8.4671 3.5900\n",
"PREDICT: 9.4671 5.5900\tUPDATE: 12.2074 3.5856\n",
"PREDICT: 13.2074 5.5856\tUPDATE: 11.9462 3.5838\n"
"PREDICT: 1.0000 502.0000\tUPDATE: 5.9025 9.8047\n",
"PREDICT: 6.9025 11.8047\tUPDATE: 5.2123 5.4138\n",
"PREDICT: 6.2123 7.4138\tUPDATE: 4.9745 4.2574\n",
"PREDICT: 5.9745 6.2574\tUPDATE: 5.2439 3.8490\n",
"PREDICT: 6.2439 5.8490\tUPDATE: 5.8732 3.6904\n",
"PREDICT: 6.8732 5.6904\tUPDATE: 5.6334 3.6267\n",
"PREDICT: 6.6334 5.6267\tUPDATE: 7.1423 3.6007\n",
"PREDICT: 8.1423 5.6007\tUPDATE: 9.0740 3.5900\n",
"PREDICT: 10.0740 5.5900\tUPDATE: 9.8442 3.5856\n",
"PREDICT: 10.8442 5.5856\tUPDATE: 13.7547 3.5838\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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\nuXNp0qQJt9xyC5dccgmPPvooDRo0ICQk5Jg6RURERAQMmZmZlbqDws6dO0+4CcSBAweoX79+ZT5e\najl9DR2fzWYDIDs7O8iVVH/qq8ConwKnvgqM+ikw6qfA2Ww2li1bRrNmzU56nUZ+RURERKTOUPgV\nERERkTpD4VdERERE6gyFXxERERGpMxR+RURERKTOUPgVERERkTpD4VdERERE6gyFXxERERGpMxR+\nRURERKTOUPgVERERkTpD4Veqna5duzJlypRglyEiIiK1kMKvVDsGgyHYJYiIiFQPTieGH38Eny/Y\nldQaCr/lsHz5cjp27Mgtt9xCcnIy06ZNo3fv3px33nksXboUgPz8fO6//37OP/98kpOTGTp0KJs2\nbfK3sXnzZm6++WZSUlI4++yzSU9PZ/r06WWe43K5ePjhh+nUqRMtW7akR48eTJ061X9+586dJCQk\nsHv3bv+x5557jm7dupVpZ+bMmSQkJLB+/Xr69u1Ly5YtSU1NZcOGDQA4nU4mTZpEp06daN26Nf36\n9ePHH3/039+1a1fuvPNO2rZty2233cbEiRNJSkpi7NixxzwnPT2dli1bctFFF/HRRx+VOZ+QkMCH\nH37IVVddRatWrejbty+bN28u85yEhAR27drFlClTSEhIICEhgeeff/60/nxERERqC/MddxDSowdR\nzz0X7FJqDXOwCwhEk6ZNj3t8z1Gh70yuL48DBw4wYsQImjdvzvjx45k9ezaLFy9m6tSp9OzZk2HD\nhmGxWHjvvfeIiYnhzTff5Nprr2Xp0qWEh4dz6NAhUlJSGDVqFDabjYyMDMaMGUPTpk1JT08H4N13\n32XOnDlMnTqVFi1asH37dnbu3HnK2k40cvrQQw9x5513kpyczC+//ILFYgHgnnvuITMzk1deeYUm\nTZowb948hg4dytKlS2nUqBEGg4G4uDjee+89rr76am6++WZmzJjBVVddxb///W9sNhsffPABkydP\n5oknnqBTp06sW7eOe+65h7i4OPr06eOv4a233uLJJ58kOjqakSNH8uijj/L+++8DsHDhQjweD3//\n+9/p378/I0aMACA8PPyM/qxERERqopBVqzD93/8BEPnCC5SkpuJMSwtyVTVfjQi/1ZHNZiM1NZXC\nwkLmz59Pt27dsNvtfPXVVyxdupTVq1ezevVq6tevD8DEiROZM2cOixcvpl+/fqSmppKamupv77rr\nruP999/nq6++8offnTt30rBhQ3r06AFA0xOE+r/yneBXI3fccQe9e/cG4KyzzgJg69atfPLJJ/z3\nv//l/PPPB2DUqFHMnz+fefPmMXLkSAB69epF586dsdls9OrVi44dO2Kz2di1axc2m43nn3+eu+66\ni/79+wOlo7wZGRl8+OGHZcLvzTffTNeuXQG49tpreemll/zn4uPjATCZTERERFCvXr2APl8REZFa\nx+cjevx4ALznnIPx998Jnz1b4bcC1Ijwe7ojthU5wnsiYWFh/v8f+Tg0NBSHw8H69evx+Xx07969\nzD0Oh4M//vgDALvdzgsvvMCiRYvYv38/LpcLh8NB27Zt/ddfc801zJ07l549e3LhhRfStWtX+vbt\nS0hISLlqPhI6j7Z+/XoABg0adEytO3bsCOjzPXjwIPv37+eZZ54p80Y1l8tFs2bNyrR79tln+z+O\njY0lNze3XJ+LiIhIrWYwkDdxIvFvvYX73Xcpnj4d+4ABwa6qVqgR4bcmOTLqGh0dzcKFC485Hxsb\nC5SOBC9btozx48dz9tlnYzKZuO222/B6vf5rO3TowMqVK1m2bBnff/8948aNY/r06cyZMwc4/vSG\no+//q+jo6BOe+/jjj4mIiChzLCoq6iSfaamjR5kfe+wx/yj1EWaz+aSvRURE5PhcXbrgPvzbU/vA\ngUGupvZQEqkEbdu2JT8/H5fLRatWrY57zcqVK7nlllv80xDsdju7du2iXbt2Za6LjIykT58+9OnT\nh06dOjFy5Ehyc3OJjY31h9nCwkL/9bt27Tqt1RKOjDTv37+fiy+++LQ+zyPq1atHo0aN2LFjB9df\nf3252jiaxWLB5XKdcTsiIiIif6XVHipBz5496dixI8OHDycjI4MdO3aQkZHBfffdx7Zt24DSX/8v\nWLCAzMxMfv31V+666y48Hk+Zdt58803mzZvH5s2b2bRpE5988glNmzb1jx5HR0fTokUL5s6dC8CG\nDRv48ssvT6vWli1bcuWVVzJmzBgWLlzIjh07WLFiBY888ggrVqwIuJ277rqLt99+m7fffpstW7bw\n888/89prrzFt2rTTqgdK+yYjI4O9e/ficDiO6RcRERGR8lL4LaejR1f/+rHBYOCDDz4gNTWVUaNG\ncfHFF3PfffcBEBcXB8CECRMIDw/nyiuv5MYbb6Rz586kpKSUeUZUVBRTp07liiuuoH///tLine truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f207c48ec18>"
"<matplotlib.figure.Figure at 0x7feec01adac8>"
]
}
],
"prompt_number": 17
"prompt_number": 18
},
{
"cell_type": "markdown",
@@ -1190,9 +1190,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f207ab1d828>"
"<matplotlib.figure.Figure at 0x7feeb80a87b8>"
]
},
{
@@ -1200,7 +1200,7 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f207c444860>"
"<matplotlib.figure.Figure at 0x7feeb80817b8>"
]
},
{
@@ -1211,7 +1211,7 @@
]
}
],
"prompt_number": 18
"prompt_number": 19
},
{
"cell_type": "markdown",
@@ -1347,7 +1347,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 19
"prompt_number": 20
},
{
"cell_type": "markdown",
@@ -1366,9 +1366,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we need to write the Kalman filter processing loop. As with our previous problem, we need to perform a cycle of sensing and updating. The sensing step probably seems clear - call `volt()` to get the measurement, pass the result into `update()` function, but what about the update step? We do not have a sensor to detect 'movement' in the voltage, and for any small duration we expect the voltage to remain constant. How shall we handle this?\n",
"Now we need to write the Kalman filter processing loop. As with our previous problem, we need to perform a cycle of predicting and updating. The sensing step probably seems clear - call `volt()` to get the measurement, pass the result into `update()` function, but what about the predict step? We do not have a sensor to detect 'movement' in the voltage, and for any small duration we expect the voltage to remain constant. How shall we handle this?\n",
"\n",
"As always, we will trust in the math. We have no movement, and no error associated with them, so we will just set both to zero. Let's see what happens. "
"As always, we will trust in the math. We have no known movement, so we will set that to zero. However, that means that we are predicting that the temperature will never change over time. If that is true, then over time we should become extremely confident in our results. Once the filter has enough measurements it will become very confident that it can predict the subsequent temperatures, and this will lead it to ignoring measurements that result due to an actual temperature change. This is called a *smug* filter, and is something you want to avoid. So we will add a bit of error to our prediction step to tell the filter not to discount changes in voltage over time. In the code below I set `movement_error = .2`. This is just the expected variance in the change of voltage over each time step. I chose this value merely to be able to show how the variance changes through the update and predict steps. For an real sensor you would set this value for the actual amount of change you expect. For example, this would be an extremely small number if it is a thermometer for ambient air temperature in a house, and a high number if this is a thermocouple in a chemical reaction chamber. We will say more about selecting the actual value in the next chapter. \n",
"\n",
"Let's see what happens. "
]
},
{
@@ -1376,7 +1378,7 @@
"collapsed": false,
"input": [
"sensor_error = temp_variance\n",
"movement_error = 0\n",
"movement_error = .2\n",
"movement = 0\n",
"voltage = (25,1000) #who knows what the first value is?\n",
"\n",
@@ -1412,29 +1414,29 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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\nSkxMlM1mO6Wc6Dmm3bt3+3Tm50OHDp128moYk91ulySVl5f3ckkQSKgX8IZ60beUlpYqISGht4uB\nfuxMdcxut2vdunVKS0vr1D5pGQYAAIBhEYYBAABgWIRhAAAAGBZhGAAAAIZFGAYAAIBhEYYBAABg\nWIRhAAAAGBZhGAAAAIZFGAYAAIBhEYYBAABgWIRhAAAQkGz5+b1dBPSAiRMn6umnn+7tYpwWYRgA\nAPjVuYbc4PXrfVwS+IPJZOrtIpwRYRgAAPhVT4fc7rYg5+fnKysrS3fddZfGjBmjV155RdOnT9d5\n552njz/+WJJUXV2tH/3oRzr//PM1ZswYfetb39LevXs9+9i3b5/uvPNOZWZmaujQocrNzdWf//zn\nDsdxOBxasGCBsrOzNWzYMF1yySV6/vnnPdsPHTqk1NRUHTlyxPPYr3/9a02aNKnDfv76178qNTVV\n27Zt07XXXqthw4YpJydH27dvlyQ1NTXpiSeeUHZ2tkaMGKHrr79en376qef1EydO1H333adx48bp\n+9//vhYtWqSRI0dq/vz5pxwnNzdXw4YN06WXXqq//OUvHbanpqZq6dKluvHGGzV8+HBde+212rdv\nX4fjpKam6vDhw3r66aeVmpqq1NRUPfPMM+f8mfiD1a9HAwAA6GHB69er6aKLurWP0tJSzZ49W4MH\nD9bjjz+uN954Qx9++KGef/55TZkyRbNmzVJQUJBeffVVRUdH64UXXtCtt96qjz/+WGFhYaqoqFBm\nZqbmzZsnu92uvLw8PfLII0pJSVFubq4k6eWXX9abb76p559/Xunp6SosLNShQ4fOWrbTtaw+9thj\nuu+++zRmzBh98cUXCgoKkiT98Ic/1O7du/Xb3/5WAwcO1PLly/Wtb31LH3/8sZKTk2UymRQbG6tX\nX31VN910k+688069/vrruvHGG/Xggw/Kbrfrtdde0+LFi/Xzn/9c2dnZ+ve//60f/vCHio2N1VVX\nXeUpw4svvqinnnpKUVFRmjNnjn76059qyZIlkqSVK1fK6XTq6quv1g033KDZs2dLksLCwjyv7+pn\n0pMIwwAAICDY8vM7tBpHntTPtHHy5G6H3tOx2+3KyclRbW2t3nrrLU2aNEn19fVas2aNPv74Y23e\nvFmbN29WQkKCJGnRokV688039eGHH+r6669XTk6OcnJyPPu77bbbtGTJEq1Zs8YThg8dOqSkpCRd\ncsklkqSUlJRzKpvL5fL6+L333qvp06dLkgYNGiRJ2r9/v1asWKF3331X559/viRp3rx5euutt7R8\n+XLNmTNHknTZZZdpwoQJstvtuuyyy5SVlSW73a7Dhw/LbrfrmWee0f33368bbrhBkrsVOC8vT0uX\nLu0Qhu+8805NnDhRknTrrbfqueee82yLi4uTJFksFoWHhys+Pv6U99DVz6QnEYYBAIBPnWvIbbu0\nV/Pgg34pY0hIiOe67XZwcLAaGhq0bds2uVwuXXzxxR1e09DQoIMHD0qS6uvr9eyzz2r16tUqLi6W\nw+FQQ0ODxo0b53n+zTffrGXLlmnKlCm66KKLNHHiRF177bWy2WxdKnNbCG1v27ZtkqSvf/3rp5S1\nqKjonN5vWVmZiouL9atf/arDwDeHw6G0tLQO+x06dKjndkxMjKqqqjr1Hnr6M+kKwjAAAPCpng65\n/mxBbmuVjYqK0sqVK0/ZHhMTI8ndUrxu3To9/vjjGjp0qCwWi77//e+rpaXF89wLLrhAGzdu1Lp1\n67R+/Xr953/+p/785z/rzTfflOS9O0T7158sKirqtNvefvtthYeHd3gsMjLyDO/UrX0r9M9+9jNP\ni20bq9V6xvuddbbPxB8IwwAAoE/xdwvyuHHjVF1dLYfDoeHDh3t9zsaNG3XXXXd5ui3U19fr8OHD\nysjI6PC8iIgIXXXVVbrqqquUnZ2tOXPmqKqqSjExMZ5wW1tb63n+4cOHOzUbQ1tLdHFxsaZNm9ap\n99kmPj5eycnJKioq0u23396lfbQXFBQkh8Nx2u1n+kz8gdkkAABAQGqcPLm3iyBJmjJlirKysnTP\nPfcoLy9PRUVFysvL08MPP6wDBw5IcncXeOedd7R7927t2LFD999/v5xOZ4f9vPDCC1q+fLn27dun\nvXv3asWKFUpJSfGEvqioKKWnp2vZsmWSpO3bt+uDDz7oVFmHDRum6667To888ohWrlypoqIibdiw\nQT/5yU+0YcOGc97P/fffr5deekkvvfSSCgoK9Pnnn+v3v/+9XnnllU6VR3J/Nnl5eTp69KgaGho6\nfC5n+0z8gTAMAAD86lxDrq8Gy3nTvvX15Nsmk0mvvfaacnJyNG/ePE2bNk0PP/ywJCk2NlaStHDh\nQoWFhem6667Tt7/9bU2YMEGZmZkdjhEZGannn39e11xzjW644QbV19fr1Vdf7fCcX/7yl1Line truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f207c4272b0>"
"<matplotlib.figure.Figure at 0x7feec00ae048>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"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 0x7f207c410898>"
"<matplotlib.figure.Figure at 0x7feec01d3550>"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Variance converges to 0.09072976736236911\n",
"Last voltage is 16.200756458088527\n"
"Variance converges to 0.8577995630075655\n",
"Last voltage is 17.438686650938127\n"
]
}
],
"prompt_number": 20
"prompt_number": 22
},
{
"cell_type": "markdown",
@@ -1442,12 +1444,30 @@
"source": [
"The first plot shows the individual sensor measurements marked with '+'s vs the filter output. Despite a lot of noise in the sensor we quickly discover the approximate voltage of the sensor. In the run I just completed at the time of authorship, the last voltage output from the filter is $16.213$, which is quite close to the $16.4$ used by the `volt()` function. On other runs I have gotten up to around $16.9$ as an output and also as low as 15.5 or so.\n",
"\n",
"The second plot shows how the variance converges over time. Compare this plot to the variance plot for the dog sensor. While this does converge to a very small value, it is much slower than the dog problem. The next section **Explaining the Results - Multi-Sensor Fusion** explains why this happens.\n",
"\n",
"For those reading this in IPython Notebook, here is an animation showing the filter working. The animation draws a green line for the predicted next voltage, then a red '+' for the actual measurement, draws a light red line to show the residual, and then draws a blue line to the filter's output. You can see that when the filter starts the corrections made are quite large, but after only a few updates the filter only adjusts its output by a small amount even when the measurement is far from it. \n",
"\n",
"The plot above this text explains why this happens. When the filter is initialized we are not sure of the voltage, so the variance is high. So when we get a measurement the filter is willing to make a large adjustment to its output. However, as it keeps reading new values it quickly becomes much more confident in its output, and thus it will adjust its output only by a small amount, assuming that the large variance in the measurement is due to noise, not the filter's bad prediction.\n",
"The second plot shows how the variance converges over time. Compare this plot to the variance plot for the dog sensor. While this does converge to a very small value, it is much slower than the dog problem. The section **Explaining the Results - Multi-Sensor Fusion** explains why this happens."
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Animation"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For those reading this in IPython Notebook, here is an animation showing the filter working. The top plot in the animation draws a green line for the predicted next voltage, then a red '+' for the actual measurement, draws a light red line to show the residual, and then draws a blue line to the filter's output. You can see that when the filter starts the corrections made are quite large, but after only a few updates the filter only adjusts its output by a small amount even when the measurement is far from it. \n",
"\n",
"The lower plot shows the Gaussian belief as the filter innovates. When the filter starts the Gaussian curve is centered over 25, our initial guess for the voltage, and is very wide and short due to our inital uncertainty. But as the filter innovates, the Gaussian quickly moves to about 16.0 and becomes taller, reflecting the growing confidence that the filter has in it's estimate for the voltage. You will also note that the Gaussian's height bounces up and down a little bit. If you watch closely you will see that the Gaussian becomes a bit shorter and more spread out during the prediction step, and becomes taller and narrower as the filter incorporates another measurement (the innovation step)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src='volt_animate.gif'>"
]
},
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:6ae833f8c8c8b1ebf95d6a8830c42247f5580e91d57a284055fb49d7d1488489"
"signature": "sha256:e4bf6588bd5504bdeff5802ced00bcc98d4cad46767b3d4f649b0fe63a2976cf"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -241,13 +241,13 @@
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 15,
"prompt_number": 2,
"text": [
"<IPython.core.display.HTML at 0x7f5980a89978>"
"<IPython.core.display.HTML at 0x7fc962c0a470>"
]
}
],
"prompt_number": 15
"prompt_number": 2
},
{
"cell_type": "code",
@@ -274,7 +274,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 16
"prompt_number": 3
},
{
"cell_type": "code",
@@ -284,6 +284,7 @@
"\n",
"import numpy.random as random\n",
"import math\n",
"import stats\n",
"\n",
"def update(mu1, var1, mu2, var2):\n",
" mean = (var1*mu2 + var2*mu1) / (var1+var2)\n",
@@ -295,11 +296,11 @@
"\n",
"\n",
"sensor_error = 1.2**2\n",
"movement_error = 0\n",
"movement_error = .2\n",
"movement = 0\n",
"voltage = (19,20) #who knows what the first value is?\n",
"voltage = (25,20) #who knows what the first value is?\n",
"\n",
"volts = [14.44, 18.74, 17.21, 15.98, 16.76, 16.25, 16.01, 16.90, 15.41, 17.31,\n",
"volts = [14.44, 18.74, 17.21, 15.98, 16.76, 14.8, 16.01, 16.90, 15.41, 17.31,\n",
" 16.39, 17.96]\n",
"ps = [voltage[0]]\n",
"\n",
@@ -310,30 +311,37 @@
" global i, ps, voltage, Z, x, pred\n",
" \n",
" step = frame % 4\n",
" plt.ylim([12,20])\n",
" plt.subplot(211)\n",
" plt.ylim([14,26])\n",
"\n",
" if step == 1:\n",
" Z = volts[i]\n",
" i += 1\n",
" \n",
" plt.scatter(i, Z, marker='+', s=64, color='r')\n",
"\n",
" elif step == 3:\n",
" voltage = update(voltage[0], voltage[1], Z, sensor_error)\n",
" ps.append(voltage[0])\n",
" plt.plot(ps, c='b')\n",
" \n",
" elif step == 2:\n",
" plt.plot ([i,i], [pred, Z], c='r', alpha=0.3)\n",
"\n",
" else:\n",
" if step == 0:\n",
" prev = voltage[0]\n",
" voltage = predict(voltage[0], voltage[1], movement, movement_error)\n",
" pred = voltage[0]\n",
" plt.plot ([i, i+1], [prev, pred], c='g') \n",
" \n",
"N=12 \n",
"animate('volt_animate.gif', volt_animate, N*3, 600)"
" elif step == 1:\n",
" Z = volts[i]\n",
" i += 1\n",
" \n",
" plt.scatter(i, Z, marker='+', s=64, color='r')\n",
"\n",
" elif step == 2:\n",
" plt.plot ([i,i], [pred, Z], c='r', alpha=0.3)\n",
"\n",
" else:\n",
" voltage = update(voltage[0], voltage[1], Z, sensor_error)\n",
" ps.append(voltage[0])\n",
" plt.plot(ps, c='b')\n",
" \n",
" plt.subplot(212)\n",
" plt.cla()\n",
" stats.plot_gaussian(voltage[0], voltage[1], xlim=[0,32])\n",
" plt.ylim([0,1])\n",
" plt.tight_layout()\n",
" \n",
"N=12\n",
"animate('volt_animate.gif', volt_animate, N*3, 500)"
],
"language": "python",
"metadata": {},
@@ -341,13 +349,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7f597c1a7198>"
"<matplotlib.figure.Figure at 0x7fc95db75be0>"
]
}
],
"prompt_number": 40
"prompt_number": 38
},
{
"cell_type": "markdown",
@@ -355,6 +363,176 @@
"source": [
"<img src='volt_animate.gif'>"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"class DogSensor(object):\n",
" \n",
" def __init__(self, x0=0, velocity=1, noise=0.0):\n",
" \"\"\" x0 - initial position\n",
" velocity - (+=right, -=left)\n",
" noise - scaling factor for noise, 0== no noise\n",
" \"\"\"\n",
" self.x = x0\n",
" self.velocity = velocity\n",
" self.noise = math.sqrt(noise)\n",
"\n",
" def sense(self):\n",
" self.x = self.x + self.velocity\n",
" return self.x + random.randn() * self.noise\n",
" \n",
" \n",
"# assume dog is always moving 1m to the right\n",
"movement = 1\n",
"movement_error = .2\n",
"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",
"\n",
"def dog_animate(frame):\n",
" global pos, zs, ps, vs\n",
" pos = predict(pos[0], pos[1], movement, movement_error) \n",
" Z = dog.sense()\n",
" zs.append(Z)\n",
" vs.append(pos[1])\n",
" print(pos[1])\n",
" \n",
" pos = update(pos[0], pos[1], Z, sensor_error)\n",
" ps.append(pos[0])\n",
"\n",
" plt.subplot(211)\n",
" plt.scatter (frame, Z)\n",
" plt.subplot(212)\n",
" plt.cla()\n",
" stats.plot_gaussian(pos[0], pos[1], xlim=[0,32])\n",
" plt.ylim([0,1])\n",
"\n",
"\n",
"N=12\n",
"animate('dog_track.gif', dog_animate, N, 200)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"output_type": "stream",
"stream": "stdout",
"text": [
"100.2\n",
"4.506590257879656"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"2.451646358922152"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"1.7870209797122434"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"1.4790786661369082"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"1.3131905715360732"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"1.2165428948514319"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"1.1576492519214656"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"1.1207749370248357"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"1.0972939271041793"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"1.0821803421932217"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n",
"1.072385204587669"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"\n"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fc93cdca0b8>"
]
}
],
"prompt_number": 49
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src='dog_track.gif'>"
]
}
],
"metadata": {}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 422 KiB

After

Width:  |  Height:  |  Size: 481 KiB