Added walkthrough of Kalman filter code.

This commit is contained in:
Roger Labbe committed 2014-07-18 22:05:14 -07:00
1 parent ac7d909f87
commit 7b9c6c4409
2 files changed
+223 -44

No files matched your search

+222 -43
View File
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:b799d26a0c11e8a5c71db9928336e67fc5d95fa40acedbb3f1522362e2d3dec0"
"signature": "sha256:16a3d9d2c42e7804eeb2791adf97a20137d37392110e1311a909efb59d06e2e5"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -44,7 +44,7 @@
" background: transparent;\n",
" color: #000000;\n",
" font-weight: 600;\n",
" font-size: 13pt;\n",
" font-size: 11pt;\n",
" font-style: bold;\n",
" font-family: 'Source Code Pro', Consolas, monocco, monospace;\n",
" }\n",
@@ -248,13 +248,13 @@
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 1,
"prompt_number": 40,
"text": [
"<IPython.core.display.HTML at 0x1630c50>"
"<IPython.core.display.HTML at 0x4066f50>"
]
}
],
"prompt_number": 1
"prompt_number": 40
},
{
"cell_type": "heading",
@@ -528,7 +528,7 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2c9d250>"
"<matplotlib.figure.Figure at 0x3e62250>"
]
}
],
@@ -572,7 +572,7 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2eb4350>"
"<matplotlib.figure.Figure at 0x4074350>"
]
}
],
@@ -660,7 +660,7 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAsYAAAF/CAYAAABKRQ+VAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHBpJREFUeJzt3XuMnXWBPvDnzLTTewstWCi2Fkq3sGX4lYpEERdYSUVi\nGy6imLo1alekird4zUaMlz+8IMSYuGtXg6iwSJRgu1kJIhdFDcZWoGhb5Latl7ZTp6U3WqYz8/vD\nZbTS6Tsgc873hc8nIeGdczrnS/N0+nDmOWca69ev7w8AALzAtbX6AAAAUALFGAAAohgDAEASxRgA\nAJIoxgAAkEQxBgCAJMmIVh/gKd3d3dm9e3erjwEAwPNYR0dHpk6detDbiinGu3fvzvz581t9DHia\nlStXZuHCha0+BhyUfFIq2aRUq1evHvQ2UwqosGHDhlYfAQYln5RKNqkjxRgAAKIYQ6Vzzjmn1UeA\nQcknpZJN6kgxhgpz5sxp9RFgUPJJqWSTOlKMocLdd9/d6iPAoOSTUskmdaQYAwBAFGOodMYZZ7T6\nCDAo+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy\n+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRU\nskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkd\nKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYA\nABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDF\nGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZ\nyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy\n+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRU\nskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkdKcYAABDFGCrZyVEy+aRUskkd\n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\nve992blzZzo6OvLBD34wp59++rM7McAL1K9+1Z6LLx6f7u6/fB3u7m7ks58dk6uvHp3rrtuVs8/e\n79ljgGdpSBvjz372s3nf+96X0aNHP6sH+dOf/pStW7dmzpw5+cMf/pBLLrkkP/7xjw+4j40xwOAe\ne6wtCxZMyNatg3+jb9So/tx66450dnrHIIDB/N0b45e+9KW59tprM2XKlDT+6qmIRqORCy+8sPLX\nT5kyJVOmTEmSTJs2LT09Penp6cnIkSOH8vAAL3j33tt+yFKcJPv2NXLrrR3p7PRTSQGejSFtjFet\nWpVjjz02M2fOzLHHHjvwz8yZM5/xA/7kJz/J3LlzlWJqw06OVtu/P7nmmo4h3fdrXxuVzZttKWg9\nXzupoyE9Yzxt2rQcd9xxmTx58tOeMX4murq68vnPfz5f+cpXDnr7smXLMmPGjCTJpEmT0tnZOfAj\nJZ/6A+batWvXL7TrNWvWZ/v2UzMUjz/eyIYNf8xvf/tQMed3/cK8fkop53H9wr1es2ZNHn/88STJ\nhg0bsnTp0gxmSBvjK6+8ctDbhvLiuyTZt29f3vrWt2bZsmUDh/1rNsYAB9fXl7ztbeOyYkX1s8bH\nHdebW2/dkcmTm3AwgBr6uzfGQy2/g+nv78/HPvaxvO51rztoKQZgcG1tyZIl+4ZUjN/73r1KMcCz\nNOT3MT6Ym266aUj3W7VqVW699dbceOONOf/883P++eenq6vr73loaJq//bYgtMI//mNvTjll/yHv\nM3VqX17xikPfB5rF107qaEjPGA/mgQceGNK7Upx66ql54IEH/p6HAnhBO+qo/ixfvjuXXjo2q1c/\n/cXLxxzTm+uv35Xjj/dWbQDP1qDF+I477sjZZ5+dJLntttsOep/e3t7hORUUxPyHUsya1Zfrrtud\ntWvbc/31HXn00fYceWRf/uVf9uWkk3ozfboffUc5fO2kjgYtxjt37hz495/85Cc5+eSTm3IgAAY3\ndWp/pk7dn7PO2p+9e5NRo+In3QE8RwYtxosWLRr49/b29lx00UVPu8+vf/3r4TkVFOTuu+/2zAdF\nGj1aPimXbFJHQ3rx3Rve8IaDfnywt7oAAIC6OeT7GH/5y1/O5Zdf3pSDeB9jAACG26Hex/iQzxhv\n27ZtWA4EAAClqZxSdHd3H/IfeL7zXpyUTD4plWxSR4d8H+Oenp5cffXVh/wEn/70p5/TAwLine truncated
"text": [
"<matplotlib.figure.Figure at 0x2f27b90>"
"<matplotlib.figure.Figure at 0x40e7b90>"
]
}
],
@@ -687,7 +687,7 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2eb39d0>"
"<matplotlib.figure.Figure at 0x4073990>"
]
}
],
@@ -714,7 +714,7 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2edb050>"
"<matplotlib.figure.Figure at 0x4073990>"
]
}
],
@@ -745,7 +745,7 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2e387d0>"
"<matplotlib.figure.Figure at 0x40e1990>"
]
}
],
@@ -798,7 +798,7 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAAF9CAYAAAAKk97ZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XtYlGXi//HPAMIIggfETFE3y6RfKaLiCfGEeSrN7ayl\nq6bf0rU0rdS01E1X2ZXvt5ObZruVe5VmZW1WstmWKZalZaWlZicOmoiZioKcf38gs44wOMgNzDPz\nfl1XV87MM8/c8+GBubn5zDO2/fv3lwgAAADwEX51PQAAAACgNjEBBgAAgE9hAgwAAACfwgQYAAAA\nPoUJMAAAAHwKE2AAAAD4FCbAgAdYvHixoqKiFBUVpTFjxtT1cIz59NNPFRUVpUOHDjldv3fvXsfz\nreh2lFq/fr2ioqIqvC0qKkpvvvlmjT5+RkaGoqKitGPHjhp9nNrmrc8LgPuYAAPVdP5EpKCgQFOn\nTtXgwYOVmZnp1j6mT5+ulJQUjR8/XjabraaGasy5k9ey/6666qpyz7dz587atm2bmjdv7nT9lVde\nqW3btunVV1+94GMNGDBATz/9tNHxV9WAAQMczzMmJkY33HCDXnvttTod07Zt2zR06NCLvv/s2bMv\n+MtWixYttG3bNnXq1OmiH6c6KvoFoK4nrzX9i0deXp7+7//+T9dee606duyovn376v7779eJEyec\ntnvqqac0YMCAGhsH4O0C6noAgDcpLCzUjBkzdODAAa1evVqXXHKJW/cLCQlRSEiIgoODVVJijc+m\nmTt3roYNG+Z0XZMmTZwu16tXT+Hh4eXu6+/vr/DwcOXm5tboGE2aMGGC7rrrLp06dUqvv/665s2b\np9DQUA0ePLhOxlNRrqb5+fnVyuNYRdn3Zk1+jy5evFjbtm3TggULdPnll+vgwYPauHGjcnNz1bBh\nwxp7XMDXsAIMGFI2+f3uu+/KTX6XLl2qoUOHKjo6Wj179tTcuXOVnZ3t9r7Xr1+vG264QaNGjVLP\nnj316quvKiEhQf3799d3330nScrPz9ecOXM0cOBAdejQQX369FFiYqLy8/Md+3nqqac0ZswYrVix\nQr169VLPnj31xBNPXNTzDQ0NVXh4uNN/ZavXX375ZbUrDmWrrocOHdLTTz/t2Nf5q8HPPvusEhIS\nFB0drZEjR+qDDz4ot6+oqCitWbNG8+bNU9euXdWlSxctX768SuMJDg5WeHi42rRpoxkzZqhNmzZ6\n7733HLeXrUy+9957mjp1qmJiYtS9e3enleLXX39dQ4cOVceOHTVs2LByK+Dffvutbr75ZnXo0EG3\n3nqrUlNTy42jQ4cOjizeeOONCsf63Xff6e6771bXrl3VtWtXTZw4UWlpaZJKV37LVjF37Njh2NfY\nsWMd98/KynL6+n322WflHiM7O1uzZ89W9+7dFR0drQkTJujHH3903F5Wf9m8ebMGDx6szp076777\n7lNOTo6bibunbJX4tddeU+/evdWlSxc98sgjTsf98ePHde+996pTp05KSEjQ5s2bnfbhzvdO2V85\nJGnOnDmObM5dDc7Pz9df/vIX9enTRzExMbr99tu1a9euKj2ff//73xo3bpzi4+PVokULxcbG6tFH\nH3X8FeWpp55SVFSUli9frkOHDjnGkZCQ4LSfL774QnfccYeio6PVv3//cs9nzJgxmj59uu6//35F\nR0crISFB7777bpXGClgZE2DAgMLCQj3wwAPav39/hSu/Z86c0bx58/TOO+9o+fLl2rVrlxYsWFCl\nxzh48KDmz5+vHj16KDExUcuXL1fnzp21Zs0aSaXVi8DAQC1ZskT//ve/tXTpUm3YsKHchHHPnj06\nefKk1q5dq4kTJ+qZZ57R119/XeXnXNkq2DXXXKNt27bpqaeeqvJ+y7z++utKSUlR8+bNNWHCBG3b\ntk3btm3ThAkTHNv87//+r15++WU9+uijeuedd3THHXfovvvu0zfffFNuf6tWrVLz5s21bt06Pf/8\n87rssssuemySFBgYqMLCwnLXJyUlqXv37nrzzTf19NNPKyIiQpL0yiuvaOnSpbr33nu1ceNGTZs2\nTX/+85/1/vvvS/pvdaZFixb617/+pXHjxmn16tXlKjEfffSRUlJSJKnCuswvv/yiO+64Q/7+/nrh\nhRf0yiuvqH///jp8+LAkad68eUpJSdHQoUMVExPjyPXc46Rp06ZOFZWKHmfRokX6/PPPtXz5cr36\n6quy2WyaPHmyioqKnLZbt26dli9frieffFJbtmzRSy+95HbGVfHGG2/o73//u55++ml9+OGHeuaZ\nZxy3PfbYY/rhhx+0evVqLVu2TP/85z+d7uvO9862bdscuc+dO9eR27k1lDlz5iglJUVJSUl66623\n1KdPH02YMMHtKpRU+ovlJ5984vKvI3fddZe2bdum8ePHq3nz5o5xnPuL1r59+zR+/HjFxcVpw4YN\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x32590d0>"
"<matplotlib.figure.Figure at 0x4073990>"
]
}
],
@@ -1236,7 +1236,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 44
"prompt_number": 17
},
{
"cell_type": "markdown",
@@ -1306,7 +1306,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 47
"prompt_number": 18
},
{
"cell_type": "markdown",
@@ -1327,9 +1327,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAF9CAYAAAAZRJ4tAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdY1WUbwPHvmUxBxVUqbsUFSuLIvUNzNCxN0xxliVlm\n+paWo2FiZc7McpsjyZVbc6S49xbTVBxpOJHDOPP9gzyB/GQcDtP7c11er7/1PM+R+6Wbh/v3PKqI\niAgbQgghhBBCCADUOT0AIYQQQgghchNJkIUQQgghhEhCEmQhhBBCCCGSkARZCCGEEEKIJCRBFkII\nIYQQIglJkIUQQgghhEhCEmQhhPjXl19+iZ+fH35+frz++us5PRyn2bdvH35+fly/fj3Z+TNnztg/\nr9J1IYR4UkmCLITIF/z8/Fi5cqX92GQyMXDgQNq2bcvNmzfT1cb7779PeHg4vXv3RqVSZdVQnSZp\ncvvwT9WqVVN83sDAQHbt2kWJEiWSna9cuTK7du0iLCwszb5atGjB1KlTnTp+IYTIrbQ5PQAhhHA2\ns9nMBx98wJ9//sn8+fMpXrx4up7z8PDAw8MDd3d3bLa8sYfSiBEjaNeuXbJzhQsXTnas0+nw8fFJ\n8axGo8HHx4e4uLgsHaMQQuQ1MoMshMhXHibH586dS5Ecjxs3juDgYAICAmjQoAEjRozgwYMH6W57\n+fLldOrUiW7dutGgQQPCwsJo2bIlzZs359y5cwAYjUY+/vhjWrVqRc2aNWnSpAmhoaEYjUZ7O1Om\nTOH111/nhx9+4Nlnn6VBgwZMmjTJoc9boEABfHx8kv15OPt99OjRTJdQtGjRwv7s1KlT7W09Opv8\n448/0rJlSwICAujcuTNbt25N0Zafnx+LFy/mk08+oU6dOjzzzDNMmzbNoc8thBBZSRJkIUS+YTab\n+fDDD4mIiFCcOY6Pj+eTTz5h7dq1TJs2jSNHjjB69OgM9XHt2jVGjRpF/fr1CQ0NZdq0aQQGBrJ4\n8WIgsbRDr9fz1VdfsXHjRsaNG8fq1atTJJQnT54kOjqaJUuW0K9fP6ZPn87x48cz/JlTm+muUaMG\nu3btYsqUKRlu96Fly5YRHh5OiRIl6NOnD7t27WLXrl306dPHfs+ECRNYtGgRI0eOZO3atXTv3p1B\ngwZx6tSpFO399NNPlChRgqVLlzJnzhzKlSvn8NiEECKrSImFECLfmDx5Mv/88w+tWrVSLKtImgyX\nKlWKbt26MXHixAz1Ub58efz8/AgKCuL69ev4+flRp04dtm3bBiSWaYwZM8Z+/9NPP83zzz/P9u3b\n+eCDD+znPT09GTp0KCqVir59+zJ9+nROnDiBv79/hsYzatQoPvvsM/txmzZtCA0NBUCr1eLj44OX\nl1eG2kyqUKFCAKjVatzd3VOUahgMBubOncv48eNp2rQpAF26dGHDhg2EhYVRvXr1ZPfXqFGDgQMH\n2o8z+nmFECI7SIIshMg33N3dmTZtGoMGDSIsLIwuXboku75582bmzp3L5cuXMRgMWCwWzGZzhvpw\ncXEBwNXVFb1ebz8XHx9vv2fp0qUsXbqU69evExcXh8lk4qmnnkrWTunSpZO9COjl5cW9e/cyNBaA\n9957jzZt2tiP3d3dM9xGZly4cAGj0chHH33Exx9/bD9vMpkU73/mmWeya2hCCOEwSZCFEPlG//79\nadmyJW+99RZjx46lbt26lClTBoBjx44xePBgBg8eTMOGDfHw8GD16tVMnjzZKX0/LHVYv349X331\nFcOHD6dWrVq4urry008/ER4enux+jUbz2DYywsfHh9KlSzs2aCeaNGkS5cuXT3bu4Q8TSXl7e2fX\nkIQQwmGSIAsh8o2HM7IhISFs376doUOHsnjxYjQaDYcOHaJy5cr07dvXfv+NGzcUl3Nzd3dPNiOc\nEQcPHqRx48bJZq+vXbuWq5eNezjrnNpqFjqdTnG2vXz58uj1eq5fv24vsRBCiLxOXtITQuQ7Wq2W\n0NBQzpw5Y385rnz58vz1119s27aNK1eusHDhQjZu3Kg4a+vv78+ZM2fYtWsXUVFRGAyGdPddvnx5\nDh06xIEDB7h06RJTp07lyJEjObJs3L1794iKiuL+/fsA3L59m6ioKGJiYpLdV7hwYUqWLMmiRYu4\nceMGt2/fTtFWuXLl2L17Nzdv3iQhIQGLxQIk1lL37NmTiRMnsmLFCiIjIzl69CiTJk1i/fr1Wf8h\nhRAiC0iCLITIlypXrsygQYP46aefOHz4MM2aNaN37958+umndOzYkX379jFgwADFmd2goCD69u3L\nkCFDaNy4sb0MQ6VS2e9/3N9fffVVWrZsycCBA3n55Ze5ceMGr7/+erJ+kt6fld59910aN27MoEGD\nUKlUdOnShcaNG/Pll1+muDc0NJS9e/fSvHlzgoODU1wfPHgwarWa5557joCAAKZPn26/NmTIEPr3\n788PP/xAu3btGDBgABEREbJChRAiz1JFRETkjdXwhRBCCCGEyAYygyyEEEIIIUQSkiALIYQQQgiR\nhCTIQgghhBBCJCEJshBCCCGEEElk6zrI165dw2q1ZmeXQgghhBDiCWS1Wu2bRWVUtibIVquVwMDA\n7OxS5AGrV6+mQ4cOOT0MkctIXAglEhdCicSFSEo/ezbaAwcIf/NNh9uQnfREjouMjMzpIYhcSOJC\nKJG4EEokLkRS1ipVSKhRI1NtSIIshBBCCCHyDXPDhol/OXzY4TbkJT2R41q1apXTQxC5kMSFUCJx\nIZRIXAhnkwRZ5LgqVark9BBELiRxIZRIXAglEhfC2XJNiUVMTAz3799HpVLl9FCEk2k0GooVK/bY\nr214eDiNGjXK5lGJ3E7iQiiRuBBKJC6Es+WKBPn27dsAPP3005Ig50OxsbH8888/FC9ePKeHIoQQ\nQohcyOX77zF2747N2zunhwKAKiIiwpZdnV25ckVxmbfr16/z9NNPZ9cwRA6Qr7EQQgghFMXGUrBS\nJe799Re4uDjcjMuPP2LTajH26QPA4cOHKV26tENtSQ2yEEIIIYTIMZqTJ7FUqZKp5BhAt2oV1lKl\nnDImSZBFjgsPD8/pIYhcSOJCKJG4EEokLvI27dGjWGrVylQbqnv30J44gblxY6eMSRLkPKZx48aU\nLl0aHx8f2bZbCCGEEHme5uhRzJlMkLVbtmB69llwc3PKmCRBzmI+Pj5cunTJae3t3LmT3bt3O629\n3EDePBZKJC6EEokLoUTiIm/THjmCpVYtCgQHQ1ycQ23oNm/G1KaN08YkCXIWstlsyf7X2e0KIYQQ\nQuR18SEhWKpWRRUVhfrq1Yw3YLOh3bdPEuTsNnnyZAIDAylVqhR16tRh5cqV9mu7du2iVatWlC1b\nlnr16tlnd7t06UKZMmUAaNKkCb6+vowYMQJI3DM+aYlEeHg4NZLsGZ5af/mR1I4JJRIXQonEhVAi\ncZG3GXv0AJ0Oa+nSqCMjM96ASkX0vn3YnPSCHuSSdZBzu4IFCxIWFkaFChXYtGkTvXr1okmTJjx4\n8IDXXnuNH3/8kTZt2nDhwgX7ms5hYWFAYonFzp07KVu2bKb7K1y4cFZ8PCGEEEKIHGctXRr1lSuO\nPazXO3UskiCnQ8+ePe1/b9OmDd7e3kRERLBnzx5atGhB27ZtAahYsSIVK1bMkv7OnTtH/fr1M912\nbiS1Y0KJxIVQInEhlEhc5A9WX1/HE2QnyzMJcuHJzpk9vTPoToaf+eWXX5g2bRrXrl3DarXy4MED\nTCYT169fd3gBakf6E0IIIYTIr6y+vug2b87pYQB5KEF2JLF1hitXrvD+++/z22+/ERQUBECFChWw\n2WyULFmSY8eOpfq80tbZLv8uhG02m9Hr9Tx48CBd/T2k0+kAsFgsqNV5v4w8PDxcfvoXKUhcCCUS\nF0KJxEX+YGrbFlPDhjk9DEBe0kuTwWBApVJRpEgRzGYzU6ZM4f79+6hUKl566SW2bt3Khg0bsFgs\n/PXXX+zbty/Z88WLF+f06dPJzhUpUgQvLy8OHToEwG+//ZZmf0kVK1YMLy8vdu3alUWfWgghhBAi\na2n27cP188/txzZvb2wlS2aoDW14OBgMzh6aJMhp8fPzIyQkhFatWlGtWjUMBoO9rMLX15eFCxfy\nzTffUL58ebp165Zi845PPvmEYcOGUb16db744gsANBoNn332GW+99Rbt27enSJEi9pnm1Pp7SKPR\n8PXXX/P222/j6+vL+vXrs+FfIuvIT/1CicSFUCJxIZRIXORN2r17UTm47jEACQl4du+OKj7eeYP6\nlyoiIiLbFtW9cuUKgYGBKc5fv36dp59+OruGIXKAfI2FEEIIkZTHG29gat8eY5cuDj2v3bEDt88/\n58Fj6pYPHz7s8LtiMoMscpysXymUSFwIJRIXQonERd6U2S2mNSdOYFaYeHWGVBPk0NBQGjZsSIcO\nHezn1q1bR9u2bWnbti3btm1L87wQQgghhBBJqW7fRn33LtYKFRxuQ3PmDJaqVZ04qv+kmiC3adOG\nGTNm2I+NRiPffvstixcvZu7cuYwdOzbV80Kkh9SOCSUSF0KJxIVQInGR92iOHsUcEACPrMalnzsX\n1/Hj09fG2bNZliCnusxb7dq1uZpkT+zjx49TqVIl+45uJUqU4OzZs8TExCie9/Pzy5JBCyGEEEKI\nvMv87LPEVq6c8oKHB5pz59LXRsOGOTOD/KioqCiKFi3KkiVLWL9+PUWLFuWff/7h1q1biueFSA+p\nHRNKJC6EEokLoUTiIg9yc8Oq8AKdpXRp1JGR6WoibswY8PJy9sgAB1/S69q1K8HBwameV9ogQwgh\nhBBCiMexli6d6e2mo2Kj+O7Ad5lqI0M76RUrVoyoqKj/BhAVRbFixTAYDCnOFy1aVLGNAQLine truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x324abd0>"
"<matplotlib.figure.Figure at 0x472cf50>"
]
},
{
@@ -1337,11 +1337,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAFyCAYAAADoEiz4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X90ldd95/vPfo4QGIyxJY5GmKAVT0xQYuzEjCfp1Kw4\nuL4IKcFm7P6QnATcXq+uhJqbNOqaJLQdkmnSrLol47smHZL+cNvbzkQ33DpNacGGODQOde9yEmwj\nmoo4wR6gJuhgMAZh6whJ84eQLKOfPJbOc7Q/79daXuZsHY6eT9je+bL1fZ4dDh061C8AAAAAkqQk\n6wsAAAAAygkFMgAAADAMBTIAAAAwDAUyAAAAMAwFMgAAADAMBTIAAAAwzIQF8rPPPqu1a9eqqalJ\nv/7rvy5J2rlzpxoaGtTQ0KC9e/cOvXescQBA6bzjHe/QunXrtG7dOn3hC1+QxLoNAJcjjPcc5L6+\nPjU2NuqLX/yiVqxYodOnT2vevHlqbGzU9u3b1d3drfXr12vPnj0qFoujjgMASuvmm2/W008/PfR6\nrPWZdRsARlcx3hcPHjyoqqoqrVixQpJ0zTXX6Pvf/76WLl2qqqoqSVJtba06Ojp07ty5Ucfr6+un\nOQIAYDwHDhxg3QaAyzBugXz8+HHNnz9f999/v1566SX9wi/8gqqqqpTP59XW1qYFCxYon8+rs7NT\n58+fH3WchRYASqtYLOruu+/W7Nmz1draqpMnT7JuA8BlGLdA7u7u1v79+/V3f/d3uvLKK3XPPffo\n53/+5yVJzc3NkjTix3HDx0MI03HNAIBxPPHEE6qurlZ7e7seeOABffKTn5TEug0AkzVugZzP53X9\n9dertrZWkrR8+XIVi0UVCoWh9xQKBdXU1Kirq2vEeD6fH/GZTz/9tBYuXDhV1w8AJXP27Fm9853v\nzPoyJlRdXS1JuvHGG1VTU6PFixdr165dQ1+/nHX7/28/pMVXzy3NhQPAFEu7bo9bIC9fvlwvvvii\nzpw5oyuuuEI/+tGP9Ku/+qt65JFHdOrUKXV3d+vEiROqr69XsVjUc889N2L8UgsXLhzqaXaxY8cO\nrV27NuvLKCkye3DLvH///qwvYUJnzpzR7NmzNWfOHB07dmyoZWK09Xky6/biq+dqxYoV6jxX1K/v\n+JH+R8vyjJKVjtu8lsjswjFz2nV73AJ5/vz52rx5szZs2KALFy5o7dq1WrZsmVpbW9XS0iJJ2rx5\nsySpsrJy1HFIR44cyfoSSo7MHhwzl7vDhw/rM5/5jCorK5XL5fT5z39eV1555Ztet0OQ+sZ85lFc\nHOc1mT04Zk5r3AJZktasWaM1a9a8YaypqUlNTU0j3jvWOACgNG6++WY9+uijI8bf7LqdKKi/36RC\nBmCPk/RK4I477sj6EkqOzB4cM7tKjHaQHec1mT04Zk6LArkEli1blvUllByZPThmdjXQYuFRITvO\nazJ7cMycFgVyCezbty/rSyg5MntwzOwqCUEe5bHnvCazB8fMaVEgAwAm5NRiAQAUyCWwcuXKrC+h\n5MjswTGzqxCCTYuF47wmswfHzGlRIAMAJsQOMgAnFMgl4NjzQ2YPjpldJUY7yI7zmsweHDOnRYEM\nAJhQCJJJfQwAFMil4NjzQ2YPjpld5Yx2kB3nNZk9OGZOiwIZADAhp6OmAYACuQQce37I7MExs6sk\nBEmyOG7acV6T2YNj5rQokAEAk8KTLAC4oEAuAceeHzJ7cMzsLMjjuGnHeU1mD46Z06JABgBMSpIE\nnmQBwAIFcgk49vyQ2YNjZmeJpF6DCtlxXpPZg2PmtCiQAQCTEgI7yAA8UCCXgGPPD5k9OGZ2lgTJ\noT52nNdk9uCYOS0KZADApCQhqJfHWAAwQIFcAo49P2T24JjZmcsOsuO8JrMHx8xpUSADACYlGB03\nDcAbBXIJOPb8kNmDY2ZnLgeFOM5rMntwzJwWBTIAYFKSECyOmgYACuQScOz5IbMHx8zOgskOsuO8\nJrMHx8xpUSADACZloMXCoEIGYI8CuQQce37I7MExs7PE5KAQx3lNZg+OmdOiQAYATAo7yABcUCCX\ngGPPD5k9OGZ2loRAD3KkyOzBMXNaFMgAgEkJkkWLBQBQIJeAY88PmT04ZnaWhKBegwrZcV6T2YNj\n5rQokAEAk5IEdpABeKBALgHHnh8ye3DM7MzlqGnHeU1mD46Z06JABgBMShKkvqwvAgBKgAK5BBx7\nfsjswTGzM5ejph3nNZk9OGZOiwIZADApLkdNAwAFcgk49vyQ2YNjZmc5epCjRWYPjpnTokAGAExK\n4CkWAExQIJeAY88PmT04ZnYWTI6adpzXZPbgmDktCmQAwKTkTI6aBgAK5BJw7PkhswfHzM5cdpAd\n5zWZPThmTosCGQAwKUHsIAPwQIFcAo49P2T24JjZWS7xuEnPcV6T2YNj5rQokAEAkzKwg2xQIQOw\nR4FcAo49P2T24JjZWWJyUIjjvCazB8fMaVEgAwAmJQlB/TKokAHYo0AuAceeHzJ7cMzsLASpry/r\nq5h+jvOazB4cM6dFgQwAmJQkBPWxgwzAAAVyCTj2/JDZg2NmZ4nJDrLjvCazB8fMaU1YIL/jHe/Q\nunXrtG7dOn3hC1+QJO3cuVMNDQ1qaGjQ3r17h9471jgAYOYLQfQgA7AQDh06NO5qd/PNN+vpp58e\nel0sFtXY2Kjt27eru7tb69ev1549e8Ycv9TRo0e1YsUKHX+lW13FXl2/cO7UpwKAabB//34tWbIk\n68soqcE1W5K+uPcFvWfJVfq566syvioAmJy06/Zlt1gcOHBAS5cuVVVVlRYtWqTa2lp1dHSMOT6a\nQ4Uu/V9/+yP99cHOy75gAEA2EpOjpgFgwgK5WCzq7rvvVktLi77//e/r5MmTyufzamtr065du5TP\n59XZ2Tnm+Gh+67HD+neL51s8T1Py7PkhswfHzM5CCBYn6TnOazJ7cMycVsVEb3jiiSdUXV2t9vZ2\nPfDAA/rkJz8pSWpubpakEW0Uw8dDCKN+5pY7rtPJrh794wsvv6mLBwCUTs7koBAAmLBArq6uliTd\neOONqqmp0eLFi7Vr166hrxcKBdXU1Kirq0uFQuEN4/l8ftTP/O//5T9pzvX/Xidm12rbjx7VjTfe\nOPRsvsG/3cT2elC5XA+vp/71ypUry+p6SvF6cKxcrmeqX2/btk3t7e2qq6uTJK1evVrOXI6adnxW\nLJk9OGZOa9yb9M6cOaPZs2drzpw5OnbsmD70oQ/p7//+73XXXXcN3Yy3YcMG7d69e8RNeoPjlxq8\n4WPfCy/rW8+d0mf/j387rQEBYKq436T30L4jur56rj74joUZXxUATM603KR3+PBhrVu3Tnfeeac2\nbdqkz3/+87ryyivV2tqqlpYW3Xfffdq8ebMkqbKyctTxseSCx06E5NnzQ2YPjpmdJSY7yI7zmswe\nHDOnNW6Lxc0336xHH310xHhTU5OampomPT6ahF42AJhRQpDFTXoAkNlJesHocUGOPT9k9uCY2Vli\n8pM/x3lNZg+OmdPKrEBOQlCvwZGlABALfvIHwEVmBXIuBJsjSx17fsjswTHzTHDu3DmtXLlSDz/8\nsCRp586damhoUENDg/bu3Tv0vrHGxzLQYhH/uu04r8nswTFzWhM+5m26JEHqYwcZAKbcV77yFS1f\nvlwhBBWLRW3dunXoCUPr16/XqlWrxhwfTxKCWLYBOMiuQE48etkkz54fMntwzFzuDh8+rFOnTmn5\n8uXq7+/XgQMHtHTpUlVVVUmSamtr1dHRoXPnzo06Xl9fP+Znuxw17TivyezBMXNaGfYg08sGAFPt\nS1/6kjZt2jT0+uTJk8rn82pra9OuXbuUz+fV2dk55vh4EpOjpgEg25v0TFZax54fMntwzFzOvv3t\nb+utb32rFi1aNKJXuLm5WY2NjSN+z/DxEMK4nx+C1GuwbDvOazJ7cMycVmYtFk4HhQBAKRw4cEC7\nd+/W448/rtOnTytJEt17770qFApD7ykUCqqpqVFXV9eI8Xw+P+rnbty4UXV1dTo893rNmV2pt3ZV\nlc1x4NPxur29vayupxSvB5XL9fB6el63t7eX1fVM13+/Z86ckSQdOXJE999/v9IY96jp6TB4bOmP\nT57X1u8e0bb/OHa/GwCUk5l01PSXv/xlzZs3Tx/+8Ie1Zs2aoZvxNmzYoN27d6tYLKqxsXHE+KWG\nHzX9l/uPq79fWv/vFpU6DgCkknbdzvApFkF9NCEDwLSaNWuWWltb1dLSIknavHmzJKmysnLU8fGE\nEHSBxw8BMJBdD3Lic5OeY88PmT04Zp4pHnjgAf3yL/+yJKmpqUmPPfaYHnvsMb3//e8fes9Y42NJ\n5HHUtOO8JrMHx8xpZVcgy+cmPQCIQZJ4HBQCAOwgl4DjcwfJ7MExs7OBjY2sr2L6Oc5rMntwzJxW\npo95YycCAGaOxOSoaQDgoJAScOz5IbMHx8zOQggW67bjvCazB8fMaXFQCABgUpw2NgB4y6xAdjoo\nxLHnh8weHDM7S0JQv+Jftx3nNZk9OGZOK9sWCx6nCQAzRmDdBmAiw6dY+OwgO/b8kNmDY2ZnSQjq\nM9hBdpzXZPbgmDktbtIDAEzKwFMssr4KAJh+md6k57KD7NjzQ2YPjpmdBZN123Fek9mDY+a0Mt1B\ndnjgPADEIsdP/gCYYAe5BBx7fsjswTGzsxBksW47zmsye3DMnFbGT7GIf6EFgFgEeRwUAgDZHjWd\n1TcvMceeHzJ7cMzsLJd4HDXtOK/J7MExc1qZP8XCYbEFgBiwgwzARWYFcgjB5lFvjj0/ZPbgmNkZ\na3a8yOzBMXNamRXIkteNegAw0yUh8FM/ABYyLpA9diMce37I7MExs7PAmh0tMntwzJwWO8Line truncated
"text": [
"<matplotlib.figure.Figure at 0x3392850>"
"<matplotlib.figure.Figure at 0x3f5e090>"
]
}
],
"prompt_number": 48
"prompt_number": 19
},
{
"cell_type": "markdown",
@@ -1364,6 +1364,183 @@
"Walking Through the KalmanFilter Code (Optional)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The kalman filter code that we are using is implemented in my Python library `filterpy`. If you are interested in the full implmentation of the filter you should look in `filterpy\\kalman\\kalman_filter.py`. In the following I will present a simplified implementation of the same code. The code in the library handles issues that are beyond the scope of this chapter, such as numerical stability and support for the extended Kalman filter, subject of a later chapter. \n",
"\n",
"The code is implemented as the class `KalmanFilter`. Some Python programmers are not a fan of object oriented (OO) Python, and eschew classes. I do not intend to enter into that battle other than to say that I have often seen OO abused. Here I use the class to encapsulate the data that is pertinent to the filter so that you do not have to store and pass around a half dozen variables everywhere.\n",
"\n",
"The method `__init__()` is used by Python to create the object. Here is the method \n",
"\n",
" def __init__(self, dim_x, dim_z):\n",
" \"\"\" Create a Kalman filter. You are responsible for setting the \n",
" various state variables to reasonable values; the defaults below will\n",
" not give you a functional filter.\n",
" \n",
" Parameters\n",
" ----------\n",
" dim_x : int\n",
" Number of state variables for the Kalman filter. For example, if\n",
" you are tracking the position and velocity of an object in two\n",
" dimensions, dim_x would be 4.\n",
" \n",
" This is used to set the default size of P, Q, and u\n",
" \n",
" dim_z : int\n",
" Number of of measurement inputs. For example, if the sensor\n",
" provides you with position in (x,y), dim_z would be 2. \n",
" \"\"\"\n",
" \n",
" self.dim_x = dim_x\n",
" self.dim_z = dim_z\n",
"\n",
" self.x = np.zeros((dim_x,1)) # state\n",
" self.P = np.eye(dim_x) # uncertainty covariance\n",
" self.Q = np.eye(dim_x) # process uncertainty\n",
" self.u = 0 # control input vector\n",
" self.B = np.zeros((dim_x,1))\n",
" self.F = 0 # state transition matrix\n",
" self.H = 0 # Measurement function\n",
" self.R = np.eye(dim_z) # state uncertainty\n",
"\n",
" # identity matrix. Do not alter this.\n",
" self._I = np.eye(dim_x)\n",
"\n",
"More than anything this method exists to document for you what the variable names are in the filter. To do anything useful with this filter you will have to modify most of these values. Some are set to useful values. For example, `R` is set to an identity matrix; if you want the diagonals of `R` to be 10. you may write (as we did earlier in this chapter) `my_filter.R += 10.`.\n",
"\n",
"The names used for each variable matches the math symbology used in this chapter. Thus, `self.P` is the covariance matrix, `self.x` is the state, and so on."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The predict function implements the predict step of the Kalman equations, which are \n",
"\n",
"$$\n",
"\\begin{aligned}\n",
"\\mathbf{x}' &= \\mathbf{F x} + \\mathbf{B u} \\\\\n",
"\\mathbf{P} &= \\mathbf{FP{F}}^T + \\mathbf{Q} \n",
"\\end{aligned}\n",
"$$\n",
"\n",
"The corresponding code is\n",
"\n",
" def predict(self): \n",
" self.x = self.F.dot(self.x) + self.B.dot(self.u)\n",
" self.P = self.F.dot(self.P).dot(self.F.T) + self.Q\n",
"\n",
"I haven't discussed the use of numpy much until now, but this method illustrates the power of that package. We use numpy's `array` class to store our data and perform the linear algebra for our filters. `array` implements matrix multication using the `.dot()` method; if you use `*` you will get element-wise multiplication. As a heavy user of linear algebra this design is somewhat distressing as I use matrix multiplation far more often than element-wise multiplaction. However, this design is due to historical developments in the library and we must live with it. The Python community has recognized this problem, and in Python 3.5 we will have the `@` operator to implement matrix multiplication. \n",
"\n",
"With that in mind, the Python code `self.F.dot(self.x)` implements the math expression $\\mathbf{F x}$.\n",
"\n",
"Numpy's `array` implements matrix transposition by using the `.T` property. Therefore, `F.T` is the python implementation of $\\mathbf{F}^T$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `update()` method implements the update equations of the Kalman filter, which are\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
"\\mathbf{\\gamma} &= \\mathbf{z} - \\mathbf{H}\\hat{\\mathbf{x}} \\\\\n",
"\\mathbf{K} &= \\mathbf{P} \\mathbf{H}^T (\\mathbf{H} \\mathbf{P} \\mathbf{H}^T +\\mathbf{R})^{-1} \\\\\n",
"\\hat{\\mathbf{x}} &= \\hat{\\mathbf{x}} + \\mathbf{K} \\gamma \\\\\n",
"\\mathbf{P} &= (\\mathbf{I} - \\mathbf{K} \\mathbf{H})\\mathbf{P}\n",
"\\end{aligned}\n",
"$$\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The corresponding code is:\n",
"\n",
" def update(self, Z, R=None):\n",
" \"\"\"\n",
" Add a new measurement (Z) to the kalman filter. If Z is None, nothing\n",
" is changed.\n",
"\n",
" Optionally provide R to override the measurement noise for this\n",
" one call, otherwise self.R will be used.\n",
"\n",
" self.residual, self.S, and self.K are stored in case you want to\n",
" inspect these variables. Strictly speaking they are not part of the\n",
" output of the Kalman filter, however, it is often useful to know\n",
" what these values are in various scenarios.\n",
" \"\"\"\n",
"\n",
" if Z is None:\n",
" return\n",
"\n",
" if R is None:\n",
" R = self.R\n",
" elif np.isscalar(R):\n",
" R = np.eye(self.dim_z) * R\n",
"\n",
" # error (residual) between measurement and prediction\n",
" self.residual = Z - self.H.dot(self.x)\n",
"\n",
" # project system uncertainty into measurement space\n",
" self.S = self.H.dot(self.P).dot(self.H.T) + R\n",
"\n",
" # map system uncertainty into kalman gain\n",
" self.K = self.P.dot(self.H.T).dot(linalg.inv(self.S))\n",
"\n",
" # predict new x with residual scaled by the kalman gain\n",
" self.x = self.x + self.K.dot(self.residual)\n",
"\n",
" KH = self.K.dot(self.H)\n",
" I_KH = self._I - KH\n",
" self.P = (I_KH.dot(self.P.dot(I_KH.T)) +\n",
" self.K.dot(self.R.dot(self.K.T)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"There are a few more complications in this piece of code compared to `predict()` but it should still be quite clear. \n",
"\n",
"The first complication are the lines:\n",
"\n",
" if Z is None:\n",
" return\n",
" \n",
"This just lets you deal with missing data in a natural way. It is typical to use `None` to indicate the absense of data. If there is no data for an update we skip the update equations. This bit of code means you can write something like:\n",
"\n",
" z = read_sensor() # may return None if no data\n",
" my_kf.update(z)\n",
" \n",
"instead of:\n",
" z = read_sensor()\n",
" if z is not None:\n",
" my_kf.update(z)\n",
" \n",
"Reasonable people will argue whether my choice is cleaner, or obscures the fact that we do not update if the measurement is `None`. Having written a lot of avionics code my proclivity is always to do the safe thing. If we pass 'None' into the function I do not want an exception to occur; instead, I want the reasonable thing to happen, which is to just return without doing anything. If you feel that my choice obscures that fact, go ahead and write the explicit `if` statement prior to calling `update()` and get the best of both worlds.\n",
"\n",
"The next bit of code lets you optionally pass in a value to override `R`. It is common for the sensor noise to vary over time; if it does you can pass in the value as the optional parameter `R`.\n",
"\n",
" if R is None:\n",
" R = self.R\n",
" elif np.isscalar(R):\n",
" R = np.eye(self.dim_z) * R\n",
" \n",
"This code will use self.R if you do not provide a value for `R`. If you did provide a value, it will check if you provided a scalar (number); if so it constructs a matrix of the correct dimension for you. Otherwise it assumes that you passed in a matrix of the correct dimension.\n",
"\n",
"The rest of the code implements the Kalman filter equations, with one exception. Instead of implementing $\\mathbf{P} = (\\mathbf{I} - \\mathbf{KH})\\mathbf{P}$ it implements the somewhat more complicated form $\\mathbf{P} = (\\mathbf{I} - \\mathbf{KH})\\mathbf{P}(\\mathbf{I} - \\mathbf{KRK})^T$.\n",
"\n",
"The reason for this altered equation is somewhat beyond the scope of this chapter. For now, I will say that this equation is more numerically stable than the former equation, at the cost of being a bit more expensive to compute. It is not always possible to find the optimal value for $\\text{K}$, in which case the former equation will not produce good results because it assumes optimality. The longer reformulation used in the code is derived from more general math that does not assume optimality, and hence provides good results for nonoptimal filters (such as when we can not correctly model our measurement error).\n",
"\n",
"Various texts differ as to whether this form of the equation should always be used, or only used when you know you need it. I choose to expend a bit more processing power to ensure stability; if your hardware is very constrained and you are able to prove that the simpler equation is correct for your problem then you might choose to use it instead. Personally, I find that a risky approach and do not recommend it to non-experts. Brown's *Introduction to Random Signals and Applied Kalman Filtering*[2] discusses this issue in some detail, if you are interested."
]
},
{
"cell_type": "code",
"collapsed": false,
@@ -1489,17 +1666,17 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x3384590>"
"<matplotlib.figure.Figure at 0x4400410>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x3384810>"
"<matplotlib.figure.Figure at 0x4400810>"
]
}
],
@@ -1612,9 +1789,9 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2db6b50>"
"<matplotlib.figure.Figure at 0x3f55f90>"
]
}
],
@@ -1683,7 +1860,7 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAr0AAAGNCAYAAAActsnoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4VPXd9/HPLJnJHhapECCtO0ujgggEEUWjQu5CLdga\nERQFHxG0oHJ7U8Uiaqu43BXFBbUuFRQX1IIE64ZWy6bCo1CWKlLCoggImSQkk9meP/JAax0gmczk\nnN/J+3VdXBcnJMNXP8w53/zyPb/j2rhxY0wAAACAg7mtLgAAAABINZpeAAAAOB5NLwAAAByPphcA\nAACOR9MLAAAAx6PpBQAAgOPR9AJAkqxYsUJdunSxugxJ0qhRozRr1iyrywAA26DpBYAUCwQCmj59\nus4//3ydcsopGjhwoG6//XYFAoFGvU44HNZdd92loqIi9ejRQ9dee6327NmToqoBwFloegEgxXbv\n3q09e/bo5ptv1htvvKHf//73WrJkia6//vpGvc5DDz2k1157TTNmzNCcOXO0Y8cOTZo0KUVVA4Cz\neK0uAACc7thjj9WDDz548Lhz5866/PLLNWPGDFVVVSk7O/uIrxGNRjVv3jyNHTtWAwYMkCTdfPPN\nGjlypP7xj3/oxBNPTFn9AOAErPQCgAUCgYDS09Pl8/ka9Plbt25VRUWFTjvttIMf69Gjh7xer9as\nWZOqMgHAMWh6AaCZff3115ozZ46uuOKKBje9B2Z3W7VqpRkzZqi4uFihUEh5eXnM9QJAA9D0AkAz\nCgQCGjdunHr16qXrrrsuoddo06aN8vPz5fF4klwdADgXTS8ANJPKykpdeeWVOvroozVz5ky5XK4G\nf23btm0lSfv27dNVV12lP/3pT3K73aqoqDj4ZwCAQ6PpBYBmUFVVpTFjxqht27Z6+OGHlZaW1qiv\n79y5s/Ly8vTJJ58c/NiqVasUDod18sknJ7tcAHAcdm8AgBSrqqrSlVdeKa/Xq9tuu0379u07+Gdt\n27aV233k9Qe3261LLrlEf/zjH9W1a1e1adNGv//979W7d2+dcMIJqSwfAByBphcAUuzvf/+7Pv/8\nc7lcLg0cOPDgx10ul959913l5+c36HWuu+461dbW6qabblIwGFT//v01ffr0VJUNAI5C0wsAKdan\nTx9t2LChya/j8Xg0ZcoUTZkyJQlVAUDLwkwvAAAAHI+mFwCSqDE7MgAAmo9r48aNMauLAAAAAFKJ\nlV4AAAA4Hk0vACTJihUr1KVLF6vLkCSNGjVKs2bNsroMALANml4AaAa7du3ShAkT1KNHDxUVFWnG\njBmKRqONfp0FCxZoyJAhOvnkk3XGGWfovvvuS0G1AOA8bFkGAM1g4sSJqqur09y5c7Vr1y5NnjxZ\nWVlZuvbaaxv8GgsWLNAtt9yiG264QWeffbYikYi+/vrrFFYNAM5B0wsAKbZhwwatWrVK8+bNU7du\n3SRJo0eP1ty5cxvV9D744IMaPXq0rrjiioMfO/7445NeLwA4EeMNAJBia9askdfr1amnnnrwY717\n99Z3332nrVu3Nug1duzYoW3btqlDhw4qLS1V//79dcUVV2j9+vWpKhsAHIWmFwBSbM+ePWrVqpUk\nafjw4br++uvVpk0bSdJ3333XoNfYuXOnJGn27Nm69NJLNXv2bLVp00ZXXHGFKisrU1M4ADgITS8A\nNINYrH5L9Pz8fB199NGN/voDN70NGTJEQ4YMUffu3XX77berqqpK77//fjJLBQBHYqYXAFKsbdu2\nqqiokCQ99NBDkqSPP/5Ykg6u+B5J69atJUk/+clPDn4sKytLrVq10rfffpvEagHAmVjpBYAUKyws\nVDgc1urVqw9+bMWKFWrTpo06d+7coNcoKChQdnb292aAa2pqtG/fPrVv3z7pNQOA09D0AkCKdenS\nRT179tSdd96pv//97/rggw/07LPPasSIEQ1+Da/Xq4suukjz5s3Te++9p82bN+t3v/udcnNzddZZ\nZ6WwegBwBsYbAKAZzJw5U7fddptGjhwpv9+viy66SBMmTGjUa9xwww0Kh8OaOnWqamtr1b17dz35\n5JPKzs5OUdUA4BwJNb179+7V2LFjFQ6HFYvFNG7cOJWUlCS7NgBwjHbt2unhhx9u0mv4fD5NnTpV\nU6dOTVJVANByJNT05uTkaM6cOcrIyNDevXtVUlKiQYMGye1mWgIAAAD2k1DT6/V65fXWf2kgEJDP\n50tqUQBgKpfLZXUJAIA4XBs3bowl8oXV1dUqLS1VeXm57r//fhUXFye7NgAAACApEm56D9i0aZPG\njRunP//5z8rMzExWXQAAAEDSNHn3huOOO075+fnatGmTCgsLD3589erVOuqoo5r68gAAAMBhVVZW\nqlu3bof9nISa3p07d8rn86l169batWuXNm/erE6dOn3vc4466ij17NkzkZeHDSxcuFBDhgyxugwk\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x3392450>"
"<matplotlib.figure.Figure at 0x3f76b50>"
]
}
],
@@ -1711,7 +1888,7 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAr0AAAGNCAYAAAActsnoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4VOXZx/HfTGayL0DABQhVEMGFLWJRCAg1BaSKiFoR\nFxQRkIraalncEDfE1lq3iiCKFC1acSkW2RQFRFEJle0lUOCFsBq27MskM+8fvKDoAMkwk3OeM9/P\ndXHJCZPJDT9PcufJPc/jys3NDQgAAABwMLfVBQAAAACRRtMLAAAAx6PpBQAAgOPR9AIAAMDxaHoB\nAADgeDS9AAAAcDyaXgBRafny5WrdurXVZRhnzJgxGjt2rNVlAECt0fQCwI8UFhZq/Pjx6tmzp9q1\na6cePXro0UcfVWFhYa2ep6qqShMmTNDFF1+sDh066M4779S+ffvCWmt1dbUmTpyo3/zmN2rfvr2y\nsrL0xz/+Ubt37w75OSdPnqzWrVvrxRdfDPrnLpcr5OcGACvR9ALAj+zdu1f79u3T/fffr48++khP\nPvmkFi1apN///ve1ep4XXnhB77//viZOnKgZM2Zo586duueee8Jaa0VFhXJzc3XXXXfpww8/1Isv\nvqiNGzdqyJAhqq6urvXzrVq1SrNnz1bDhg3DWicA2AFNLwD8SPPmzfX888+re/fuysjI0MUXX6xB\ngwZp2bJlKi4urtFz+P1+zZw5U0OGDFG3bt103nnn6f7779c333yjDRs2hK3WxMREvfbaa+rVq5d+\n8YtfqH379rrzzjv13//+V5s2barVc5WUlGjMmDF64oknFBsbG7YaAcAuaHoB4AQKCwsVHx9f42Yw\nLy9PBQUFuuCCC468rUOHDvJ4PFq9enWkypQkFRQUSJJSU1Nr9X6PP/64srOz1bZt20iUBQCWo+kF\ngOPYtWuXZsyYoVtvvbXGTe/h2d169epp4sSJys7Ols/nU1paWtjnen+suLhYkyZN0pVXXqnTTjut\nxu83Z84crVmzRiNHjoxYbQBgNY/VBQCAXRUWFmr48OHq2LFjyA1hgwYN1LhxY8XExIS5uqNVVlbq\n7rvvVv369TV+/Pgav9/u3bv16KOPaurUqfJ6vRGsEACsRdMLAEEUFRVp8ODBOvXUU/Xcc8/VateC\n9PR0SdLBgwd1++236/bbb1d1dbUKCgqO/Fk4VVZW6q677tLBgwc1bdo0xcfH1/h916xZo4KCAl1/\n/fVHPd/LL7+s2bNna968eWGvFwCsQNMLAD9RXFys2267Tenp6XrxxRePuQJaWlqq/fv3q0GDBkpM\nTDzy9oyMDKWlpenbb789Mtebk5OjqqqqsM/M+nw+3XPPPdq7d6+mTZumlJSUoI+rrKzU999/r7S0\ntKMe07lzZ82ZM+fIdSAQ0C233KKePXtq0KBBYa0VAKzETC8A/EhxcbEGDx4sj8ejRx55RAcPHlR+\nfr7y8/Pl9/uPeuzcuXOVnZ39s9VQt9ut66+/XlOnTtXixYu1Zs0aPfnkk/rlL3+pli1bhq3W6upq\n3XXXXdqyZYuefvpplZeXH6nV5/Md9diVK1cqOztbb7zxxlFvT0xM1JlnnnnkV/PmzeXxeFSvXj1l\nZGSErVYAsBorvQDwI2vXrtWqVavkcrnUo0ePI293uVz65JNP1Lhx46PedvjXT40cOVLl5eUaNWqU\nKioqlJWVVatZ25rYtWuXFi1aJJfLpT59+hxV1/Tp03XhhRce9XgOlgAQzVy5ubkBq4sAgLq2fPly\nDRo0SOvXr7e6FKMcPoJ4woQJFlcCALXDeAMAoMYCAdZJAJiJphdA1OLH/bXHvxkAUzHeAAAAAMdj\npRcAAACOR9MLICotX75crVu3troM44wZM+bIi9kAwCQ0vQDwI4WFhRo/frx69uypdu3aqUePHnr0\n0UdVWFgY8nM+/PDDat26td5///0wVvqDadOmqVevXmrTpo26d++u6dOn1/o5XnnlFXXt2lXt2rXT\noEGDtHXr1qCPY6YXgKnYpxcAfmTv3r3at2+f7r//frVo0ULbt2/X/fffr61bt2rq1Km1fr6FCxfq\nf//3fyVFpmF8+eWXNXXqVI0ZM0adOnVSSUlJrRv0f/7zn3rxxRc1YcIEtWzZUk8//bSGDh2qf//7\n3/J4+DIBwBn4bAYAP9K8eXM9//zzR64zMjI0aNAgTZw4UcXFxUpOTq7xc+3Zs0dPPvmkpk+fruzs\n7LDXWlZWpsmTJ2v06NG65pprQn6eN998U1dddZUuv/xySdLjjz+uHj16aMmSJUcd0AEAJmO8AQBO\noLCwUPHx8YqNja3x+wQCAY0ePVrDhg1T06ZNI1LXmjVrVFZWpoSEBF155ZXq2rWrRowYoby8vBo/\nR2VlpTZs2KCOHTseedvpp5+upk2bavXq1ZEoGwAsQdMLAMexa9cuzZgxQ7feemutmt4pU6YoJiZG\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2da7290>"
"<matplotlib.figure.Figure at 0x3f58f10>"
]
}
],
@@ -1781,11 +1958,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2dc88d0>"
"<matplotlib.figure.Figure at 0x27ee990>"
]
}
],
"prompt_number": 42
"prompt_number": 25
},
{
"cell_type": "markdown",
@@ -1810,11 +1987,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x324acd0>"
"<matplotlib.figure.Figure at 0x3ff7c90>"
]
}
],
"prompt_number": 45
"prompt_number": 26
},
{
"cell_type": "markdown",
@@ -1844,11 +2021,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAsYAAAF9CAYAAAAHja6eAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt8jvX/wPHXdd/37vve2JbDUJiF5ZCFfcMI5VCiEEWU\nkFSi+pEcKorSgQ6KFB2mEEMhk4QwpyynjQiFbI6b087bfbp+f6wtY8d793Ztu9/Px6NHu677uj6f\nz95bd+/7s8/1/ihHjx5VEUIIIYQQws3ptB6AEEIIIYQQZYEkxkIIIYQQQiCJsRBCCCGEEIAkxkII\nIYQQQgCSGAshhBBCCAFIYiyEEEIIIQQgibEQQgghhBAAGLQegBBCuKOJEyeyatUqAAwGAzfffDPd\nu3dn5MiRmM3mAu+3WCxMmTKFP/74g+PHjxMcHMzChQtLethCCFGhyYyxEEJopGXLluzYsYONGzfy\n/PPP8+233zJjxoxC3Wu329Hr9TzxxBO0bdsWRVFKeLRCCFHxSWIshBAaMRgMVKtWjVq1atG7d296\n9erFhg0bCnWvp6cnb731Fv369aN69eqoqmxiKoQQxSVLKYQQQiPXz/IajUasVitPP/00e/bsyfWe\n3r17M2XKlFIYnRBCuB9JjIUQQiNZs7yqqrJ//37Cw8Pp0KEDEyZMICMjI9d7KlWqVJpDFEIItyKJ\nsRBCaGTv3r20bNkSm82Gw+Hg3nvvZfLkydx0001aD00IIdySJMZCCKGRoKAgPvjgAzw8PKhRowY6\nXeZjH8OHD2fv3r253iNLKYQQouRIYiyEEBoxmUzUrVv3hvNvv/02Fosl13vyWkohVSmEEKL4JDEW\nQgiN5FVJombNmoW6/++//8ZqtXL16lVSUlI4cuQIBoOBhg0bunKYQgjhNiQxFkIIDSiKUuxZ3mee\neYazZ89mt/fQQw9Ru3Ztfv31V1cMUQgh3I5y9OhRKX4phBBCCCHcnmzwIYQQQgghBJIYCyGEEEII\nAUhiLIQQQgghBCCJsRBCCCGEEIAGVSnOnDmDw+Eo7W6FEEIIIYSbcTgc1KtXr9DXl3pi7HA4CA4O\ndmmbHTt68+mnqdxxh92l7VZE4eHh9OzZU+thuCWJvbYk/tqS+GtHYq8tib+29u3bV6TrK8RSimrV\nVOLjZdenwoiJidF6CG5LYq8tib+2JP7akdhrS+JfvlSIxNjPz8GlSxXiWxFCCCGEEBqpENmkzBgX\nXteuXbUegtuS2GtL4q8tib92JPbakviXLxUiMfbzU7l0SRLjwmjUqJHWQ3BbEnttSfy1JfHXjsRe\nWxL/8qXUH77Li6qqxMXFYbcX/QG6e+5RSE5WOHtWql0UJCEhAV9f31LvV6/XU6NGDRTFfT/AbN++\nnfbt22s9DLcl8deWxF87EnttSfzLlzKTGMfFxeHt7Y2Xl1eR773llhIYUAV1i0bBSk1NJS4ujpo1\na2rSvxBCCCFEQZSjR4+qpdlhbGxsruXazp49q1nSJkqH/IyFEEIIUZr27dtH3bp1C319hVhjLIQQ\nQgghRHFJYixEKdm+fbvWQ3BrEn9tSfy1I7HXlsS/fJHEuJzp0KEDdevWpVq1arK1thBCCCGEC0li\nXMKqVavGP//847L2tm3bxs6dO13Wnig98lSytiT+2pL4a0diry2Jf/kiiXEJUlU1x79d3a4QQggh\nhHAdSYwLYdasWQQHB1OnTh3uvPNOVq1alf3ajh076Nq1KwEBAbRp0yZ7Nrdfv37Uq1cPgI4dO+Lv\n789rr70GZO6bfu1SiO3bt9OsWbNC9SfKL1lnpi2Jv7Yk/tqR2GtL4l++OFXHeNu2bXz44YfZx3//\n/Tfff/89J06c4JNPPgFg4sSJdOrUyTWj1NhNN93E8uXLadCgAevXr2fIkCF07NiRpKQkHnvsMb74\n4gvuu+8+jh8/zqVLlwBYvnw5kLmUYtu2bQQEBBS7v6pVq5bEtyeEEEIIIXAyMe7QoQMdOnQAID4+\nnkGDBtGgQQNGjRrF8uXLycjIYPDgwRUmMR48eHD21/fddx++vr4cPXqU3377jc6dO9OtWzcAGjZs\nSMOGDUukv2PHjhESElLstoV2ZJ2ZtiT+2pL4a0diry2Jf/lS7J3vfvrpJ+6//36io6MJDAzMntWs\nVasWR44coXHjxsUeJEDVWa6ZLb384uUi37N06VLmzJnDmTNncDgcJCUlYbVaOXv2bJGKRhe3PyGE\nEEK4JyUhAcPGjVgffljroVRoxU6Mw8PDeeeddzh58iR+fn6EhYXh6+uLn58fcXFxLkuMnUloXSE2\nNpbRo0ezevVqWrVqBUCDBg1QVZXatWsTHR2d7/2KotxwzmQyAWCz2TAajSQlJRWqvyweHh4A2O12\ndDpZJl5ebN++XWYONCTx15bEXzsSe225Kv6qolBp9Giu9uwJRqMLRiZyU6ys6sSJE6Snp9OoUaPs\nxG3AgAF0794dyD0pLG9SUlJQFIXq1atjs9mYPXs2CQkJKIrCww8/zKZNm1i3bh12u50TJ04QGRmZ\n4/6aNWty+PDhHOeqV6+Oj48Pe/fuBWD16tUF9netGjVq4OPjw44dO0rouxZCCCFEmeLjg/3WW9Ef\nOKD1SCq0Ys0Yr1mzhh49egCZyVp8fHz2a/Hx8fj5+eV638iRI/H39wfA19eXoKAg6tevX5yhlJjG\njRszatQounbtil6vZ9iwYdnLJ/z9/fnuu++YOnUqzz77LLVq1eLjjz/Ocf+kSZMYP34848aNY+DA\ngUyaNAm9Xs+bb77JM888g7+/P8HBwdkfIvLrL4ter+f9999nxIgRpKamMm/evOwPI2Vd1tO5WZ+e\n3em4ffv2ZWo87nYs8Zf4y7Ecl/fjZvXqUfO337DfeWeZGE9ZPM76OiYmBoDhw4dTFMrRo0edLorb\nrVs35s2bR0BAABaLhe7du2c/fDdkyBDWr19/wz2xsbEEBwffcP7s2bPccsstzg5FlAPyMxZCCCGc\n57FiBcYVK0hZtEjroZQb+/btK9LzYE4vpYiOjqZSpUrZZciMRiNjx45l4MCBDB06lFdffdXZpoWo\nkK79NCtKn8RfWxJ/7UjsteWK+HuNHo0SH4+tTRsMu3aBbPRVYgzO3ti8eXNWrFiR41yPHj2yl1YI\nIYQQQojiUc6fxyM8nNQPPwS9nvSxYyEjA8xmrYdWITmdGAshiiZrHZTQhsRfWxJ/7UjstVXc+Hts\n3YrtrrtArwcg47nnXDEskQep9SWEEEIIUUYZtmzBes89Wg/DbUhiLEQpkXV+2pL4a0virx2JvbaK\nFX9VxSMiAtvdd7tuQCJfkhgLIYQQQpRBumPHUPV6HGW0pG1FVKxybc6Qcm3uS37GQgghRBHYbOhO\nn8bxbwUwUXSlVq5NCCGEEEKUIIMh16TYsHkzplmzSn88bkASYyFKiazz05bEX1sSf+1I7LVVEvFX\nK1XC+MMPLm9XSGIsXKRatWr8888/Wg9DCCGEqPDsLVqgP3ECEhO1HkqFI4mxKDb13x14VNmJJ19S\nS1RbEn9tSfy1I7HXVonE32jE1qIFht9/d33bbk4S4wIsXryYzp07c/vttzNs2DAGDhxIkyZNOHz4\nMA6Hg+nTp9OiRQsaN27MxIkTsdlsAJw6dYrevXtTv3596tWrx5NPPkniNZ/sfvnlF1q3bo2/vz+t\nWrVi06ZN2a81b96ciIiI7OPrZ2NHjRrFK6+8wuDBg/H396d58+YkJycDEB4eTrt27ahfvz6PPvoo\nFy5cyL6nZ8+e3Hbbbbz++uu0adOGzp07k5aWBsCVK1d49tlnady4MS1btmTBggU5+nvhhRfo0aMH\n/v7+vPDCC9mv9evXj3r16gHQsWNH/P39ee2111wVfiGEEMItKZcv5/u6LSQEQ2RkKY3GfUhiXAgm\nk4nffvuNdevW8dRTTzFo0CBWrlzJp59+yi+//MK6devYs2cPR48eZd68eQBYLBaGDBnCH3/8wR9/\n/MGVK1eYPn16dpujR4/m1VdfJSYmhhUrVnDzzTdnv6YoCoqi5DumZcuWMWjQIE6dOsV3332HwWBg\n7969/N///R9z5szh77//5o477mDMmDHZ97Rp04a5c+fy5Zdfsn79esxmM7//+2lzxIgRGI1GoqOj\nWblyJdOnTycqKir73i1btvDll1+yc+dOfvzxR/bt2wfA8uXLiYmJAWDbtm3ExMTw9ttvFzPiFZOs\n89OWxF9bEn/tSOy15VT8k5Pxbd4cUlPzvMTWpg2G334rxshEbmRL6EK49dZb8fHxoWrVqjRs2JBz\n586xd+9eVq9ezZQpU6hVqxYATz31FHPmzGHUqFEEBgYSGBiY3UavXr1YvXp19rFOp+PkyZMkJiYW\nqYxIlg4dOnDfffcB0KxZMwAWLVrEwIEDadmyJZA509uwYUMsFkv29xEQEED16tXx9fXF39+fixcv\ncv78eX799VeOHz+OyWQiICCAnj178tNPP9GiRQsAunfvTu3atQFo2rQpx48fz7XsnhBCCCGKx/Db\nb9hatAAvrzyvsbVvT0rTpqU4KvdQbhJj83vv4Tljxg3n08aPJ33ixEJdn9e1BcmavTUYDOj1egwG\nAzabjTNnzjBixAh0usyJd4fDkZ0kx8fHM3HiRHbt2kVqaipWqzU7yQSYP38+H3/8MbNmzSIwMJBP\nPvmEJk2aFHpMDRo0uOHcmTNn2LlzJ4sXL84+ZzKZspdTZI1d/+9+63q9HqvVytmzZwFyjM9ut9O3\nb9/sY19f3+yvjUYjGRkZhR6ryCTr/LQl8deWxF87EnttORP/Qu12Zzajyt4ALlduEuP0iROLlNQW\n9fqiUlWV2rVrM2fOHO68884bXn/zzTfR6/VERkZSuXJl5s2bx48//pj9euvWrVm8eDEWi4Line truncated
"text": [
"<matplotlib.figure.Figure at 0x2ea89d0>"
"<matplotlib.figure.Figure at 0x3e62110>"
]
}
],
"prompt_number": 55
"prompt_number": 27
},
{
"cell_type": "markdown",
@@ -1875,11 +2052,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x15a11d0>"
"<matplotlib.figure.Figure at 0x3e62050>"
]
}
],
"prompt_number": 58
"prompt_number": 28
},
{
"cell_type": "markdown",
@@ -1946,21 +2123,21 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x2edb310>"
"<matplotlib.figure.Figure at 0x3f55850>"
]
},
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x32c1990>"
"<matplotlib.figure.Figure at 0x4552050>"
]
}
],
"prompt_number": 59
"prompt_number": 29
},
{
"cell_type": "markdown",
@@ -2004,7 +2181,7 @@
"source": [
"The $x$ axis is for position, and $y$ is velocity. An ellipse that is vertical, or nearly so, says there is no correlation between position and velocity, and an ellipse that is diagnal says that there is a lot of correlation. Phrased that way, it sounds unlikely - either they are correlated or not. But this is a measure of the *output of the filter*, not a description of the actual, physical world. When $\\mathbf{R}$ is very large we are telling the filter that there is a lot of noise in the measurements. In that case the Kalman gain $\\mathbf{K}$ is set to favor the prediction over the measurement, and the prediction comes from the velocity state variable. So, there is a large correlation between $x$ and $\\dot{x}$. Conversely, if $\\mathbf{R}$ is small, we are telling the filter that the measurement is very trustworthy, and $\\mathbf{K}$ is set to favor the measurement over the prediction. Why would the filter want to use the prediction if the measurement is nearly perfect? If the filter is not using much from the prediction there will be very little correlation reported. \n",
"\n",
"**This is a critical point to understand!**. The Kalman filter is just a mathematical model for a real world system. A report of little correlation *does not mean* there is no correlation in the physical system, just that there was no correlation in the mathematical model. It's just a report of how much measurement vs prediction was incorporated into the model. \n",
"**This is a critical point to understand!**. The Kalman filter is just a mathematical model for a real world system. A report of little correlation *does not mean* there is no correlation in the physical system, just that there was no *linear* correlation in the mathematical model. It's just a report of how much measurement vs prediction was incorporated into the model. \n",
"\n",
"Let's bring that point home with a truly large measurement error. We will set $\\mathbf{R}=500$. Think about what the plot will look like before scrolling down. To emphasize the issue, I will set the amount of noise injected into the measurements to 0, so the measurement will exactly equal the actual position. "
]
@@ -2023,11 +2200,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x331bcd0>"
"<matplotlib.figure.Figure at 0x409bd90>"
]
}
],
"prompt_number": 60
"prompt_number": 30
},
{
"cell_type": "markdown",
@@ -2057,7 +2234,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"[1] http://docs.scipy.org/doc/scipy/reference/tutorial/stats.htmly"
"[1] http://docs.scipy.org/doc/scipy/reference/tutorial/stats.htmly\n",
"\n",
"[2] Brown, Robert Grover. *Introduction to Random Signals and Applied Kalman Filtering* John Wiley & Sons, Inc. 2012"
]
}
],
+1 -1
View File
@@ -10,7 +10,7 @@
background: transparent;
color: #000000;
font-weight: 600;
font-size: 13pt;
font-size: 11pt;
font-style: bold;
font-family: 'Source Code Pro', Consolas, monocco, monospace;
}