Batch processing and RTS.
This belonged with the last check in. Added desciptions on batch processing and using the RTS smoothing algorithm.
This commit is contained in:
1 parent
a794fdced2
commit
0c6999e25f
3 files changed
+408
-202
No files matched your search
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:f12625d51805f54a49362791e4b137e785648bc2dc60ca08be9162f3b8d42e62"
|
||||
"signature": "sha256:e7cdf47ffa25bbd83ad4e50e1fbd90cb0b8566af2d1b3a29bf79518e193ac7e3"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
@@ -261,7 +261,7 @@
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 1,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7f4ee10595c0>"
|
||||
"<IPython.core.display.HTML at 0x7f32b85c3588>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -395,7 +395,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAqsAAAFdCAYAAAAkOCRoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XeYZGWV+PHve1OlzmFyIOchw+AgIgKLiAHFdU1rWnfV\n1dUVV1dUBHXXwOqyK4ZVARExrD8TIrjqiCA5DwwMExgmdvdM93Tuijf9/qipng6VuruqK/T5PI+P\ndN1bt966U+HUuec9r/J930cIIYQQQogqpFV6AEIIIYQQQuQiwaoQQgghhKhaEqwKIYQQQoiqJcGq\nEEIIIYSoWhKsCiGEEEKIqiXBqhBCCCGEqFpGvo3d3d3zNQ4hhBBCCLGALVu2LOvtklkVQgghhBBV\nS4JVIYQQQghRtSRYFUIIIYQQVUuCVSGEEEIIUbUkWBVCCCGEEFVLglUhhBBCCFG1JFgVQgghhBBV\nS4JVIYQQQghRtSRYFUIIIYQQVUuCVSGEEEIIUbUkWBVCCCGEEFVLglUhhBBCCFG1JFgVQgghhBBV\nS4JVIYQQQghRtSRYFUIIIYQQVUuCVSGEEEIIUbUkWBVCCCGEEFVLglUhhBBCCFG1JFgVQgghhBBV\nS4JVIYQQQghRtSRYFULMG6VUpYcghBCixhiVHoAQor5pmjb+P8dx8H2/0kMSQghRQyRYFUKUnFIK\nXdfRNG3a7UIIIcRMSLAqhCiZTICqaZpkUIUQQpSEBKtCiDnRNA1d1ydlTacGqr7v43kenufN9/CE\nEELUOAlWhRAzNrEONRff98eD1InBa65SAMnECiGEyEaCVSFEUXLVoU6UK0DN3F8pheu6OY+fjwSz\nQgixMEmwKoTIq1Adaua2bJf5lVJomjYeqOYrAygUjOYLZiWQFUKI+iXBqhBimrnWoWaC21LO/pdg\nVgghFiYJVoUQwNwv80/MoFaiRZUEs0IIUZ8kWBViAcsElvkmSxWqQ50YpFazfAHpfNfLKqUkQBZC\niCJJsCrEApTJoPq+j+u6eJ43LVjNdZl/YoA70wC1WgPauWRli7m/EEKI2ZNgVYgFohrrUGuFBLNC\nCFE5EqwKUceKqUOFdDDlOE7V1aHWitkEs/l+NAghhDhEglUh6sxMJ0pNvC1z/1qpQ60V2Wp9i1ko\nIdf9hRBiIZFgVYg6kQlQC816l8v81UfKDIQQIjcJVoWoYdnqUKeaOJM/V4Yvk40V1UmCWSHEQibB\nqhA1phTLnk7MoGarVRW1RXrMCiHqmQSrQtSAmQSoU2tRM/fPVocqgcrCUAvBrPSeFULkIsGqEFVM\n6lDFfKiFYFYIsXBJsCpElSm2DjXfsqeZDKwEqaIUqmn1LyHEwiPBqhBVoJR1qBKgivkkk7+EEOUm\nwaoQFZIJMAvNws+37KkEqKLazSSYzfY6lmBWCCHBqhDzTOpQhThk4mIU2QJTycwKISRYFWIeZALM\n2V7mn49lTzP9VoWoJlJmIISQYFWIMinmMn+l61ArEZxKiyJRShLMClH/JFgVooQmBpiu6+b8IsxX\nhzq1aX89qcfnJKqbBLNC1D4JVoUogal1qNlqTfMteyp1qEJURi30mJWrEWKhk2BViFkqtg41k0GV\ndlOSpRK1pxaCWSHqnQSrQszATPqhZriuO+n+Cy1AnWghPmdR3ySYFaL8JFgVooC59kMFucwvxEIl\nq38JMXcSrAqRQ7H9UHPN5s8wTbNcQyyJTD2ctK4SYn7JgglCFEeCVSEmmGs/1EwWFiZf/hdCiJmS\nBROESJNgVSx4xdahAkUveypfEkKIcpO2XGKhkGBVLEgT61DztYWROlQhRK2SYFbUCwlWxYKSrQ51\n6gdyqZc9lVrQyZlpIUR1kGBW1AoJVkXdK1Ud6kwC1IUenGbkW6kr275CiOpRK8GsLJpQ/yRYFXWp\nmDpUWLjLnpZTocx0rs4J0o9SiNoiPWbFfJFgVdSVTICqaVrBOlRZ9jRtYuuqucgX+E/MTOd6LPni\nE6K+yHtalIoEq6LmTZwolTGTOtSFvqrUXMxn4C/N1YWoL/KeFsWSYFXUpJnUoWYCqonmM0CttwlW\npZ6AVqox5SMZHCFqy0zf01P/lvd1fZFgVdSMTIBZzKpS1dBuqt6K/ou9zF+NJJgVor5MfF9m+6yt\npcxsV1cXqVSKww8/vNJDqVoSrIqql6lDdV0Xz/OyZlMLZfsWWh1qqSyU8yqXI4WoL7XSyQDggQce\nwPd9CVbzkGBVVKVsdagZmcvqUodaHnJeJ5OsbO1Leg79dpz+VIx++9D/XN9nTcNiTmtaSkS3Kj1M\nMY+qKZgdGBjgiCOOKNnx6pEEq6JqFFOHCukPiUyWdaKFGEiVkpzX2ZltVrbeykSqief7PDnSzbNj\n+zlgxxhzUzn33T8wxp8Hd3BipJOzmlewItBUVa/zahrLQjKfwWx/fz9nnXVW0fsvRBKsioqaST/U\nXKsgVevl6FK1hCqnieObOtZqPa+1JNe/fea1UU2XIuvFoB3n9t7n2ZkYGr9NVxptRoh2K0y7GaLd\nDNNhhol7Do+PdLEt1s8zY/t5Zmw/i60GzmpezpqGxQS06viKlNdB9ZlLMOt5Hl/4whdobGykra2N\nYDBIV1cXkUiE9vZ2WltbMYzqeO1VC+XnOePd3d3zORaxgBTbD7VQvSRUb+ZhYo2truuVHs64SndJ\ncF0X13XLcuxaUWxWdSGVGMw10+z5Po+PdPHH/u3YvktEN7m4/ShWB1toNoJoec7loB3n8ZEunhrp\nIebZAAQ0ndMbl3Fh+5EYKv+P6XKSDHxhtXaOhoeHueaaa3JuV0rR1NREW1sbb37zm1m8eHHRx3Zd\nl5/85Cds3bqVVCrFypUrueKKK1iyZEne+23bto1vfetbWNahcpgrr7xyRo9dCsuWLct6u4TuYt7M\ntR9qRiYbK2YmX5eEDPk1X11k4ldxpmZTT2xYxKs6jim6DrXVDHFx+1Fc0HYEm8Z6eWykiz2JYR4a\n3sMBO8abFp+EqclnjiiNxsZGrrnmGgYGBujv7+fXv/41J510EgMDAwwMDDA0NMTw8DDDw8OTgsdi\n+L5PZ2cnr3nNa2hubuaee+7hpptu4tOf/nTB+zY3N3PttdfO8lmVl3wzibIqxbKnmUxfZnu1ZlKr\nUTHZ6UytqpzX2iITv9LZ1CdGuvjDwWxqWDN5deexnNCwaFbHM5TGyY1LOLlxCXsSw/yk5xm2xfr5\n8b5neMuSk7EkYBUloGkara2ttLa2cuSRR3LdddfxxS9+cXy767oMDQ0xMDBAc3PzjI5tGAaXXHLJ\n+N9nn302t99+O9FolEgkUrLnMN8kWBUlN9cAFaRecq5m0hO1XgIXMVm9B7NDdpzb+zazIz4IwAmR\nRVzWWXw2tZCVwWbetfw0bu3ewI74ILf1bOCtS08hWCV1rKJ+TH2/6bpOe3s77e3tcz72zp07aW5u\nLipQHR0d5eqrryYQCLB27VouvvjiOT9+qci7TpRMKepQ861+VGvB1XyPV4J/MRO1XGIwYMe4qetJ\nom6KsGZyWeexnDjLbGo+i6wG3rXsdG7tfordiWF+2L2Bty89hZBulvyxxOzU+meabdtlK7+Kx+P8\n6le/4vLLLy+475IlS7jqqqvo6Oigq6uLG2+8kaamJtauXVuWsc1U5arGRV3QNA3TNLEsa7weNVsd\nqud5OI6D4zi4rju+TyYLaxjGeLBb6x8+82nquZ0YqGqahmEY4+dWzqso1sRJeNn+N/FH5dT/lduY\nk+KH3U8TdVMcFmzhH1euLUugmtFhhXn38tNpMYJ0JUf4QfdTRPO0whLzr9I/nuZiYGCAtra2kh/X\ncRxuvvlmTj/9dE499dSC+zc2NtLR0QHA8uXLOe+883juuedKPq7ZkmBVzJhSCsMwsCwLwzByfkFl\naiGzBagTAykJUGcu37mdGPwXE0DUWsZaVF6+QBYoWzCb8Bxu69nAoBNnaaCRtyw9mQaj/M38W80Q\n715+Om1miH2pMW7peopRJ1n2xxX1rxzBqud53HrrrXR2dnLppZeW9NiVIsGqKMrEANU0zZz1qBOD\nKMn0lVaxWVQJ/kWlzSYrC/kv6Tq+x//u28i+1BhtZoi3LTllXvugNhtB3r3sdDrNCH12lFu6n2LY\nSczb44v61N/fX5La1Il+9rOfoZTijW98Y9btN9xwA3fcccek27Zt28bgYLr+e9++fTzwwAOceOKJ\nJR3XXEjNqsirmEvz87U850LMANbj0qe1NFZRerNZKMHzfX7Vu4kd8UEiusXbl546LxnVqRqNwPik\nq/2pMW7t3sD7VpwlXQLErJU6szowMMAjjzyCaZpcddVV47e/733vG1/SdXBwcFqAvHfvXm699VaS\nySSNjY2sW7euaupVQRYFEFlk64c6VSUay/u+j+M4AJhm9U9wmMt4ZzKbv5LjnI1Mdnghq7Um5vMh\n1znxfZ/fHdjGoyN7CSidd684g6WBxqzHmK9zGndtbu56kj47yllNy7ms89iyPZa8VvKr9fNzyy23\n0NbWxmtf+9pKD6Uq5FoUQMoABDD7OlS5FF06cplfiOnuG9rFoyN70VG8eenJLLEaZjXxq5TvmZBu\ncsXiE9BQPDbSxQux/pIdWyws5SgDqEcSrC5gM6lDLRREmaY5r3WotfxLeqKZdEqQAFUsNE+MdHP3\nwIsAvGHxiRweas27/3x2MVgSaOSCtsMBuL13M3HXnvkTFAteuboB1BsJVhegiQ3782VQqy2Iqqdg\nrZjZ/JJFFQvZ5mgfv+3bDMBlHceUpD3VbAPZXO/Bc1tWsyLQxKib5K4DW+c8PrHwSGa1OBKsLhBT\n+6FmZOuJKkFU6U2s7622y/wTH6teMtaitvWlovx8/3P4wPmth3FW84qyP+ZssrK6pvGGxSLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ee104ca90>"
|
||||
"<matplotlib.figure.Figure at 0x7f3294246240>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -563,7 +563,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAqsAAAFdCAYAAAAkOCRoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmcXGWV+P/PXWvtJb1lJyRkAQIkBEKQHREDIqDgjsCI\nOo6DGzgziAoOyndcR34zLugoIKCDgwsiCoLIJqAQyEYgG9m37k7v3bXe7fdHpTrd6Vp6qequqj7v\n14uXpurWvU/druXUuec5j+J5nocQQgghhBAlSJ3oAQghhBBCCJGNBKtCCCGEEKJkSbAqhBBCCCFK\nlgSrQgghhBCiZEmwKoQQQgghSpYEq0IIIYQQomTpue7cv3//eI1DCCGEEEJMYjNmzMh4u2RWhRBC\nCCFEyZJgVQghhBBClCwJVoUQQgghRMmSYFUIIYQQQpQsCVaFEEIIIUTJkmBVCCGEEEKULAlWhRBC\nCCFEyZJgVQghhBBClCwJVoUQQgghRMmSYFUIIYQQQpQsCVaFEEIIIUTJkmBVCCGEEEKULAlWhRBC\nCCFEyZJgVQghhBBClCwJVoUQQgghRMmSYFUIIYQQQpQsCVaFEEIIIUTJkmBVCCGEEEKULAlWhRBC\nCCFEyZJgVQghhBBClCwJVoUQ40ZRlIkeghBCiDKjT/QAhBCVTVXV/v9s28bzvIkekhBCiDIiwaoQ\nouAURUHTNFRVHXK7EEIIMRISrAohCiYdoKqqKhlUIYQQBSHBqhBiTFRVRdO0QVlTCVSFEEIUigSr\nQogRG1iHOhJSBiCEEGKkJFgVQgxLtjpUIYQQopgkWBVC5JTOoGqaJpf3hRBCjDsJVoUQQ6SDU9d1\ncV0Xz/MkUM1DURQ5R0IIUQQSrAohALnML4QQojRJsCrEJCYBqhBCiFInwaoQk9BE9UOVbgBCCCFG\nSoJVISYJ6YcqhBCiHEmwKkQFk8v8Qgghyp0Eq0JUGAlQhRBCVBIJVoWoEOkAtRh1oVIuIIQQYqJI\nsCpEGctUh1pIMiFKCCHERJNgVYgyI5f5hRBCTCYSrApRBiRAFZVIVv0SQgyHBKtClLBi1qEKIYQQ\n5UCCVSFKTLHrUCeK53mSRRNCCDFiEqwKUQIq+TK/53m4rovrusDhSVsSuAohhBgOCVaFmCCKovRn\nUStNOkDNlE0d+O9c2WMJZoUQQoAEq0KMu3KqQx1JFjQdmKaD1CP3k84a27Y96DH5jp3reEIIISqf\nBKtCjIPJkEVNX+ZPSz9nRVFGdek/37YSzAohxOQgwaoQRZKuQwVwHKeigqdsASqkJojlyhwXql3R\nWILZSvpbCCFEpZNgVYgCypRBzRTQlaNcl/kHZlBzBYnjWfogwawQQlQGCVaFKIByqkMdrYG1ppD5\nMn85kXpZIYQoDxKsCjFK6cvdk6Hd1ED5LvPn2285GG1WVtpyifEiq3+JyUSCVSFGYDT9UMslgMl1\nmR9A11MfF2PJopZjBjaTTOdnYPAgJQZCCFE4EqwKkUelz+QfGKQOlL68P/D2Sgk2i03qZYUQonAk\nWBUii0quQx3JZf5KmSBWSqReVgghhk+CVSEGqPQ61Fyz+Ss1MC830l9WCCEGk2BVTHqjqUMtF/ku\n85fzbP7JSkoMhBCTjQSrYlIaWIc6nrNqPc8bl8Aw16pSA4NUUXkkmBVCVBoJVsWkkqkOtdhf0OMV\nFMplfjEcUi8rhCg3EqyKijdZ61DlMr8YKamXFUKUIglWRUWq5DpUKO/L/NLMvHxJiYEQYiJIsCoq\nSjpAVVW14r4cJ/oy/3jV24ryNZpgtlwWzRCVR344lw8JVkXZGzhRKq3UPoDSH4ojDfhK4TK/fKCL\nQsn0Gh7Oql+ZHiuEmDwkWBVlqZLrUCH3ZX6pQxWVSOplhRDZSLAqysZkqEOV2fxCZCb1sqJS7du3\nj2Qyydy5cyd6KCVLglVR8tJBmqZpEz2UgiuFy/xCVILhBLMJ16Y9GaXNitKWjOJ4LidWTWWqGR6n\nUQox1AsvvIDneRKs5iDBqihJA+tQLcvC87yKyizKZX4hiqvTirExcpB2K9ofoPY5ySHbPd+1i6P8\nNSyvmcXx4SZ0ZeiVG8nMimLq6Ohg3rx5Ez2MkibBqigZlVyHmp5Ikg5Q5TK/EMXheh4vd+/lyY5t\n2N7gH4OaolJvBKg3gtQbQRKuzfq+ZnbHu9kd7+axg1tYVj2DU6tnUGsE+h8n9bKimNrb21m+fPlE\nD6OkSbAqJtRw6lBHO5O+FAy8zJ/+d5pkUYUorA4rysOtm9gV7wLguFAjc/y1NJip4LRG96Me8V57\nW/0xvNbXwqrufbQk+3i+axcvdO1iQbCB02tmMS9YJ5O/RFF1dHRQV1c30cMoaRKsiglRrH6oat82\nfPsfJX7U+/D8Uwu235HKdpkf6C9vKJcAdeCPhULtT4hCcj2PV3r28ef2N7E8l5BmcmnjIo4NNeZ9\nrE/VObV6JqdUzWBPoodV3Xt5o6+VLdE2tkTbuLB+PmfWHpVzH+M9+UvayVWW9vZ26uvrJ3oYJU2C\nVTFuit0PVbF6qHn+fWjR3QQ2fZfYsTcSO+YfQfMV7Bi5DJwola2fZKWWOQgxUTqtGL8/uIkdsU4A\nTghP5R0NCwlqxoj2oygKR/lrOMpfw8r6Bbzcs5fnOnfy5/Y3sT2Hc6eMfvJLrs85ycqKvr4+qqqq\nJnoYJU2CVVFU49luKrTuZrToblyjGtXqIbThq/h33EfkxNtITr8YipDRy9duKp1BzXT/ZJMr2yzE\nSHmex6u9+3mi7U2SnkNQNXhn4yKODzeNed9h3eStdfOYogd4+OBGnu7YgeN5nD9lbsGvDIw2Kysr\nf41NqWWn5YpTbhKsioIrdIA6nMvQ5t6H8O9+EE8L0H3en1CjewmtvwW9dzPVf7+WZOM59J76A7zA\ntIKMaaSz+SfrF0u2YD7TB/NkOzeT3Vi+nB3P5dctr7MxchBI1aZe0rCIsG4WangAnFw9HU1ReKh1\nI8917sT2XC6sO2ZcA4tM7wtZ+auyyN8oPwlWRcEUqw41HzW6l/CafwUgcuLXcKoW4FQtoOuCZ/Dv\n+BnBN76JefA5wuu/SO+Ku0d9nFyZQZnNf1i+bPPACWdHksbuk8to/qae5/H7g5vYGDmIX9V5Z+Mi\nFoeaivbeO6lqGrqi8uuW13mxaze253Jx/YKSea/LYgnlzbIsdF1CsXykeE6MiaqqGIaBaZr99ajj\n+gHoOVS9cj2q1U1i+kXE514zYHA68WM+RtcFT+OpJua+P6D1bBnZ7g8FVrZtY9v2oCArXYOr6/qQ\nWtzJyPM8HMfBtm0cxxmU+RnueUoHupn+S2ers/0nJoe/dGxnXW8zhqLy4elLOCE8teh//+PDTbx/\n2oloKLzcvZc/tG3GLZNAT95TpU06AQyPBKtixBRFQdd1TNNE1/Wif6jluoQe2PIDjLYXcX2N9C27\nI2NdqhucRXzOB1HwCGz5r7zHS3+QDyfwmuzZ1HzBvK7r6LpekPOU60s33xevqAwvde/h+a5dKCi8\nd+oJzPLXjNuxF4Ua+OD0k9AVlVd79vPwwY1lE7BmM5b3lLyvCkOC1eGRYFUMy8AA1TCMkpjRrvVs\nJvjGNwDoPeW/8XwNWbeNLfw0nqLh2/Mb1MiujNsMDFCLHXiVu0JkUYsxJvnSrVwb+lp4rG0rAJc1\nHsvCUPb3e7HMD9Zz1fQlGIrKut5mfte6saIvpUswW3zStmp4Jj7iECVN0zQMwyiZAHUg357foHgW\n8aPejzXtbTm3dUNzSMy+EsVzCGz5fv/tw80MjjXwKucJVumxp+t1xxrMT8SXmGRly9uOWCcPtbwB\nwAV18zi5evqEjWVuYAofnr4UU9FY39fMut7mCRvLRJP31dhJZnV4Siv6ECUhUx1qKTJangYgMetd\nw9o+tvCzeCj4d/0vRPYPOzNYqs9/PBzZhWHguaqkml3JHpWuA4leHjiwHgeP02pmcVbtnIkeEnMC\ntbyjcSEAj7VvocuKT/CISlOu9xUg7yskWB0uCVYFMP51qCORKSupJNrRu9bhqSZWw1uGtR+7agGJ\n6e9AcZP4t/5QLvPnMPAy/8DzNBlrdoebPYKhX75ibDqtGL84sI6k57A41MRFJTQLf0l4GseGGki4\nTkXUr04E+ZEoZQDDJcHqJFaKdajDZbQ+h4KHVX866KGs2x15mb93wWcACO66D83qRNd1DMMo+8xg\nIeQqiUiTYH6ogZmiyfqFWwwRJ8n9B9bS5yQ52l/Lu6cej1pC50xRFN7ZcCxB1WBHrJNVPfsmekgV\nZbLUy0pmdXjKJzoRBVPKdajDZbamSgCsqecNue/IoGvgpWun9iQSUy9AdWKEd/x0wuonS0m+yVLp\n10g5fQGUCqnpGx3bc3ngwHo6rBhTzTAfmJaahV9qwrrJOxsXAfDn9jdpS0YneESTR6W8tySzOjyl\n9+4XRVEudaj5eJ4Hntdfr5psOn/QfdmCroGX+WPH3gCAf/tdKFbPuIy71M63dD4oDZMhczQaz3Ts\nYG+ihxrdx4enL8GvlW7T9OPDTZwUnortufyu9Q0pBygR+eplIXvN7Hjq7OxkypQp43rMciTBagVL\nZ8ZKsQ51JI4ct9a7GS3ejOtrxK4+bsSz+e36FVgNZ6BaPfi33TWuz2UiZbrMPxGTpcr1dTjeKiVz\nNFK7Yl280LULBbiyaTFVum+ih5TXxQ0LqdJ87E308EJX5tZ4ovSUwg9Fx3EwDKOg+6xEEqxWmIET\nYKD0LjkXgtH8FACJxnOxHXdUfT6jx94IQODNH4MTG5+BT5B8l/nzTZbKNMFNFIaqKvh8BwgGN1AV\n/gtV4WepCq8iHF6LYeTO+lfiTOu4a/NQ6xt4wJm1czgqUDvRQxqWgGZwedOxADzdsYPmRNLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc4de3c8>"
|
||||
"<matplotlib.figure.Figure at 0x7f3293a3e9e8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -616,7 +616,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAA1QAAAG3CAYAAACzLhRYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmwZGV9P/73Wfqc3vvu984wMyxfJYOO/NAkgpKACklR\nwojGkICsamIqi5KKKYpEE+GrZWISFRLUsqJChKpEscTEMpSyCYULloLgwsAXHGa7a2/nnD778vz+\n6JmBYdZ7b3efXt6vKmpm+t57zqe53Z8+n/M8z+eRhBACREREREREtGpy2gEQERERERENKhZURERE\nREREa8SCioiIiIiIaI1YUBEREREREa0RCyoiIiIiIqI1YkFFRERERES0RiyoRtRNN90EWe7/X78s\ny7j55pvTDoOI1oi5hojWa1DySKd997vfhSzLeOSRR9IOhY5j9F6ddJAkSUd8vNFo4OMf/zjOPvts\nTE5OYnJyEueddx7uvffedZ0vDEN8+MMfxqZNm5DP53H22Wfj/vvvX3OcRDQYmGuIaL16nUfuvPNO\nXH755di8eTNkWcbVV1+9ruM98MADeNe73oXTTjsN+Xwep59+Oq6//no0Go11HZf6AwuqEXa0PZ0f\ne+wx/N//+39xyimn4KMf/ShuuukmuK6Liy++GJ/73OfWfL4PfOAD+Id/+Af83u/9Hm699VYAwMUX\nX4zHHntszcckov7HXENE69XrPPKpT30K999/P173utcBWP8Nlw996EN4/PHHceWVV+K2227DJZdc\ngs9//vN4/etfD8uy1nVs6gOCRtJHPvIRIUnSEb+2a9cusWfPnkMecxxHbNq0SUxOToo4jld9vuef\nf17Isize//73H3zMNE0xMzMjLrzwwqP+nCRJ4uabb171+YioPzDXENF69TqPHDjuAZIkiauvvnpN\nxznge9/73mGP3XrrrUKSJHHLLbcc8WceeughIUmSePjhh9d1buo+jlDRYbZs2YJNmzYd8lgul8M5\n55yDer2OlZWVVR/zm9/8JoQQePe7333wsVKphMsuuwzf/e53YRjGuuMmosHCXENE69WNPHLguJ30\nxje+8bDHLrjgAgDAjh07Onou6j0WVHTClpaWkM1mMTExseqffeqpp6AoCs4888xDHj/rrLMQxzF+\n8YtfdCpMIhpwzDVEtF7rySO9srS0BADYuHFjypHQerGgohPy05/+FN/73vfwh3/4h8hkMqv++YWF\nBUxMTEBRFHz84x/H2NgYHn74YczOzgIAFhcXOx0yEQ0g5hoiWq/15pFe+cxnPoNMJoMrrrgi7VBo\nnVhQ0XE5joOrr74a09PT+Md//Mc1HcP3fWiaBgDYtWsXLMvC8vIydF0HALiu27F4iWgwMdcQ0Xp1\nIo/0wp133ol77rkHN954I17xilekHQ6tEwsqOqYkSXDNNdfgueeew913333wLu9q6boO3/cBAJ/7\n3Oewb98+XHbZZQcfy+VyHYuZiAYPcw0RrVen8ki3PfbYY3jf+96Ht771rbjpppvSDoc6QE07AOpv\nH/zgB3HPPffgrrvuwm//9m+v+TgbNmxAvV5HHMdQFAVzc3MAXpw/fODfRDSamGuIaL06lUe66bnn\nnsP27duxbds2fPWrX+X+d0OCI1R0VJ/85Cdx66234lOf+tS65/eeeeaZSJIETz755CGPP/HEE5Bl\nGa9+9avXdXwiGlzMNUS0Xp3MI92yvLyMiy66COPj47j33nuRz+fTDok6hAUVHdF//ud/4oYbbsCH\nPvQhXH/99es+3vbt2yHLMm6//faDj1mWhbvvvhtvetObUKlU1n0OIho8zDVEtF6dziNrcc8992Dr\n1q249tprj/j1VquFiy++GL7v47777sPU1FSPI6Ru4pQ/OsyPfvQjXHvttTj99NOxdetW3HXXXYd8\n/Xd/93cxMzOzqmOedtppeO9734vPfvazkCQJ27Ztwxe/+EUYhoGPfexjnQyfiAYEcw0RrVc38gjQ\n3tPupSPdP/vZzw7mkEsvvRSvec1rDvl+wzDw7LPPHrUF+lVXXYWf/OQnuPHGG/HII48c8rW5uTlc\neOGFq46R+gcLKjrM008/jSiK8Oyzz+Lqq68+5GuSJOGhhx5aU3K67bbbMD09jTvuuAP//u//jjPP\nPBPf+ta3cM4553QqdCIaIMw1RLRe3cojX//61/Ef//EfB4/z1FNP4cknn4QkSdiyZcthBdXx1kId\n+NkjdR5805vexIJqwLGgosNce+21Rx2yXo9MJoOPfexjvEtMRACYa4ho/bqVR26//fZDpg6vN46d\nO3d2IizqU1xDRUREREREtEYsqIiIiIiIiNaIBdWIkiSJex8QUdcx1xDReo1yHhnV5z1oJCGESDsI\nIiIiIiKiQcQRKiIiIiIiojViQUVERERERLRGLKhG1E033QRZ7v9fvyzLuPnmm9MOg4jWiLmGiNZr\nUPJIp333u9+FLMuHbQRM/Wf0Xp100PEWOt51113Ytm0bcrkcXvnKV+Lf/u3f1nyuHTt24C//8i/x\n6le/GqVSCZs3b8Y73/lO7NixY91xElF/62WuAYBf/vKXeNvb3obx8XEUCgWcc845+N///d91x0lE\n6TnW+/PRRx/Fn/zJn2Dbtm2QZRmbN29e17nWc81yNA888ADe9a534bTTTkM+n8fpp5+O66+/Ho1G\nY12xUn9gQTXCjtWP5Ctf+QquueYabNmyBbfddht+8zd/E9dffz0+9alPrelcd9xxB+666y68+c1v\nxi233II//dM/xfe//3287nWvw+OPP77Wp0BEA6CXuWZ+fh6//du/jcceeww33HADPvGJT8D3fbzt\nbW/D/fffv9anQEQpO1Ye+drXvoY777wTU1NTmJubW/fNkW5cs3zoQx/C448/jiuvvBK33XYbLrnk\nEnz+85/H61//eliWta54qQ8IGkkf+chHhCRJR/xakiTilFNOEWeddZZIkuTg4xdddJGoVCrCtu1V\nn+/xxx8XjuMc8tiTTz4pJEkSb3/724/6c5IkiZtvvnnV5yOi/tDrXPN3f/d3QpIk8eijjx58rNVq\niZmZGXHOOecc9eeYa4j617HyiBBCzM/PiyAIhBBCnH/++WLz5s3rOt9ar1mO5Xvf+95hj916661C\nkiRxyy23HPFnHnroISFJknj44YfXdE7qHY5Q0WGeeuop7Nq1C9dcc80hd3ne+973wjRNPPjgg6s+\n5mtf+1rkcrlDHjvzzDMxOTm5riF0Ihpc3cg1jz/+OPL5PM4999yDjxUKBVxwwQX40Y9+hGq12pHY\niah/bNiwAZlMpmPH68Y1yxvf+MbDHrvgggsAgNdBQ4AFFR3mqaeeAtBOKC911llnHfL19XJdF5Zl\nYePGjR05HhENlm7kGlmWoev6YY/n83kIIfD000+vIVIiGnXduGZZWloCAF4HDQEWVHSYhYUFAMDs\n7CwefPBBjI2N4Z/+6Z8wNzcHAFhcXOzIeb7whS8gCAJcc801HTkeEQ2WbuSa008/HY1GA7t37z74\nmBACP/zhDwEAKysrHYiciEZNN65ZPvOZzyCTyeCKK67o2DEpHSyo6DC+7wMANE3D0tISTNPErl27\nDt71dV133efYsWMH/uZv/gZvetObcO211677eEQ0eLqRa9773vdCURRcd911eOKJJ/Dss8/i/e9/\nP+bn5wEAnud17gkQ0UjoxjXLnXfeiXvuuQc33ngjXvGKV3TkmJQeFlR0mAMXM0EQ4IorrsC+ffvw\nmc985uCFyMvnFa9WrVbD9u3bMT09jf/6r/9ad7xENJi6kWvOOOMMfPazn8WPf/xj/Pqv/zq2bt2K\nBx98EH//938PoD31j4joRHXjmuWxxx7D+973Prz1rW/FTTfd1JFjUrpYUNFhNmzYAODFub0v//eB\n6Thr4boutm/fjkajgXvvvRczMzPrjJaIBlW3cs0f//EfY3FxET/4wQ/wk5/8BL/4xS8OtlzesmXL\nesMmohHRjWuW5557Dtu3b8e2bdvw1a9+lfvfDQkWVHSY17zmNQBw2F4LTzzxBIB2p5u1SJIE73rX\nu/DUU0/hm9/8JrZu3bq+QIlooHUr1wDtkaizzz4br33tayFJEu677z4Ui0Vs27Zt7QET0cjoxjXL\n8vIyLrroIoyPj+Pee+/liPkQYUFFhznrrLNw8skn48tf/jKSJDn4+Je+9CVUKhW85S1vWdNx//zP\n/xzf+ta38LWvfQ1veMMbOhUuEQ2obuWal3vkkUfw7W9/G1dccQU0TevIMYlocO3btw9bt27FGWec\ncdTv6fQ1S6vVwsUXXwzf93Hfffdhampq3cek/qGmHQD1p49//OO48sorcfHFF+Od73wnHnzwQXz7\n29/GP//zP6/pjsott9yCz3/+87j00ktRrVZx1113HfL1q666qlOhE9EA6XSuAYCLLroIZ599NrZs\n2YIdO3bgs5/9LLZs2YKPfexjHY6eiPrBU089hf/5n/8BAOzatQumaR58v5911lm45JJLDvn+MAzx\n7LPPHnW6XTeuWa666ir85Cc/wY033ohHHnnkkK/Nzc3hwgsvXPUxqY8ca9ffb3zjG+Kcc84Ruq6L\n66677uDjQRCI97znPaJUKoktW7aIr371q93dfpg67ni7jgshxJe//GXxqle9Sui6Ll7xileIW2+9\ndc3nu+6664Qsy0KSpMP+k2X5qD8nSZK4+eab13xeGhzMN8Op17lGCCFuuOEGccoppwhd18XGjRvF\nH/3RH4mFhYVj/gxzzWhhvhksx8sjd9xxxyHXFAeuN2RZFu9+97sP+/6dO3ce8/pjrdcsx3LKKacc\n9ZhvfvObj/gzDz30kJAkSTz88MNrOif1zjFHqMbGxnDDDTfg/vvvh+M4Bx//9Kc/jV/84hLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc20f160>"
|
||||
"<matplotlib.figure.Figure at 0x7f32937da240>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -714,7 +714,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGDCAYAAAA23OZEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGNBJREFUeJzt3XtslfX9wPFPS0+BcmnlNkUiFeetKTIdwRAXmMNkhBkv\nC4w5HamCM0Fj5oZu6qZTNNPI5rxMMzbk4maCMU53yUCtCgvTIYvosJXpEHdRQOoQsUgvp78/jP19\nK5QegZ5T4PVKSHrO83DOh+bx5O2T7/Ocora2trYAAAAiIqK40AMAAEBPIpABACAhkAEAICGQAQAg\nIZABACAhkAEAIFFS6AE+qba2ttAjAABwGJg0adIen+9xgRwRcfLJJxd6BOhg8ODB8eijj8bEiRML\nPQrsxvFJT+XYpCerr6/vdJslFgAAkBDIAACQEMiQI0t/6Mkcn/RUjk0ORgIZcuRDnp7M8UlP5djk\nYCSQAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZABACAh\nkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZAB\nACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAg\nIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQ\nAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEA\nICGQAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZABACAhkAEAICGQAQAgIZABACAh\nkAEAICGQAQAgIZABACAhkAEAIFGSzze76KKLora2NhobG6OysjLmzp0b55xzTj5HAAC6UTbbFn96\n4Y148On6eK+xJSIiystKYsakqpg8tjKKi4sKPCF0La+BfM0118SCBQuid+/e8eSTT8bZZ58d//vf\n/6KsrCyfYwAA3WB7Y1PUzFseazdsiV3N2Q7bVq/fFGNGDY3FcybHwLLSAk0IucnrEotTTjklevfu\nHW1tbdHU1BT9+/ePoiL/JwkAB7tsti1q5i2Pv67ftFscR0Tsas7G6vWbo2be8shm2wowIeQu72uQ\n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\nn0yvGDNqaCya82XfpgewjzoN5JtuuinmzJkT/fr16/QscUtL7ldTA3BgDCwrjUd+cHYsW7MxltTW\n+appgAOs00AeMmRIFBd/tAKjrq4uxo8f3367lo81NTV173QA7FFxcVFMGXdsTBl3rAuhAA6wTgP5\n8ssv7/C4pqYmKioqOjy3bdu2eP7557tnMgAAKICcLtKbNGlS9O7du7tnAQCAgttrIK9YsSKampri\nW9/6VvTt23e37QMHDox77rmn24YDAIB822sg33fffbFz587O/3JxcQwbNuyADwUAAIWyX/dBBgCA\nQ02X90FuaGiI5ubmve4zZMiQAzYQAAAUUpeBfO2113b5IkuXLj0gwwAAQKF1Gcjf/e53o1+/fvmY\nBQAACq7LQD7xxBOjvLw8H7MAAEDBuUgPAAASew3kCRMm7Pb10gAAcCjb6xKLT37dNAAAHOossQAA\ngIRABgCAhEAGAICEQAYAgIRABgCAhEAGAICEQAYAgIRABgCAhEAGAICEQAYAgIRABgCAhEAGAICE\nQAYAgIRABgCAhEAGAICEQAYAgIRABgCAhEAGAICEQAYAgIRABgCAhEAGAICEQAYAgIRABgCAhEAG\nAICEQAYAgIRABgCAhEAGAICEQAYAgIRABgCAhEAGAICEQAYAgIRABgCAhEAGAICEQAYAgIRABgCA\nhEAGAICEQAYAgIRABgCAhEAGAICEQAYAgIRABgCAhEAGAICEQAYAgIRABgCAhEAGAICEQAYAgIRA\nBgCAhEAGAICEQAYAgIRABgCAhEAGAICEQAYAgIRABgCAhEAGAICEQAYAgIRABgCAhEAGAICEQAYA\ngIRABgCAREmhB4CeKpttiz+98EY8+HR9vNfYEhER5WUlMWNSVUweWxnFxUUFnhAA6A55DeTHH388\nbrvttnjxxRfjggsuiIULF+bz7SFn2xubombe8li7YUvsas522LZ6/aYYM2poLJ4zOQaWlRZoQgCg\nu+R1iUVFRUVcc801MXPmzHy+LXwq2Wxb1MxbHn9dv2m3OI6I2NWcjdXrN0fNvOWRzbYVYEIAoDvl\nNZAnTpwY559/fgwaNCifbwufyrI1G2Pthi1d7vfShndi2ZqN3T8QAJBXBblIr63NWTd6riW1dXs8\nc/xJHza3xpLaujxMBADkU0Eu0isq2vvFTYMHD87TJLC7jy/Iy3VfxyuFlslkIsJnJz2PY5Line truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc1a2908>"
|
||||
"<matplotlib.figure.Figure at 0x7f3293a8ccf8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -741,7 +741,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAskAAAGDCAYAAADZHo16AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHY1JREFUeJzt3X2Q1fV96PHPHvYssDwsskBUqAI+QlZRQrE0DZTgnVJC\nJWY0NE8EwdQp6U2qISbRJsYQUzNSc9VEr6YgYMMdvZkk7Uwm0ogWDNEoJmqEFTVIHkwAARFlkWX3\nnPtHLqfulwUW2D0Pu6/XjDN7zu/Hng/Md9Y3P76/c6ry+Xw+AACAgkypBwAAgHIjkgEAICGSAQAg\nIZIBACAhkgEAICGSAQAgUV3qAVKrV68u9QgAAPQQ06ZNa/f5sovkiIgxY8aUegTKSH19fXzve9+L\nKVOmlHoUyoh1QXusC9pjXXA4jY2Nhz1muwUAACREMgAAJEQyFcEWHNpjXdAe64L2WBccK5FMRfDD\njfZYF7THuqA91gXHSiQDAEBCJAMAQEIkAwBAQiQDAEBCJAMAQEIkAwBAQiQDAEBCJAMAQEIkAwBA\nQiQDAEBCJAMAQEIkAwBAQiQDAEBCJAMAQEIkAwBAQiQDAEBCJAMAQEIkAwBAQiQDAEBCJAMAQEIk\nAwBAQiQDAEBCJAMAQEIkAwBAQiQDAEBCJAMAQEIkAwBAQiQDAEBCJAMAQEIkAwBAQiQDAEBCJAMA\nQEIkAwBAQiQDAEBCJAMAQEIkAwBAQiQDAEBCJAMAQEIkAwBAQiQDAEBCJAMAQEIkAwBAQiQDAEBC\nJAMAQEIkAwBAQiQDAEBCJAMAQEIkAwBAQiQDAEBCJAMAQEIkAwBAQiQDAEBCJAMAQEIkAwBAQiQD\nAECiutQDAAB0tnw+F7/bsz5+9drD0bKlKSIiqqM2zjhpWowY+K6oqnKdkCMryQp59NFHI5PJxJIl\nS0rx8gBAN9bc2hQPb/laPP7K/45tezfEzr0vx869L8e2vRvi8Vfuioe33BTNrU2lHpMyV/RIbmlp\nic9//vMxZsyYqKqqKvbLAwDdWD6fi0d/c2vsaNoUufyBQ47n8gdiR9ML8ehvbo18PleCCakURY/k\nO+64I2bOnBnDhg0r9ksDAN3c7/Y8Fbv2bT7qebv2bY5X9vy8CBNRqYoayVu3bo1ly5bFNddcU8yX\nBQB6iF+9trrdK8ipXP5AvPTaQ0WYiEpV1Bv3Fi5cGNdff3307t37iOfV19cXaSIqQTabjQjrgras\n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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc3f0d68>"
|
||||
"<matplotlib.figure.Figure at 0x7f32939bf400>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -768,7 +768,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAs8AAAGDCAYAAADUAP09AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8XFd9N/7PnX2TNKPRakm2Y8dbrDgbkIQ4VozZiUkC\ngQABytI2NOEpUAKFtpTkl6c88DwkaaGlfR5K2EIgBLIUSikkxEsSZ8PZbEveF+3LaJ19u78/7j13\nmRlJV7JsjTyf9+vl18sazVxdv6zvPd9zzvecI8myLIOIiIiIiGZlW+wbICIiIiJaKpg8ExERERFZ\nxOSZiIiIiMgiJs9ERERERBYxeSYiIiIisojJMxERERGRRY7FvgGrnnjiicW+BSIiIiKqENu2bSv5\n+pJJngFgw4YNi30LNA/hcBgPP/wwOjo6FvtWiCoKY49ocTD2lr7Ozs5pv8eyDSIiIiIii5g8ExER\nERFZxOSZzgqW3BAtDsYe0eJg7J27mDzTWcGHCNHiYOwRLQ7G3rmLyTMRERERkUVMnomIiIiILGLy\nTERERERkEZNnIiIiIiKLmDwTEREREVnE5JmIiIiIyCImz0REREREFjF5JiIiIiKyiMkzEREREZFF\nTJ6JiIiIiCxi8kxEREREZBGTZyIiIiIii5g8ExERERFZxOSZiIiIiMgiJs9ERERERBYxeSYiIiIi\nsojJMxERERGRRUyeiYiIiIgsYvJMRERERGTRWUueH3vsMVx55ZXweDz4+Mc/rr2eyWTwyU9+EtXV\n1VixYgUeeuihs3VLRERERERz4jhbPygYDOKLX/wiHn/8ccTjce31e++9F/v370dPTw9eeuklXHvt\ntbjyyivR2tp6tm6NiIiIiMiSszby3NHRgRtuuAG1tbWm1x966CH85V/+Jaqrq9HR0YErr7wSjzzy\nyNm6LSIiIiIiy87ayLMgy7Lp60OHDmHdunX48Ic/jO3bt+OCCy7AwYMHz/ZtERERERHN6qwnz5Ik\nmb6OxWIIBALYt28fLrvsMlRVVaG7u7vkZ8Ph8Nm4RVpgTqcTAP//iM42xh7R4mDsndsWfeTZ7/cj\nFovh5ZdfBgB85jOfQVVVVcnP3nXXXdrft2zZgo6OjjN3o0RERERUEXbu3Ildu3ZpX2/dunXa9y76\nyPPatWvR2dmJSy+9FABw4MABXHfddSU/e+utt5q+jkQiZ+YmaUGJnjf/v4jOLsYe0eJg7C097e3t\naG9v177u7Oyc9r1nbcFgPp9HMplENptFLpdDKpVCNpvF+9//fnzrW9/CxMQEduzYgWeffRY33HDD\n2botIiIiIiLLztrI849+9CN84hOf0L6+//77cccdd+Bv/uZv0NXVhba2NoRCIdx3331oaWk5W7dF\nRERERGSZJBcWIZepJ554Ahs2bFjs26B54PQV0eJg7BEtDsbe0tfZ2Ylt27aV/B6P5yYiIiIisojJ\nMxERERGRRUyeiYiIiIgsYvJMRERERGQRk2ciIiIiIouYPBMRERERWcTkmYiIiIjIIibPREREREQW\nMXkmIiIiIrKIyTMRERERkUVMnomIiIiILGLyTERERERkEZNnIiIiIiKLmDwTEREREVnE5JmIiIiI\nyCImz0REREREFjF5JiIiIiKyiMkzEREREZFFTJ6JiIiIiCxi8kxEREREZBGTZyIiIiIii5g8ExER\nERFZxOSZiIiIiMgiJs9ERERERBYxeSYiIiIisojJMxERERGRRUyeiYiIiIgsYvJMRERERGQRk2ci\nIiIiIouYPBMRERERWcTkmYiIiIjIIibPREREREQWMXkmIiIiIrKIyTMRERERkUVMnomIiIiILGLy\nTERERERkEZNnIiIiIiKLmDwTEREREVnE5JmIiIiIyCImz0REREREFjF5JiIiIiKyiMkzEREREZFF\nTJ6JiIiIiCxi8kxEREREZBGTZyIiIiIii5g8ExERERFZxOSZiIiIiMgiJs9ERERERBYxeSYiIiIi\nsojJMxERERGRRUyeiYiIiIgsKpvk+bXXXsNVV12FmpoarF+/Ho8++uhi3xIRERERkUnZJM8f+chH\n8K53vQsTExP453/+Z9x8880YHR1d7NsiIiIiItKUTfLc1dWFG2+8EQDw5je/GV6vF8ePH1/kuyIi\nIiIi0pVN8vz2t78dDz30EHK5HH73u9+huroa7e3ti31bREREREQax2LfgHD33XfjLW95C+644w54\nPB48/PDDcLvdpveEw+FFujs6HU6nEwD//4jONsYe0eJg7J3byiJ5TiQS2LZtG+69915cf/31eOaZ\nZ3Dddddh7969WL58ufa+u+66S/v7li1b0NHRsRi3S0RERETnkJ07d2LXrl3a11u3bp32vWWRPO/b\ntw9TU1O44YYbAABXXXUVVq1ahT179piS51tvvdX0uUgkclbvk+ZH9Lz5/0V0djH2iBYHY2/paW9v\nN5ULd3Z2Tvvesqh5Pu+885BIJPDYY49BlmW8+OKL6OzsxIYNGxb71oiIiIiINGWRPNfV1eHBBx/E\n3/3d36GmpgYf+MAHcO+992LTpk2LfWtERERERJqyKNsAgO3bt2P79u2LfRtERERERNMqi5FnIiIi\nIqKlgMkzEREREZFFTJ6JiIiIiCxi8kxEREREZBGTZyIiIiIii5g8ExERERFZxOSZiIiIiMgiJs9E\nRERERBYxeSYiIiIisojJMxERERGRRUyeiYiIiIgsYvJMRERERGQRk2ciIiIiIouYPBMRERERWcTk\nmYiIiIjIIibPREREREQWMXkmIiIiIrKIyTMRERERkUVMnomIiIiILGLyTERERERkEZNnIiIiIiKL\nmDwTEREREVnE5JmIiIiIyCImz0REREREFjF5JiIiIiKyiMkzEREREZFFTJ6JiIiIiCxi8kxERERE\nZBGTZyIiIiIii5g8ExERERFZxOSZiIiIiMgiJs9ERERERBYxeSYiIiIisojJMxERERGRRUyeiYiI\niIgsYvJMRERERGQRk2ciIiIiIouYPBMRERERWcTkmYiIiIjIIibPREREREQWMXkmIiIiIrKIyTMR\nERERkUVMnomIiIiILGLyTERERERkEZNnIiIiIiKLmDwTEREREVnE5JmIiIiIyCImz0REREREFjF5\nJiIiIiKyiMkzEREREZFFTJ6JiIiIiCwqm+Q5kUjglltuQTgcRigUwm233bbYt0REREREZOJY7BsQ\nPve5z+HYsWM4cOAAGhoacODAgcW+JSIiIiIik7JInhOJBH70ox9h7969aGxsBABs3Lhxke+KiIiI\niMisLMo2Dh06BEmS8Mgjj6CpqQkbN27Eo48+uti3RURERERkUhYjz5OTk0in0zh+/DhOnTqFZ555\nBtu3b8fhw4fR1NSkvS8cDi/iXdJ8OZ1OAPz/IzrbGHtEi4Oxd26znDwfO3YMf/jDHzA4OIhbb70V\noVAIe/bsQXNzM1auXHlaN+Hz+ZDL5fD5z38eLpcL11xzDdauXYtnn30W119/vfa+u+66S/v7li1b\n0NHRcVo/l4iIiIho586d2LVrl/b11q1bp32vpeT5xRdfxN1334329nbs27cP6XQaAHDq1Cns3r0b\nX/ziF0/rhletWgVJkmZ936233mr6OhKJnNbPpbND9Lz5/0V0djH2iBYHY2/paW9vR3t7u/Z1Z2fn\ntO+1lDz//Oc/x5/+6Z9i27Zt+OhHP6q9fskll+Dxxx8/jVtVhEIhdHR04J577sG//Mu/YM+ePTh0\n6BCuuOKK0742La4HnuzCzn39sNtseMfr2rD98lWLfUtEFWHXaz34xdO7EU9lcNnqMG555ybYbLMP\nUhDR6TnSN44v3PcMhsfjWNUYwO3vvQw+j3Oxb4sWkKXkua+vDxdeeGHR69XV1YjFYgtyI/fddx8+\n9rGPIRgMorW1Fffff7+p3pmWlmwujzvu34Pv/07fcvCxZw7h8HvG8Ln3XGpppoGI5udHjx/A3/3w\nGeTyMgDgv54/ipePDeMfP3UNvK6yWOpCdE56en8f/uwff4+JeFp7bU9nP77/+beiKeRfxDujhWRp\nt41gMIienp6i17u6ulBfX78gN7Jy5Urs2LED0WgUXV1duO666xbkurQ4/udPn8P3f3cALocNX/vk\nVvzNzVfBJkm4++G9+M6vX1ns2yM6Z/3yqcP48vefRi4v4y/efSm+9em3IuBx4tfPHcdn/nXHYt8e\n0TnrwKkIbv7Gf2EinsbbX78aP/jr7VjRUIVXj4/g/f/wn0hnc4t9i7RALA1BvPnNb8Z3v/td/Mmf\n/AlkWUZfXx9eeeUV/OxnP8MNN9xwpu+RlphDPWO477/3wyZJ+MlfvwPbr1ZmLVaEPbjlW0/gHx95\nCe/dvIa9cKIFFk2k8Q8/fR4A8NUPX4Evf/gaAMAFLVXYfsdj+M/nj+Op/b3YvLFlEe+S6NwjyzK+\n+uM9yOTyuPHqNfjhl26A3W7DpStrcP3/9ysc7Z/Aff+9H59616bFvlVaAJZGnq+//npcffXV+Pa3\nv410Oo2vf/3r+OEPf4ht27bh2muvPdP3SEuIeIDk8jI+vG093njBMu17116+Cu943UrEU1l87WfP\nL+JdEp2bvv0fr2BwPI5LVtfjT9+mL3zZsLwW/+PdFwMA7vjxs8jm8ot1i0TnpN+8cALPHOhHKODG\nnR+5Ena7kl6Fq72466NXAgDufXgvhifii3mbtEAsF7996EMfwnve8x6tfKOlpQVer/eM3RgtTXs6\n+7FrXy9qfC584cbXFX3/KzdfjidePoVfPnUEt22/COtaaxfhLonOPZHJBP7fb14FANz5kSuLFgf+\n+TsvxE93dKGzexSP7TmK925esxi3SXTOkWUZX//5CwCAL7zvdQj63abvX7OpDW++ZDkef+Line truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc3b76d8>"
|
||||
"<matplotlib.figure.Figure at 0x7f32937ec8d0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -799,7 +799,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAs8AAAGDCAYAAADUAP09AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8XNV9N/7PnX2fkUabJVmSFxbbwgukYbdxDIQmEJYG\nmoW0pE3Sp5A0pUnTNEmfJD9+3R9CE9I8TdqEhhDyAClLeFKCARvbwTZgvNvyKmtfZpE0i2afuc8f\n9547M7IkX9taBvx5v1687NHcGV/g+N7PPed7zpFkWZZBRERERERnZJjvEyAiIiIierdgeCYiIiIi\n0onhmYiIiIhIJ4ZnIiIiIiKdGJ6JiIiIiHRieCYiIiIi0sk03yeg12uvvTbfp0BEREREF4gNGzZM\n+vN3TXgGgGXLls33KRCdxu/349lnn8W6devm+1SIyrBtUiVj+6RK1tHRMeV7LNsgIiIiItKJ4ZmI\niIiISCeGZ6IZwJIiqlRsm1TJ2D7p3YjhmWgG8AZAlYptkyoZ2ye9GzE8ExERERHpxPBMRERERKQT\nwzMRERERkU4Mz0REREREOjE8ExERERHpxPBMRERERKQTwzMRERERkU4Mz0REREREOjE8ExERERHp\nxPBMRERERKQTwzMRERERkU4Mz0REREREOjE8ExERERHpxPBMRERERKQTwzMRERERkU4Mz0RERERE\nOjE8ExERERHpxPBMRERERKQTwzMRERERkU5zFp5feOEFXH311bDZbPj0pz+t/TybzeKP//iP4fF4\n0NraimeeeWauTomIiIiI6KyY5uoP8vl8+MpXvoJXX30ViURC+/kjjzyCQ4cOoa+vD3v27MGtt96K\nq6++Gs3NzXN1akREREREusxZz/O6detw5513orq6uuznzzzzDP7sz/4MHo8H69atw9VXX43nnntu\nrk6LiIiIiEi3Oet5FmRZLnt97NgxXHLJJbj33ntx2223Yfny5Th69OhcnxYRERER0RnNeXiWJKns\n9fj4OFwuFw4ePIgrrrgCbrcbvb29k37W7/fPxSkSnRWz2QyA7ZMqD9smVTK2T3q3mveeZ6fTifHx\ncezduxcA8MUvfhFut3vSzz700EPa79euXYt169bN3okSERER0QVhy5Yt2Lp1q/Z6/fr1Ux477z3P\nF198MTo6OnD55ZcDAA4fPozbb7990s/ef//9Za/D4fDsnCTRWRC9JmyPVGnYNqmSsX1SJWlvb0d7\ne7v2uqOjY8pj52zCYKFQQCqVQi6XQz6fRzqdRi6Xwz333IPvfe97iEQieP3117Fz507ceeedc3Va\nRERERES6zVnP8+OPP44/+qM/0l4/8cQT+Na3voWvfe1rOHLkCBYuXIiqqir85Cc/QVNT01ydFhER\nERGRbpI8sQi5Qr322mtYtmzZfJ8G0Wk49EiVim2TKhnbJ1Wyjo4ObNiwYdL3uD03EREREZFODM9E\nRERERDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8Mz\nEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTw\nTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDox\nPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFO\nDM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESk\nE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER\n6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERE\nRDoxPBMRERER6VQx4fnAgQO49tpr4fV6cemll+L555+f71MiIiIiIipTMeH5U5/6FD784Q8jEong\n+9//Pj75yU9iZGRkvk+LiIiIiEhTMeH5yJEj+OhHPwoAuPHGG2G323Hq1Kl5PisiIiIioqKKCc+3\n3HILnnnmGeTzeWzcuBEejwft7e3zfVpERERERBrTfJ+A8PDDD+Omm27Ct771LdhsNjz77LOwWq1l\nx/j9/nk6O6Kpmc1mAGyfVHnYNqmSsX3Su1VFhOdkMokNGzbgkUcewR133IHt27fj9ttvx+7du9HS\n0qId99BDD2m/X7t2LdatWzcfp0tERERE7yFbtmzB1q1btdfr16+f8tiKCM8HDx5ELBbDnXfeCQC4\n9tprsXjxYuzYsaMsPN9///1lnwuHw3N6nkSTEb0mbI9Uadg2qZKxfVIlaW9vLysX7ujomPLYiqh5\nXrRoEZLJJF544QXIsoxdu3aho6MDy5Ytm+9TIyIiIiLSVER4rqmpwVNPPYVvfOMb8Hq9+NjHPoZH\nHnkEK1eunO9TIyIiIiLSVETZBgDcdtttuO222+b7NIiIiIiIplQRPc9ERERERO8GDM9ERERERDox\nPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFO\nDM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESk\nE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER\n6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERE\nRDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzERER\nEZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERE\nRESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMR\nERER6VQx4TmZTOJP/uRP4Pf7UVVVhQceeGC+T4mIiIiIqIxpvk9AePDBB9HZ2YnDhw+jrq4Ohw8f\nnu9TIiIiIiIqUxHhOZlM4vHHH8fu3btRX18PAFixYsU8nxURERERUbmKKNs4duwYJEnCc889h4aG\nBqxYsQLPP//8fJ8WEREREVGZiuh5jkajyGQyOHXqFHp6erB9+3bcdtttOH78OBoaGrTj/H7/PJ4l\n0eTMZjMAtk+qPGybVMnYPundSnd47uzsxKZNmzA8PIz7778fVVVV2LFjBxYsWIC2trbzOgmHw4F8\nPo8vfelLsFgsuOGGG3DxxRdj586duOOOO7TjHnroIe33a9euxbp1687rzyUiIiIi2rJlC7Zu3aq9\nXr9+/ZTH6grPu3btwsMPP4z29nYcPHgQmUwGANDT04Nt27bhK1/5ynmd8OLFiyFJ0hmPu//++8te\nh8Ph8/pziWaC6DVhe6RKw7ZJlYztkypJe3s72tvbtdcdHR1THqur5vnpp5/GZz7zGXz961/XhlkA\nYM2aNTh+/Ph5nKqiqqoK69atw3e+8x3kcjls27YNx44dw1VXXXXe3000m57eegx3/M0z+OzDv0Zg\nLDHfp0Ok6RqO4r5/fBG/981f4je7uub7dIg0hYKMR57djY9842n81Y9eQyaXn+9TIjorunqeBwYG\ncNlll532c4/Hg/Hx8Rk5kZ/85Ce477774PP50NzcjCeeeKKs3pmo0vxq50k8+MMt2uv9Jwfxy6/f\nCofNPM2niGbfSCyFe//pJZwaigIANu7qxBN/dQuuW9E0z2dGBPzj02/j+y/uA6C0zb7AKL77P27Q\nNQJNVAl09Tz7fD709fWd9vMjR46gtrZ2Rk6kra0Nr7/+OuLxOI4cOYLbb799Rr6XaDb0BWP4839T\ngvOnb1mFljoP9nWG8K0nds7zmREBX/rRVpwaimJ5aw3uXrcM2XwBn/2XVzE2np7vU6ML3Kt7evD9\nF/fBaJDw4O+9H06bGf/12xN4YtOR+T41It10hecbb7wR//7v/46dO3dClmUMDAxg48aNePzxx3Hj\njTfO9jkSVZzHXjmMdDaPD/3OIvzgi7fguf/vbkgS8My2YwhFkvN9enQBOzEwho27u2EzG/Gr//8e\n/PSvPoKrLm1ANJHB/3n96HyfHl3g/u3X+wEAf/nR9+HvP/sBfO/zHwQA/OilAygU5Pk8NSLddIXn\nO+64A9dffz0effRRZDIZ/MM//AN++tOfYsOGDbj11ltn+xyJKsp4KosnNyu9JA/ctgqSJGFFWy1u\nXNOCTK6An22aepIB0Wx7bOMhAMBd1y5Fc60HBoOE//Hhldp7uXxhPk+PLmCHe8LY0TEIp82MP7xp\nOQDg99cvR6Pfic7BCDbv753nMyTSR/dSdZ/4xCdw1113aeUbTU1NsNvts3ZiRJXqxZ2diCYyeN9F\n9Vi9pFi29Jlb2vHK7h488doR/Pkda1i/R3MulcnhmW3KJO4/vqU4a3zD6ha01XvQNRzF6/v7cOOa\nlvk6RbqAPfGa0unwsXUXw+OwAABMRgM+fdMK/O3/eQtPvHYEG1azbVLlO6sdBjOZDHw+H3w+H8bH\nxxEKhRAKhWbr3Igq0mt7ewAAv3fd0rKfX7u8EQ1VTgyNjuNQ98h8nBpd4HYeGcR4Kov2Nj8uXVit\n/dxgkPB71yrtVbRforkkyzJe3SOunReVvXeXei3ddqgfqUxuzs+N6Gzp6nl+/vnn8eyzzyLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc1bf860>"
|
||||
"<matplotlib.figure.Figure at 0x7f3293a9b048>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -864,7 +864,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc3d7c50>"
|
||||
"<matplotlib.figure.Figure at 0x7f3293545cc0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1221,112 +1221,108 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"import numpy as np\n",
|
||||
"import scipy.linalg as linalg\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"import numpy.random as random\n",
|
||||
"from numpy import dot\n",
|
||||
"\n",
|
||||
"class KalmanFilter:\n",
|
||||
"\n",
|
||||
" def __init__(self, dim_x, dim_z, dim_u=0):\n",
|
||||
" \"\"\" Create a Kalman filter. You are responsible for setting \n",
|
||||
" the various state variables to reasonable values; the defaults \n",
|
||||
" below will not give you a functional filter.\n",
|
||||
"\n",
|
||||
" **Parameters**\n",
|
||||
"\n",
|
||||
" dim_x : int\n",
|
||||
" Number of state variables for the Kalman filter. For \n",
|
||||
" example, if you are tracking the position and velocity \n",
|
||||
" of an object in two 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",
|
||||
" dim_u : int (optional)\n",
|
||||
" size of the control input, if it is being used.\n",
|
||||
" Default value of 0 indicates it is not used.\n",
|
||||
" \"\"\"\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 = np.zeros((dim_x,1)) # motion vector\n",
|
||||
" self.B = 0 # control transition matrix\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",
|
||||
" if use_short_form:\n",
|
||||
" self.update = self.update_short_form\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" def update(self, Z, R=None):\n",
|
||||
" \"\"\"\n",
|
||||
" Add a new measurement (Z) to the kalman filter. If Z is\n",
|
||||
" None, nothing is changed.\n",
|
||||
"\n",
|
||||
" **Parameters**\n",
|
||||
"\n",
|
||||
" Z : np.array\n",
|
||||
" measurement for this update.\n",
|
||||
"\n",
|
||||
" R : np.array, scalar, or None\n",
|
||||
" Optionally provide R to override the measurement noise \n",
|
||||
" for this one call, otherwise self.R will be used.\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",
|
||||
" y = Z - dot(H, x)\n",
|
||||
" \n",
|
||||
" # project system uncertainty into measurement space \n",
|
||||
" S = dot(H, P).dot(H.T) + R\n",
|
||||
"\n",
|
||||
" # map system uncertainty into kalman gain\n",
|
||||
" K = dot(P, H.T).dot(linalg.inv(S))\n",
|
||||
"\n",
|
||||
" # predict new x with residual scaled by the kalman gain\n",
|
||||
" self.x += dot(K, y)\n",
|
||||
"\n",
|
||||
" I_KH = self._I - dot(K, H)\n",
|
||||
" self.P = dot(I_KH).dot(P).dot(I_KH.T) + dot(K, R).dot(K.T)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" def predict(self, u=0):\n",
|
||||
" \"\"\" Predict next position.\n",
|
||||
" \n",
|
||||
" **Parameters**\n",
|
||||
"\n",
|
||||
" u : np.array\n",
|
||||
" Optional control vector. If non-zero, it is multiplied\n",
|
||||
" by B to create the control input into the system.\n",
|
||||
" \"\"\"\n",
|
||||
" \n",
|
||||
" self.x = dot(self.F, self.x) + dot(self.B, u)\n",
|
||||
" self.P = self.F.dot(self.P).dot(self.F.T) + self.Q"
|
||||
],
|
||||
"language": "python",
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 21
|
||||
"source": [
|
||||
" import numpy as np\n",
|
||||
" import scipy.linalg as linalg\n",
|
||||
" import matplotlib.pyplot as plt\n",
|
||||
" import numpy.random as random\n",
|
||||
" from numpy import dot\n",
|
||||
"\n",
|
||||
" class KalmanFilter:\n",
|
||||
"\n",
|
||||
" def __init__(self, dim_x, dim_z, dim_u=0):\n",
|
||||
" \"\"\" Create a Kalman filter. You are responsible for setting \n",
|
||||
" the various state variables to reasonable values; the defaults \n",
|
||||
" below will not give you a functional filter.\n",
|
||||
"\n",
|
||||
" **Parameters**\n",
|
||||
"\n",
|
||||
" dim_x : int\n",
|
||||
" Number of state variables for the Kalman filter. For \n",
|
||||
" example, if you are tracking the position and velocity \n",
|
||||
" of an object in two 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",
|
||||
" dim_u : int (optional)\n",
|
||||
" size of the control input, if it is being used.\n",
|
||||
" Default value of 0 indicates it is not used.\n",
|
||||
" \"\"\"\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 = np.zeros((dim_x,1)) # motion vector\n",
|
||||
" self.B = 0 # control transition matrix\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",
|
||||
" if use_short_form:\n",
|
||||
" self.update = self.update_short_form\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" def update(self, Z, R=None):\n",
|
||||
" \"\"\"\n",
|
||||
" Add a new measurement (Z) to the kalman filter. If Z is\n",
|
||||
" None, nothing is changed.\n",
|
||||
"\n",
|
||||
" **Parameters**\n",
|
||||
"\n",
|
||||
" Z : np.array\n",
|
||||
" measurement for this update.\n",
|
||||
"\n",
|
||||
" R : np.array, scalar, or None\n",
|
||||
" Optionally provide R to override the measurement noise \n",
|
||||
" for this one call, otherwise self.R will be used.\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",
|
||||
" y = Z - dot(H, x)\n",
|
||||
"\n",
|
||||
" # project system uncertainty into measurement space \n",
|
||||
" S = dot(H, P).dot(H.T) + R\n",
|
||||
"\n",
|
||||
" # map system uncertainty into kalman gain\n",
|
||||
" K = dot(P, H.T).dot(linalg.inv(S))\n",
|
||||
"\n",
|
||||
" # predict new x with residual scaled by the kalman gain\n",
|
||||
" self.x += dot(K, y)\n",
|
||||
"\n",
|
||||
" I_KH = self._I - dot(K, H)\n",
|
||||
" self.P = dot(I_KH).dot(P).dot(I_KH.T) + dot(K, R).dot(K.T)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
" def predict(self, u=0):\n",
|
||||
" \"\"\" Predict next position.\n",
|
||||
"\n",
|
||||
" **Parameters**\n",
|
||||
"\n",
|
||||
" u : np.array\n",
|
||||
" Optional control vector. If non-zero, it is multiplied\n",
|
||||
" by B to create the control input into the system.\n",
|
||||
" \"\"\"\n",
|
||||
"\n",
|
||||
" self.x = dot(self.F, self.x) + dot(self.B, u)\n",
|
||||
" self.P = self.F.dot(self.P).dot(self.F.T) + self.Q"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -1350,7 +1346,7 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 22
|
||||
"prompt_number": 21
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
@@ -1710,7 +1706,7 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 23
|
||||
"prompt_number": 22
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
@@ -1725,14 +1721,14 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 24,
|
||||
"prompt_number": 23,
|
||||
"text": [
|
||||
"array([[ 5.87500000e-05, 1.17500000e-03],\n",
|
||||
" [ 1.17500000e-03, 2.35000000e-02]])"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 24
|
||||
"prompt_number": 23
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
@@ -1793,7 +1789,7 @@
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 25
|
||||
"prompt_number": 24
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -1808,7 +1804,7 @@
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"dog_filter.x = np.array([[0], [0]]) # state (location and velocity)\n",
|
||||
"dog_filter.x = np.array([0., 0.]) # state (location and velocity)\n",
|
||||
"dog_filter.F = np.array([[1, 1], [0, 1]]) # state transition matrix\n",
|
||||
"dog_filter.H = np.array([[1, 0]]) # Measurement function\n",
|
||||
"dog_filter.R *= 5 # measurement noise\n",
|
||||
@@ -1818,7 +1814,7 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 26
|
||||
"prompt_number": 25
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -1853,8 +1849,7 @@
|
||||
"\n",
|
||||
"def dog_tracking_filter(R, Q=0, cov=1.):\n",
|
||||
" dog_filter = KalmanFilter(dim_x=2, dim_z=1)\n",
|
||||
" dog_filter.x = np.array([[0], \n",
|
||||
" [0]]) # (location and velocity)\n",
|
||||
" dog_filter.x = np.array([0., 0.]) # (location and velocity)\n",
|
||||
" dog_filter.F = np.array([[1, 1],\n",
|
||||
" [0, 1]]) # state transition matrix\n",
|
||||
" dog_filter.H = np.array([[1, 0]]) # Measurement function\n",
|
||||
@@ -1891,7 +1886,7 @@
|
||||
" \n",
|
||||
" for t in range(count):\n",
|
||||
" z = zs[t]\n",
|
||||
" pos[t] = dog_filter.x[0, 0]\n",
|
||||
" pos[t] = dog_filter.x[0]\n",
|
||||
" cov[t] = dog_filter.P\n",
|
||||
" \n",
|
||||
" # perform the kalman filter steps\n",
|
||||
@@ -1903,7 +1898,7 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 27
|
||||
"prompt_number": 26
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -1986,7 +1981,7 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 28
|
||||
"prompt_number": 27
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2007,9 +2002,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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\nn1NcXMzjjz/edbxzSsSpBTba2tp4+eWXz9jXiBEjADh48GC/Yurt3rqu8+KLL/ar38EgKiqKw4cP\no2naWdtZLBaqq6txuVy9nv/a175GfX19r38e1dXV55WMCyHE5SAjykKIK9p3v/td3nrrLV5++WVu\nu+02pk2bxsKFCzGZTCxevJh7770Xh8PB3/72t7OOFk+aNImoqCgefvhhSkpKMJvNjB07lpSUlHPG\noOt615SKadOmERwczLe+9S3+67/+C4PBwPvvv09NTc15v6bLMT3jwIEDHDhwAIDt27cD8P777xMY\nGAjAdddd12MO8W233caqVau44447WLBgAaqqsnTpUry8vLq1mzZtGi+99BL33HMPS5YswcPDg/j4\neGJjY4H2SoBvv/02//3f/822bduYMmUKNpuNvXv38uGHH5Kbm9v1Py5CCDGQJFEWQlwxzvQx/Suv\nvEJ6ejrf+c532L9/P7GxsXz00Uc8+eSTPPbYY/j5+bF8+XLmz5/PvHnzeu3DaDTy4YcfsmLFClau\nXElbWxtPPfXUGRPlU2M5tbS2n58fa9as4dFHH+Wpp57Cw8ODm2++mZdeeqlHX72V5D7b6zxf53P9\n+++/360IiKIoPPLII10/r1+/vkeiPHfuXF544QWef/55/v73v6MoCjNmzOiR1N56663s27ePN998\nk7feegtN03j66af58Y9/DLTvVPHxxx/zq1/9ir/97W/861//wmKxMHr0aJ555pmu3UROjU2maAgh\nBoKi93Powm638/DDD/PPf/4TTdNYvnw5v//972lra2PFihW89957+Pv789xzz3HLLbdcrLiFEEII\nIYS4pPo9ovzII49w9OhRcnNzCQkJIS8vD4Df/OY35OTkUFpayt69e1m0aBGTJ0+WCkpCCCGEEOKK\n0K8RZbvdTmBgIHv27GHUqFHdzmVkZPDII4+wfPlyoH2+2+LFi3nooYf6F7EQQgghhBCXQb92vSgo\nKEBRFN5//33CwsJISkrigw8+6DqXmJjIHXfcwbvvvsuYMWPIz8+/KEELIYQQQghxqfVr6kVjYyOt\nra0UFhZy7Ngxtm3bxuLFizl06BBWqxVvb2+ys7MZP348FouFkpKSixW3EEIIIYQQl1S/EmUvLy9c\nLhePPvoo7u7uzJo1i4SEBHbs2IHZbMZqtbJv3z4AVq5cicVi6dHH1bAJvxBCCCGEGPzmzJnTp/b9\nSpRjYmJ63bJH13USEhLIy8tj3LhxAOTm5nLTTTf12k9qaluf7qtpPrhc0efdfurUqRQVFbF582Zi\nYmL6dC9x+QUGBrJ69Wpmzpw50KGIQULeE6I38r4QvZH3hehNYGAgW7Zs6fN1/Zqj7O/vz8yZM3n+\n+edxOp1s2rSJgoICJk+ezK233sqLL75IQ0MDGzZsYMeOHSxZsqQ/tzsZtNqIojT3ob2KoijnrCYl\nhBBCCCFEp35vD/f666/zrW99Cz8/P4YNG8Zbb71FWFgYjzzyCAcPHmT48OH4+/vz+uuvExkZeTFi\nBsBgqMTp9D6vtps2bZLN6oUQQgghRJ/0O1GOjo5mw4YNPTs2Glm1ahWrVq3q7y16pShWFKUeXfc7\nj7aSJF9pRo8ePdAhiEFG3hOiN/K+EL2R94W4WPo19WKgGQxVQL8KC4pBSv6SE6eT94TojbwvRG/k\nfSEulis6UVYUO6paP9BhCCGEEEKIq9AVnSgDqOoJQBbpCSGEEEKIi+uKT5QVpQVVrT1nO03T6Ee1\nbiGEEEIIMcRc8YkydI4qO894fvHixQwfPpzdu3dfvqCEEEIIIcQV7apIlBXFiarWnPG8qra/TNlH\nWQghhBBCnK+rIlEGOhLl3iv8SaIshBBCCCH66qpJlBXFicFQ3es5g8EAgMvlupwhCSGEEEKIK9hV\nkyhD56hyS4/jnQVHZERZCCGEEEKcr6sqUQatowhJd50jyrLrhRBCCCGEOF/9LmE92KhqHZoWiK57\ndh175513pIy1EEIIIcQQ5dLOvDva2VxlI8oAesd2cSdJkiyEEEIIMTRV2wp4Z9d9F3TtVZgog6o2\noCjWgQ5DCCGEEEIMIKfWwldlr9HoqLig66/KRBnAYKgc6BCEEEIIIcQAOlD5Hs2tFQR4RV3Q9Vdt\noqwozShK40CHIYQQQgghBsAJax6Haj9DwcCcxEcvqI+rNlEGMBhOzlXWNE22hxNCCCGEGAJcmpOd\nZa8BMCb4RoItcRfUz1WdKCuKDVWtZ8WKFQwfPpyPPvpooEMSQgghhBCXmEE1Mi78TsK90xgddOMF\n93PVbQ93OlU90VXCWvZRFkIIIYQYGiIsaURY0vrVx1U9ogygKA5UtQ2QEtZCCCGEEOL8XfWJMoDR\n2ApICWshhBBCCHH+hkSibLG0V+mrqakZ4EiEEEIIIcSl4NRaL3qfQyJRTkoaidFooLa2dqLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc50f828>"
|
||||
"<matplotlib.figure.Figure at 0x7f32937a8e10>"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -2017,11 +2012,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc4bc518>"
|
||||
"<matplotlib.figure.Figure at 0x7f3293a2b668>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 29
|
||||
"prompt_number": 28
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2097,7 +2092,7 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 30
|
||||
"prompt_number": 29
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2126,7 +2121,7 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 31
|
||||
"prompt_number": 30
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2146,7 +2141,7 @@
|
||||
"\n",
|
||||
" # initialize the filters\n",
|
||||
" f = mkf_filter(R, Q)\n",
|
||||
" f.x[0, 0] = 0.\n",
|
||||
" f.x[0] = 0.\n",
|
||||
" f.P[0, 0] = p0\n",
|
||||
" pos = (x0, p0)\n",
|
||||
" for i in range(50):\n",
|
||||
@@ -2155,7 +2150,7 @@
|
||||
" f.update(z)\n",
|
||||
"\n",
|
||||
" x1.append(pos[0])\n",
|
||||
" x2.append(f.x[0, 0])\n",
|
||||
" x2.append(f.x[0])\n",
|
||||
"\n",
|
||||
" p1.append(pos[1])\n",
|
||||
" p2.append(f.P[0, 0])\n",
|
||||
@@ -2184,9 +2179,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xlc1VX+x/HXvZd931wBcQVFXELTyAKXbLRQs9LK1Bqd\n35CWGu3rZDnTatlYljaDY/tik+2ZSy65pShqiIALLrihXFm87Nz7+4OgHK+lchGB9/Px4AF87/d7\nzkcfJ3x3OPccg81msyEiIiIiIqcx1ncBIiIiIiKXIgVlERERERE7FJRFREREROxQUBYRERERsUNB\nWURERETEDgVlERERERE7FJRFREREROxQUBYRqQPbt29n5MiRBAUF4eHhQadOnRg/fjw//fTTGfdO\nnz6dVatWOazvffv2MX36dPbv3++wNkVEmiKn+i5ARKSx2bZtG/369SMoKIjExESCg4PZv38/n376\nKd988w19+/Y97f5nnnkGo9FIXFycQ/rft28fzzzzDAMHDiQsLMwhbYqINEUKyiIiDjZjxgyMRiM/\n/fQTLVq0qLn+1FNPcejQIbvP1MUhqTp4VUSkdrT0QkTEwVJTU+nUqdNpIblacHAwULXcwmg0YjRW\n/Rh++umna743Go0cOHCg5pmff/6Zv/zlL4SHh+Pp6Ym/vz9Dhw5lw4YNp7Xdv39/jEYjAwcOBGDA\ngAE17bVr1+6MWhYvXszVV1+Nl5cXvr6+jBgxgl27djns70FEpKHTjLKIiIMFBwezfv16UlNTiYqK\nsnvPTTfdRHh4ODabjXHjxnHjjTdy44031rweFBRU8/X333/PDz/8wJgxY+jYsSPHjx/nrbfeYsCA\nAfz00090794dgCeeeIKcnBzS0tJ49tlnefzxx+nSpQsAXl5ep/X/7rvvcscddxAbG8sLL7xAUVER\nc+bM4aqrrmL79u12Q76ISFNjsOl3cyIiDvXNN98wfPhwnJycuOaaaxg8eDDDhw+nffv2du83Go1M\nnz6dv/3tb3ZfP3bsGM2bN8dgMNRc27dvH+3bt2fSpEnMmTPntPtXrlzJwIEDWblyJbGxsWe0V1hY\nSGhoKDExMXz33XentRkREUFiYiLPP//8hfzRRUQaFS29EBFxsOuvv55Vq1YxaNAgli9fzn333UfH\njh0ZMmQIR44cOe/2WrRoUROSy8vLyc3NxcvLi6CgIHbv3n3e7S1ZsoSCggJuu+02Tpw4UfPh5eVF\n+/btHboDh4hIQ6alFyIideCqq67i22+/xWKxsHr1at577z0+/PBDRo0axZo1a86rrcLCQp577jne\neecdjhw5ctqb9EpKSs67tupwfeedd9p9vUOHDufdpohIY6SgLCJShzw9PRk6dChDhw7F1dWVBQsW\ncODAAdq0aXPObdx2220sW7aMe++9l759++Lr64vNZuO2226r1c4Wb731lt3lIO7u7hfcpohIY6Kg\nLCJykfTo0QOAo0ePnnNQzsvL47vvvuPJJ59k+vTpNddLS0sxm812n/ntWmZ7OnbsCEBgYGDNDhki\nInImrVEWEXGwVatWUVlZecb1JUuWYDQaz5jF9fb25vDhw3bbMplMp32uNmfOHKxWq91nvL29Ac7a\n5rXXXou3tzczZ86koqLitNesVutZ93oWEWlqNKMsIuJgzz33HGlpaYwePZrOnTtz6tQpvvzyS1au\nXElCQsJpW78B9OvXjw8++IDIyEg6deqEwWCgf//+uLm54e3tzcCBA3nxxRcpKysjJCSE9evXs2TJ\nEoKCguwuvejatSt+fn5Mnz6diooKgoKCcHd3rzn5z9vbm9mzZzNhwgSio6O57bbb8Pf3JyMjg6++\n+orx48efdQcOEZGmRNvDiYg42IoVK3j77bdZt24dhw8fxmaz0blzZ8aPH8/UqVPPWBqxb98+Jk2a\nxNq1azl16hQGg4GsrKya5Rk5OTncf//9fP/99xQXF9OvXz9eeeUVRowYQatWrVi9evUZNSxbtoyH\nH36YHTt2UFZWRtu2bdm7d+9p9yxdupQXX3yRTZs2UVFRQVhYGIMGDWLy5Ml07ty57v6CREQaiFoH\n5eLiYu69914+/fRTrFYrY8aMYc6cOZSXl3PXXXexcOFC/P39mTlzJqNGjXJU3SIiIiIidarWSy8S\nExPZu3cvaWlpNG/enJ07dwIwa9YsduzYQXZ2NikpKcTHxxMTE0NISEitixYRERERqWu1mlEuLi4m\nMDCQLVu2nPFrussvv5zExETGjBkDVL15ZNiwYUyZMqV2FYuIiIiIXAS12vUiMzMTg8HAokWLaNmy\nJV27duXzzz+veS0iIoKxY8fy8ccfExkZSUZGhkOKFhERERGpa7VaelFQUEBZWRlZWVkcOHCAdevW\nMWzYMHbt2oXFYsHLy4vU1FR69eqFt7c3Bw8edFTdIiIiIiJ1qlZB2cPDg8rKSu6//35cXFzo378/\n4eHhbNiwAU9PTywWC1u3bgVg2rRpNXt7/tby5ctrU4KIiIiIyDkZNGjQed1fq6Dcvn17uydA2Ww2\nwsPD2blzJ9HR0QCkpaUxYsQIu+106dKlNmVIIxMYGMhnn31Ws+eriMaE2KNxIfZoXIg9gYGBrFmz\n5ryfq9UaZX9/f+Li4njllVeoqKhg9erVZGZmEhMTw+jRo5k9ezb5+fmsXLmSDRs2MHLkyNp0JyIi\nIiJy0dR6e7j58+dz55134ufnR0hICO+99x4tW7YkMTGR9PR0QkND8ff3Z/78+QQHBzuiZhERERGR\nOlfroNy2bVtWrlx5ZsNOTiQlJZGUlFTbLqQJ0nIc+V8aE2KPxoXYo3EhjlKrpRcidUU/5OR/aUyI\nPRoXYo/GhTiKgrKIiIiIiB0KyiIiIiIidigoi4iIiIjYoaAsIiIiImKHgrKIiIiIiB0KyiIiIiIi\ndigoi4iIiIjYoaAsIiIiImKHgrKIiIiIiB0KyiIiIiIidigoi4iIiIjYoaAsIiIiImKHgrKIiIiI\niB0KyiIiIiIidigoi4iIiIjYoaAsIiIiImKHgrKIiIiIiB0KyiIiIiIidigoi4iIiIjYoaAsIiIi\nImKHgrKIiIiIiB0KyiIiIiIidigoi4iIiIjYoaAsIiIiImKHgrKIiIiIiB0KyiIiIiIidigoi4iI\niIjYoaAsIiIiImKHgrKIiIiIiB0KyiIiIiIidigoi4iIiIjYoaAsIiIiImKHgrKIiIiIiB0KyiIi\nIiIidigoi4iIiIjYoaAsIiIiImKHgrKIiIiIiB21Dsr9+/fH3d0db29vvL29ueOOOwAoLy9n4sSJ\n+Pj4EBYWxsKFC2tdrIiIiIjIxeJU2wYMBgNz5sxhwoQJp12fNWsWO3bsIDs7m5SUFOLj44mJiSEk\nJKS2XYqIiIiI1DmHLL2w2WxnXFu4cCFTp07Fx8eHuLg4YmJiWLRokSO6ExERERGpcw4Jyo8++ijN\nmjXj2muvJT09HYDMzEwiIiIYO3YsH3/8MZGRkWRkZDiiOxERERGROlfrpRczZ84kKiqKyspKZsyY\nwfDhw0lLS8NiseDl5UVqaiq9evXC29ubgwcP2m0jMDCwtmVII+Ls7AxoXMivNCbEHo0LsUfjQuyp\nHhfnq9ZBuVevXjVfP/vss8yZM4edO3fi6emJxWJh69atAEybNg1vb2+7bcyYMaPm69jYWOLi4mpb\nloiIiIg0MjabjcpDhwAwBQdjMBjOeu+qVatYvXp11b0mE7GxsefdX62D8v8yGAzYbDbCw8PZuXMn\n0dHRAKSlpTFixAi7z0yePPm073Nzcx1dljQg1bMAGgdSTWNC7NG4EHs0Lho3z+RkvBMSACicNw9L\n795nvTcqKoqoqCigalysWbPmvPur1Rrl/Px8vvvuO0pLSyktLeXpp5+mRYsWREZGMnr0aGbPnk1+\nfj4rV65kw4YNjBw5sjbdiYiIiEgTZLPZOJRxgMUPvMDj7l15xbk93gkJuJjNddpvrWaUy8vLefzx\nx9m1axfOzs706dOHr776CicnJxITE0lPTyc0NBR/f3/mz59PcHCwo+oWERERkQasOuSWBQScdr3S\naiXraAE/Z53g530n2J51gh37cykoKoPgawHoasnhvoN767zGWgXloKAgtmzZYr9hJyeSkpJISkqq\nTRciIiIi0shUL6GowEDyP2ax0aMFqb8JxUWlFWc808zXncsCnLl80wp6lRyncN68M0K2ozl8jbKI\niIiIyNm4mM0U3H0fD/v05p0WPSh+Nx1IP+2e1oGedGsbRLe2QUS1DaRbuyBa+nv+8vxgACx1HJJB\nQVlERERELhJzYQlzP99OUvvbKDFWxdD2ZflE9Y2ka3jrmmAc6ON+1jbqehb5txSURURERKROnSou\n41/fpTL3m+2cKikHoxM3F+zh6RObCH7thd/dvaI+KSiLiIiISJ0oKavg3eU7ee3LreQWlADQv3sI\nD4/uTW9fE3BxllBcKAVlEREREXGoikorC3/M5JXPtnA41wJAr07NefSWPsR0aQVAWX0WeI4UlEVE\nRESkVqq3eivx8+ebTVm8tDCZPUfyAejSJoCHR/Xmmsva/O5JepciBWURERERuWCeycl4JSTwvWco\nj/W6mW05xQC0beHDAzf1YkRMB4zGhhWQqykoi4iIiMgFcTGb+fnev/FEyyGs8msLOcW08HHj3pt6\ncVv/zjg71eoQ6HqnoCwiIiIi523nATMvvb+O78NGAuBfXswjJ7dy68vP49SyeT1X5xgKyiIiIiJy\nzvbnFDDz080sWrcbmw08nIzce3QT95u3YXrzNSyNJCSDgrKIiIiInIOcvCL++XkK7/+QTnmlFWeT\nkXGDujD1hp4EV47ECpRcwlu9XQgFZRERERE5q3xLKW9+s51/L06luLQCgwFuvroT998YTZLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc50fc88>"
|
||||
"<matplotlib.figure.Figure at 0x7f32937a8080>"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -2194,11 +2189,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebbfc1588>"
|
||||
"<matplotlib.figure.Figure at 0x7f329357c400>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 32
|
||||
"prompt_number": 31
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2362,7 +2357,7 @@
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"prompt_number": 33
|
||||
"prompt_number": 32
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2393,12 +2388,12 @@
|
||||
"\n",
|
||||
" # initialize the filters\n",
|
||||
" f1 = mkf_filter(R, Q)\n",
|
||||
" f1.x[0, 0] = 0.\n",
|
||||
" f1.x[0] = 0.\n",
|
||||
" f1.P[0, 0] = p0\n",
|
||||
" \n",
|
||||
" f2 = pos_vel_filter(R, Q)\n",
|
||||
" f2.x[0, 0] = 0.\n",
|
||||
" f2.x[1, 0] = 1.\n",
|
||||
" f2.x[0] = 0.\n",
|
||||
" f2.x[1] = 1.\n",
|
||||
" f2.P *= p0\n",
|
||||
" \n",
|
||||
" for i in range(50):\n",
|
||||
@@ -2428,13 +2423,13 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4VOXd//H3TPZlQjYgZGEJECCERQhiFBMWY0VARCut\nlqpF+0ulWkSt1Vr7oDzV1vpoi6JiC8W9ipWKokjYZTeSCCGENZAFAiQDJJlsM5n5/RGIRAZIyIRs\nn9d15cpkzjn3+Y49zfXhzr0YHA6HAxERERERqcfY0gWIiIiIiLRGCsoiIiIiIk4oKIuIiIiIOKGg\nLCIiIiLihIKyiIiIiIgTCsoiIiIiIk4oKIuIiIiIOKGgLCLSDHbs2MGUKVMIDQ3F19eXvn37cvfd\nd7N169bzzp09ezbr1q1z2b0PHTrE7NmzOXz4sMvaFBHpiNxbugARkfbmu+++47rrriM0NJRZs2YR\nERHB4cOH+fjjj1m2bBkjR46sd/6zzz6L0WgkKSnJJfc/dOgQzz77LGPHjqVHjx4uaVNEpCNSUBYR\ncbE5c+ZgNBrZunUrXbt2rXv/f/7nfygoKHB6TXNskqqNV0VEmkZDL0REXCwzM5O+ffvWC8lnRURE\nALXDLYxGI0Zj7a/hZ555pu5no9FIbm5u3TU7d+7k/vvvJyYmBj8/P4KCghg/fjxbtmyp1/bo0aMx\nGo2MHTsWgDFjxtS116tXr/NqWb58Oddffz3+/v506tSJyZMns2/fPpf9dxARaevUoywi4mIRERFs\n3ryZzMxM4uLinJ5z++23ExMTg8Ph4Oc//zm33XYbt912W93x0NDQutdfffUVq1ev5q677qJPnz6c\nOHGCN998kzFjxrB161YGDx4MwB/+8AeOHz9OVlYWzz33HE899RQDBgwAwN/fv97933nnHe655x4S\nExP5y1/+Qnl5OfPmzWPUqFHs2LHDacgXEeloDA79bU5ExKWWLVvGLbfcgru7OzfccAPJycnccsst\nREdHOz3faDQye/Zs/vjHPzo9fuzYMbp06YLBYKh779ChQ0RHR/PAAw8wb968euevXbuWsWPHsnbt\nWhITE89rr7S0lKioKBISEvjyyy/rtdmvXz9mzZrFn//858v56CIi7YqGXoiIuNiECRNYt24d48aN\nY9WqVTzyyCP06dOHm266iaNHjza6va5du9aFZKvVSnFxMf7+/oSGhrJ///5Gt7dixQpKSkq48847\nKSoqqvvy9/cnOjrapStwiIi0ZRp6ISLSDEaNGsUXX3yBxWJh/fr1vPvuu3zwwQfccccdbNiwoVFt\nlZaW8vzzz/P2229z9OjRepP0KisrG13b2XB97733Oj3eu3fvRrcpItIeKSiLiDQjPz8/xo8fz/jx\n4/Hy8mLRokXk5ubSvXv3Brdx5513snLlSh5++GFGjhxJp06dcDgc3HnnnU1a2eLNN990OhzEx8fn\nstsUEWlPFJRFRK6QIUOGAFBYWNjgoHzq1Cm+/PJLnn76aWbPnl33flVVFWaz2ek1545ldqZPnz4A\nhISE1K2QISIi59MYZRERF1u3bh01NTXnvb9ixQqMRuN5vbgmk4kjR444bcvNza3e97PmzZuH3W53\neo3JZAK4YJs33ngjJpOJF198EZvNVu+Y3W6/4FrPIiIdjXqURURc7PnnnycrK4upU6fSv39/ysrK\nWLp0KWvXriUlJaXe0m8A1113He+//z6xsbH07dsXg8HA6NGj8fb2xmQyMXbsWF544QWqq6uJjIxk\n8+bNrFixgtDQUKdDLwYOHEhgYCCzZ8/GZrMRGhqKj49P3c5/JpOJuXPnMn36dIYNG8add95JUFAQ\ne/bs4bPPPuPuu+++4AocIiIdiZaHExFxsTVr1vDWW2+xadMmjhw5gsPhoH///tx999385je/OW9o\nxKFDh3jggQfYuHEjZWVlGAwGcnJy6oZnHD9+nEcffZSvvvqKiooKrrvuOl566SUmT55Mt27dWL9+\n/Xk1rFy5kt/97nfs2rWL6upqevbsycGDB+udk5qaygsvvMA333yDzWajR48ejBs3jhkzZtC/f//m\n+w8kItJGNDkoV1RU8PDDD/Pxxx9jt9u56667mDdvHlarlV/96lcsXryYoKAgXnzxRe644w5X1S0i\nIiIi0qyaPPRi1qxZHDx4kKysLLp06cLu3bsBePnll9m1axf5+fmkp6czceJEEhISiIyMbHLRIiIi\nIiLNrUk9yhUVFYSEhLB9+/bz/kw3YsQIZs2axV133QXUTh6ZNGkSDz30UNMqFhERERG5Apq06sXe\nvXsxGAwsWbKEsLAwBg4cyH//+9+6Y/369WPatGl8+OGHxMbGsmfPHpcULSIiIiLS3Jo09KKkpITq\n6mpycnLIzc1l06ZNTJo0iX379mGxWPD39yczM5Phw4djMpnIy8tzVd0iIiIiIs2qSUHZ19eXmpoa\nHn30UTw9PRk9ejQxMTFs2bIFPz8/LBYLGRkZAMycObNubc9zrVq1qikliIiIiIg0yLhx4xp1fpOC\ncnR0tNMdoBwOBzExMezevZthw4YBkJWVxeTJk522M2DAgKaUIe1MSEgIn3zySd2aryJ6JsQZPRfi\njJ4LcSYkJIQNGzY0+romjVEOCgoiKSmJl156CZvNxvr169m7dy8JCQlMnTqVuXPncvr0adauXcuW\nLVuYMmVKU24nIiIiInLFNHl5uIULF3LvvfcSGBhIZGQk7777LmFhYcyaNYvs7GyioqIICgpi4cKF\nREREuKJmEREREZFm1+Sg3LNnT9auXXt+w+7uLFiwgAULFjT1FtIBaTiO/JCeCXFGz4U4o+dCXKVJ\nQy9Emot+yckP6ZkQZ/RciDN6LsRVFJRFRERERJxQUBYRERERcUJBWURERETECQVlEREREREnFJRF\nRERERJxQUBYRERERcUJBWURERETECQVlEREREREnFJRFRERERJxQUBYRERERcUJBWURERETECQVl\nEREREREnFJRFRERERJxQUBYRERERcUJBWURERETECQVlEREREREnFJRFRERERJxQUBYRERERcUJB\nWURERETECQVlEREREREnFJRFRERERJxQUBYRERERcUJBWURERETECQVlEREREREnFJRFRERERJxQ\nUBYRERERcUJBWURERETECQVlEREREREnFJRFRERERJxQUBYRERERcUJBWURERETECQVlEREREREn\nFJRFREREpM2w1dipttVckXspKIuIiIhIm7An38zk2Uv5v4+/vSL3c78idxERERERuUxWm53XPv+O\nvy3ZTrXNTnFpBQ9PGYaPV/NGWQVlEREREWm1dh0u5pE315F5qBiAn43pzx/uGtnsIRkUlEVERESk\nFaq21fDKpxnM/TQdW42DyFB//vrLRBLjIq5YDU0eozx69Gh8fHwwmUyYTCbuueceAKxWK/fddx8B\nAQH06NGDxYsXN7lYEREREWn/duSc4Oan/8tLn2zHVuPg3uRYVv359isaksEFPcoGg4F58+Yxffr0\neu+//PLL7Nq1i/z8fNLT05k4cSIJCQlERkY29ZYiIiIi0g5VWWt46ZPtvP75d9TYHfTsGsCLv0wk\nYUC3FqnHJateOByO895bvHgxv/nNbwgICCApKYmEhASWLFniituJiIiISDuzff9xfvT7T3h1aQZ2\nh4P7b4oj9bnbWiwkg4uC8pNPPknnzp258cYbyc7OBmDv3r3069ePadOm8eGHHxIbG8uePXtccTsR\nERERaScqqm3MeX8rk2cvZd+RU0R368SSpyfxzM8T8PX2aNHamjz04sUXXyQuLo6amhrmzJnDLbfc\nQlZWFhaLBX9/fzIzMxk+fDgmk4m8vDynbYSEhDS1DGlHPDxq/0+h50LO0jMhzui5EGf0XLQtm3bl\nk/LSF+wrMGM0Gnj0xyP5w7RR+Hi5NiCffS4aq8lBefjw4XWvn3vuOebNm8fu3bvx8/PDYrGQkZEB\nwMyZMzGZTE7bmDNnTt3rxMREkpKSmlqWiIiIiLRCeSdKWLZ5H59t2cfq9EM4HDCgeyhvPnozI/qF\nu+w+69atY/369QC4ubmRmJjY6DZcvjycwWDA4XAQExPD7t27GTZsGABZWVlMnjzZ6TUzZsyo93Nx\ncbGry5I25GwvgJ4DOUvPhDij50Kc0XPR+jgcDrJyzaz49jBffXuYnYeK6o65uxmYMXEID08ZhpeH\nW4P+d/M0mwGoDg6+6HlxcXHExcUBtc/Fhg0bGl17k4Ly6dOn2bRpE2PHjgXg+eefp2vXrsTGxjJ1\n6lTmzp3LxIkTSU9PZ8uWLSxatKgptxMRERGRNsBqs7N1z1FWfHuYFdsPk3eirO6Yr5c7owdHcuPw\nHowb2p1gk3eD2/VLS8OUkgJA6fz5WOLjXV77uZoUlK1WK0899RT79u3Dw8ODq6++ms8++wx3d3dm\nzZpFdnY2UVFRBAUFsXDhQiIiruzadyIiIiJyZZRVVLNmRz4rvj3M6ow8Tlmq6o517uTDjcN6cOPw\nHowaGI63Z+MjqKfZjCklBWNhIQCmlBSsqamX7FluiiYF5dDQULZv3+68YXd3FixYwIIFC5pyCxER\nERFphRwOB/sKTrF2Zz7rduSzKesI1TZ73fE+4YH8aHgPfjS8B1f17oLRaGjBai+PtrAWERERkQY5\nbaliw64jrP0uj7U78zlSbKk7ZjDAiJiu/Gh4bc9x726BLr13dXAwpfPn1xt60Zy9yaCgLCIiIiIX\nUGO3syOniLU78ln7XT7pB45TY/9+o7nQAB8SB0UwenAkSYMiCe3k0+C2Gzop71yW+HisqamNvu5y\nKSiLiIiISJ1jJ8tZuyOfdTvzWb8zn5Nl3481dnczcE3/MEYPjmL04EgG9gi5rCEVTZmUdyLine truncated
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4lNX9/vH3TPZlsgOBJIQ1gRBAAooRSNgrFUTbgkWp\ne41iBZH+rK1drLTaVip+UaxYQ3GtFituuBBAElBAKGEJ2dhCEkICJCSQyZ6Z3x+BSGRYwkzIdr+u\nKxfJs5znxOvpcPfwOecYrFarFRERERERacLY2h0QEREREWmLFJRFRERERGxQUBYRERERsUFBWURE\nRETEBgVlEREREREbFJRFRERERGxQUBYRERERsUFBWUSkBezevZtbb72VoKAgPD096d+/P3feeSdb\nt24979qnnnqK5ORkhz07JyeHp556isOHDzusTRGRzsi5tTsgItLR7Nq1i1GjRhEUFMT8+fMJCQnh\n8OHDvP/++6xevZqRI0c2uf7pp5/GaDQSHx/vkOfn5OTw9NNPM378eMLDwx3SpohIZ6SgLCLiYAsX\nLsRoNLJ161a6devWePwPf/gDR44csXlPS2ySqo1XRUTso9ILEREHS0tLo3///k1C8lkhISFAQ7mF\n0WjEaGz4GP7jH//Y+LPRaCQ3N7fxnj179nD//fcTERGBl5cX/v7+TJkyhS1btjRpe+zYsRiNRsaP\nHw/AuHHjGtvr3bv3eX354osvGDNmDN7e3vj6+jJ9+nT27dvnsP8OIiLtnUaURUQcLCQkhM2bN5OW\nlkZ0dLTNa3784x8TERGB1WrlZz/7GT/60Y/40Y9+1Hg+KCio8fsvv/yS9evXc/vtt9OvXz+OHz/O\nq6++yrhx49i6dStDhgwB4Le//S3Hjh0jPT2dZ555hieffJKBAwcC4O3t3eT5b775JnfddRdxcXH8\n9a9/paKigqVLlzJ69Gh2795tM+SLiHQ2Bqv+bU5ExKFWr17NzTffjLOzMxMnTmTSpEncfPPN9OnT\nx+b1RqORp556it///vc2zxcVFdG1a1cMBkPjsZycHPr06cNDDz3E0qVLm1y/YcMGxo8fz4YNG4iL\nizuvvdOnTxMWFkZsbCyff/55kzYjIyOZP38+f/nLX67kVxcR6VBUeiEi4mA33XQTycnJTJgwgXXr\n1vHYY4/Rr18/brzxRo4ePdrs9rp169YYkmtraykuLsbb25ugoCD279/f7PbWrFnDqVOnmDVrFidO\nnGj88vb2pk+fPg5dgUNEpD1T6YWISAsYPXo0n332GWazmZSUFN566y3+/e9/M2PGDDZt2tSstk6f\nPs2zzz7LG2+8wdGjR5tM0quqqmp2386G67vvvtvm+b59+za7TRGRjkhBWUSkBXl5eTFlyhSmTJmC\nm5sbK1asIDc3l549e152G7NmzWLt2rU8+uijjBw5El9fX6xWK7NmzbJrZYtXX33VZjmIh4fHFbcp\nItKRKCiLiFwlQ4cOBaCwsPCyg3JpaSmff/45v/vd73jqqacaj1dXV1NSUmLznnNrmW3p168fAIGB\ngY0rZIiIyPlUoywi4mDJycnU19efd3zNmjUYjcbzRnFNJhMFBQU223Jycmry51lLly7FYrHYvMdk\nMgFcsM3JkydjMplYtGgRdXV1Tc5ZLJYLrvUsItLZaERZRMTBnn32WdLT05k5cyYDBgygvLycjz/+\nmA0bNpCQkNBk6TeAUaNG8c477xAVFUX//v0xGAyMHTsWd3d3TCYT48eP529/+xs1NTWEhoayefNm\n1qxZQ1BQkM3Si0GDBuHn58dTTz1FXV0dQUFBeHh4NO78ZzKZWLJkCffeey8xMTHMmjULf39/srKy\n+OSTT7jzzjsvuAKHiEhnouXhREQc7KuvvuL111/nm2++oaCgAKvVyoABA7jzzjuZO3fueaUROTk5\nPPTQQ3z99deUl5djMBg4dOhQY3nGsWPHWLBgAV9++SWVlZWMGjWK559/nunTp9O9e3dSUlLO68Pa\ntWv51a9+xd69e6mpqaFXr14cPHiwyTVJSUn87W9/Y9u2bdTV1REeHs6ECROYM2cOAwYMaLn/QCIi\n7YTdQbmyspJHH32U999/H4vFwu23387SpUupra3lwQcfZOXKlfj7+7No0SJmzJjhqH6LiIiIiLQo\nu0sv5s+fz8GDB0lPT6dr165kZGQAsHjxYvbu3Ut+fj6pqalMnTqV2NhYQkND7e60iIiIiEhLs2tE\nubKyksDAQHbs2HHeP9Nde+21zJ8/n9tvvx1omDwybdo0HnnkEft6LCIiIiJyFdi16kV2djYGg4FV\nq1YRHBzMoEGD+PDDDxvPRUZGMnv2bN577z2ioqLIyspySKdFRERERFqaXaUXp06doqamhkOHDpGb\nm8s333zDtGnT2LdvH2azGW9vb9LS0hg+fDgmk4m8vDxH9VtEREREpEXZFZQ9PT2pr69nwYIFuLq6\nMnbsWCIiItiyZQteXl6YzWZ27twJwLx58xrX9jzXunXr7OmCiIiIiMhlmTBhQrOutyso9+nTx+YO\nUFarlYiICDIyMoiJiQEgPT2d6dOn22xn4MCB9nRDOpjAwEA++OCDxjVfRfROiC16L8QWvRdiS2Bg\nIJs2bWr2fXbVKPv7+xMfH8/zzz9PXV0dKSkpZGdnExsby8yZM1myZAllZWVs2LCBLVu2cOutt9rz\nOBERERGRq8bu5eGWL1/O3XffjZ+fH6Ghobz11lsEBwczf/58MjMzCQsLw9/fn+XLlxMSEuKIPouI\niIiItDi7g3KvXr3YsGHD+Q07O5OYmEhiYqK9j5BOSOU48n16J8QWvRdii94LcRS7Si9EWoo+5OT7\n9E6ILXovxBa9F+IoCsoiIiIiIjYoKIuIiIiI2KCgLCIiIiJig4KyiIiIiIgNCsoiIiIiIjYoKIuI\niIiI2KCgLCIiIiJig4KyiIiIiIgNCsoiIiIiIjYoKIuIiIiI2KCgLCIiIiJig4KyiIiIiIgNCsoi\nIiIiIjYoKIuIiIiI2KCgLCIiIiJig4KyiIiIiIgNCsoiIiIiIjYoKIuIiIiI2KCgLCIiIiJig4Ky\niIiIiIgNCsoiIiIiIjYoKIuIiIiI2KCgLCIiIiJig4KyiIiIiIgNCsoiIiIiIjYoKIuIiIiI2KCg\nLCIiIiJig4KyiIiIiIgNCsoiIiIiIjYoKIuIiIiI2KCgLCIiIiJig4KyiIiIiIgNCsoiIiIiIjYo\nKIuIiIiI2KCgLCIiIiJig4KyiIiIiIgNCsoiIiIiIjbYHZTHjh2Lh4cHJpMJk8nEXXfdBUBtbS33\n3XcfPj4+hIeHs3LlSrs7KyIiIiJytTjb24DBYGDp0qXce++9TY4vXryYvXv3kp+fT2pqKlOnTiU2\nNpbQ0FB7HykiIiIi0uIcUnphtVrPO7Zy5Urmzp2Lj48P8fHxxMbGsmrVKkc8TkRERESkxTkkKP/6\n17+mS5cuTJ48mczMTACys7OJjIxk9uzZvPfee0RFRZGVleWIx4mIiIiItDi7Sy8WLVpEdHQ09fX1\nLFy4kJtvvpn09HTMZjPe3t6kpaUxfPhwTCYTeXl5NtsIDAy0txvSgbi4uAB6L+Q7eifEFr0XYove\nC7Hl7HvRXHYH5eHDhzd+/8wzz7B06VIyMjLw8vLCbDazc+dOAObNm4fJZLLZxsKFCxu/j4uLIz4+\n3t5uiYiIiEgHcqzUTMruXDbsPExXfy9+/7MxF70+OTmZlJQUAJycnIiLi2v2M+0Oyt9nMBiwWq1E\nRESQkZFBTEwMAOnp6UyfPt3mPXPmzGnyc3FxsaO7Je3I2VEAvQdylt4JsUXvhdii96LjKDNXszWz\nkE3pBXyzt4CMvJLGc72CvHj4h1EXvT86Opro6Gig4b3YtGlTs/tgV1AuKyvjm2++Yfz48QA8++yz\ndOvWjaioKGbOnMmSJUuYOnUqqampbNmyhRUrVtjzOBERERHpoCqqatmWXcTX6QV8vbeA3YdOYDln\nwQh3Fyeu7+7JpO1rGZdzBM9t/am49toW7ZNdQbm2tpYnn3ySffv24eLiwnXXXccnn3yCs7Mz8+fP\nJzMzk7CwMPz9/Vm+fDkhISGO6reIiIiItGM1dfXs2HesMRjv2H+M2npL43lnJwMj+nVjVFQIowb1\n4PoAZ7r/8EaMhYUAWB58kLqkJGoCAlqsj3YF5aCgIHbs2GG7YWdnEhMTSUxMtOcRIiIiItJB5B0/\nzVe78tiwO59NewswV9U2njMYYGifIEZF9WDUoB5cGxGMl/t3k/BcS0psNdmiHF6jLCIiIiICUFlT\nx9bMo3y1K58Nu/PZX1Da5Hz/Hn6MiQ5h9KAejBzYHT8vtwu2VRMQwOllyzAlJABwetmyFh1NBgVl\nEREREXEQq9XKwcKyhmC8K4/NGUepqq1vPG/ycGFMdAhjh4Qxqac3oQGezQq75hEjqE1KAmjxkAwK\nyiIiIiJih8qaOjalHWH9rjw27Mon9/jpJuejewUydkgY44eGEtOvGy7ORry2b8d02x1Aw8iwecSI\ny37e1QjIZykoi4iIiEizHC+rYF1qHmt2HCZ5Tz5VNd+NGvt5uzF2cChjh4YSPziUrn6eTe51LSnB\nlJDQOCnPlJBAbQtPyrtSCsoiIiIiclFWq5XsIydJ2pHLmh2H2bH/GOes3MaQ3kFMHNaTcUPDGNon\nCCejsfU660AKyiIiIiJynto6C99mFbJmx2GSdhzm8LHvSircXJwYNagHk2PCmTisJ90DvC673daY\nlHelFJRFREREBIvFSs6xU+w+eJx1O/NYvzOPUnN14/kAkzsTh/VkckxP4gaH2ly67XID79WelHel\nFJRFREREOplSczWZuSVk5JWQkVtCem4JmfklVFbXNbmuXw8/Jsf0ZHJMODH9u9osqfDavrLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc4bc1d0>"
|
||||
"<matplotlib.figure.Figure at 0x7f32939e2e48>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 34
|
||||
"prompt_number": 33
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2500,7 +2495,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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\nUR47diwffPABv/zyCwkJCUiSxJgxYyod8+233xISEsKGDRsqDaX48ssv6xV/TVxvomJwcHCdVv2o\nTmJiIt7e3hWv27dvD5T1hMbExFRsL1/6q0OHDg1y3RulPN7jx49XSpRPnDgBQNeuXevU7uDBg3F2\ndmbFihU4ODhw/vx53nzzzUrHrF69Gr1ez/r16wkODq7Yfv78+TpdszZGjRrFjh07rnnMhQsXCAwM\nrHXbzz33HGvWrOGHH36odqlBf39/3NzcOHDgQKXtGRkZpKSkMG7cuFpfUxCEG08kyoLQDDk6OvLI\nI48wa9asit682urRoweBgYGsWLGChIQEbr/9dvz9/Ssdo1arkWW5UpJ88eJFVq1aVWUMckNrjDHK\nWVlZlcZcA2zdupUDBw4wZcqUim2dOnUiKCiIr7/+mueee66ix3HRokW4uLjcsGEh5es+BwUF1Sux\nHD58OM8//zxLly6tGE8MsHTpUrRabZ2eHygbXjBixAhWrlyJvb09tra2jBw5stIx5cNLyr9C2RCQ\n8uEajamxxii/++67fPzxx3zxxReMGjWq2mMkSSI2NpYffviB5ORk/Pz8gLJnCKgyPEUQhKap3omy\nXq/nueeeY8WKFVgsFh544AE++eQTjEYjjz32GMuXL8fNzY3333+/Sm+VIAg1U91Hqk8//TRz5sxh\n1qxZdUp0JEni3nvvZd68eej1eubMmVPlmLvvvpsff/yRe+65h7vuuouUlBQ+++wzQkNDG73QSWMk\no0OHDiUwMJCuXbvi6enJsWPH+OKLL/D19WX69OmVjn377bcZP348w4YNY/To0WzdupWNGzfy3nvv\nNXixEUVRqv03tlgswF+T7uoqLCyMhx9+mPnz56NWq+nevTu//PILO3bs4N13361XsZGxY8eyZMkS\nPvnkE4YMGVKlraFDh2JnZ0dsbCxTpkyhpKSEb7/99qprWDekxhijvGrVKqZNm0avXr2wt7evsh75\nqFGjKp6PV155hZUrVzJgwACeeeaZisp8w4YNq9PP7NWeE0EQGk+9E+WpU6eSkJDAiRMn8Pb25uTJ\nkwDMnTuX48ePk5SUxMGDBxk+fDjR0dFVeqwEQbg2SZKq7b319fVlzJgxfP/995w4caJOYx7Hjh3L\nnDlzkGW52j9kx48fT05ODh999BEbNmwgJCSEmTNnkpaWVu3au1eLtam45557+OGHH/jtt9Line truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc19c0f0>"
|
||||
"<matplotlib.figure.Figure at 0x7f3293871278>"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -2508,11 +2503,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc28e550>"
|
||||
"<matplotlib.figure.Figure at 0x7f32938710b8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 35
|
||||
"prompt_number": 34
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2551,11 +2546,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGCCAYAAAD5deXcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8XNWd///XvTOqM6PemyVZxbZs44JcAGODqQkOsGB/\nQyhhIYUsyxJ+STabsElgF9hl08lmQwgQQgibBAMJXkI37sZVbrJVLcnqvc1opCn3/P6QNfZYkq1q\nyebzfDz0sHXvueeea1/DW2dO0ZRSCiGEEEIIIYQffaobIIQQQgghxHQkQVkIIYQQQoghSFAWQggh\nhBBiCBKUhRBCCCGEGIIEZSGEEEIIIYYgQVkIIYQQQoghSFAWQgghhBBiCBKUhRBCCCGEGIIEZSEm\n0KpVq9B1HV3XMZlMJCcnc+211/Lhhx9OddMuSD//+c+59dZbiYuLQ9d1vve97w1b9pVXXmHu3LmE\nhISQnZ3NL37xiyHLlZWVcdNNNxEWFkZUVBT33HMPLS0tg8q53W7+9V//lZSUFEJDQ1m6dOmwf4/v\nvfce+fn5hIaGkpaWxmOPPYbX6x3bQ08D//3f/01ubi7BwcFkZGTw+OOP4/F4prpZF6SRvpcjUVRU\nxNe//nXy8vKw2WykpqZy2223UVRUNIEtFkL4UUKICbNy5UoVHR2t/vCHP6hXXnlF/cd//IfKyMhQ\nmqap3//+91PdvAtORESESkpKUtdff73SNE1973vfG7LcH//4R6VpmrrxxhvV888/r+644w6laZr6\n8Y9/7FeutbVVJScnq+TkZPWzn/1MPfnkkyosLEwtWrRIeTwev7IPPPCA0nVdPfTQQ+q5555TS5Ys\nUYGBgeqTTz7xK7dt2zZlNpvVsmXL1HPPPacefPBBpWmaeuihhyb2D+M8+c///E+laZpau3ateuGF\nF9SXv/xlpWma+trXvjbVTbvgjPS9HKlvf/vbKjo6Wj344IPq+eefV08++aRKSEhQISEhat++fRPc\neiGEUkpJUBZiAq1cuVKlpqb6Haurq1MWi0Xl5eVNUasuXJWVlb5fhwvKhmGo9PR0tWDBAmUYhu/4\nDTfcoMLDw5XD4fAd+8EPfqA0TfMLFQNh5pVXXvEdKy8v94XkAV1dXSouLk5dc801fvdfuXKlSkpK\n8rvPAw88oMxms6/9F4rOzk5ltVrV6tWr/Y7fc889ymQyqfLy8ilq2YVnNO/lSO3fv1/19PT4HTt4\n8KDSNE3dcsst426zEGIwGXohxCRLTExk9uzZHD9+fNTXbt26FV3XeeWVVwade+qpp9B1naqqKqB/\nqMDjjz/OsmXLiImJITQ0lHnz5vHTn/4UpdSg6x977DF0Xaenp4evfe1rxMXFYbVayc/Pp6amZvQP\nOglmzJgBMGT7Bxw6dIiqqiruueceNE3zHb///vvp6upi48aNvmN//etfmTdvHosWLfIdu/322wkL\nC+PNN9/0HduwYQNKKf7+7//ed8xms7F27Vo2bdpEZ2cnAG1tbWzbto3bb7+d0NBQv3t7vV42bNgw\n6mdOT0/nK1/5CvPnzycyMpKXX36Z73znO1itVlatWkVHR8eo6xypjz76CIfDwRe+8AW/43feeSeG\nYYzpebKysrjmmmsGHa+trUXXdR5//HHfsQ0bNnDrrbcyY8YMgoODSUpK4r777qO2tnbQ9ZWVlei6\nzu9+9zteeeUV8vLyCAkJIT09nZdeemnU7Zxoo3kvR2rhwoWEhIT4HZs/fz7R0dFjGn6xadMmdF3n\nqaeeIiIigvnz57Nnzx6WLl1KVFQU//7v/z7qOoW42EhQFmKSeb1e6urqSEpKGvW1K1asICkpiddf\nf33QufXr15Ofn+8Lk52dnTz99NPk5ubyxBNP8NOf/pScnBy+8Y1v8Oijjw57jzvvvJMjR47wL//y\nLzz55JPExcXR1tY2qna2tLSc9au9vX10Dz4Khw4dAvpDxOkWLFjgd97r9VJYWDionMlkYu7cuRw8\neNCvTpPJxPz58wfVOVAPQGFhIYZhDKpz/vz5aJrmu/dovfHGG3z1q18lOzubBx54gN27d/PEE0+w\ne/dunn322THVORKHDx8GYM6cOX7HB74feO7RWLduHZs3b6a1tdXv+MA7vW7dOt+x5557jqamJv7h\nH/6BZ599lnvvvZc33niDFStW0NfXN2T9f/nLX3jkkUe49dZbeeaZZ7j55ptH/UOp3W4/5zs82jHa\nI30vx8vpdNLd3T2m/74M2LRpEz/4wQ8oKytj1apVXHfddaxZs4bHHnuM+vr6CWmnEBesKe7RFuKi\nMvAxfEtLi2publaHDx9W9913n9J1XT377LNjqvPhhx9WISEhym63+46Vl5crTdPUj370I98xt9ut\nmpubB12/atUqFRYWprxer9/xgWEIn/vc5/w+GlZKDSp7LpqmnfUrIyNjVPWdqaKiYtihF08//bTS\n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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc4e2ac8>"
|
||||
"<matplotlib.figure.Figure at 0x7f329357ce48>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 36
|
||||
"prompt_number": 35
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2569,7 +2564,7 @@
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"plot_track(data=zs, R_var=10000., Q_var=.2, count=50, \n",
|
||||
" initial_x=np.array([[20], [1]]), plot_P=False, \n",
|
||||
" initial_x=np.array([20., 1.]), plot_P=False, \n",
|
||||
" title='R_var = 10000 m, Q_var = 0.2 m')"
|
||||
],
|
||||
"language": "python",
|
||||
@@ -2580,11 +2575,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGCCAYAAAD5deXcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4XNWZP/DvvXdmNNJUdWnUZRVLsmVZslwAY7nQcQwB\ne0OogRQSliX8SDaFTQK7QJZAGtlsCMEECCEQDCR4CSXYuHdbLrKs3nufptG0e35/jDXWWCNpmpr9\nfp5Hj6Q7Z849V7qy3zlz3vNyjDEGQgghhBBCiAd+tgdACCGEEELIXESBMiGEEEIIIV5QoEwIIYQQ\nQogXFCgTQgghhBDiBQXKhBBCCCGEeEGBMiGEEEIIIV5QoEwIIYQQQogXFCgTQgghhBDiBQXKhIRQ\nWVkZeJ4Hz/MQBAFJSUm45ppr8Nlnn8320OalX//617j11lsRFxcHnufxox/9aMK2b7zxBhYtWoTw\n8HBkZ2fjN7/5jdd2dXV1uPnmm6FWqxEVFYV77rkHfX1949rZ7Xb8x3/8B5KTkxEREYEVK1ZM+Hv8\n5JNPUFpaioiICKSmpuKJJ56A0+kM7KLngP/5n/9Bbm4u5HI5MjIy8OSTT8LhcMz2sOYlX+9LX1RV\nVeHb3/42CgoKoFKpkJKSgttuuw1VVVUhHDEhxAMjhITMmjVrWHR0NPvzn//M3njjDfbTn/6UZWRk\nMI7j2J/+9KfZHt68o9VqmU6nY9dddx3jOI796Ec/8trurbfeYhzHsRtuuIG9/PLL7I477mAcx7Gf\n//znHu36+/tZUlISS0pKYr/61a/Y008/zdRqNSsuLmYOh8Oj7YMPPsh4nmcPP/wwe+mll9jy5cuZ\nTCZjhw4d8mi3b98+JpFI2MqVK9lLL73EHnroIcZxHHv44YdD+8OYIf/93//NOI5jmzdvZlu3bmVf\n+9rXGMdx7Jvf/OZsD23e8fW+9NX3vvc9Fh0dzR566CH28ssvs6effpolJCSw8PBwdvz48RCPnhDC\nGGMUKBMSQmvWrGEpKSkexzo6OphCoWAFBQWzNKr5q6mpyf15okBZFEWWnp7OioqKmCiK7uPXX389\n02g0zGw2u4/95Cc/YRzHeQQVo8HMG2+84T5WX1/vDpJHGQwGFhcXxzZs2OBx/jVr1jCdTudxngcf\nfJBJJBL3+OcLvV7PlEolW79+vcfxe+65hwmCwOrr62dpZPOPP/elr06cOMGGh4c9jp06dYpxHMdu\nueWWoMdMCBmPll4QMs0SExORl5eHhoYGv5+7d+9e8DyPN954Y9xjzzzzDHieR3NzMwDXUoEnn3wS\nK1euRExMDCIiIrB48WL88pe/BGNs3POfeOIJ8DyP4eFhfPOb30RcXByUSiVKS0vR1tbm/4VOg7S0\nNADwOv5Rp0+fRnNzM+655x5wHOc+/sADD8BgMGDnzp3uY3//+9+xePFiFBcXu4/dfvvtUKvVeP/9\n993Htm/fDsYYvvKVr7iPqVQqbN68Gbt27YJerwcADAwMYN++fbj99tsRERHhcW6n04nt27f7fc3p\n6en4+te/jsLCQkRGRuL111/HD37wAyiVSpSVlWFoaMjvPn21Y8cOmM1mfPnLX/Y4fuedd0IUxYCu\nJysrCxs2bBh3vL29HTzP48knn3Qf2759O2699VakpaVBLpdDp9Ph/vvvR3t7+7jnNzU1ged5vPba\na3jjjTdQUFCA8PBwpKen49VXX/V7nKHmz33pq6VLlyI8PNzjWGFhIaKjowNafrFr1y7wPI9nnnkG\nWq0WhYWFOHr0KFasWIGoqCj813/9l999EnKpoUCZkGnmdDrR0dEBnU7n93NXr14NnU6Hd999d9xj\n27ZtQ2lpqTuY1Ov1ePbZZ5Gbm4unnnoKv/zlL5GTk4PHHnsMjz/++ITnuPPOO1FRUYHvf//7ePrp\npxEXF4eBgQG/xtnX1zfpx+DgoH8X7ofTp08DcAURYxUVFXk87nQ6cfbs2XHtBEHAokWLcOrUKY8+\nBUFAYWHhuD5H+wGAs2fPQhTFcX0WFhaC4zj3uf313nvv4Rvf+Aays7Px4IMP4siRI3jqqadw5MgR\nvPjiiwH16YszZ84AAPLz8z2Oj34/et3+2LJlC3bv3o3+/n6P46P39JYtW9zHXnrpJfT09OBb3/oW\nXnzxRdx333147733sHr1alitVq/9/+1vf8Ojjz6KW2+9FS+88AI2bdrk94tSk8k05T3s7xptX+/L\nYFksFhiNxoD+fRm1a9cu/OQnP0FdXR3Kyspw7bXXYuPGjXjiiSfQ2dkZknESMm/N8ow2IZeU0bfh\n+/r6WG9vLztz5gy7//77Gc/z7MUXXwyoz0ceeYSFh4czk8nkPlZfX884jmPPP/+8+5jdbme9vb3j\nnl9WVsbUajVzOp0ex0eXIXzhC1/weGuYMTau7VQ4jpv0IyMjw6/+LtbY2Djh0otnn32WcRzHKisr\n2Y4dO5hGo2HPPvssMxqNHmuFu7u7Gcdx7N///d+ZzWZjS5YsYSUlJcxms7EvfvGLTKlUuvu84YYb\nWFxcHGOMsaeffpppNBq2a9cu9sEHHzCO49i7777LGGPs7bffZhzHsX/84x/s7NmzLDY2lj300EOM\nMcaioqLYxo0b/b7W9PR09rWvfY0xxtif//xnxnEc279/P2OMseuuu47dcccdfvfpq29+85uM4zhW\nU1PjcdxisTCO4wK6nvLycsZxHHv55Zc9jq9evZotWrTI41h7e/u457/66quM4zj217/+1eP46D2h\nVCpZc3Ozx2P+3r/33nvvlPfw7t27/erT1/syWC+88ALjOI69+uqrfj/3888/97i/rr32Wpadnc0Y\ncy0Z4ziOffrppyEZJyHzlWS2A3VCLjWdnZ2IjY11f5+amort27fjxhtvDKi/LVu24IUXXsCHH37o\nnn3btm2b+7FREokEMTEx7u8HBwfhdDpRWFiI3bt3o7u7G4mJieP6/8EPfuDx1jAA8Lx/bzZNtavH\nxW8Xh9LoTKNMJkN3dzcMBgOam5sRFhYGwDXjdnE7m82G1tZWSCQS2O12hIWFuduNtpXJZACA5uZm\nGI1G9PT0QKPRTNjn4OAgBgYG0NjYCADj+vRHfHw8ALjvo9Hvo6Ojx83MhtLY6xlr9PuRkRG/+ywq\nKkJ2djbeffddPPDAAwCArq4uHDhwAD/5yU882o6dFTWbzbBYLMjJyQHg2q3EmzvvvBOpqakex/y9\nf7/3ve/hnnvumbTNxe8uTMXX+zIYVVVV+MEPfoCysjLce++9Afczen/FxMRgeHjY/TUAv99dIuRS\nQ4EyISEWExODt956C06nEwcOHMDTTz+N9957L+BA+YorrkBycjK2bdvmESivWLECKSkpHm23bduG\nn/3sZzhz5ozHW9Ucx00Y5Fz8Nnsg1q1bF3QfgRoNPGw2G+644w6UlZUhMTERRqMRwIUgfWw7hUKB\nxsZG8DyPiIgIWK1WjzXGYWFh7p/f7373Ozz55JNISEhwr9H11uf69evR0dGB6OhoAK5AKdAXCFKp\ndMLPNpstoD59MfZ6xhr9XqVSBdTv5s2b8dxzz8FgMECtVuO9996DKIoeL/QAVzD8xBNP4KOPPhq3\nXGc679+8vDzk5eUF3c9Yvt6Xgerv78fGjRsRGxuLt956K6i+xt5fEonE49h03m+EzAcUKBMSYnK5\n3B04XnPNNRAEAT/+8Y/xpS99yWtSky9uv/12/OEPf4DVakV3dzeOHTuGn//85x5tRgPpa665Bi+9\n9BISEhIgCAJeeeUVvPnmmxMmxKnV6oDGNFZXV9ekjwuC4DHLHkqjs+Td3d3Iy8vz+B4AEhISALhm\nY6VSqfv42Ovu7u52txvtc2BgAE6nE4IguB+7uM+LzxUXFwfAFVwMDQ159BkqE/0eQ2F0vP39/cjO\nznYfH91nOioqKqB+t2zZgmeeeQYffPAB7rrrLmzbtg2LFy9Gbm6uu43RaMTq1ashkUjwwx/+EAsX\nLkR4eDja29tx7733TnjdWq02oDGNpdfrp5zhHb1/fOXrfRkIi8WCjRs3YnBwEPv27XPfd9NhOu83\nQuYDSuYjZJo9+uijiIyMxBNPPBFwH1u2bIHZbMZHH32Ebdu2geM4bN682aPNn//8Z2RkZODjjz/G\n3XffjWuuuQbr1q0bt6xiOuh0ukk/VqxYMW3nXrx4MQDgxIkTHsfLy8sBXHjLXBAE5Ofnj2vncDhw\n5swZj7fWCwsLIYqiR4LfaJ88z6OgoAAAUFBQAJ7nx/V56tQpMMb8frt+to2O9+KkvcrKSgBASUlJ\nwP3m5uZi27Zt6Ovrw549e8bNJu/cuRPd3d3405/+hMceeww33XQT1q1bF1SSmq8eeeSRKe/hgwcP\n+tWnr/elv0RRxJe//GWcPn0a27dvx8KFCwPqhxDiG5pRJmSaKRQKfP3rX8ezzz6Lffv24aqrrvK7\njxUrViA1NRXbtm1DQ0MDVq5cieTkZI82EokEPM97BMYtLS14//33pz1Yns01ykVFRUhLS8Prr7+O\nb3/72+71qa+88go0Go3HspBNmzbhP//zP3H8+HF30Ldt2zYYjUbccsst7nYbN27EY489hj/+8Y/u\nreSMRiPeeecdlJWVudcqR0VF4aqrrsK2bdvw05/+FAqFAgCwdetWSCQSbNy4MeTX6+132dTUhMzM\nTACuQCpQ69atg0KhwJtvvuleTwwAb775JgRBwLXXXhtw35s3b8bzzz+P1157zeuyC0EQPD4DrtnM\nF154IeBz+mo61ij7c1+Oam9vx/r168FxHM6dO+e134ceeggffvghPvjgA6xatcqvMRFC/Bd0oGyx\nWPDtb38b27Ztc7/S/e1vfwu73Y4HH3wQ77zzDiIjI/H888+PmwEj5FLk7a3Khx9+GL/4xSLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc543fd0>"
|
||||
"<matplotlib.figure.Figure at 0x7f32939cd940>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 37
|
||||
"prompt_number": 36
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2598,7 +2593,7 @@
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"plot_track(data=zs, R_var=30, Q_var=.2, count=50, \n",
|
||||
" initial_x=np.array([[20], [1]]), plot_P=False, \n",
|
||||
" initial_x=np.array([20., 1.]), plot_P=False, \n",
|
||||
" title='R_var = 30 m, Q_var = 0.2 m')"
|
||||
],
|
||||
"language": "python",
|
||||
@@ -2609,11 +2604,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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\nJamLmz17NvPmzePll19udaI8depU5s+fz08//URGRgaKonDHHXc02uef//wnUVFRrFixotFQik8/\n/bRN8V+I801iioyMbNWqH82pT6ZqamoaVvYAZ09oQkJCw37JyckADBgwoF3Oe7HUx3vgwIFGidzB\ngwcBGDp0aKvaHTduHJ6eniQmJuLu7s6xY8d45ZVXGu2zfPlyampq+PHHH4mMjGzYfuzYsVadsyVu\nvfVWkpKSzrnP8ePHiYiIuOA269/L3bt3N7qett4b1dXVTJw4kfLycjZt2tTiISGSJF08MlGWpC7O\nw8OD3//+98yZM6ehN6+lrrjiCiIiIkhMTCQjI4ORI0cSFhbWaB+9Xo+qqo2S5BMnTrBs2bImY5Db\nW0eMUc7KymoytKS0tJQffviBqKgo/Pz8AOcKBt27d+eLL77giSeeaOhxXLx4MV5eXh06LOR069at\n49prr6V79+5tSiwnTpzIk08+yZIlSxrGEwMsWbIEs9ncqvsHnMMQbr75ZpYuXYqbmxuurq5Mnjy5\n0T71X/+fvvyZzWZrGK7RkTpijPJ1112HyWTi008/5dZbbwWcq9B8/vnn9OjRg379+jU5Zvv27Uyb\nNo2wsLBm72u73c6dd97JoUOHWLt2LT179mxRTJIkXVxtTpRramp44oknSExMRNM07rnnHhYuXIjN\nZuORRx7h3//+Nz4+PsydO7dJD5YkSU019zXp448/zttvv82cOXNalegoisLtt9/Ohx9+SE1NTbMV\n56ZMmcK3337LLbfcwoQJE8jNzeWDDz4gOjq6wwuddEQyOnnyZHx9fbnyyiuJiIggJyeHRYsWUVxc\nzMKFCxvt+/rrr3Pvvfdy0003cdttt7FmzRp+/vln3nzzzXYvNiKEaPbfWNM04NSku9bq2bMnDz30\nEB9//DF6vZ4RI0bw008/kZSUxN///vc2FRuZOnUqX375JQsXLuTGG29s0tb48eMxGo1MmjSJhx9+\nGKvVyj//+U/sdnubrulCdMQYZZPJxPPPP8+LL77IfffdR0JCAomJiaSmpvLNN980e0x1dTVpaWln\nHQby1FNP8cMPP/DQQw9x4MCBRsv1mc3mJh8+Wups95ckSa3T5kR59uzZZGRkcPDgQQICAkhNTQVg\n3rx5HDhwgOzsbJKTk5k4cSKjRo1q0oslSdIpiqI023sbEhLCHXfcwddff83BgwdbNflp6tLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc534390>"
|
||||
"<matplotlib.figure.Figure at 0x7f32938369e8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 38
|
||||
"prompt_number": 37
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2678,11 +2673,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc0040f0>"
|
||||
"<matplotlib.figure.Figure at 0x7f32937c5b38>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 39
|
||||
"prompt_number": 38
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2708,11 +2703,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAAGXCAYAAAC9TOY9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmQ5HV9//FX3/cx03Pt7AXLtcQVKU1FjLIQsdSIB1JS\nxEQQY5QEE8+IB1rujzW4imJBjErQBC3EMkQIAqUJoIBLLNCAkhgMAQT2mrOn7+7v/ftjdieuy+7O\nznRP93f6+ajaYumZ/vZ79lPz6dd85v39fAKe53kCAAAA+kSw2wUAAAAAK4kADAAAgL5CAAYAAEBf\nIQADAACgrxCAAQAA0FcIwAAAAOgrBGAAq962bdsUDDLdraRnnnlGwWBQ3/jGN7pdCgAcgncEAH0h\nEAg87+Nzc3O66qqr9NKXvlSFQkGFQkFbt27V97///WW9nmVZ+sQnPqF169YpmUzqpS99qe65555l\nXXMxdu/erSuuuEKnn3668vm8xsbG9NrXvlYPPfRQ217jC1/4goLBoM4888yjfu7h/t0BoJsIwAD6\nwuHO/HnooYd05ZVX6rjjjtP27du1bds2NZtNnXvuufrKV76y5Nd773vfq8985jM6//zzde2110qS\nzj333LYG0edz55136rrrrtOLX/xiXX311br88sv19NNP6+Uvf7nuuuuuZV9/cnJS27dvVzQaJdwC\n8K0AJ8EBWO22bdumK6+8Uq7rHvKx5557TsFgUOvWrVt4rNls6uSTT1az2dTU1NQxt088/fTTOumk\nk/Se97xH1113nSSpWq3qxBNP1Gmnnaa77757eV/QETz++OMaGxvTwMDAwmMTExM68cQTddJJJ+nR\nRx9d1vXf+c53qlwu6z/+4z+0fv16PfDAA8/7ec8884w2bdqkG2+8URdffPGyXhMA2o0VYAB9bcOG\nDQeFX0lKJBI644wzVCwWNT09fczXvOOOO+R5nt7xjncsPJbJZHTBBRfovvvuU7lcXnbdh3Pqqace\nFH4laWxsTKeeeqp+9atfLevaP/vZz/Stb31LO3bsOOyKOgD4AQEYAJ7H5OSk4vG4BgcHj/m5jz32\nmEKhkE477bSDHj/99NPlOI5++ctftqvMRZuamtL4+PiSn+95nt773vfq3e9+t0488cQ2VgYAK48A\nDAC/5ec//7kefPBBXXjhhYpEIsf8/H379mlwcFChUEhXXXWV8vm87r//fo2Ojkqab0lYSXfccYd2\n7dq1rFaEb33rW/rlL3+pT33qU22sDAC6gwAMAL+h0Wjooosu0vDwsHbs2LGkaxiGoWg0Kkl69tln\nVa1WNTU1pVgsJmm+x3ilTE1N6dJLL9XmzZt1+eWXL+katVpNH/nIR/TRj35UhUKhzRUCwMojAAPA\nfq7r6uKLL9aTTz6pW265ZWHF9ljFYjEZhiFJ+spXvqI9e/boggsuWHgskUi0reYjabVaOu+882QY\nhm677bYlv+5VV12lUCikD3zgA22uEAC6I9ztAgCgV3zoQx/SbbfdpptuumlRe9wezpo1a1QsFuU4\njkKhkMbGxiTN9xVLWvj/TnJdV3/yJ3+in//85/rBD36gU045ZUnXmZiY0DXXXKNPfepTmpmZWXjc\ncRwZhqE9e/Yon88rlUq1q3QA6DhWgAFA84c7XHvttbrmmmv01re+dVnXOu200+S6rn7xi18c9Pij\njz6qYDCoF7zgBcu6/mK8//3v1+23366bbrpJW7duXfJ1JiYmZJqmrrjiCm3YsGHhz549e/TTn/5U\n69ev19e//vU2Vg4AnUcABtD3vv3tb+vyyy/XFVdcofe9731H/fw9e/Zo8+bNOvXUU5/34294wxsU\nDAb1j//4jwuPVatV3XLLLTr77LOVy+XaVvvz2bFjh770pS/pq1/9qs4///yjfv7DDz+szZs361Wv\netUhHzvhhBN0xx136M4771z4c8cdd2hkZEQveMELdOedd+qNb3xjJ74MAOgYWiAA9LWHH35Yb3/7\n23XyySdr8+bNuummmw76+Ktf/WqNjIwc9JhlWXriiScOexLapk2b9M53vlNf/vKXFQgEtGXLFn39\n619XuVzWpz/96Y59LZJ022236eMf/7he/vKXK5FIHPL1nH/++Uomkwc91mg09MQTT8g0zUOul8lk\ndO655x7yeDwe18DAgF73ute19wsAgBVAAAbQ1x5//HHZtq0nnnhCF1100UEfCwQC+tGPfnRIAF6M\nL33pSxoeHtaNN96oG264QaeddpruuusunXHGGe0q/Xk99thjkqR///d/14MPPnjQxwKBgLZu3aoN\nGzYc8vix4hhkAH7GUcgAVr0jHYWMzuAoZAC9jB5gAAAA9BUCMAAAAPoKARjAqhcIBOhZBQAsoAcY\nAAAAfYUVYAAAAPQVAjAAAAD6CgEYwKq3bds2BYNMdyvpmWeeUTAY1De+8Y1ulwIAh+AdAUBfONxN\ncHNzc7rqqqv00pe+VIVCQYVCQVu3btX3v//9tr32d7/7XQWDQa1fv75t1zyan/70pzr33HM1ODio\nVCql0047TTfffPOSr1er1fSe97xHIyMjSqfT+oM/+AM9+uijR30eNx8C6EWcBAegLxzuft+HHnpI\nV155pd70pjfp7W9/uxzH0Te/+U2de+65+ru/+zv9xV/8xbJet9Vq6a//+q8VjUZXLAzed999es1r\nXqOTTjpJV1xxhfL5vJ588knt2bNnyde84IIL9MMf/lAf/vCHNT4+ruuuu06vfOUr9cgjj+j4449v\nY/UA0HkEYAB97Xd+53f05JNPat26dQuP/dmf/ZlOPvlkffKTn9Sll166rPaJq6++WkNDQ9q4caOe\neuqpdpR8RK7r6l3vepe2bNmiBx98UPF4fNnXvO+++/Sv//qv+vznP68PfvCDkqQ3vOENOumkk3TV\nVVfphhtuWPZrAMBKogUCQF/bsGHDQeFXkhKJhM444wwVi0VNT08v+dq7d+/WZz/7WX3+85+XtDLt\nAA8++KCeeuopfexjH1M8Hlej0ZBt28u65u233y5Jesc73rHw2Pr16/WqV71K//Iv/7KsawNANxCA\nAeB5TE5OKh6Pa3BwcMnX+PCHP6xXvvKVOuuss9pY2ZH95Cc/kSSNjIzoZS97mdLptNLptC688EIV\ni8UlXfOxxx7Thg0bNDAwcNDjp59+umZnZ7V3795l1w0AK4kADAC/5ec//7kefPBBXXjhhYpEIku6\nxs6dO/XP//zP+uxnP9vm6o5s165dkqR3vetd2rRpk7773e/qox/9qG677TZddNFFS7rmvn37NDo6\nKkn68z//c42NjelXv/rVwmMTExPtKR4AVgg9wADwGxqNhi666CINDw9rx44dS7qG67p673vfqz/9\n0z/Vqaee2uYKj6zRaEiSxsfH9a1vfUuS9OY3v1mmaWrHjh36xS9+oRe96EXHdE3DMFQoFCRJv/71\nr1UsFlUqlRSLxSRJzWazjV8BAHQeK8AAsJ/rurr44ov15JNP6pZbbllY4TxWX/va1/S///u/uvLK\nK9tc4dEdCKUXXHDBQY//4R/+oaT5doalXNM0TUnSnXfeqb179+qMM86QYRiS5numAcBPWAEGgP0+\n9KEP6bbbbtNNN92kM888c0nXME1Tn/jEJ3TRRRfJsizt3r1b0vwqqm3b2rNnjzKZjLLZbDtLXzAy\nMiJJGh4ePujxA73MS+nXXbNmjZ588klJUiQS0dDQkKT5PmlJGhsbW3K9ANANrAADgKQvfOELuvba\na3XNNdforW9965Kv02g0NDMzo69+9avasGHDwp+HHnpIExMTWr9+vbZt29a+wn/LC17wAkmHBt2p\nqSlJUj6fP+ZrvvCFL9SuXbs0Ozt70OOPPvqoCoWCxsfHl1gtAHQHARhA3/v2t7+tyy+/XFdccYXe\n9773HfXz9+zZo82bNz9vf28mk9Edd9yhO++8c+HPHXfcoS1btqhQKOjOO+/Uu9/97k58GZKkc845\nR7FYTDfffPNBh39897vflSS94hWvOOQ5Dz/8sDZv3qxXvepVz3vN8847T5J04403Ljz23HPP6Z57\n7tGb3vSmNlYPACuDFggAfe3hhx/W29/+dp188snavHmzbrrppoM+/upXv3qhreAAy7L0xBNPPO++\nvqFQSOeee+4hj1999dWam5vT6173uvZ+Ab9lcHBQH/zgB/WZz3xGr3nNa3Teeefpscce0w033KC3\nvOUtCyvEv6nRaOiJJ55Y6PP9bWeffbZe/epX64orrtDc3JzGx8d17bXXKpFI6Iorrujo1wMAnbDs\nAPy2t71N9957rxqNho477jht375db3zjG9tRGwB03OOPPy7btvXEE08csk1YIBDQj370o0MC8FIE\nAoEVOwr505/+tPL5vG644QZ94AMf0MjIiD70oQ/p05/+9GFrO5pbbrlFH/nIR/T3f//3qtfr+r3f\n+z19+9vf5hhkAL4U8H7zd2RL8Nhjj+mUU05RLBbT3Xffrde//vWam5tTMplsV40AsCzbtm3TlVde\nKdd1u11K33jmmWe0adMm3Xjjjbr44ou7XQ4AHGTZK8CnnXaaJMnzPJmmqXQ6vWKrHAAAAMCxastN\ncJdddpkSiYTe9ra36Y477mBPSAAAAPSstgTgL3/5y6rVavr0pz+tt73tbWq1Wu24LAC0xUr23wIA\net+ye4B/26mnnqrPf/7zC3dB33vvve28PAAAAHBY55xzzlE/p+3boD1fnn6+vTLR+wqFgm699Vad\nddZZ3S4FS8D4+Rdj52+Mn38xdv5WKBS0c+fORX3uslogJicn9fWvf12VSkW2bev666/X1NSUXvay\nly3nsgAAAEDHLCsAh0Ih3XzzzTrhhBNUKBR044036nvf+97CmfMAAABAr1lWC8TQ0BA9vqLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc427be0>"
|
||||
"<matplotlib.figure.Figure at 0x7f32939145f8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 40
|
||||
"prompt_number": 39
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2780,11 +2775,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc33a278>"
|
||||
"<matplotlib.figure.Figure at 0x7f32938ee518>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 41
|
||||
"prompt_number": 40
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2810,11 +2805,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc20e320>"
|
||||
"<matplotlib.figure.Figure at 0x7f32938ee940>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 42
|
||||
"prompt_number": 41
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2831,7 +2826,7 @@
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"x = np.array([[100., 0.]]).T\n",
|
||||
"x = np.array([100., 0.]).T\n",
|
||||
"plot_track(data=zs, R_var=50., Q_var=.2, P=1., initial_x=x,\n",
|
||||
" count=len(zs), plot_P=False, title='P=1 m')"
|
||||
],
|
||||
@@ -2843,11 +2838,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc534ef0>"
|
||||
"<matplotlib.figure.Figure at 0x7f329389bba8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 43
|
||||
"prompt_number": 42
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2862,7 +2857,7 @@
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"x = np.array([[100, 0]]).T\n",
|
||||
"x = np.array([100, 0]).T\n",
|
||||
"plot_track(data=zs, R_var=50, Q_var=.02, P=500., initial_x=x,\n",
|
||||
" count=len(zs), plot_P=False, title='P=500')"
|
||||
],
|
||||
@@ -2874,11 +2869,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VPW9//HXObMlk22yJ2QhGwmEbOwiiCyKoKDWiqhX\nH1rt4rWta23rr9rFq73X1t6rtta622prq4haXBCQTUABA2EnBBKyERJC9mUmM3PO749JAiFhTzIZ\n+DwfjzwwZ75zzvccWd75zvf7+Sq6rusIIYQQQgghelC93QEhhBBCCCGGIgnKQgghhBBC9EGCshBC\nCCGEEH2QoCyEEEIIIUQfJCgLIYQQQgjRBwnKQgghhBBC9EGCshBCCCGEEH2QoCyEEP3szTffRFXV\n7i+TyUR8fDy33347JSUlZ32+X//61z3O1/WVkJDQq63T6eSxxx4jPj4eq9XKpEmTWLFiRZ/n/fzz\nz5kwYQJWq5XExER+/etf43a7z7p/QghxoTJ6uwNCCHGhevTRRxk9ejR2u52NGzfyxhtvsGzZMnbs\n2EFUVNRZn+/tt9/u8X1AQECvNvfddx8vv/wyP/zhD8nOzubVV1/lmmuuYe3atUyaNKm73fr165k3\nbx7jx4/nueeeY9u2bTzxxBPU1dXx/PPPn/3NCiHEBUiCshBCDJBZs2Yxc+ZMAO666y4yMjL4yU9+\nwhtvvMHPfvazsz7frbfeesrXi4uLu0NyV9i9+eabSUtL47HHHmP58uXdbX/xi18QFRXFF198gdVq\nBcDtdvPiiy/y8MMPM3z48LPunxBCXGhk6oUQQgyS2bNnA5zT9IsuTU1N6Lre52tLlixB13W+853v\ndB8LCgpiwYIFrF69msbGRgDq6upYt24dN954Y3dIBrj77rtxu90sWbLknPsnhBAXEgnKQggxSIqK\nigCIiIigoaGB2traU36dyGazYbPZCAkJ4a677qK+vr7H69u3b8dgMJCTk9PjeF5eHm63m127dgGw\na9cuNE1jzJgxPdrl5OSgKArbt2/vz9sWQgifJVMvhBBigDQ2NlJbW4vdbmfTpk3cf//9GAwGFixY\nQF5eHmVlZad8v6ZpAISFhXH//fczadIkTCYTy5Yt49VXX2Xr1q1s3LgRs9kMQFVVFWFhYRgMBn77\n29/yu9/9jo8++ojo6GgADh8+3N0OIDo6mt27dzN9+nRuuukm/vSnP2Gz2brbCSHExU6CshBCDJBv\nf/vbPb6Pi4vjn//8J7m5ufzjH//Abref0Xnuu+++XudNS0vjZz/7GX/729/47ne/C4DD4egOzaWl\npTQ3N1NTU0NISAgA7e3t3e0AzGYz9fX11NXVdU8HsVgs3e2EEOJiJ0FZCCEGyO9//3vGjBmD0Wgk\nOjqajIyM7tcuvfTS8zr3j370I37+85+zcuXK7qBssVi6Q/CLL77Ib37zG2JiYrrnHPv7+3e3A+jo\n6GDWrFkcOnSI8PBwwBOiu9oJIcTFToKyEEIMkDFjxnRXvTjRkSNHTluzOCYm5qSv+fv7Y7PZqKur\n6z4WGxtLXV0dbrcbg8HQ/f7q6uoe54uNje1xvKtUXUdHBw0NDae8rhBCXEwkKAshhBdMmDDhlHOU\nFUU5ZZBubm6mvr6+Rz3mnJwcNE1j27ZtjB07tvv41q1bUVWV0aNHAzB69GhUVWXLli3ceeed3e22\nbduGruu9FgMKIcTFSoKyEEJ4wZnOUXa73TQ3N2Oz2Xocf+aZZwCYO3du97H58+fz8MMP88Ybb3QH\n5ebmZt577z2mT5/ePVc5LCyMqVOnsmjRIv77v/+7e+OS1157DaPRyPz58/vlHoUQwtdJUBZCCC84\n0znKzc3NJCcnc+ONN5KZmYnZbGbVqlUsXryYWbNmcfPNN3e3TUlJ4e677+bPf/4ziqKQlZXFa6+9\nRmNjI08++WSP8z755JPMmDGDWbNmcdddd7F9+/buzUpksxEhhPCQoCyEEANAUZR+OY/VauXaa69l\n1apV/Otf/8LhcJCcnMyvfvUrHn300V7X+dOf/kRkZCRvvvkmr7zyCjk5OXzyySdccsklPdpNnTqV\nJUuW8Pjjj3P//fcTGRnJ448/zi9/+ct+6bcQQlwIFP1kWzwJIYQQQghxEZOd+YQQQgghhOiDBGUh\nhBBCCCH6IEFZCCGEEEKIPkhQFkIIIYQQog9er3rxxRdfeLsLQgghhBDiIjBr1qyzau/1oAyQk+M8\nbRv3pp04//xP1PGjMf/olgHv03PPreKpp37HHXfcwW9/+9sBv95gCw8PZ/HixVx++eXe7spFSZ6/\nd8nz9x559t4lz9+75Pl7T3h4OOvWrTvr9/nO1AuzyfNrx+lDdX8YO3Yk2dnZxMXFDcr1hBBCCCHE\n0DIkRpTPiLmzq4MUlKdMyWLp0qWDci0hhBBCCDH0+MyIsmI2A6APUlBWlJZBuY43jRo1yttduKjJ\n8/cuef7eI8/eu+T5e5c8f9/iM0F5sEeUFaUD6BiUa3mL/GH1Lnn+3iXP33vk2XuXPH/vkufvW3wo\nKHfOUXa6BumCOorSNkjXEkIIIYQQQ43PBGWlMygP1tQLAFVtH7RrCSGEEEKIocVngvJgV70Azzzl\n1atX8+yzz9LRcWFPwxBCCCGEED35UNULbwRlO48//jjFxcXMmjWL7OzsQbu2EEIIIYTwLt8ZUTZ1\nZnqnC13TBumiOrm5mQBs27ZtkK4phBBCCHFyuq5zuGUHHe5Wb3flguczQVlRlB5hebDk5IwAYPv2\n7YN2TSGEEEKIkylr+ppdRz6kwV7m7a5c8HwmKANeqHwBY8akABKUhRBCCDE0HKj7gtq2fTR3VHu7\nKxc83wzKjsFbWJeTk4CiKOzduxeHwzFo1xVCCCGEOFGTo4ojbYUYVQuJwZO83Z0Lnu8s5sNTIk4H\ndKcLZZCuGRho4Qc/uIuYmARcLhcWi2WQriyEEEII0VNx/WoAEoIvwWTw925nLgI+FZSPjSgPXuUL\ngF/96sdoWuSgXlMIIYQQ4nhuzcXBhi8BSA2dfl7nqqyspL6+nqysrH7o2YXLt4Jy92K+wQ3KskOf\nEEIIIbztSNteHO5mQizxhPmndh/Xdd1T9OAU2tvb2bRpE6tWrWLNmjXs27ePiRPH8e9//wXQcbvj\nBrj3vsmngrJi6Zx6MYi1lAEUpRXQYdAmfAghhBBC9BQTmMWc1P/B4W5GURTanfVsq/4XHe4Wpg3/\nyUnfV1paysyZM7Hb7d3HAgL8iYryA2pQFNsg9N43+VRQxjT4m44AKIoLRbGj6zIXSAghhBDeE+J3\nbOTXqPpT0bQZh8POVzWrOVBYwa233oqqdtVqsKOqdpKSVEJCAkhPj2fGjHHMmDGW8eNHYe6c0qrr\nXrgRH+FbQbl7d77BKw/XRVHaJSgLIYQQwutcLhfvvvsuW7Zs4av8LZQdOILmXg3A5MmpZGTEAm0o\nyrG89PXXrxIQ4OedDvswHw3Kg1cersvq1St5993VXHnllVx33XWDfn0hhBBCCACDQeWNN15l9+5C\nABQFhg0P5tIJ4zEY6lCUgF7vkZB8bnwqKCtmT3d1L4woFxcX8cEHH2A2myUoCyGEEMIL3KhqA6p6\nlF/+8jaKisrJzklhv7oC1aJx7ci7CfYL83YnLyg+FZQxmz2/DnLVC4C8PNmhTwghhBCDo729ncWL\nF+N2u5k6fxgRAWGEWf26p1PMnDmemTPHexqXVnKwYS917dUSlPuZjwXlzu4Och1lgNGjk1FVlX37\n9tHe3o6/v8xXFkIIIUT/OnjwIO+88w5vv/02DQ0NhIWFYMwZi9GkcsPo/8Tf1HtaRV7sZYyPn4XZ\nIJui9TefCspK1+pML4woW61+ZGSksGfPfnbt2sX48eMHvQ9CCCGEuDC53W5mzZpFUVFR97G8vBFc\nc3MOKEcZFpzSZ0gGsJqDBrx/uqZBeTHEJqCYL55Arp6+yRDipfJwXXJz0wDYsWOHV64vhBBCCN/m\ncDjo6FGUQENRWjGZaomMDCQkJJAbbpjOxx//gaVLnyV5soLBqJIWnjMg/dF1ndKGnRxpLez9WmsL\n2uZ1aG88h/snd6I9+RBt27YOSD+GKp8aUfZmeTiAu+++hmuvvZXc3HFeub4QQgghfEdxcTG7du2i\nsrKSyspKysrK2LBhA3/84zNcffVUFKUFRWntnnf88suPEB4ejMFgAKCmpYImRx3+xgDiglMGpI97\nj+STf2gVABH+I8hxTiL8QBP6jnz0A3tRdA3wbLlWqflRu7+CsRMGpCtDkk8G5cHema9Lbm4aLtdw\ndD3EK9cXQgghxNBRX1/Pjh07iI2NZcSIESe86uLvf/8rf/nLq73eV1i4gfnzk3sdj4oK7fH9/qOe\nAgIpYVmoSv9PAqhtqWTP3lXEH+4gtgyiSvLxb/2Grv1HXLrCZi2c1e4oVmlRWJNSuS9jTL/3Yyjz\nqaCsmL079QJAVdtxuyUoCyGEEBeboqIili9fzrZt29i+fTtlZWUA/OhHd/HYY/cCThSlA+hAUdyM\nGxfJ3LmTSUiIIi4uipEjk7nkkmz8/c8sfuXGXkaQJZSk0JFn1N6tuahsKsbpdpAant3rdb2lDa24\nAr2kAq24Esv+Yq5u7ZmpajDzhSuGVe4oCgMTmJCbwvSceH6YFUdY0MVXi9mngjJDICgrSqvXri2E\nEEKI/nPw4EE++ugj3G43TqcTt9uNy+UiOTmZ22+//YTWGt98s4Gnnnqq+4i/v4XRo1OIj/dHVY/0\nOv91103juuumdX8fEuIZaGtsbDyj/gWYg8iOmXzG99Ngr2XtwY/wM1pJDhsNNfVoW/d2h2P9SH2P\n9iagSTWy1RnK1+5w1hJD0IgRzMhN5OHceEYlhKEoCgAVTd8QrOVgVM1n3J8LgY8F5c7uejLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc262ac8>"
|
||||
"<matplotlib.figure.Figure at 0x7f3293ae8cc0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 44
|
||||
"prompt_number": 43
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2911,7 +2906,7 @@
|
||||
" for t in range (count):\n",
|
||||
" z = dog.sense()\n",
|
||||
" f.update(z)\n",
|
||||
" ps.append(f.x[0, 0])\n",
|
||||
" ps.append(f.x[0])\n",
|
||||
" cov.append(f.P)\n",
|
||||
" zs.append(z)\n",
|
||||
" f.predict()\n",
|
||||
@@ -2945,21 +2940,21 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc28ec88>"
|
||||
"<matplotlib.figure.Figure at 0x7f329358c4e0>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd0VNXax/HvmcnMpFcIJUF6jyihKyZUBQWRJkQQaSKg\nSLEXECk2vCAIqFSlc2kCChbQS3lD7wGkGAQCgfSeKZk57x8hI4FQ0kgGns9aLJJT9tknJ+WXnWf2\nVlRVVRFCCCGEEELkoinpDgghhBBCCFEaSVAWQgghhBAiDxKUhRBCCCGEyIMEZSGEEEIIIfIgQVkI\nIYQQQog8SFAWQgghhBAiDxKUhRBCCCGEyIMEZSHEA61Vq1ZoNBo0Gg1arZaAgADat2/Pli1bSrpr\nN/n1119p0qQJrq6uPPTQQ4wfPx6r1Vrg9nLu+8Z/CxYsKMJeCyGE43Iq6Q4IIURJ8/X1ZcaMGaiq\nysWLF5kzZw5PPvkkixYtom/fviXdPQD+7//+j06dOtG4cWOmT5/OkSNHmDBhAgkJCcyYMaPA7Xbr\n1o1u3brl2taiRYvCdlcIIe4LiqzMJ4R4kLVq1YrIyEguXLhg3xYdHU3NmjWpUqUKERERJdi7f7Vq\n1YozZ85w5swZXF1dARg2bBjz5s3j7NmzVK5cOd9tajQaxo8fz7hx44q6u0IIcV+Q0gshhLhBhQoV\nqFu3LpGRkSXdFQASEhLYuXMnPXr0sIdkgEGDBmG1Wtm4cWOB21ZVlczMTIxGY6H6+M8//6DRaBg3\nbhz+/v5Uq1aN8PBwOnbsiJeXF8OGDStU+0IIURIkKAshxA2sViuXL1+mYsWK+T43MzOTuLi42/4z\nm835avP48ePYbDYaNmyYa3uDBg1QFIWjR4/mu585pk6diru7O66urjRo0IB169YVuC2ATZs2MX78\neFJTU2nXrh1VqlRh8ODBfPfdd+zevbtQbQshxL0mQVkI8cCzWq3Ex8cTFxdHREQEQ4YM4cqVK7z1\n1lv5buvzzz/H39//tv9WrFiRrzajo6MBKFeuHCdOnMDf35/XXnsNvV6Pt7c3V65cyXc/AVq2bMkn\nn3zC+vXr+frrr8nMzKR79+757t/1xowZw/Dhw+natSsAs2fPZsqUKTg7O3Ps2LECtyuEECVBXswn\nhHjgRUdHU7ZsWfv7Dz30EBs3buTpp5/Od1svvfQSISEhtz2mXr16+WrTZDIBoNfrSUxMJCEhgXPn\nzgFgMBjIzMzMdz8Btm/fnuv9F198kTp16vD222/Tu3fvArVZrlw5AMqWLYuvry+KoqAoCr6+viQk\nJBSoTSGEKCkSlIUQD7wyZcqwYsUKrFYr4eHhTJ48mbVr1xYoKFetWpWqVasWaf8MBgMAZrOZtm3b\ncvnyZfz8/IDsEO3i4lIk1/H09KRfv3588cUXnD59mlq1auW7DZ1OZ/8/5+2c9/NbciKEECVNgrIQ\n4oHn7OxMmzZtAGjfvj1arZZx48bRu3dv2rVrl6+20tPTSU1Nve0x3t7eODs733WbFSpUAODq1asA\n+Pv7A9nBOSkpifLly+erj7cTEBAAUCyjvzLJkhDC0UiNshBC3GD06NH4+Pgwfvz4fJ87ZcoUKlas\neNt///3vf/PVZv369dFoNBw8eDDX9iNHjqCqKg0aNMh3P2/l/PnzwL9hXAghHmQyoiyEEDdwc3Nj\nyJAhfP755+zcuZOWLVve9bnFUaPs6+tLy5YtWb16NZ9++ilubm4AzJ8/HycnJzp37pzneXXq1EFR\nFLZu3XrTDB7x8fH28o0csbGx/PDDD9SqVYtq1arlq49CCHE/kqAshHjg5VUSMGLECKZOncrnn3+e\nr6BcHDXKAJMmTaJ169a0bduWgQMHcvToUebMmcOrr756y8VGTp8+jaIoZGVl5dnenj17aNeuHZUq\nVeLSpUvMmTOH1NRUli9fXuT9l7ILIYQjktILIcQDLWdWhhtVrFiRnj17snnzZk6cOFECPcutZcuW\nbNy4EavVysiRI9mwYQNjx47lq6++KlB7rVq1wsnJie+++47XXnuN6dOnExwczLZt2/Jdl53j+o/j\njR/XvD7GQghR2hVqCeusrCwGDhzIli1byMjIIDg4mJkzZ1KvXj3Gjx/P5MmT7S9YKVu2bKlZ5UoI\nIYQQQog7KdSIstVqpWbNmuzfv5+kpCSeffZZnnvuOfv+sLAwUlNTSU1NlZAshBBCCCEcSqFGlG+U\nlJSEr68vMTExzJw5k7///pvFixcXVfNCCCGEEELcM0Vao7xr1y4CAgLsr6TeuHEjZcqUoWHDhvz0\n009FeSkhhBBCCCGKVZGNKCcnJ9O0aVMmTZpEz549+euvv/D398fLy4sNGzbw4osvcvDgwQKt9CSE\nEEIIIcS9ViRB2WQy0bFjR5544gk+/vjjPI/p1KkTTz31FCNGjMi1fevWrYW9vBBCCCGEEHfUtm3b\nfB1f6HmUrVYrYWFh1KpV65Yh+U7q1q1b2G6Ie8zPz4+1a9cSGhpa0l0RBSDPz3HJs3Ns8vwcmzw/\nx+Xn58fOnTvzfV6ha5RfeeUVNBoNs2fPzrV93bp1JCUlYbPZ+Pnnn9m2bRtPPfVUYS8nhBBCCCHE\nPVGoEeXz58+zYMECXF1d8fLyArInld+0aRMrVqxgwIAB9inkVq5cKfXJQgghhBDCYRQqKFeuXBmb\nzZbnvvws+Sock5TMODZ5fo5Lnp1jk+fn2OT5PVhkCWtRYPLNwrHJ83Nc8uwcmzw/xybP78EiQVkI\nIYQQQog8FHrWi+JmsVhITExEUZSS7oq4TmJiIgBZWVkl3JO86XQ6vL29S7obQgghhHBgpTooWywW\n4uPj8ff3R6ORwW9x95KSksjIyMDV1bWkuyKEEEIIB1Wq02diYqKEZFEgXl5epKWllXQ3hBBCCOHA\nSnUCVRRFQrIoEEVRpFxHCCGEEIUiKVQIIYQQQog8SFAWQgghhBAiDxKUH3ADBw4kMDCQwMBARo8e\nXdLdEUIIIYQoNSQol3LNmjVj6tSpxdb+9OnTOXToEJ07d5aaXiGEEEKI65Tq6eEExR5ePTw88PDw\nwGAwoKpqsV5LCCGEEMKRyIhyMfntt9/o2rUr9evXp3r16nTt2pV9+/blOubXX3/lmWeeoXr16jRs\n2JAxY8ZgsViA7JHkwMBAoqKimDp1qr08Ytq0afbze/TokWu0+eLFiwQGBrJ7924AzGYzY8aM4bHH\nHqNatWo0atSICRMmYDabb+qvjCYLIYQQQuQmI8rFJDY2ll69etGwYUMMBgPfffcdffr0Yc+ePfj4\n+PDbb78xePBgXn/9daZPn05GRgYbNmzAZDKh0+nYvHkzVquVp59+mi5dujB06FCAmxbQuF3AtVgs\n6PV6pk6dSqVKlfj7778ZOXIkOp2O9957r1jvXwghhBDC0Tl8UA6YG1As7V56+VKhzu/Tp0+u9z/4\n4AMWL17Mnj176NChAzNnzqRDhw689dZb9mMaNGhgf9vX1xcArVaLm5sbZcqUyXcf3Nzc+Oyzz+zv\nBwQE8Nxzz7F161YJykIIIYQQd+DwQbm0unDhAlOmTOHgwYPEx8djs9kASE9PB+DEiRN06dKl2Pux\ndOlSli1bRlRUFJmZmVgsFipWrFjs1xVCCCGEcHQOH5QLO/JbXF566SUqV67MtGnT8Pf3x2w206ZN\nG3tgLgo3ll3c2PbGjRv5+OOP+fjjjwkODsbZ2ZnZs2ezbdu2u2pPCCGEEOJBJi/mKwYJCQmcOXOG\n9957j6ZNm1KlShVSUlJyHVO/fn127dp1x7Z0Op39BX438vLyIjU11f5+VFRUrv179uwhNDSUsLAw\nateuTeXKlbl48WKegdjNzY2MjIy7uT0hhBBCiAeCBOVi4O3tjZ+fH4sXL+b8+fOEh4czfvz4XAH1\ntdde49dff+XLL7/kzJkzREREMHHiRNLS0nK1Va1aNbZv3050dDRGoxGr1Wrf98gjj7BlyxZSUlLI\nzMzk22+/zXVujRo12LdvH7t37yYyMpJp06Zx4MCBPPv8yCOPsHPnTg4fPkxMTAyZmZlF+BERQggh\nhHA8EpSLgUaj4bvvvmPPnj20adOGsWPH8vbbb6PR/Pvhbt++PfPnz+fPP/+kQ4cOhIWFERsbi8Fg\nyNXWu+++i0ajISQkhBo1ajBjxgz7vv79+1OtWjVatGhB586dad++fa4w3rdvX5566ikGDx7MM888\nw+XLlxk4cGCefe7WrRsdO3YkLCyM4OBgli1bVsQfFSGEEEIIx6KoJbzKxNatW6lbt26e+2JjYylb\ntuw97pG4X8jnz635+fkBEB8fX8I9Efklz86xyfNzbPL8HJefnx87d+6kbdu2+TpPRpSFEEIIIYTI\ngwRlIYQQQggh8iBBWQghhBBCiDxIUBZCCCGEECIPEpSFEEIIIYTIgwRlIYQQQggh8iBBWQghhBBC\niDxIUBZCCCGEECIPEpSFEEIIIYTIgwRlIYQQQggh8iBBWTicZs2aMXXq1JLuhhBCCCHucxKUhcNR\nFKWkuyCEEEKIB4AE5WIQHh5OcHAwAwcOpG7dunz//fe0b9+eBg0asGPHDgBSUlJ4++23eeSRR6hb\nty5hYWGcOXPG3sbZs2cZMGAADRs2pFq1aoSGhrJs2bJc17FYLIwbN45GjRpRvXp1WrZsyZw5c+z7\nL168SGBgIJcuXbJv+89//kPz5s1ztbNy5UoCAwOJiIigU6dOVK9enaZNm3L8+HEAzGYzkyZNolGj\nRtSsWZNnn32W/fv3289v1qwZI0aMoH79+gwZMoSJEydSq1Yt3n///ZuuExoaSvXq1WnVqhXLly/P\ntT8wMJClS5fy3HPPUaNGDTp16sTZs2dzXScwMJCoqCimTp1KYGAggYGBTJs2LV/PRwghhBLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc1a7978>"
|
||||
"<matplotlib.figure.Figure at 0x7f3293a21f98>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 45
|
||||
"prompt_number": 44
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -3030,11 +3025,11 @@
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsMAAAGDCAYAAADOPB2zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXl8VOXZ/q/nrLNkTwARkUUBQUSttkitBEVUECm24oIL\ntPraalFEfa0sKlZrRRFcAC22LsjrBqLYRWsRFRBwA36iKKgoArIIgZBllrP9/jjzPDkzmZBlJpkk\nc381nyTDmTPPnJnMXOee675u5jiOA4IgCIIgCILIQqRML4AgCIIgCIIgMgWJYYIgCIIgCCJrITFM\nEARBEARBZC0khgmCIAiCIIishcQwQRAEQRAEkbWQGCYIgiAIgiCyFhLDBEEQBEEQRNZCYpggiHbP\nkCFDIEkSJEmCLMvo0qULhg0bhmXLlmV6aXF41+n9uvLKK2ttu2fPHlx++eUoLCxEXl4eRo0ahW+/\n/Tbpfh9++GEce+yx8Pv9GDBgAF588cXmvisEQTSSJUuWYPbs2bj00ktx9913Z3o5WYWS6QUQBEG0\nBEVFRXj00UfhOA62b9+O+fPn45xzzsGCBQtwxRVXZHp5gr59+2Lq1Klxl/Xs2TPu92g0inPOOQff\nf/89brvtNvh8PsycORNnnnkmNmzYgIKCArHtjBkzMHnyZIwdOxZnnnkmFi1ahLFjx0LTNPzqV79q\nkftEEMTh+eabb3Dw4EFMmjQJ4XAYffr0Qa9evTB27NhMLy0rYDSBjiCI9s6QIUOwdetWfP/99+Ky\nXbt2oVevXujevTs+++yzDK6uBl4ZXr58+WG3e+aZZ/Db3/4WixcvFoL2gw8+wKBBg3DPPfcIMV1R\nUYEuXbpgyJAheP311wEAtm3jxBNPRDgcxldffdW8d4ggiAaxdOlSTJgwAdu3bwcAjBkzBh07dsTc\nuXMzvLLsgGwSBEFkJZ07d0bfvn2xdevWTC8lDsdxYJomKisr69xm6dKlKCwsxIUXXiguGzhwIPr1\n64dXX31VXLZ8+XJUVlbiN7/5jbhMkiSMGzcO33zzTaNPAr777jtIkoQ777wTHTt2RM+ePbF69WoM\nHz4c+fn5uO666xq1P4IgXEaMGIE33nhD/L5jxw707ds3gyvKLkgMEwSRlViWhR9++AFHHnlko68b\nCoWwb9++w35Fo9EmreuDDz5AMBhEXl4eunTpgvvuuw+JH+B9+umnOOGEE8AYi7v8pJNOihO4n376\nKQDg5JNPrrWd998by7///W9Mnz4dFRUVOPvss9G9e3dcc801+Otf/4q1a9c2aZ8Ekc2oqor+/fsD\nADZs2ICysjJcffXVGV3Tl19+ifPOOw+rVq2q9W8rVqxA7969MX78eNxyyy245pprMHjw4LjXlIZs\nUxfhcBhz5szBnXfeiSlTpuD888/HvHnz4rYxDAOzZs3CzTffjF//+tcYNGgQXnjhhSbdV/IMEwSR\nFViWhf3798NxHOzevRuzZ8/G7t27a73ANoQZM2bgT3/602G3eeaZZ3DVVVc1ar+9evXCsGHD0L9/\nf5SXl+O5557DtGnTsH37djz++ONiu127duHUU08FAAwfPhxbtmzBBx98gE6dOiEajaKsrAxFRUXY\ntWsXAKBTp0547rnncP3112P+/PniTXf37t2NWh/n5ptvxtixY7FhwwYsXLgQ8+bNg+M4ePzxx7Fx\n40acdtppTdovQWQ7oVAId911F/7zn//A7/dnZA3//Oc/8corryAvLw9vvfUWpkyZUmsb27ZRVVWF\n1157DaqqYujQofjb3/6G3r17N2qbupgyZQpWrVqF999/H6qq4uOPP8bPfvYzVFRU4I9//CMA4O67\n78aVV16JPn36iHWPGjUK+/btww033NCo+0ximCCIrGDXrl3o0KGD+P3oo4/GP/7xD4wYMaLR+xo3\nbhwGDx582G369evX6P0++eSTcb9fddVVGDlyJObPn49JkyaJN5FIJAJN0wAAW7duxZ49e1BVVQVd\n1wG4b6h8O8YYVFXF9u3bUV1djR07dgghzbdrLJ06dQIAdOjQAUVFRWCMgTGGoqIilJWVNWmfBEEA\n9957L+bMmYOuXbvi66+/xrHHHtviaxg5ciRGjhyJbdu24bHHHku6DWMMf/nLXw57wt+QberCtm3s\n27cPpmlCVVXxerpixQr88Y9/REVFBR566CHs27cPTzzxhFj3qaeeiunTp5MYJgiCSEZJSQlefPFF\nWJaF1atX489//jOWLFnSJDHco0cP9OjRoxlWWZsJEybg3//+N9555x0hhn0+n7BhbNiwAZFIBAUF\nBYhEIgAgKkq6rsNxHBiGgSlTpmD8+PE48sgjsXHjxrjtGouqquI7/5n/3lR7CEFkO0888QRGjhwJ\nVVWxc+dOLFu2LCNimFNfvkJD8heamtHw8MMP4+GHHxa/b968GQBw+umnA3B7Hzp37oyKioq46/Xs\n2RMff/wxfvzxx7jiR32QGCYIIivw+Xw466yzAADDhg2DLMu48847cemll+Lss89u1L6qqqpqvQgn\nUlBQAJ/P1+T1crp06QIAOHDggLisc+fO2LNnDwBX0HJRu2fPHui6jsLCQrEdv7x79+7CH82ve8QR\nR6S8vkQooIggaohGo/jLX/6Cp556SiRFcDRNw+7du1FQUIBVq1ZhwoQJsG1b/PvixYtbermNYsuW\nLbj11luRm5uLr776ChdccAEuueSSRm/TEGbMmIHzzjsPt956KwAgGAwmbX7++uuvUVRUhOLi4kbt\nn8QwQRBZyaRJkzB79mxMnz690WL4wQcfbBbPcDK2bdsGAOjYsaO4rH///lixYgUcx4lrolu/fj2O\nP/54cdmAAQMAAOvWrUP37t3jtvP+O0EQ6ScajWL48OHQNA0vvvgiGGP4zW9+g9LSUkyZMgXBYFBk\ngv/iF7+AaZoZXnHj2LRpE5YsWQLGGCoqKnDsscdC13WMHj26Udscjnnz5uGbb75BJBLBggULhD0s\nGZ9++inWr1+P2bNnQ5Ialw9BYpggiKwkGAzi2muvxYwZM7Bq1Sr84he/aPB1m8MzXF5ejpycHMiy\nLC6zLAuzZs2CoigYNmyYuHz06NF4/fXXsWTJEvz6178GAKxduxZffPFFnEgfOnQocnJy8PTTT4s8\nYsuy8Oyzz+KYY44RjXQEQaSfO++8E1VVVXjrrbfE3/Uf/vAHPP300zj66KOb9bbHjRuHvXv3Nmjb\nDh06YMGCBY3a/09+8hM8++yz4sQ7NzcXpaWlmDZtmhC6DdmmPq6//noAwPvvv49evXrh5Zdfjnst\n5Ni2jRtuuAEXXXQRbrzxxkbdF4DEMEEQWUKyj+9vuOEGzJo1CzNmzGiUGG4Oz/A777yDW265BRde\neCGOOeYYVFZW4uWXX8Ynn3yCu+66C127dhXbXn755Zg1axauvvpqbNmyBT6fDw8++CC6du0a1ziS\nk5ODyZMnY+rUqbjiiiswZMgQLF68GF988QVeeumltK4fIIsEQXDKy8vx6KOPYvHixXEnuJFIBIZh\nNPvtP/vss826/9zc3FqXBQIBbNq0CQcPHkRBQUGDtmkop59+Ovr164fLLrsM33//PQKBQNy/3377\n7ejduzfmz5/f+DsDyhkmCCIL4GkHiRx55JEYM2YM3njjDWzatCkDK6uhT58+OP744/Hiiy/illtu\nwfTp0yHLMp577jncddddcduqqor//ve/GDFiBB544AHcddddOPXUU/HOO+8gPz8/btvJkyfjoYce\nwpo1azBhwgTs3LkTCxcuxEUXXdSkdXqPY+JxTXaMCSIbWblyJSzLqmXBev/99/Hzn/88Q6tKDxUV\nFejRowduvvnmuMsPHTok0msask1d7N69G126dMHvfve7uMu7deuGsrKyWq/VDz/8MHJzc/Hkk0+C\nMYbvv/++0Y289VaGly5divvvvx/r16/HZZddhqeffhqAG3b8+9//HosWLUJhYSFmzpyJMWPGNOrG\nCYIgWoJ33nmnzn9buHAhFi5c2IKrSU7fvn3FyOSG0KlTJzz//PMN2nbSpEmYNGlSU5cm6N69OyzL\nEr/fddddcUL922+/Tfk2CKI9EAqFUFJSEudx3blzJ/773//iww8/bPbbb06bhCRJiEQiIt+Xs2XL\nFgwcOBDBYBBVVVX1blMXe/fuxa5du2rFNO7Zsweqqsb1Pzz//POQJAl33HGHuOyJJ56ot6cjkXrF\ncEFBAW677TYsW7YM1dXV4vLZs2fj888/x44dO7B+/XqMHDkSgwYNwlFHHdWoBRAEQRAEQbQnSktL\nEQqFxACcaDSKq6++Gvfff3+LjFlOh02CJ1t4T4ABt99i/PjxIp0HAD788ENs3boVK1eubPA2APDG\nG2/gqquuwgsvvCCq6AMGDMC5556LO++8U2y3bds2rFq1CjfffDNKSkoAAP/5z3/wyCOP4Fe/+hXu\nv/9+AK5Va8OGDVCUxrmA6926tLQUgNuN7BXDixYtwqRJk5CXl4fS0lIMGjQIr776aqODjgmCIAiC\nINoTHTt2xIsvvogJEyagV69e2LlzJyZMmICRI0fGbbdr1y68/PLL+O6773DKKacgGo1i27ZtuPvu\nuxGJRHD//ffj6KOPxs6dO1FaWoozzjgDtm3j8ccfR0lJCbZt24brrrsuqT+3qbz//vt49NFHsX79\nejDGMG7cOAwcOBCXX365aHybPn067rvvPhHnuHfvXqxZswYnnnii2E9DtgEA0zRrJWm8/PLLuO++\n+4StYuvWrZg7dy6uueYaAMD+/ftx0UUXobq6Gh999FHcdRvanOeFOQ3seJg2bRp27twpbBL5+flY\nvnw5Zs+ejQsuuABr1qyBaZqYM2dOoxdBEARBEASRbSxcuBBjxozBsccei88//xx5eXkYNGLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ebc1aed68>"
|
||||
"<matplotlib.figure.Figure at 0x7f32937949b0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 46
|
||||
"prompt_number": 45
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -3052,6 +3047,194 @@
|
||||
"> **sidebar**: when plotting covariance ellipses, make sure to always use *plt.axis('equal')* in your code. If the axis use different scales the ellipses will be drawn distorted. For example, the ellipse may be drawn as being taller than it is wide, but it may actually be wider than tall."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Batch Processing\n",
|
||||
"\n",
|
||||
"The Kalman filter is designed as a recursive algorithm - as new measurements come in we immediately create a new estimate. But it is very common to have a set of data that have been already collected which we want to filter. Kalman filters can always be run in a *batch* mode, where all of the measurements are filtered at once. We have implemented this in `KalmanFilter.batch_filter()`. Internally, all the function does is loop over the measurements and collect the resulting state and covariance estimates in arrays. It may seem a bit trivial, but you will almost always want to do this if you can for several reasons. First, it will execute a bit quicker than if you implement the loop yourself. Second, the logic in your code will be a bit cleaner, and you will have a reduced chance of bugs. Third, and most importantly, it you batch process your data you can then use an extremely powerful techique to generate far smoother results than you have seen so far. We will present that technique in the next section; here I will show you how to use `KalmanFilter.batch_filter()`.\n",
|
||||
"\n",
|
||||
"All you have to do is collect your measurements into an array or list. Maybe it is in a CSV file, for example.\n",
|
||||
"\n",
|
||||
" zs = read_altitude_from_csv()\n",
|
||||
"\n",
|
||||
"Or maybe you will generate it using a generator:\n",
|
||||
"\n",
|
||||
" zs = [some_func(i) for i in range(1000)]\n",
|
||||
" \n",
|
||||
"Just do whatever it takes to get your measurements in an array.\n",
|
||||
"\n",
|
||||
"Now we will just call the `batch_filter()` method.\n",
|
||||
"\n",
|
||||
" Xs, Ps, Xs_pred, Ps_pred = kfilter.batch_filter(zs)\n",
|
||||
" \n",
|
||||
"The funtion takes the list/array of measurements, filters it, and returns a list of state estimates (Xs), covariance matrices (Ps), and the predictions for the same (Xs_pred, Ps_pred).\n",
|
||||
"\n",
|
||||
"Here is a complete example drawing from the code above"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"dog = DogSensor(velocity=1, noise_var=10.)\n",
|
||||
"f = dog_tracking_filter(R=3., Q=.02, cov=P)\n",
|
||||
"count = 50\n",
|
||||
"zs = [dog.sense() for t in range(count)]\n",
|
||||
"Xs, _, _, _ = f.batch_filter(zs)\n",
|
||||
"\n",
|
||||
"plt.plot([0, count], [0, count], 'g', label='actual')\n",
|
||||
"plt.plot(range(1,count+1), zs, c='r', linestyle='dashed', \n",
|
||||
" label='measurement')\n",
|
||||
"plt.plot(range(1,count+1), Xs[:,0], c='b', label='filter')\n",
|
||||
"plt.legend(loc='best')\n",
|
||||
"plt.show()"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f3293674da0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 46
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"## Smoothing the Results\n",
|
||||
"\n",
|
||||
"I have an entire chapter on using the Kalman filter to smooth data; I will not repeat the chapter's information here. However, it is so easy to use, and offers such a profoundly improved output that I will tease you will a few examples. The smoothing chapter is not especially difficult; you are sufficiently prepared to read it now.\n",
|
||||
"\n",
|
||||
"Briefly, the recursive form of Kalman filtering that we have been using up to now use information from the past to generate the current estimate. Recall the last section, where we used batch processing to filter a collection of measurements. This implies that we know now only the past, but the future! This is a key insight.\n",
|
||||
"\n",
|
||||
"Let's assume that we are tracking a car. Suppose we get a noisy measurement that implies that the car is starting to turn to the left, but the state function has predicted that the car is moving straight. The Kalman filter has no choice but to move the state estimate somewhat towards the noisy measurement, as it cannot judge whether this is just a particularly noisy measurement or the true start of a turn. \n",
|
||||
"\n",
|
||||
"However, if we have measurements from the future we can often figure out if a turn was made or not. Suppose the subsequent measurements all continue turning left. We can then be sure that the measurement was not very noisy, but instead a true indication that a turn was initiated. On the other hand, if the subsequent measurements continued on in a straight line we would know that the measurement was noisy and should be mostly ignored.\n",
|
||||
"\n",
|
||||
"We will not develop the math or algorithm here, I will just show you how to call the algorithm in `filterpy`. The algorithm that we have implemented is called an *RTS smoother*, after the three inventors of the algorithm: Rauch, Tung, and Striebel. The routine is `KalmanFilter.rts_smoother()`. Using it is trivial; we pass in the means and covariances computed from the `batch_filter` step, and receive back the smoothed means, covariances, and Kalman gain."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"from numpy.random import seed\n",
|
||||
"dog = DogSensor(velocity=1, noise_var=40.)\n",
|
||||
"f = dog_tracking_filter(R=3., Q=.2, cov=P)\n",
|
||||
"count = 50\n",
|
||||
"seed(8923)\n",
|
||||
"zs = [dog.sense() for t in range(count)]\n",
|
||||
"Xs, Covs, _, _ = f.batch_filter(zs)\n",
|
||||
"Ms, Ps, _ = f.rts_smoother(Xs, Covs)\n",
|
||||
"\n",
|
||||
"#plt.plot([0, count], [0, count], 'g', label='actual', alpha=.7)\n",
|
||||
"plt.plot(range(1,count+1), zs, c='r', linestyle='dashed', \n",
|
||||
" alpha=.5, label='measurement')\n",
|
||||
"plt.plot(range(1,count+1), Xs[:,0], c='b', label='filter', alpha=.5)\n",
|
||||
"plt.plot(range(1,count+1), Ms[:,0], c='k', label='RTS')\n",
|
||||
"plt.legend(loc='best')\n",
|
||||
"plt.show()"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f329357c2b0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 85
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"This output is fantastic!. Two things are very apparent to me in this chart. First, the RTS output is much, much smoother than the KF output. Second, it is almost always more accurate than the KF output (we will examine this claim in detail in the **Smoothing** chapter).\n",
|
||||
"\n",
|
||||
"While you can usually find isolated sections where the KF produces a more accurate estimate than the RTS smoother, the RTS almost always significantly outperforms the KF. If you are able to batch process your data, there is no reason to not use the RTS algorithm.\n",
|
||||
"\n",
|
||||
"We cannot always wait to collect all of our data before we filter it. If so, that means that we cannot use the RTS filter, but we may still have options. The **Smoothing** chapter discusses various strategies that you can use, and it is a mandatory (and easy) chapter if you want to achieve the best possible results from your filtering.\n",
|
||||
"\n",
|
||||
"Let's wrap this up by looking at the velocity estimates of the two filters."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"dog = DogSensor(velocity=1, noise_var=40.)\n",
|
||||
"f = dog_tracking_filter(R=3., Q=.2, cov=P)\n",
|
||||
"count = 50\n",
|
||||
"seed(8923)\n",
|
||||
"zs = [dog.sense() for t in range(count)]\n",
|
||||
"Xs, Covs, _, _ = f.batch_filter(zs)\n",
|
||||
"Ms, Ps, _ = f.rts_smoother(Xs, Covs)\n",
|
||||
"plt.plot(Xs[:,1], c='b', label='filter', alpha=.5)\n",
|
||||
"plt.plot(Ms[:,1], c='k', linestyle=':', label='RTS')\n",
|
||||
"plt.legend(loc='best')\n",
|
||||
"plt.gca().axhline(1, c='k')\n",
|
||||
"plt.show()"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f329357cc50>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 87
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The improvement in the velocity, which is an unobserved variable, is even more dramatic. \n",
|
||||
"\n",
|
||||
"Since we are plotting velocies let's look at what the the 'raw' velocity is, which we can compute by subtracting subsequent measurements. We see below that the noise swamps the signal, causing the computed values to be essentially worthless. I show this to reiterate the importance of using Kalman filters to compute velocities, accelerations, and even higher order values. I use a Kalman filter even when my measurements are so accurate that I am willing to use them unfiltered if I am also interested in the velocities and/or accelerations. Even a very small error in a measurement gets magnified when computing velocities. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"dx = np.diff(zs, axis=0)\n",
|
||||
"plt.plot(range(1,count), dx, c='r',ls='--', label='raw velocity')\n",
|
||||
"plt.plot(Xs[:,1], c='b', label='filter', alpha=.5)\n",
|
||||
"plt.plot(Ms[:,1], c='k', linestyle=':', label='RTS')\n",
|
||||
"plt.legend(loc='best')\n",
|
||||
"plt.show()"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f329b700cf8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 88
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 2,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:977e85323406c88caf44809425339ba81920c38d8fdba4011a544e4cea573690"
|
||||
"signature": "sha256:492530ff0ddd97db5e24c23a8bdc358b1994c47f912d2c7ad0fe4b85f11ec641"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
@@ -261,7 +261,7 @@
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 1,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7f09578a54e0>"
|
||||
"<IPython.core.display.HTML at 0x7f37de3cbf98>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -294,7 +294,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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\nSVJOTk6DAJ2YmKjExEStXbu2RU/q8XhadD8AAAA0jQHC4PCpB7qurs6vT5qWlqaEhARNmjRJJSUl\nfn1sAACAUMUAYXD49P+sy+Xy2xN++umnuu6661RYWKisrCw9/PDDWrJkSaO3dbvdfnteBEd4eLgk\namdX1M/eqJ99UTt7s1L99n33lSRp0JXdLbEeqztXO6N8CtD+3IG+/vrrJUldunTRE088oaFDhzZ5\n27lz59b/Oy0trb6lBAAAABfK+fKoJGngFV1MXol1bdiwQRs3bpQkhYWFKS0tzfBjBH0H+nzewvnU\nqVMbfFxUVBSwdcA/zr3bpVb2RP3sjfrZF7WzNyvV74s9hyVJiZ0iLbEeK0pJSVFKSoqks7XbtGmT\n4cfw2gPt8XhUUVGhmpoa1dbWqrKyUrW1tZKkiooKVVdXq66uTpWVlaqqqmpw35kzZyojI6PBsdzc\nXG3dulW1tbUqKirS7NmzNXLkSMOLBgAAQEMMEAaP1wC9dOlSRUVF6ZlnntGyZcsUGRmpJ598UgUF\nBYqKitKwYcN06NAhRUZG6pZbbmlw38LCQhUUFDQ4duzYMY0ZM0YXX3yx+vXrp65du2r+/Pn+/6oA\nAABCDAOEweP1/92srCxlZWU1+rnmTkW3ePHiC45lZGRo//79vq8OAAAAPuEKhMHDpbwBAAAcgCsQ\nBg8BGgAAwAG4AmHwEKABAABsjgHC4CJAAwAA2BwDhMFFgAYAALA5BgiDiwANAABgcwwQBhcBGgAA\nwOYYIAwuAjQAAICNMUAYfARoAAAAG2OAMPgI0AAAADbGAGHwEaABAABsjAHC4CNAAwAA2BgDhMFH\ngAYAALApBgjNQYAGAACwKQYIzUGABgAAsCkGCM1BgAYAALApBgjNQYAGAACwKQYIzUGABgAAsCEG\nCM1DgAYAALAhBgjNQ4AGAACwIQYIzUOABgAAsCEGCM1DgAYAALAhBgjNQ4AGAACwGQYIzUWABgAA\nsBkGCM1FgAYAALAZBgjNRYAGAACwGQYIzUWABgAAsBkGCM1FgAYAALARBgjNR4AGAACwEQYIzUeA\nBgAAsBEGCM1HgAYAALARBgjNR4AGAACwEQYIzUeABgAAsAkGCK2BAA0AAGATDBBaAwEaAADAJhgg\ntAYCNAAAgE0wQGgNBGgAAACbYIDQGgjQAAAANsAAoXUQoAEAAGyAAULrIEADAADYAAOE1kLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f09578a5b70>"
|
||||
"<matplotlib.figure.Figure at 0x7f37de3d54e0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -335,7 +335,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f0957895be0>"
|
||||
"<matplotlib.figure.Figure at 0x7f37c155d208>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -371,7 +371,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f093b034cf8>"
|
||||
"<matplotlib.figure.Figure at 0x7f37c14ba5f8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -428,18 +428,18 @@
|
||||
"\n",
|
||||
"The RTS smoother works by first running the Kalman filter in a batch mode, computing the filter output for each step. Given the filter output for each measurement along with the covariance matrix corresponding to each output the RTS runs over the data backwards, incorporating it's knowledge of the future into the past measurements. When it reaches the first measurement it is done, and the filtered output incorporates all of the information in a maximally optimal form.\n",
|
||||
"\n",
|
||||
"The equations for the RTS smoother are very straightforward and easy to implement.\n",
|
||||
"The equations for the RTS smoother are very straightforward and easy to implement. This derivation is for the linear Kalman filter. Similar derivations exist for the EKF and UKF. These steps are performed on the output of the batch processing, going backwards from the most recent in time back to the first estimate. Each iteration incorporates the knowledge of the future into the state estimate. Since the state estimate already incorporates all of the past measurements the result will be that each estimate will contain knowledge of all measurements in the past and future.\n",
|
||||
"\n",
|
||||
" Predict Step\n",
|
||||
"$$\\begin{aligned}\n",
|
||||
"\\mathbf{P}^- &= \\mathbf{FP}_k\\mathbf{F}^\\mathsf{T} + \\mathbf{Q }\n",
|
||||
"\\mathbf{P} &= \\mathbf{FP}_k\\mathbf{F}^\\mathsf{T} + \\mathbf{Q }\n",
|
||||
"\\end{aligned}$$\n",
|
||||
"\n",
|
||||
" Update Step\n",
|
||||
"$$\\begin{aligned}\n",
|
||||
"\\mathbf{K}_k &= \\mathbf{P}_k\\mathbf{F} \\hspace{2 mm}inv(\\mathbf{P}^-) \\\\\n",
|
||||
"\\mathbf{K}_k &= \\mathbf{P}_k\\mathbf{F} \\hspace{2 mm}\\mathbf{P}^{-1} \\\\\n",
|
||||
"\\mathbf{x}_k &= \\mathbf{x}_k + \\mathbf{K}_k(\\mathbf{x}_{x+1} - \\mathbf{FX}_k) \\\\\n",
|
||||
"\\mathbf{P}_k &= \\mathbf{P}_k + \\mathbf{K}_k(\\mathbf{P}_{K+1} - \\mathbf{P}^-)\\mathbf{K}_k^\\mathsf{T}\n",
|
||||
"\\mathbf{P}_k &= \\mathbf{P}_k + \\mathbf{K}_k(\\mathbf{P}_{K+1} - \\mathbf{P})\\mathbf{K}_k^\\mathsf{T}\n",
|
||||
"\\end{aligned}$$\n",
|
||||
"\n",
|
||||
"As always, the hardest part of the implementation is correctly accounting for the subscripts. A basic implementation without comments or error checking would be:\n",
|
||||
@@ -471,20 +471,19 @@
|
||||
"import numpy as np\n",
|
||||
"from numpy import random\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"from filterpy.kalman import KalmanFilter, rts_smoother\n",
|
||||
"from filterpy.kalman import KalmanFilter\n",
|
||||
"\n",
|
||||
"def plot_rts(noise):\n",
|
||||
" random.seed(123)\n",
|
||||
" fk = KalmanFilter(dim_x=2, dim_z=1)\n",
|
||||
"\n",
|
||||
" fk.x = np.array([[0.],\n",
|
||||
" [1.]]) # initial state (location and velocity)\n",
|
||||
" fk.x = np.array([0., 1.]) # initial state (location and velocity)\n",
|
||||
"\n",
|
||||
" fk.F = np.array([[1., 1.],\n",
|
||||
" [0., 1.]]) # state transition matrix\n",
|
||||
"\n",
|
||||
" fk.H = [[1., 0.]] # Measurement function\n",
|
||||
" fk.P = .01 # covariance matrix\n",
|
||||
" fk.P = 10. # covariance matrix\n",
|
||||
" fk.R = noise # state uncertainty\n",
|
||||
" fk.Q = 0.001 # process uncertainty\n",
|
||||
"\n",
|
||||
@@ -492,13 +491,13 @@
|
||||
" zs = [t + random.randn()*noise for t in range (40)]\n",
|
||||
"\n",
|
||||
" # filter data with Kalman filter, than run smoother on it\n",
|
||||
" mu, cov, _, _ = fk.batch_filter (zs)\n",
|
||||
" M,P,C = rts_smoother(mu, cov, fk.F, fk.Q)\n",
|
||||
" mu, cov, _, _ = fk.batch_filter(zs)\n",
|
||||
" M,P,C = fk.rts_smoother(mu, cov)\n",
|
||||
"\n",
|
||||
" # plot data\n",
|
||||
" plt.plot(zs,'r', marker='o', linewidth=1, alpha=0.5, label='measurement')\n",
|
||||
" plt.plot(M[:, 0], c='b', label='RTS')\n",
|
||||
" plt.plot(mu[:, 0, 0], c='g', linestyle='--', label='KF output')\n",
|
||||
" plt.plot(mu[:, 0], c='g', linestyle='--', label='KF output')\n",
|
||||
" plt.plot([0, len(zs)], [0, len(zs)], 'k', linewidth=1, label='ideal') \n",
|
||||
" plt.legend(loc=4)\n",
|
||||
"\n",
|
||||
@@ -512,19 +511,19 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f093afcd7f0>"
|
||||
"<matplotlib.figure.Figure at 0x7f37c1286320>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 5
|
||||
"prompt_number": 8
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"I've injected a lot of noise into the signal to allow you to visually distinguis the RTS output from the ideal output. In the graph above we can see that the Kalman filter, drawn as the green dotted line, is reasonably smooth compared to the input, but it still wanders from from the ideal line when several measurements in a row are biased towards one side of the line. In contrast, the RTS output is both extremely smooth and very close to the ideal output.\n",
|
||||
"I've injected a lot of noise into the signal to allow you to visually distinguish the RTS output from the ideal output. In the graph above we can see that the Kalman filter, drawn as the green dotted line, is reasonably smooth compared to the input, but it still wanders from from the ideal line when several measurements in a row are biased towards one side of the line. In contrast, the RTS output is both extremely smooth and very close to the ideal output.\n",
|
||||
"\n",
|
||||
"With a perhaps more reasonable amount of noise we can see that the RTS output nearly lies on the ideal output. The Kalman filter output, while much better, still varies by a far greater amount."
|
||||
]
|
||||
@@ -541,13 +540,13 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsMAAAF2CAYAAACLY5UZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd0VVXexvHvbUluKiGhhyIkgUDoFpAERAQsoSmhSxcQ\nC2UcdUYddZh5xxkRHQuO0rEBUZo0xYgkEVBRRAKEGIoSQg019bbz/hGMRoKAXgjl+ayVBTk5Z5+9\ndy7w5PI7e5sMwzAQEREREbkGmSu6AyIiIiIiFUVhWERERESuWQrDIiIiInLNUhgWERERkWuWwrCI\niIiIXLMUhkVERETkmqUwLCIiIiLXrPMOw6mpqZjNZmbMmAGA0+lkxIgRBAcHU7duXZKSki5aJ0VE\nRERELgbr+Zzkcrl4/PHHiYmJwWQyAfDiiy+ydetWsrOz2bRpEwkJCbRt25aIiIiL2mEREREREW85\nr3eGX3nlFRISEqhatWrpsaSkJB5++GGCg4Pp0KEDbdu2ZdGiRRetoyIiIiIi3nbOMHzgwAFmz57N\nxIkTyxzPzMykYcOGDBo0iPnz59O4cWN27Nhx0ToqIiIiIuJt5wzDjzzyCE888QS+vr5ljufn5xMY\nGEh6ejo5OTkEBQWRl5d30ToqIiIiIuJtv1kz/Pnnn7N792769OkDgGEYGIYBQEBAAPn5+Xz77bcA\njBs3jqCgoDPaSE5O9nafRURERETK1alTpws6/zfD8MaNG1m/fj1m889vIKekpJCenk50dDTbt2+n\nVatWAGzbto0ePXqU205MTMwFdUrKFxYWxsKFC+nQoUNFd+WqoPn0Hs2ld2k+vUvz6T2aS+/SfP5+\nmZmZTJs2jeXLl5OQkMDIkSNp27YtaWlpF9zWb4bhcePGMW7cuNLPO3bsyL333svw4cN5/vnnefnl\nl0lISGDTpk1s2LCB2bNnX3AHREREROTalZ2VRXZqKhaXC7fVSkR8PBGRkWecZxgGqampvPnmm2zd\nupXBgweTmppKWFjYH7r/eS2tVp4JEyaQkZFB7dq1CQ0NZebMmdSqVesPdUZERERErh3ZWVnkJCXR\n2cen9FhyUhIkJpYG4qKiIhYvXsy0adMAGDVqFNOnT8fPz88rfbigMLxmzZqfL7RamTFjRukmHHJp\nqOTEuzSf3qO59C7Np3dpPr1Hc+ld1/p8ZqemlgRhjwecTvD1pZOPD6vT0rCHhjJ37lzmzJlD06ZN\nefrpp4mPjy/d88JbtB3zFeZa/0PjbZpP79Fcepfm07s0n96jufSua30+LS4XuN1YMzKw5OQAkJGb\ny/8++ID4+Hj279/PggULeOutt2jfvr3XgzD8gTIJEREREZE/wm0yYd2+HcPHh9UmE68uXMiWw4fp\n2KaNV+qBz4fCsIiIiIhceoWF1D5+nMcOHCB53z4AHmzdmvtuv516/ftfkiAMCsMiIiIicokd3buX\nd598khlffUWDRo3o2GEgxQVdqBa/mYi4uHJXk7hYVDMsIiIiIpdEZmYmfx4/nrhbbiHb4+H+p6bz\nY6tGvLYnlumr7qLyzSMvaRAGvTMsIiIiIhdRmfWBt2xhRNNmPDJiBi+fSuPw8YFQzQHtP6N/TF/8\n/Y1L3j+FYRERERHxul+vDzw0cRAdfe9nsu96TlYaCVUKwTDR0NGb//Qez/XX5VVIPxWGRURERMRr\ncnNzy6wPPG7cM2R8cwv/nhzEsUI7jPo32AqJMd3F83dOpGWtRhXaX4VhEREREfnDMjMzmTZtGsuX\nLychIYHnn/+Ajz9uxfhxdoodJY+ptWrloGvz/+PmNi5aVW9RwT0uoTAsIiIico3KzsoiOzUVi8uF\n22olIj7+gh5gK1MPvHUrgwcPZsqUDbwzrwZD/5IF+wMw4eGOdocZ/WcTN9zgAGIv3oB+B4VhERER\nkWtQdlYWOUlJJdshn5aclASJiecMxL+uBx4xYhQ9e77NjFmVmJz8HnT4O7Q6ycA17/PAw8HU7Vjr\noo7lj1AYFhEREbkGZaem0tnHB1N+PobVCr6+dPLxYXVa2lnD8K/rgR977Gl++OF2/vuyP9khH0DH\npyHsewCi3FUZ+fcc6ja9vLecVhgWERERuQZZHA4su3djzs3FZBgYFguekBBsBQWY8vIwAgNLz/11\nPfDUqUmsXduK8eMDOHHCDHfdDzf8D4B6fhE8mdeaO+56FOrUq6DRnT+FYREREZFrjOn4cSzffYfJ\n4cDZvDlYrZgKCjCdOIFx7BgBc+bgttv59MQJpq5dS/qePQweMoSZM9cxf349Bgyw43SaAGhUZy83\nhkewnBDuD7+HcQeq4ereC0+ty7c04pcUhkVERESuIdbvv8f3k0+o2aULH23dSiebDQAjIIBPbDbC\nundn+ubNTHvjDUxOJ/fHxXP/dcN5bVk7Ji/aCzsbYzYb3NrhMF2qzGVsnRwA/rszgc9X72D3xLuo\ndYUEYVAYFhEREbk2uN34pqRgzcqisGdPqteogatJE1anpWFxOjnqcLD+2DEWDxxI06ZNeeLpSRw7\n1oWX5u1kV+gs6PkY+OTRf/1KHm3wHdn7UrjVZcHIDQGnE1t2Nh1iY/k4I4NabdpU9GjPm8KwiIiI\nyFXOdPw49mXL8AQFkT9oENjtAERERlLg8ZSpB541K4kvvmjBQ28s43jM7dDlq9J2mlduzdDJULVy\nP36ckgM5OZgPHsTkdOJq0gTDbsfidFbUMH8XhWERERGRq9hPZRGOG2/E2aoVmEzlrg+8YEEaixbV\no39/f06dMsPtX0Gtr7ATQmLDexgcO4CYyj+vDOEKC8NtMsGvSiLcp8surhQKwyIiIiJXI5erpCxi\n1y4Ke/bEU6PGGesDjxo1igkTZjF7dhXuusuOy1XyUFzbtsX07N0fn/rX0a1BAnar/YzmI+LjSU5K\notMv1yl2OIiIi7s04/MShWERERGRq8yvyyJy8/OZ++KLpesD/+1vT1Poupm/r57BD5vug4UfY7EY\n9OhRwOjR+TRv7gRqn/4oX0RkJCQmltYcu202IuLiLmgHu8uBwrCIiIjIVcSamYlvcjKOm25ia0AA\n0556qrQe+O23F5Ce3oxHZi8np0kcNNgLQOKo7/jT8GrUru2+oHtFREZeceH31xSGRURERK4GLhe+\na9di2bWLVdWr88aUKaX1wMuWpbFiRR36P5LO0Rvvgps3AFDN05Tnbv0bXaLCgQsLwlcLhWERERGR\nK1B2VhbZqalYXC48TicReXlsyM1l6pdfgtnMqFGjeOaZWcydG0bXrv4UFJihfTLU3kCQqSpPtH2U\nATF9sJgtFT2UCqUwLCIiInKFyc7KIicpic4+PuTu28fM9esZfvAgMS1a8PSzzxIcfCtvvBHEI4/4\n4fGUPBQXH1/MsPuGsiM0n+FNhhPoE3iOu1wbFIZFRERErjDZqanUzs3l4c8/Z3FODj0jI1nVtz9L\njDt4+eUerN9gA8OE1Qo9exYwenQesbEuwEJXHq7o7l9WFIZFRERErhCGYZC6ejXPv/YaOUeOcF9U\nFOvuHUlydkcGL+tA5tFqUCcN8+jx3OY7gX8M7EStWp6K7vZlTWFYRERE5DJXVFTE4gULmD51Kqai\nIjpFRfFAl/68/f1tdJgfx+GCIKi0G58BvXBEL8YDnKz+KrVqdazorl/2zOdz0qBBg6hRowYhISE0\nb96cpUuXAvDMM89gs9kICgoiKCiI+vXrX9TOioiIiFxLcnNzeXHyZNq0bs2q6dOZ1Lcvb85dR07V\nJJq98y/+se4ODjstVOn2IJaHo3FEL8bP4sfEVhN56/a3Krr7V4Tzemf40UcfZcaMGfj6+rJ69WoS\nEhI4evQoAP3792fu3LkXtZMiIiIi15LMzEymvfEGyz/8kJ7R0SweN46jkffy+ns1WfmCH4ZR8lBc\ny6idJLRZy7QG83Dj4u7Iu/nLDX+hZmDNCh7BleO8wnCzZs2AkjoVh8NBYGAgJpOp9JiIiIiI/DGG\nYZCamsqbb7zB1u++Y2SzZmz461Os8+vDuPdqsXFjybbHNpvB3XcXMGpUHo0a2YHbabG/Er4WX1pW\nbVmxg7gCnXfN8NixY5k5cyZ2u53ly5fj7++PyWTiww8/JDw8nNq1azNp0iQSEhIuZn9FREREKtQv\n1/d1W61ExMdf8C5s2VlZbFmwALPTSW5+PumFhXywZAk4HDzYogXTJjzB+6fu5o5pEezZUxLXgis5\n6TZkCxMH16R69bIPxbWp0cZr47vWmIwLeGvX5XLxxhtv8MILL7Bt2zb27NlD1apVCQkJYenSpdx7\n77188803REdHl16TnJxMXFzcRen8tcZmswHgdDoruCdXB82n92guvUvz6V2aT+/RXMIPO3aw++23\n6eTjU3os2eHgukGDqNuw4QW10dLj4fWNG3l940bqhIYyNj6eTrGdeH1vd95MCic3t+R/4evUcxE/\n5j2+8PsHec6TbB+zHbvNflHGdyWz2WysWbOGTp06XdB1FxSGfxITE8PkyZO56667yhxPSEiga9eu\nPPTQQ6XHkpOTWbNmTenn7du3p0OHDhd6S0F/CXmb5tN7NJfepfn0Ls2n92gu4bPXX6fTkSNQXIzp\n++/BMMBi4dPQUG7p1g3DZgMfH/jp19MfhtVa+vs5U6bwxZo1LMzMpHeDBjwcFobZHcWf80bxacYN\nFBeXhODW17toO3I+qx3/YMfRDADqhdRjYe+FNK7SuCKn4bKxdu1aUlJSALBYLLRv3/6Cw/DvWlrt\nQvPz2LFjy3yem5v7e257zQsLCwM0f96i+fQezaV3aT69S/PpPZpLKDpxgsJTp7Clp+OpXBlPUBAm\nt5sim43jNhsmpxPy80t+dToxnf4wiotZu307r332Gd/88AMP1ajB9hYtyXC15fGdA1mxr1Line truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f093aff1eb8>"
|
||||
"<matplotlib.figure.Figure at 0x7f37ba2b7080>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 6
|
||||
"prompt_number": 9
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
|
||||
@@ -3,10 +3,34 @@ from IPython.core.display import HTML
|
||||
import matplotlib.pylab as pylab
|
||||
import matplotlib.pyplot as plt
|
||||
|
||||
|
||||
def test_filterpy_version():
|
||||
import filterpy
|
||||
min_version = [0,0,10]
|
||||
v = filterpy.__version__
|
||||
tokens = v.split('.')
|
||||
for i,v in enumerate(tokens):
|
||||
if int(v) > min_version[i]:
|
||||
return
|
||||
|
||||
i = len(tokens) - 1
|
||||
if min_version[i] > int(tokens[i]):
|
||||
raise Exception("Minimum FilterPy version supported is {}.{}.{}.\n"
|
||||
"Please install a more recent version." .format(
|
||||
*min_version))
|
||||
v = int(tokens[0]*1000)
|
||||
|
||||
def load_style(name='../styles/custom2.css'):
|
||||
styles = open(name, 'r').read()
|
||||
return HTML(styles)
|
||||
|
||||
|
||||
# ensure that we have the correct filterpy loaded. This is
|
||||
# called when this module is imported at the top of each book
|
||||
# chapter so the reader can see that they need to update FilterPy.
|
||||
test_filterpy_version()
|
||||
|
||||
|
||||
pylab.rcParams['lines.linewidth'] = 2
|
||||
pylab.rcParams['lines.antialiased'] = True
|
||||
pylab.rcParams['patch.linewidth'] = 0.5
|
||||
|
||||
Reference in new issue
Block a user