|
|
|
@@ -1,7 +1,7 @@
|
|
|
|
|
{
|
|
|
|
|
"metadata": {
|
|
|
|
|
"name": "",
|
|
|
|
|
"signature": "sha256:f358f0c9f6a227b3d0277e5be5d0a9a1dd6cd4b2acf4cfb48fa4f661a0e1add0"
|
|
|
|
|
"signature": "sha256:fed7ba512164fc952a0f0fbfb2a3ecd19c0cd7a80c987230271039a7ae2a51a6"
|
|
|
|
|
},
|
|
|
|
|
"nbformat": 3,
|
|
|
|
|
"nbformat_minor": 0,
|
|
|
|
@@ -261,7 +261,7 @@
|
|
|
|
|
"output_type": "pyout",
|
|
|
|
|
"prompt_number": 1,
|
|
|
|
|
"text": [
|
|
|
|
|
"<IPython.core.display.HTML at 0x7f90b149ad68>"
|
|
|
|
|
"<IPython.core.display.HTML at 0x7f0c1f6225f8>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
@@ -279,6 +279,8 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"**author's note**: In this chapter there is some duplication in my discussion of the Kalman filter code, and information about Q is strewn in a few different places. If it seems like I am repeating what I said, I am; this requires a copy edit.\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"The techniques in the last chapter are very powerful, but they only work in one dimension. The gaussians represent a mean and variance that are scalars - real numbers. They provide no way to represent multidimensional data, such as the position of a dog in a field. You may retort that you could use two Kalman filters for that case, one tracks the x coordinate and the other tracks the y coordinate. That does work in some cases, but put that thought aside, because soon you will see some enormous benefits to implementing the multidimensional case.\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"In this chapter I am purposefully glossing over many aspects of the mathematics behind Kalman filters. If you are familiar with the topic you will read statements that you disagree with because they contain simplifications that do not necessarily hold in more general cases. If you are not familiar with the topic, expect some paragraphs to be somewhat 'magical' - it will not be clear how I derived a certain result. I prefer that you develop an intuition for how these filters work through several worked examples. If I started by presenting a rigorous mathematical formulation you would be left scratching your head about what all these terms mean and how you might apply them to your problem. In later chapters I will provide a more rigorous mathematical foundation, and at that time I will have to either correct approximations that I made in this chapter or provide additional information that I did not cover here. \n",
|
|
|
|
@@ -393,7 +395,7 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90cd8cbef0>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0c1f611d68>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
@@ -561,7 +563,7 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a973acc0>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb44d550>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
@@ -615,7 +617,7 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAA1QAAAG3CAYAAACzLhRYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmwZGV5P/Dv2Xvvu987d2bYFBhIJQaxiFLKAG6IGIGS\nlCmLWDFkRCMRIwIhQZMfClS0gihSFlSCZSooLixWkiIBrYJCUFECpkBGmfXO3K3X06fPvv3+6JmB\nYdZ7b3efXr6fKurO3DtzznOY7qfPc973fV5h69atMYiIiIiIiGjFxKQDICIiIiIi6lcsqIiIiIiI\niFaJBRUREREREdEqsaAiIiIiIiJaJRZUREREREREq8SCioiIiIiIaJVYUA2pr3/969i0aVPSYRzT\npk2bcNdddyUdBhGtEnMNEa1Vv+SRdvv5z3+OTZs24dlnn006FDoGOekAKDmCIBz2+7qu4zvf+Q5+\n/OMfY/fu3QCAN77xjdiyZQs2b9686vP5vo+77roLDz30EHRdx2mnnYbPfOYzOPfcc1d9TCLqfcw1\nRLRW3c4jDz/8MJ544gk899xzWFpawgc+8AF8+ctfXvXxnnnmGfzgBz/A888/j3K5jJmZGbzjHe/A\nNddcg2KxuOrjUm/gCNUQi+PD7+n8wgsv4Bvf+AbWr1+Pv/7rv8anPvUpOI6Dj3/847j//vtXfb4v\nfvGLuOeee/Ce97wHf/d3fwcA2LJlC1544YVVH5OIeh9zDRGtVbfzyLe+9S08/fTTOPPMMwEcuaA7\nXnfccQdefPFFfOADH8DNN9+M888/Hw888ACuuOIKNJvNNR2bkscRKjrEG9/4Rjz22GOYmZk58L0r\nrrgC733ve3HnnXfiwx/+MERxZbX43Nwcvve97+EjH/kI/v7v/x4AcPHFF+M973kPvvrVr+K+++5r\n6zUQUe9jriGitepEHgGAu+++G7OzswDQlumGN954I9785jcf9L3169fj1ltvxQ9/+EN89KMfXfM5\nKDkcoaJDzM7OHpSYACCVSuFNb3oTdF1HtVpd8TF/8pOfII5jXH755Qe+l8vlcNFFF+EXv/gFDMNY\nc9xE1F+Ya4horTqRR/Yft51eX0wBwNve9jYAwPbt29t6Luo+FlR03CqVCjRNW9Vc361bt0KSJJx+\n+ukHff+MM85AGIb43e9+164wiajPMdcQ0VqtJY90S7lcBgBMTU0lHAmtFQsqOi6/+c1v8Nxzz+Hi\niy+Goigr/vulUgnFYhGSJOGb3/wm3vKWt+AXv/gFxsfHAbyaVIhouDHXENFarTWPdMv9998PWZZx\nySWXJB0KrRELKjom27Zx/fXXY2xsDJ/97GdXdQzP8w4ktfn5eZimiUqlAlVVAQCO47QtXiLqT8w1\nRLRW7cgj3fDwww/jsccew5YtW3DiiScmHQ6tEQsqOqooinDDDTdg165duPPOOzExMbGq46iqCs/z\nAAD/8A//gCeffBLve9/7DnwvlUq1LWYi6j/MNUS0Vu3KI532wgsv4POf/zw2b96Ma665JulwqA3Y\n5Y+O6vbbb8djjz2GL3/5y3jLW96y6uNMTk5C13WEYQhJkjA5OQmgNccZQM8mPSLqDuYaIlqrduWR\nTtq1axeuvvpqnHrqqfjqV7+65nbs1Bs4QkVH9K//+q/49re/jRtvvHHN83tPP/10RFGEl19++aDv\nv/TSSxBFEaeeeuqajk9E/Yu5hojWqp15pFMqlQquuuoqFAoF3HvvvUin00mHRG3CgooO6z/+4z/w\n5S9/GVdffXVb9ka48MILIYoiHnzwwQPfazabePTRR3HOOecgn8+v+RxE1H+Ya4hordqdR1bjscce\nw0UXXYQbbrjhsD83TRNbtmyB53m47777MDY21uUIqZM45Y8O8etf/xo33ngjTjrpJJxyyil45JFH\nDvr529/+9gMds47Xxo0b8aEPfQj3338/BEHAqaeeih/84AcwDAPXXnttO8Mnoj7BXENEa9WJPAK0\n9rR77Uj3b3/7W9x9990AgHe+852HbM1gGAZ27tx5xBbon/vc5/Diiy9iy5YtePbZZw/62eTkJM49\n99wVx0i9gwUVHWLbtm0IggA7d+7E9ddff9DPBEHAt7/97VUlp5tvvhmjo6N46KGH8L3vfQ+nn346\n7rnnHvzhH/5hu0Inoj7CXENEa9WpPPLYY4/hoYceOnCcrVu34uWXX4YgCJidnT2koDrWWqj9f/ee\ne+455GfnnHMOC6o+x4KKDnHZZZfhsssua/txFUXBZz7zGXzmM59p+7GJqP8w1xDRWnUqj9x22224\n7bbb2hbHT37yk3aERT2Ka6iIiIiIiIhWiQUVERERERHRKrGgGlKCIHDvAyLqOOYaIlqrYc4jw3rd\n/UbYunVrnHQQRERERERE/YgjVERERERERKvEgoqIiIiIiGiVWFANqa9//evYtGlT0mEc06ZNm3DX\nXXclHQYRrRJzDRGtVb/kkXb7+c9/jk2bNh2yETD1Hu5DNcSOtdDxkUcewb333ovdu3djZmYGV155\nJa688spVnWvbtm347ne/i6effhrz8/MoFAr4gz/4A1x77bV4wxvesKpjElF/6GauAYBXXnkFX/nK\nV/CrX/0Kvu/jtNNOw1/91V9h8+bNqz4mESXraHnkl7/8JX70ox/hueeewyuvvILp6Wk88cQTqz5X\nJ+5ZnnnmGfzgBz/A888/j3K5jJmZGbzjHe/ANddcg2KxuOpYqTdwhGqIxfGR+5H813/9F2644Qas\nW7cON998M37/938fX/rSl3Dfffet6lwPPfQQfvSjH+GP/uiPcNNNN+FP//RP8b//+7+4/PLL8eKL\nL672EoioD3Qz1ywtLeEjH/kIfv3rX+Oqq67CddddB8/z8IlPfAJPP/30ai+BiBJ2tDzy3//933jk\nkUcwOjqKiYmJNXfG68Q9yx133IEXX3wRH/jAB3DzzTfj/PPPxwMPPIArrrgCzWZzTfFS8jhCRYeI\n4xhf+cpXsGnTJtxzzz0QBAFXXHEFdF3HN77xDXz4wx9GOp1e0TEvvvhifOpTn0IqlTrwvfPPPx+X\nXnop7r77bnzjG99o92UQUY/rRK757ne/C13X8e///u84++yzAQCXX3453vWud+HOO+/Eueee24lL\nIaIE/eVf/iWuv/56KIqCK6+8EnNzc2s6XifuWW688Ua8+c1vPuh769evx6233oof/vCH+OhHP7qm\nmClZHKGiQ2zduhXz8/O49NJLD3rK86EPfQjNZhM/+9nPVnzMM88886DEBLTWLIyMjGD79u1rjpmI\n+k8ncs1LL72EdDp9oJgCgEwmg7e97W349a9/jWq12pbYiah3TE1NQVGUth2vE/csry+mAOBtb3sb\nAPA+aACwoKJDvPzyywCAM84446Dv7//91q1b23Iex3Fgmiampqbacjwi6i+dyDWCIEBV1UO+n0ql\nEMcxb1yIaFU6cc9SLpcBgPdBA4AFFR2iVCoBACYmJvDMM8/gLW95C+69915MTEwAeDUBrNX3v/99\n+L6PSy+9tC3HI6L+0olcc/LJJ0PXdczPzx/4XhzHeOGFFwCAI1REtCqduGe5//77IcsyLrnkkrYd\nk5LBgooO4XkeAEBRFFQqFTSbTczPzx946us4zprPsW3bNvzzP/8zzjnnHFx22WVrPh4R9Z9O5JoP\nfehDkCQJN954I1566SXs2LEDt9xyC5aXlwEAruu27wKIaCh04p7l4YcfxmOPPYYtW7bgxBNPbMsx\nKTlsSkGH2H8z4/s+LrnkEpxzzjmYmpo60IXm9fOKV6pWq+ETn/gERkdHcccdd6w5XiLqT53INW94\nwxvwhS98Abfffjsuv/xyAMApp5yCT37yk7j99ttX3OSCiIZbJ+5ZXnjhBXz+85/H5s2bcc0117Tl\nmJQsjlDRISYnJwEcOre3UqkAwIHpOKvhOA4+8YlPQNd13HvvvRgfH19jtETUrzqVa/7kT/4EP/3p\nT/HAAw/gwQcfxH/+538e+Nm6devWEjIRDZFO3LPs2rULV199NU499VR89atfXXOLd+oNLKjoEKef\nfjqAVres19r/+/0/X6koivDZz34WW7duxTe/+U1u6Es05DqVawAgnU7jTW96E84880wIgoCf/vSn\nyGQyOPXUU1cfMBENjU7cs1QqFVx11VUoFAq49957OWI+QFhQ0SHOOOMMzM7O4uGHH0YURQe+/8Mf\n/hD5fB5vfetbV3Xcf/zHf8QTTzyBO++8E2eddVa7wiWiPtWpXPN6zz77LJ566ilccsklh+0ASETD\nZWlpCRdddBHe9773HfHPtPuexTRNbNmyBZ7n4b777sPY2Niaj0m9g2uo6LD+5m/+Btdddx22bNmC\n9773vfjZz36Gp556Ctdff/2qnqh861vfwgMPPIB3vvOdqNVqeOSRRw76+Qc/+MF2hU5EfaTduQYA\n/uIv/gJvetObsG7dOmzfvh3f+c53sG7dOlx77bVtjp6IesHLL7+Mn/zkJwCAvXv3otls4u677wbQ\nenBzwQUXHPTnfd/Hzp07jzjdrhP3LJ/73Ofw4osvYsuWLXj22WcP+tnk5CQ3He9zRy2oHn/8cdx7\n77146aWXcMkll+C2224D0HohfuELX8Cjjz6KYrGI66+//qhVPvWfSy65BEEQ4N5778X/+3//D+vW\nrcNNN92EP/uzP1vV8bZu3QpBEPDjH/8YP/7xjw/6mSAILKiI+WZItTvXAK0NOB9++GGUSiWMjIzg\nkksuwac//Wk+EaYDmG8Gy29+8xt87WtfA4ADRdLXvvY1CIKASy+99JCC6lg6cc/y8ssvQxAE3HPP\nPYf87JxzzmFB1eeOWlAVCgVcddVVePrppw9qX/utb30Lr7zyCp588km89NJL+PjHP46zzjLine truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a93e9278>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb4962b0>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
@@ -713,7 +715,7 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAsgAAAGDCAYAAAA23OZEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAGNxJREFUeJzt3X+s1nX9//HH+cHhnNPhl4hKDgWhTDqKLvJTKyWkEhFs\n08olTZ225Wzr12i1yuZi69esP9PWtNSs+bM0JXBSg9YPiITUQKYB/ijxByIhcI6Hc53vH83zfR0B\nuRTOdR3wdtvcuK7rxXU9OXtz7e6b94+G9evX9wUAAEiSNNZ7AAAAGEoEMgAAFAQyAAAUBDIAABQE\nMgAAFAQyAAAUmus9wGs99dRT9R4BAIC3gAkTJuz1+SEXyEly0kkn1XsEGGDs2LG56667MmPGjHqP\nAnuwfTJU2TYZytatW7fP1xxiAQAABYEMAAAFgQxVcugPQ5ntk6HKtsmhSCBDlXzJM5TZPhmqbJsc\nigQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQE\nMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIA\nABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAU\nBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQy\nAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAA\nFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQEMgAAFAQyAAAUBDIAABQE\nMgAAFAQyAAAUBDIAABQEMgAAFJpr+WELFizIX//61+zatSvHHntsvvCFL2TWrFm1HAEAGESVSl9+\n97eNufn367Jt5+4kyaj25lw8a2pmT5+YxsaGOk8I+1fTQP7MZz6T73znO2lpacmf/vSnfPazn83f\n/va3tLW11XIMAGAQ/HfnK7n0miVZs+G5dPdUBry2cv3mTDthXG5cMDsj21vqNCFUp6aHWLzrXe9K\nS0tL+vr60tPTk7e97W1paPB/kgBwqKtU+nLpNUuyYv3mPeI4Sbp7Klm5/tlces2SVCp9dZgQqlfT\n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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a947f8d0>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb1aa1d0>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
@@ -740,7 +742,7 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a93ecac8>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb1a78d0>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
@@ -767,7 +769,7 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAs8AAAGDCAYAAADUAP09AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8XOV9L/7PmX3TMhrJkizJK7ZlLMxizGosTEIIISQt\nkJKlSctte0Mht80vJSnwuiVJnXKT26S0/fW2uW0T0pJmaYAAaRICJmCzOKy2wbbkfdFqSaPRMvt2\n7h/nPGeZGUlH8qKR5/N+vXhhjWaOjl/W9zzf53m+z/NIBw4ckEFERERERDOyzfcNEBEREREtFEye\niYiIiIgsYvJMRERERGQRk2ciIiIiIouYPBMRERERWcTkmYiIiIjIIsd834BVPT09830LRERERFQh\n2traSr6+YJJnAFi7du183wLNQSgUwpNPPonOzs75vhWiisLYI5ofjL2Fr6ura8rvsWyDiIiIiMgi\nJs9ERERERBYxeaZzgiU3RPODsUc0Pxh75y8mz3RO8CFCND8Ye0Tzg7F3/mLyTERERERkEZNnIiIi\nIiKLmDwTEREREVnE5JmIiIiIyCImz0REREREFjF5JiIiIiKyiMkzEREREZFFTJ6JiIiIiCxi8kxE\nREREZBGTZyIiIiIii5g8ExERERFZxOSZiIiIiMgiJs9ERERERBYxeSYiIiIisojJMxERERGRRUye\niYiIiIgsYvJMRERERGQRk2ciIiIiIouYPBMRERERWXTOkudt27bhzjvvxEUXXYQHHnhAez2TyeDB\nBx/EZZddhi1btuCXv/zlubolIiIiIqJZcZyrH1RdXY0//MM/xGuvvYZkMqm9/r3vfQ+HDx/Gjh07\nsH//fnz2s5/FpZdeiqampnN1a0RERERElpyzkecrrrgCN954I2pqakyvP/vss/j0pz+NQCCAK664\nApdeeimef/75c3VbRERERESWnbORZ0GWZdPXx48fx/Lly3HffffhhhtuwMqVK3Hs2LFzfVtERERE\nRDM658mzJEmmrxOJBHw+Hw4dOoSOjg74/X4MDg6W/GwoFDoXt0hnmNPpBMB/P6JzjbFHND8Ye+e3\neR959nq9SCQSePrppwEAX/va1+D3+0t+duvWrdqfN2/ejM7OzrN3o0RERERUEbZv344dO3ZoX2/Z\nsmXK9877yPOyZctw5MgRrFu3DgBw5MgRvO997yv52Xvuucf0dTgcPjs3SWeU6Hnz34vo3GLsEc0P\nxt7C09HRgY6ODu3rrq6uKd97zhYM5vN5pFIp5HI55HI5pNNpZLNZ3HzzzXjssccwOTmJ119/Hbt3\n78aNN954rm6LiIiIiMiyczby/NRTT+HBBx/Uvn7mmWfwuc99DnfffTeOHj2Kzs5O1NTU4OGHH0Zj\nY+O5ui0iIiIiIsukAwcOyDO/bf719PRg7dq1830bNAecviKaH4w9ovnB2Fv4urq60NbWVvJ7PJ6b\niIiIiMgiJs9ERERERBYxeSYiIiIisojJMxERERGRRUyeiYiIiIgsYvJMRERERGQRk2ciIiIiIouY\nPBMRERERWcTkmYiIiIjIIibPREREREQWMXkmIiIiIrKIyTMRERERkUVMnomIiIiILGLyTERERERk\nEZNnIiIiIiKLmDwTEREREVnE5JmIiIiIyCImz0REREREFjF5JiIiIiKyiMkzEREREZFFTJ6JiIiI\niCxi8kxEREREZBGTZyIiIiIii5g8ExERERFZxOSZiIiIiMgiJs9ERERERBYxeSYiIiIisojJMxER\nERGRRUyeiYiIiIgsYvJMRERERGQRk2ciIiIiIouYPBMRERERWcTkmYiIiIjIIibPREREREQWMXkm\nIiIiIrKIyTMRERERkUVMnomIiIiILGLyTERERERkEZNnIiIiIiKLmDwTEREREVnE5JmIiIiIyCIm\nz0REREREFjF5JiIiIiKyiMkzEREREZFFTJ6JiIiIiCxi8kxEREREZBGTZyIiIiIii5g8ExERERFZ\nxOSZiIiIiMgiJs9ERERERBYxeSYiIiIisqhskucDBw7g4x//ODZs2IAPfvCD2LZt23zfEhERERGR\nSdkkz1/60pdw/fXX4+2338ZDDz2E++67D2NjY/N9W0REREREmrJJno8ePYqbbroJAHDNNdfA7Xaj\nt7d3nu+KiIiIiEhXNsnzddddh2effRa5XA6vvPIKAoEAVq9ePd+3RURERESkccz3DQj3338/7rrr\nLvzDP/wDXC6X9n+jUCg0T3dHp8PpdALgvx/RucbYI5ofjL3zW1kkz8lkEr//+7+PBx54AO9///vx\nzjvv4J577sFPf/pTLF68WHvf1q1btT9v3rwZnZ2d83G7RERERHQe2b59O3bs2KF9vWXLlinfWxbJ\n88GDBxGLxXDjjTcCADZs2IC2tjbs3r3blDzfc889ps+Fw+Fzep80N6LnzX8vonOLsUc0Pxh7C09H\nRwc6Ojq0r7u6uqZ8b1nUPLe2tiKZTGLbtm2QZRnvvfcejhw5ghUrVsz3rRERERERacpi5Lmurg6P\nPPIIHnnkEXzpS19CKBTCgw8+iPb29vm+NSIiIiIiTVkkzwBwww034IYbbpjv2yAiIiIimlJZlG0Q\nERERES0ETJ6JiIiIiCxi8kxEREREZBGTZyIiIiIii5g8ExERERFZxOSZiIiIiMgiJs9ERERERBYx\neSYiIiIisojJMxERERGRRUyeiYiIiIgsYvJMRERERGQRk2ciIiIiIouYPBMRERERWcTkmYiIiIjI\nIibPREREREQWMXkmIiIiIrKIyTMRERERkUVMnomIiIiILGLyTERERERkEZNnIiIiIiKLmDwTERER\nEVnE5JmIiIiIyCImz0REREREFjF5JiIiIiKyiMkzEREREZFFTJ6JiIiIiCxi8kxEREREZBGTZyIi\nIiIii5g8ExERERFZxOSZiIiIiMgiJs9ERERERBYxeSYiIiIisojJMxERERGRRUyeiYiIiIgsYvJM\nRERERGQRk2ciIiIiIouYPBMRERERWcTkmYiIiIjIIibPREREREQWMXkmIiIiIrKIyTMRERERkUVM\nnomIiIiILGLyTERERERkEZNnIiIiIiKLmDwTEREREVnE5JmIiIiIyCImz0REREREFjF5JiIiIiKy\niMkzEREREZFFTJ6JiIiIiCxi8kxEREREZFHZJM/JZBIPPfQQrrzySmzcuBFf/epX5/uWiIiIiIhM\nHPN9A8LDDz+Mnp4e/PznP0coFMLhw4fn+5aIiIiIiEzKInlOJpN4+umn8eSTT6K+vh4AsGrVqnm+\nKyIiIiIis7Io2zh+/DgkScK2bdtw7bXX4pZbbsG2bdvm+7aIiIiIiEzKYuQ5Go0ik8mgt7cXL774\nInbt2oW7774bzz33HBoaGrT3hUKhebxLmiun0wmA/35E5xpjj2h+MPbOb5aT5/7+frz11luIRCK4\n7bbbUFVVhb179yIUCqG5ufm0bsLj8SCXy+Guu+6Cy+XClVdeieXLl2PPnj14//vfr71v69at2p83\nb96Mzs7O0/q5RERERETbt2/Hjh07tK+3bNky5XstJc/d3d344Q9/iBUrVuDo0aPIZDIAgMHBQezZ\nswef+tSnTuuG29raIEnSjO+75557TF+Hw+HT+rl0boieN/+9iM4txh7R/GDsLTwdHR3o6OjQvu7q\n6pryvZaS5xdeeAG33norLr/8cvzlX/6l9vqaNWvw5ptvnsatKmpqarBx40Z873vfw0MPPYTdu3fj\n2LFjuPjii0/72jS/fvBiN7bvHYDdZsPNl7fh1itXzPctEVWEHe/14vFXX0Y8lcGGlSF89kPrYbPN\nPEhBRKfncP8Yvvjd1zA8FseKxgDuu30DfB7nfN8WnUGWkueRkRGsXLmy6HWfz4dkMnlGbuThhx/G\nAw88gI0bN6KxsRF//dd/bap3poUlm8vjK9/fiUef26+99vRrB3Hotgj+v9suszTTQERz8+/b9uN/\n/ttryOVlAMAv3ziC3UeH8bd3Xw+vqyyWuhCdl17d148/+tvnMR5Pa6/t7BrAo3/2ATQF/fN4Z3Qm\nWXqKBgIBDA0NIRgMml4/ceJE0Wtz1draiscee+yMXIvm39d++DoefW4/XA4bvvJ7nYgm0/j6D17D\nt558B26XHffeesl83yLReemJVw7hgUdfBQD88Ucuw9ol9XjwX1/Ef71+DLIM/POfvn+GKxDRXOw/\nGcanvvFLZHJ5fHDjSnz8hgvx5UdfwrvHRvA7f/VzbPv67XA57PN9m3QGWEqeN27ciGeeeQY333wz\nZFnGyMgIDh8+jOeff56L9qjIwd4IvvurfbBJEv7jz2/GrdddBABYGvLgs3//Av72p7tw+6ZV7IUT\nnWHRRBp/9cM3AABf/t2r8MDvXg8AuLClCrd+5Wn8/I1jeGVfHzata5nHuyQ6/8iyjC8/thOZXB53\nXLcK/3b/b8Nut+GyZTX4rb/8GY4MjOO7v9qHu29ZP9+3SmeApX2eN2/ejIsvvhiPP/44stksHnvs\nMfziF7/A5ZdfjmuvvfZs3yMtIOIBksvL+N33teOaCxdr3/vwlStw8+XLEE9l8fCP3pjHuyQ6P/3/\nz+zBqbE4Ll3ZgD+8SV/4snZJHf7HR5TZnq889htkc/n5ukWi89Iv3jyO1/YPIBhw46ufvhp2u5Je\nhaq92PqZqwEAjzz5DobH4/N5m3SGWC5++8AHPoDOzk4MDw8DABoaGuB2u8/ajdHCtLNrADv29qHG\n58IX77i86Pt/8akr8cLuk3jilcO499aLsaa1bh7ukuj8E55I4J9/8S4A4KufvrpoceB//9BF+OFL\n3ejqGcXTO4/g9k08xZXoTJBlGV//T2XzhC9+7HLU+s250fXr2/D+S5dg266T+Idn9uCrn7Line truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a93b2940>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfaf8deb8>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
@@ -798,7 +800,7 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAs8AAAGDCAYAAADUAP09AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8XOV9L/7PmX0fSaORZFmbLRu8CGxjtrDYmC0kJCEh\nkIQsJdybtClN7m170zTQNrn90dJXmqZpmrS/JPdmaaHJJVAIcAlgzGKzg/dN3iRrX2aRNItmnzn3\nj3OeMzOyJB/bWgb8eb9evOzRnBkf4PE5n/M83+d5pKNHj8ogIiIiIqLTMiz2CRARERERvVcwPBMR\nERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6WRa7BPQq7+/f7FPgYiIiIjOE83N\nzdP+/D0TngFg9erVi30KRKfw+Xx4/PHHsXnz5sU+FaIybJtUydg+qZJ1dnbO+B7LNoiIiIiIdGJ4\nJiIiIiLSieGZaA6wpIgqFdsmVTK2T3ovYngmmgO8AVClYtukSsb2Se9FDM9ERERERDoxPBMRERER\n6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERE\nRDoxPBMRERER6cTwTERERESkE8MzEREREZFODM9ERERERDoxPBMRERER6cTwTERERESkE8MzERER\nEZFODM9ERERERDoxPBMRERER6cTwTERERESk04KF523btuHTn/40LrroItx3333az7PZLO6//35c\ncskl2LJlC5599tmFOiUiIiIiojNiWqg/yOPx4Etf+hLeeOMNpFIp7ee//OUvceLECezYsQOHDx/G\nH/zBH2DDhg1oaGhYqFMjIiIiItJlwXqeL7/8ctx0003wer1lP3/uuefwhS98AS6XC5dffjk2bNiA\nF154YaFOi4iIiIhItwXreRZkWS573dPTg2XLluHrX/86rr/+erS3t+PkyZMLfVpERERERKe14OFZ\nkqSy18lkEg6HA8ePH0dHRwecTidGRkam/azP51uIUyQ6I2azGQDbJ1Uetk2qZGyf9F616D3Pdrsd\nyWQSTz75JADgb/7mb+B0Oqf97AMPPKD9ftOmTdi8efP8nSgRERERnRe2b9+OHTt2aK+3bNky47GL\n3vPc1taGrq4urF27FgDQ1dWFG264YdrP3nvvvWWvw+Hw/Jwk0RkQvSZsj1Rp2DapkrF9UiXp6OhA\nR0eH9rqzs3PGYxdswmChUEA6nUY+n0c+n0cmk0Eul8OHPvQhPPTQQ4jFYnj77bexd+9e3HTTTQt1\nWkREREREui1Yz/Nvf/tb3H///drrp556Cl/96lfxla98Bd3d3di8eTO8Xi8efPBB1NfXL9RpERER\nERHpJh09elQ+/WGLr7+/H6tXr17s0yA6BYceqVKxbVIlY/ukStbZ2Ynm5uZp3+P23EREREREOjE8\nExERERHpxPBMRERERKQTwzMRERERkU4Mz0REREREOjE8ExERERHpxPBMRERERKQTwzMRERERkU4M\nz0REREREOjE8ExERERHpxPBMRERERKQTwzMRERERkU4Mz0REREREOjE8ExERERHpxPBMRERERKQT\nwzMRERERkU4Mz0REREREOjE8ExERERHpxPBMRERERKQTwzMRERERkU4Mz0REREREOjE8ExERERHp\nxPBMRERERKQTwzMRERERkU4Mz0REREREOjE8ExERERHpxPBMRERERKQTwzMRERERkU4Mz0RERERE\nOjE8ExERERHpxPBMRERERKQTwzMRERERkU4Mz0REREREOjE8ExERERHpxPBMRERERKQTwzMRERER\nkU4Mz0REREREOjE8ExERERHpxPBMRERERKQTwzMRERERkU4Mz0REREREOjE8ExERERHpxPBMRERE\nRKQTwzMRERERkU4Mz0REREREOjE8ExERERHpxPBMRERERKQTwzMRERERkU4Mz0REREREOjE8ExER\nERHpxPBMRERERKRTxYTno0eP4jOf+Qw2btyIW265Bdu2bVvsUyIiIiIiKlMx4fkb3/gGrrvuOuza\ntQvf+ta38PWvfx0TExOLfVpERERERJqKCc/d3d344Ac/CAC46qqrYLVaMTAwsMhnRURERERUVDHh\n+dprr8Vzzz2HfD6P1157DS6XCxdccMFinxYRERERkca02CcgfPOb38Q999yDH/3oR7BYLNqvpXw+\n3yKdHdHMzGYzALZPqjxsm1TJ2D7pvaoiwnMqlcIXv/hF3Hfffbjxxhuxe/du3HvvvXjiiSfQ2Nio\nHffAAw9ov9+0aRM2b968GKdLRERERO8j27dvx44dO7TXW7ZsmfHYigjPx44dw+TkJG666SYAwMaN\nG9Hc3Iy9e/eWhed777237HPhcHhBz5NoOqLXhO2RKg3bJlUytk+qJB0dHejo6NBed3Z2znhsRdQ8\nNzU1IZVKYdu2bZBlGQcOHEBXVxeWL1++2KdGRERERKSpiJ7nmpoafP/738f3v/99fOMb34DP58P9\n99+PVatWLfapERERERFpKiI8A8D111+P66+/frFPg4iIiIhoRhVRtkFERERE9F7A8ExEREREpBPD\nMxERERGRTgzPREREREQ6MTwTEREREenE8ExEREREpBPDMxERERGRTgzPREREREQ6MTwTEREREenE\n8ExEREREpBPDMxERERGRTgzPREREREQ6MTwTEREREenE8ExEREREpBPDMxERERGRTgzPREREREQ6\nMTwTEREREenE8ExEREREpBPDMxERERGRTgzPREREREQ6MTwTEREREenE8ExEREREpBPDMxERERGR\nTgzPREREREQ6MTwTEREREenE8ExEREREpBPDMxERERGRTgzPREREREQ6MTwTEREREenE8ExERERE\npBPDMxERERGRTgzPREREREQ6MTwTEREREenE8ExEREREpBPDMxERERGRTgzPREREREQ6MTwTERER\nEenE8ExEREREpBPDMxERERGRTgzPREREREQ6MTwTEREREenE8ExEREREpBPDMxERERGRTgzPRERE\nREQ6MTwTEREREenE8ExEREREpBPDMxERERGRTgzPREREREQ6MTwTEREREenE8ExEREREpBPDMxER\nERGRThUTnlOpFL71rW/hiiuuwGWXXYa//uu/XuxTIiIiIiIqY1rsExAefPBB9Pf345lnnoHP58OJ\nEycW+5SIiIiIiMpURHhOpVJ48skn8fjjj6O2thYAsHLlykU+KyIiIiKichVRttHT0wNJkrBt2zZc\nffXVuPXWW7Ft27bFPi0iIiIiojIV0fMcj8eRzWYxMDCAl19+GXv27MFXvvIVbN26FX6/XzvO5/Mt\n4lkSTc9sNgNg+6TKw7ZJlYztk96rdIfnoaEh7Ny5E+Pj47j99tvhdrtx8OBB+Hw+LFmy5JxOwmaz\nIZ/P45577oHFYsEVV1yBZcuWYd++fbjxxhu14x544AHt95s2bcLmzZvP6c8lIiIiItq+fTt27Nih\nvd6yZcuMx+oKz0eOHMGvf/1rLF++HN3d3chmswCAkZER7Nu3D5/73OfO6YSbm5shSdJpj7v33nvL\nXofD4XP6c4nmgug1YXukSsO2SZWM7ZMqSUdHBzo6OrTXnZ2dMx6rq+b5xRdfxEc/+lHcfffdMBqN\n2s8vvPBC9PX1ncOpKrxeLy677DL88pe/RC6Xw86dO3Hy5EmsW7funL+baD79ZscxfPyvHsWXv/cM\nAhOJxT4dIk3PaBRf/M7T+OS3H8NzO3sW+3SINIWCjO8/vhsf+8vf4M9/+iIyufxinxLRGdHV8xwK\nhdDe3n7Kzx0OB1Kp1JycyIMPPoj77rsPl112Gerr6/Hd7363rN6ZqNI89VYX/uQn27XX+7uG8dhf\nfAQOm3kRz4oIGIul8Pm/fxYnR6IAgK07u/Hwn9+Ca9YuXeQzIwK+85t38aOn9wFQ2uZAYBw/+Mp1\nukagiSqBrp5nl8uFQCBwys97e3tRXV09JyfS1NSEhx56CHv27MFzzz1XVutMVGkGgjH88Y+V4HzP\nLevQUufBvu4Q/ufDby3ymREB/+OnO3ByJIo1rbW4c/NqZPMFfPmftmFiMr3Yp0bnuW17+vCjp/fB\naJDwJ5+8HE6bGf/52gk8/NKRxT41It10hefLLrsMTz31FA4ePAhZlhEKhfDOO+/g2WefxaWXXjrf\n50hUcX7xwmGks3l8+LJl+Nf/fgue+P/uhCQBj756DKFIcrFPj85jJ4YmsHV3L2xmI576m0/h3/78\nY7hyVQOiiQz+zytHF/v06Dz342f2AwD+7I5L8Xdfvh7//NUPAgB++uwBFAryYp4akW66wvOmTZuw\nbt06PPbYY8jlcnjooYfwu9/9Dpdeeimuvvrq+T5HoooymcriVy8rvSR/9NF1kCQJa9v8uHFDCzK5\nAh56aeZJBkTz7RdbDwEAbr96BZr8HhgMEr5y68Xae7l8YTFPj85jh/vCeLNzGE6bGXfftAYA8Okt\na9Doc6J7OIKX9/cv8hkS6aN7qbqbb74ZmzdvRjAYBAD4/X5YrdZ5OzGiSvX0W92IJjK4dGU91rcX\n6/K/dEsHXtjdh4dfPII//vgG1u/Rgktlcnj01eMAgP96S3HW+A3rW9BW70HPaBSv7B/AjRtaFusU\n6Tz28ItKp8NnNl8Aj8MCADAZDbjnprX42//zDh5+8QhuWM+2SZXvjHYYzOVycLlccLlcSCaTmJiY\nwMTExHydG1FFenGvssLMJ69ZUfbzq9c0oqHaiZHxSRzqHVuMU6Pz3FtHhjGZyqKjzYdVzTXazw0G\nCZ+8Wmmvov0SLSRZlrFtj7h2rix773b1WvrqoUGkMrkFPzeiM6Wr53n79u3Yvn27tr7zVKLine truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a94aa5c0>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb41c390>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
@@ -863,7 +865,7 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a96dc748>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb3689e8>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
@@ -965,7 +967,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"Before we go any further let's gain some familiarity with the equations by programming them in Python. I have written a production quality implementation of the Kalman filter equations in my `filterpy` library, and we will be using that later in the chapter and the remainder of the book. We could just look at that code, but it contains a significant amount of code to ensure that the computations are numerically stable, that you do not pass in bad data, and so on. Let's just try to program this.\n",
|
|
|
|
|
"Before we go any further let's gain some familiarity with the equations by programming them in Python. I have written a production quality implementation of the Kalman filter equations in my `FilterPy` library, and we will be using that later in the chapter and the remainder of the book. We could just look at that code, but it contains a significant amount of code to ensure that the computations are numerically stable, that you do not pass in bad data, and so on. Let's just try to program this.\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"The filter equations are *linear algebra* equations, so we will use the Python library that implements linear algebra - numpy. In the filter equations a **bold** variable denotes a matrix. Numpy provides two types to implement matrices: `numpy.array` and `numpy.matrix`. You might suspect that the latter is the one we want to use. As it turns out `numpy.matrix` does support linear algebra well, except for one problem - most of the rest of `numpy` uses `numpy.array`, not `numpy.matrix`. You can pass a `numpy.matrix` into a function, and get a `numpy.array` back as a result. Hence, the standard advice is that `numpy.matrix` is deprecated, and you should always use `numpy.array` even when `numpy.matrix` is more convienient. I ignored this advice in a early version of this code and ended up regretting that choice, and so now I use 'numpy.array' only.\n",
|
|
|
|
|
"\n",
|
|
|
|
@@ -1208,7 +1210,7 @@
|
|
|
|
|
" \n",
|
|
|
|
|
"And that is it, we have implemented a Kalman filter!\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"Well, you probably do not want to cut and paste that code into every project that uses a Kalman filter. So let's put this into a class. I don't intend to teach you how to program here, so I will instead point you to my `KalmanFilter` class from my filterpy module, available on github [4]. However, I have written a simplified version of that class below for your inspection."
|
|
|
|
|
"Well, you probably do not want to cut and paste that code into every project that uses a Kalman filter. So let's put this into a class. I don't intend to teach you how to program here, so I will instead point you to my `KalmanFilter` class from my FilterPy module, available on github [4]. However, I have written a simplified version of that class below for your inspection."
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
@@ -1322,13 +1324,13 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"We will see how to use this class in the rest of the chapter, so I will not belabor its use here. There are several additions to the version in filterpy that make it more usable. For example, instead of using variables for the $R$, $P$, and so on, the `filterpy` version uses properties. This allows you to write something like:\n",
|
|
|
|
|
"We will see how to use this class in the rest of the chapter, so I will not belabor its use here. There are several additions to the version in `FilterPy` that make it more usable. For example, instead of using variables for the $R$, $P$, and so on, the `FilterPy` version uses properties. This allows you to write something like:\n",
|
|
|
|
|
"\n",
|
|
|
|
|
" dog_filter.R = 3\n",
|
|
|
|
|
" \n",
|
|
|
|
|
"and the class will recognize that $R$ is actually supposed to be a matrix and convert the $3$ into an appropriate matrix (we don't yet know what an 'appropriate' matrix for $R=3$ would be, but we will learn that soon).\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"You can import the class from `filterpy` using the following import statement, and that is what we will do in the rest of this chapter and book:"
|
|
|
|
|
"You can import the class from `FilterPy` using the following import statement, and that is what we will do in the rest of this chapter and book:"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
@@ -1598,6 +1600,13 @@
|
|
|
|
|
"\n",
|
|
|
|
|
"Designing the process noise matrix can be quite demanding, and we will put it off until the Kalman math chapter. In this chapter we will focus on building an intuitive understanding on how modifying this matrix alters the behavior of the filter. \n",
|
|
|
|
|
"\n",
|
|
|
|
|
"We think of the the underlying system as behaving as\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"$$f(x) = \\mathbf{F}x + w$$\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"where $\\mathbf{F}x$ is the state transition and $w$ is the process noise. In other words $\\mathbf{F}x$ is the 'true' behavior of the process as we understand it, and $w$ is things like winds, control surface fluctuations, maybe circuit noise - whatever affects our process that is not modelled.\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"As you might expect, the Kalman filter uses the process noise matrix during the prediction step because the prediction step is the step that uses the process model to predict the next state. It is used in equation (2) from the Kalman filter equations:\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"$$\\mathbf{P} = \\mathbf{FP{F}}^\\mathsf{T} + \\mathbf{Q}$$\n",
|
|
|
|
@@ -1612,7 +1621,9 @@
|
|
|
|
|
"\n",
|
|
|
|
|
" sigma = sigma + movement_sigma\n",
|
|
|
|
|
" \n",
|
|
|
|
|
"$\\mathbf{P}$ is dimensioned $n\\times n$, so $\\mathbf{Q}$ must have the same dimensions. We are just adding matrices, so hopefully it is clear that each element in $\\mathbf{Q}$ specifies how much uncertainty is added to the system due to the process noise. We have not given the math for this yet, but if you suspect the math is simetimes difficult you would be correct. "
|
|
|
|
|
"$\\mathbf{P}$ is dimensioned $n\\times n$, so $\\mathbf{Q}$ must have the same dimensions. We are just adding matrices, so hopefully it is clear that each element in $\\mathbf{Q}$ specifies how much uncertainty is added to the system due to the process noise. \n",
|
|
|
|
|
"\n",
|
|
|
|
|
"We have not given the math for this yet, but if you suspect the math is simetimes difficult you would be correct. One of the problems is that we are usually modelling a *continuous* system - the behavior of the system is changing at every instant, but the Kalman filter is *discrete*. That means that we have to somehow convert the continuous noise of the system into a discrete value, which usually involves calculus. There are other difficulties I will not mention now."
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
@@ -1621,12 +1632,12 @@
|
|
|
|
|
"source": [
|
|
|
|
|
"However, for the class of problems we are solving in this chapter (*discretized continuous-time kinematic filters*), where we can directly compute the state equations for moving objects by using Newton's equations.\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"For these kinds of problems we can rely on precomputed forms for $\\mathbf{Q}$. We will learn how to perform the computation in the next chapter. For now I present them without proof. If we assume that for each time period the acceleration due to process noise is constant and uncorrelated, we get the following.\n",
|
|
|
|
|
"For these kinds of problems we can rely on precomputed forms for $\\mathbf{Q}$. We will learn how to derive these matrices in the next chapter. For now I present them without proof. If we assume that for each time period the acceleration due to process noise is constant and uncorrelated, we get the following.\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"For constant velocity the form is\n",
|
|
|
|
|
" $$\\begin{bmatrix}\n",
|
|
|
|
|
" \\frac{1}{4}{\\Delta t}^4 & \\frac{1}{2}{\\Delta t}^3 \\\\\n",
|
|
|
|
|
" \\frac{1}{2}{\\Delta t}^3 & \\Delta t\n",
|
|
|
|
|
" \\frac{1}{2}{\\Delta t}^3 & \\Delta t^2\n",
|
|
|
|
|
" \\end{bmatrix}\\sigma^2\n",
|
|
|
|
|
" $$\n",
|
|
|
|
|
"\n",
|
|
|
|
@@ -1637,21 +1648,26 @@
|
|
|
|
|
" \\frac{1}{2}{\\Delta t}^3 & {\\Delta t}^2 & \\Delta t \\\\\n",
|
|
|
|
|
" \\frac{1}{2}{\\Delta t}^2 & \\Delta t & 1\n",
|
|
|
|
|
" \\end{bmatrix} \\sigma^2\n",
|
|
|
|
|
" $$\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"It is in general not true that acceleration will be constant and uncorrelated, but this is still a useful approximation for moderate time period, and will suffice for this chapter. Fortunately you can get a long way with approximations and simulation. Let's think about what these matrices are implying. We are trying to model the effects of *process noise*, such as the wind buffeting the flight of a thrown ball. Variations in wind will cause changes in acceleration, and so the effect on the acceleration is large. However, the effects on velocity and position are proportionally smaller. In the matrices, the acceleration term is in the lower right, and this is the largest value. A good rule of thumb is to set $\\sigma$ somewhere from $\\frac{1}{2}\\Delta a$ to $\\Delta a$, where $\\Delta a$ is the maximum amount that the acceleration will change between sample periods. In practice we pick a number, run simulations on data, and choose a value that works well. \n",
|
|
|
|
|
" $$\n"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"It general it is not true that acceleration will be constant and uncorrelated, but this is still a useful approximation for moderate time period, and will suffice for this chapter. Fortunately you can get a long way with approximations and simulation. Let's think about what these matrices are implying. We are trying to model the effects of *process noise*, such as the wind buffeting the flight of a thrown ball. Variations in wind will cause changes in acceleration, and so the effect on the acceleration is large. However, the effects on velocity and position are proportionally smaller. In the matrices, the acceleration term is in the lower right, and this is the largest value. A good rule of thumb is to set $\\sigma$ somewhere from $\\frac{1}{2}\\Delta a$ to $\\Delta a$, where $\\Delta a$ is the maximum amount that the acceleration will change between sample periods. In practice we pick a number, run simulations on data, and choose a value that works well. \n",
|
|
|
|
|
"\n",
|
|
|
|
|
"The filtered result will not be optimal, but in my opinion the promise of optimal results from Kalman filters is mostly wishful thinking. Consider, for example, tracking a car. In that problem the process noise would include things like potholes, wind gusts, changing drag due to turning, rolling down windows, and many more factors. We cannot realistically model that analytically, and so in practice we work out a simplified model, compute $\\mathbf{Q}$ based on that simplified model, and then add *a bit* to $\\small\\mathbf{Q}$ in hopes of taking the uncalculable factors into account. Then we use a lot of simulations and trial runs to see if the filter behaves well; if it doesn't we adjust $\\small\\mathbf{Q}$ until the filter performs well. In this chapter we will focus on forming an intuitive understanding on how adjusting $\\small\\mathbf{Q}$ affects the output of the filter. In the Kalman Filter Math chapter we will discuss the analytic computation of $\\small\\mathbf{Q}$, and also provide code that will compute it automatically for you.\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"For now we will just import it from the filterpy module, where it is already implemented. I will import it and call help on it so you can see the documentation for it."
|
|
|
|
|
"For now we will just import it from the `FilterPy` module, where it is already implemented. I will import it and call help on it so you can see the documentation for it."
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"collapsed": false,
|
|
|
|
|
"input": [
|
|
|
|
|
"from filterpy.common import Q_DWPA\n",
|
|
|
|
|
"help(Q_DWPA)"
|
|
|
|
|
"from filterpy.common import Q_discrete_white_noise\n",
|
|
|
|
|
"help(Q_discrete_white_noise)"
|
|
|
|
|
],
|
|
|
|
|
"language": "python",
|
|
|
|
|
"metadata": {},
|
|
|
|
@@ -1660,10 +1676,10 @@
|
|
|
|
|
"output_type": "stream",
|
|
|
|
|
"stream": "stdout",
|
|
|
|
|
"text": [
|
|
|
|
|
"Help on function Q_DWPA in module filterpy.common.discretization:\n",
|
|
|
|
|
"Help on function Q_discrete_white_noise in module filterpy.common.discretization:\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"Q_DWPA(dim, dt=1.0, var=1.0)\n",
|
|
|
|
|
" Returns the Q matrix for the Discrete Wiener Process Acceleration\n",
|
|
|
|
|
"Q_discrete_white_noise(dim, dt=1.0, var=1.0)\n",
|
|
|
|
|
" Returns the Q matrix for the Discrete Constant White Noise\n",
|
|
|
|
|
" Model. dim may be either 2 or 3, dt is the time step, and sigma is the\n",
|
|
|
|
|
" variance in the noise.\n",
|
|
|
|
|
" \n",
|
|
|
|
@@ -1684,6 +1700,28 @@
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 23
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"collapsed": false,
|
|
|
|
|
"input": [
|
|
|
|
|
"Q = Q_discrete_white_noise(dim=2, dt=0.1, var=2.35)\n",
|
|
|
|
|
"Q"
|
|
|
|
|
],
|
|
|
|
|
"language": "python",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [
|
|
|
|
|
{
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "pyout",
|
|
|
|
|
"prompt_number": 24,
|
|
|
|
|
"text": [
|
|
|
|
|
"array([[ 5.87500000e-05, 1.17500000e-03],\n",
|
|
|
|
|
" [ 1.17500000e-03, 2.35000000e-02]])"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 24
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "heading",
|
|
|
|
|
"level": 2,
|
|
|
|
@@ -1696,7 +1734,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"As we already explained, the Kalman filter equations are already implemented for you in the `filterpy` library, so let's start by importing it and creating a filter."
|
|
|
|
|
"As we already explained, the Kalman filter equations are already implemented for you in the `FilterPy` library, so let's start by importing it and creating a filter."
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
@@ -1771,7 +1809,7 @@
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 24
|
|
|
|
|
"prompt_number": 25
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -1786,17 +1824,17 @@
|
|
|
|
|
"cell_type": "code",
|
|
|
|
|
"collapsed": false,
|
|
|
|
|
"input": [
|
|
|
|
|
"dog_filter.x = np.array([[0], [0]]) # initial 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",
|
|
|
|
|
"dog_filter.Q = Q_DWPA(2, var=0.) # process noise\n",
|
|
|
|
|
"dog_filter.P *= 500. # covariance matrix "
|
|
|
|
|
"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",
|
|
|
|
|
"dog_filter.Q = Q_discrete_white_noise(dim=2) # process noise\n",
|
|
|
|
|
"dog_filter.P *= 500. # covariance matrix "
|
|
|
|
|
],
|
|
|
|
|
"language": "python",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"prompt_number": 25
|
|
|
|
|
"prompt_number": 26
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -1850,7 +1888,7 @@
|
|
|
|
|
" dog_filter.R *= R # measurement uncertainty\n",
|
|
|
|
|
" dog_filter.P *= cov # covariance matrix \n",
|
|
|
|
|
" if np.isscalar(Q):\n",
|
|
|
|
|
" dog_filter.Q = Q_DWPA(2, var=Q)\n",
|
|
|
|
|
" dog_filter.Q = Q_discrete_white_noise(dim=2, var=Q)\n",
|
|
|
|
|
" else:\n",
|
|
|
|
|
" dog_filter.Q = Q\n",
|
|
|
|
|
" return dog_filter\n",
|
|
|
|
@@ -1891,7 +1929,7 @@
|
|
|
|
|
"language": "python",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"prompt_number": 26
|
|
|
|
|
"prompt_number": 27
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -1958,19 +1996,18 @@
|
|
|
|
|
" ps = []\n",
|
|
|
|
|
" for p in P:\n",
|
|
|
|
|
" ps.append(p[index[0],index[1]])\n",
|
|
|
|
|
" plt.plot(ps)\n",
|
|
|
|
|
" "
|
|
|
|
|
" plt.plot(ps)"
|
|
|
|
|
],
|
|
|
|
|
"language": "python",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"prompt_number": 27
|
|
|
|
|
"prompt_number": 28
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"Finally, call it. We will start by filtering 100 measurements with a noise factor of 30, $\\mathbf{R}=5$ and $\\mathbf{Q}=0$."
|
|
|
|
|
"Finally, call it. We will start by filtering 100 measurements with a noise factor of 30, $\\mathbf{R}=5$ and $\\mathbf{Q}=0.01$."
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
@@ -1985,9 +2022,9 @@
|
|
|
|
|
{
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a96e46d8>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb1c7ac8>"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
@@ -1995,11 +2032,11 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAs4AAAGHCAYAAACgU9QVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X101NW97/HPzCQhTxAggVAtmhCqRgI1ILEebCJSaONj\njxXlokT0ehYe6PGe46X1lFLrKay03FZWl6vY01pXeVC0alQsBNpglRxE8QGDIqBMQjSICY9CIAnJ\nTOb+ATMQzcMIycz+zX6/1mIRZpLJ/jbjt5/s39775/rwww8DAgAAANAtd7QHAAAAADgBwRkAAAAI\nA8EZAAAACAPBGQAAAAgDwRkAAAAIA8EZAAAACAPBGQAAAAgDwRkAAAAIQ1y0BwBEytq1a1VfX6+d\nO3dqzJgxuv3226M9JAAA4CAEZ1jhk08+UVNTk+666y61trbqe9/7nnJzczV27NhoDw0A0AkmO2Ai\nlmrACh999JEeeeQRSVJCQoJGjx6tLVu2RHlUAIDOnDnZsWDBAj3++OP0bBiB4AwrFBUV6bHHHgv9\nu6GhQTk5OVEcEQCgK0x2wFQs1YAV4uPjddFFF0mSduzYIUmaOHFiNIcEAOhCUVGRLrjggtC/Gxoa\n9P3vfz+KIwJOYsYZVmlpadFjjz2mRx99NNpDAQB0gckOmIrgDKs89thj+ulPf6rBgwdrz5490R4O\nAKAbTHbANARnWOOpp55SUVGR2tvbtWfPHlVVVUV7SACAbjDZAdOwxhmO19TUpEceeUQvvfSSDh06\n1OG5b33rW1q6dKnefvttLViwQO3t7ZIkl8ulJ554IhrDBQCEobPJjq9//evRHhYs5/rwww8D0R4E\ncLaam5s1c+ZMjRgxQnfccYeOHj2quXPn6r777tO3v/1tDRo0SElJSdEeJgDglHAnO0pKSr402TFu\n3LhoDBkIITjD0X75y1/qs88+Cx1bJEmLFi2S3+/XvHnzojgyAMAXMdkBp2OpBhzryJEjeuqpp/T8\n8893eLy1tVUulytKowIAdOW3v/2tMjMz9ctf/jL02I033qjq6mrddtttURwZEB42B8Kx3nnnHQ0e\nPFgjR47s8HhVVZW++c1vRmlUAIDOBCc77rvvvg6Pt7a2hpZkAKYjOMOxWltbNWzYsA6Pbd++XQcO\nHNB3v/vdKI0KANAZJjsQCwjOcKyCggIdPHhQPp9PknTs2DH94he/0K9//WslJCREeXQAgDMx2YFY\nwOZAONqrr76qiooKZWZmqqGhQdOmTdPo0aM7fM4//vEPtba2atu2bbr44ou1adMmzZgxQ5deemmU\nRg0A9jl06JBuu+02rV27VnFxcTp27Jjuuece3X///SooKIj28ICw9BicW1paVFpaqr/97W9qb2/X\n9ddfr5///Odqa2vTz3/+c61bt05paWn68Y9/rOLi4tDXLV++XH/4wx/U1tamadOm6f777+/zYoAv\n2rt3r06cOKHs7Gzdcsst+uMf/6ht27Zp7NixSk1NjfbwgD5B34apeprsqK+v15YtW/Tyyy/r4Ycf\nViAQ0O23366VK1dGcdTAaT2eqlFaWqq6ujqtWbNG6enpqq6uliQtXbpUXq9XlZWV2r59u2bNmqX8\n/HwNGzZMW7du1ZIlS7Ry5UqlpqZq+vTpys3N7dCggUg477zzJJ2c6fB4PBo8eLAKCwujPCqgb9G3\nYaqrr75aV199dZfP7969W2PHjtWTTz4p6eRSjszMzAiNDuhZt2ucW1patGrVKs2fP18ZGRlyuVyh\nRf3r1q3TjBkzlJqaqoKCAuXn56uioiL03JQpU5STk6PMzExNnTpV5eXlfV8N8AXV1dXauXOnKisr\nQwfnb9iwIcqjAvoOfRtOduWVV+r555/XDTfcIEl6/fXXddVVV0V5VMBp3Qbn2tpauVwurV+/XhMm\nTNB1112n9evXh57Lzs7W3LlzVV5erpycHO3evbvDc8uWLdOiRYs0cuTI0HNAJL3++ut65ZVX5Pf7\nJUnr169X//79ozwqoO/Qt+F07733Xmiig+AM03S7VOPYsWNqa2vTnj179Morr+jdd9/Vvffeq7//\n/e9qbm5WcnKydu3apby8PKWkpKi+vl6SQs95vV7t3btXhYWFampqikhBwJnuuOOOaA8BiCj6Npzu\nO9/5jl555RW9+eabamhoYKkGjNJtcE5MTJTf79ddd92lhIQEXXHFFcrOztbWrVuVlJSk5uZmrVq1\nSpK0cOFCpaSkSJKSkpLU1NSk+fPnS5IqKiqUnJzc6feoq6vrzXoAIKKGDx8e7SF00Nd9m56NvrRl\nyxa99957+pd/+RctX75cN910E+859Kpz7dndBufhw4d3euviQCCgrKwsVVdXa9SoUZJOriWdNGmS\nJCkrK0s1NTWhz/d6vRoxYkSX3yc3N/esBu806enpev7551VUVBTtoUQMNdvB1po3btwY7WF8SST6\n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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a9588ef0>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfbc61b00>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 28
|
|
|
|
|
"prompt_number": 29
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2075,7 +2112,7 @@
|
|
|
|
|
"language": "python",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"prompt_number": 29
|
|
|
|
|
"prompt_number": 30
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2104,7 +2141,7 @@
|
|
|
|
|
"language": "python",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"prompt_number": 30
|
|
|
|
|
"prompt_number": 31
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2162,9 +2199,9 @@
|
|
|
|
|
{
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVPX+x/HXzDDDMiwKKiouKFqWpGJqlgUuYVGW5m03\ny8rC1HbT8nazrv64dW+7aVHWtcxut9ui3nLJnesuFWa5I5q4w7iwDMzAzO8Pk6tXLJGBw/J+Ph4+\nGM58zzkfPqK+OX7P95i2bt3qRURERERETmM2ugARERERkZpIQVlEREREpBwKyiIiIiIi5VBQFhER\nEREph4KyiIiIiEg5FJRFRERERMqhoCwiIiIiUg4FZRGRKrBlyxZGjRrFZZddRufOnenfvz9jx45l\nw4YNZ4ydPHky69at89m5s7OzmTx5Mnv37vXZMUVE6iM/owsQEalrtmzZwh133EHDhg0ZNmwYkZGR\n7Nu3jwULFrBs2TI6d+582vgpU6ZgMpno0aOHT86/d+9epkyZQs+ePYmKivLJMUVE6iMFZRERH5s6\ndSomk4nPPvuMRo0alW0fPXo0Bw8erLY6vF49eFVEpDJMeoS1iIhvXXvttQQFBfHll1+edczkyZOZ\nMmXKWd9fsmQJzZs3B2Dr1q189NFHpKenc/DgQaxWK507d2b06NF06dKlbJ+hQ4eyfv36co/XvHlz\nlixZctq2tLQ03nnnHTZv3ozZbKZHjx6MGzeO6OjoCny1IiJ1l64oi4j4WGRkJBkZGWzbto0LLrig\n3DH9+/cnOjoar9fL2LFj6d+/P4mJiWXvN2zYsOz1ihUrWLNmDQMGDKB169Y4HA4+++wz7r77bj77\n7DM6dOgAwEMPPcStt97Kjh07SE1NZcSIEcTExAAQFBR02vlnzZrF008/Tffu3RkzZgxOp5NPPvmE\nO++8kzlz5px2JVxEpL7SFWURER9btmwZDz30EBaLhSuuuIIrrriCfv360bJly3LHd+jQgdGjRzN6\n9Ohy38/JySEiIgKTyVS2LTs7m6uvvpo77riDCRMmnDZ+7dq13HPPPcyYMYPu3bufcbz8/Hx69+5N\nly5dmDZt2mnHvPbaaxk2bBhjxow5ny9dRKRO0aoXIiI+1rt3b2bMmMHll1/O6tWrefHFF0lMTOT+\n++/n0KFDFT5eo0aNykKy2+3myJEjBAUF0bBhQ3755ZcKH2/lypXk5+czYMAAHA5H2a+goCBatmx5\n1ukbIiL1jaZeiIhUgW7dutGtWzcKCwtZv349c+bM4ZtvvuHRRx/lH//4R4WOlZ+fz7vvvsusWbM4\nfPjwaTfpFRcXV7i23bt3A/D000+X+36rVq0qfEwRkbpIQVlEpAoFBQWRkJBAQkICNpuNr776in37\n9pXdqHcunnzySVatWsU999xD586dCQ4OBuCJJ56o1MoWEydOpEWLFmdsDwgIOO9jiojUJQrKIiLV\n5ORNdzk5OecclI8fP05aWhojR47k4YcfLtvucrk4duxYufucOpe5PK1btwagQYMGXH755edUh4hI\nfaQ5yiIiPrZu3TpKS0vP2L5y5UrMZvMZV3HtdvtZ5y6bzebTPp40c+ZMPB5PufvY7XaAsx6zV69e\n2O123n//fUpKSk57z+PxVOtazyIiNZmuKIuI+FhqaiqZmZkkJSXRtm1bCgoKWLJkCevWreO2224j\nPDz8tPFdu3bl66+/pl27drRu3RqTycRll12Gv78/wcHB9OzZk2nTpuF2u2natCkZGRmsWLGChg0b\nljv1on379oSGhjJ58mRKSkpo2LAhAQEBZU/+Cw4O5tlnn2X8+PHcdNNNDBgwgNDQULKysli6dCkD\nBw486wocIiL1iZaHExHxsTVr1jBr1ix++OEHDh06hNfrpW3btgwcOJC77777jKkR2dnZPP/883z/\n/fcUFhZiMplYvHhx2fSM3NxcXnzxRVasWEFRURFdu3blmWeeYeTIkTRu3JiZM2eeUcOqVat4+eWX\n2b59O263m6ioKBYvXnzamJUrVzJt2jQ2btxIaWkpzZs35/LLL+eOO+4oW39ZRKQ+q3RQLioqIiUl\nhQULFuDxeBgwYAATJkzA7XYzYcIE5s+fT1hYGGPHjiUpKclXdYuIiIiIVKlKT71ISUlhz549fPPN\nN0RERJCZmQnA9OnT2bFjB2lpaWzatInk5GTi4uJo2rRppYsWEREREalqlbqZr6ioiNmzZ/Pss8+W\nLYjfrl07AObPn8/QoUMJDg6mR48exMXFsXDhQp8ULSIiIiJS1SoVlHft2oXJZGLRokX06tWL66+/\nnkWLFpW916ZNG8aMGcPcuXOJiYkhKyvLJ0WLiIiIiFS1Sk29yM/Px+12k52dzdKlS/nhhx8YMWIE\n3377LU6nk6CgILZv305sbCx2u50DBw74qm4RERERkSpVqaAcEBBAaWkp9957Lzabjcsuu4w2bdqw\n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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a96e3860>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb236080>"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
@@ -2172,11 +2209,11 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a92a3898>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb1659b0>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 31
|
|
|
|
|
"prompt_number": 32
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2338,7 +2375,7 @@
|
|
|
|
|
"language": "python",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"outputs": [],
|
|
|
|
|
"prompt_number": 32
|
|
|
|
|
"prompt_number": 33
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2356,7 +2393,7 @@
|
|
|
|
|
"def pos_vel_filter(R,Q):\n",
|
|
|
|
|
" f = KalmanFilter(dim_x=2, dim_z=1)\n",
|
|
|
|
|
" f.R = R\n",
|
|
|
|
|
" f.Q = Q_DWPA(2, var=Q)\n",
|
|
|
|
|
" f.Q = Q_discrete_white_noise(dim=2, var=Q)\n",
|
|
|
|
|
" \n",
|
|
|
|
|
" f.F = np.array([[1,1],\n",
|
|
|
|
|
" [0,1]]) # state transition matrix\n",
|
|
|
|
@@ -2404,13 +2441,13 @@
|
|
|
|
|
{
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xlc1NX+x/HXzMAAM+yooLhguCalGGougaZYttdtudW1\nbLlhass1s7JuVhott251vVmUde2adeuWS4tL5MZPLZXSLM0FXNFQBBSEAQZmfn8oXJdRIQaG5f18\nPHgwfOc75/uZ06Rvjud7jmHr1q1ORERERETkJEZPFyAiIiIi0hApKIuIiIiIuKCgLCIiIiLigoKy\niIiIiIgLCsoiIiIiIi4oKIuIiIiIuKCgLCIiIiLigoKyiEgd2LJlC2PHjqVfv3707NmT4cOHM3Hi\nRH766afTzp02bRpr165127WzsrKYNm0a+/btc1ubIiLNkZenCxARaWq2bNnCrbfeSkhICKNGjSI8\nPJz9+/ezePFili9fTs+ePU86/80338RgMNC3b1+3XH/fvn28+eabXHzxxURGRrqlTRGR5khBWUTE\nzaZPn47BYODTTz+lRYsWVcfHjRvHgQMH6q0Op1Mbr4qI1IZBW1iLiLjX5ZdfjsViYc6cOWc8Z9q0\nabz55ptnfH7p0qW0adMGgK1bt/Lvf/+b9PR0Dhw4gLe3Nz179mTcuHH06tWr6jUjR45k3bp1Lttr\n06YNS5cuPelYWloab7/9Nr/++itGo5G+ffvy2GOPERUVVYN3KyLSdGlEWUTEzcLDw9mwYQPbtm2j\nS5cuLs8ZPnw4UVFROJ1OJk6cyPDhw0lMTKx6PiQkpOrxypUr+f7777nqqqvo0KEDeXl5fPrpp9xx\nxx18+umndOvWDYD777+fm2++mYyMDFJSUhg9ejTR0dEAWCyWk64/b948Hn/8cfr06cOECROw2Wx8\n9NFH3HbbbXzxxRcnjYSLiDRXGlEWEXGz5cuXc//992MymRgwYAADBgxg6NChtGvXzuX53bp1Y9y4\ncYwbN87l84cOHSIsLAyDwVB1LCsri2HDhnHrrbcyefLkk85fs2YNd955J7NmzaJPnz6ntXf06FEG\nDx5Mr169mDFjxkltXn755YwaNYoJEyb8nrcuItKkaNULERE3Gzx4MLNmzaJ///589913vPjiiyQm\nJnLPPfdw8ODBGrfXokWLqpBst9vJz8/HYrEQEhLCnj17atzeqlWrOHr0KFdddRV5eXlVXxaLhXbt\n2p1x+oaISHOjqRciInUgLi6OuLg4iouLWbduHV988QVff/01Dz30EB9//HGN2jp69CjvvPMO8+bN\nIycn56Sb9EpLS2tc2+7duwF4/PHHXT7fvn37GrcpItIUKSiLiNQhi8VCQkICCQkJmM1m5s6dy/79\n+6tu1KuORx55hNWrV3PnnXfSs2dP/P39ARg/fnytVraYMmUKbdu2Pe24r6/v725TRKQpUVAWEakn\nlTfdHTp0qNpBuaCggLS0NMaMGcMDDzxQdbysrIwjR464fM2Jc5ld6dChAwDBwcH079+/WnWIiDRH\nmqMsIuJma9eupaKi4rTjq1atwmg0njaKa7Vazzh32Wg0nvS90uzZs3E4HC5fY7VaAc7Y5sCBA7Fa\nrbz33nuUl5ef9JzD4ajXtZ5FRBoyjSiLiLhZSkoKmZmZjBgxgvPOO4+ioiKWLl3K2rVrueWWWwgN\nDT3p/N69e/PVV1/RqVMnOnTogMFgoF+/fvj4+ODv78/FF1/MjBkzsNvtREREsGHDBlauXElISIjL\nqRedO3cmMDCQadOmUV5eTkhICL6+vlU7//n7+/PUU08xadIkrr/+eq666ioCAwPZuXMny5Yt49pr\nrz3jChwiIs2JlocTEXGz77//nnnz5rF+/XoOHjyI0+nkvPPO49prr+WOO+44bWpEVlYWzzzzDD/+\n+CPFxcUYDAaWLFlSNT0jNzeXF198kZUrV1JSUkLv3r154oknGDNmDC1btmT27Nmn1bB69WpeeeUV\ntm/fjt1uJzIykiVLlpx0zqpVq5gxYwY///wzFRUVtGnThv79+3PrrbdWrb8sItKc1Tool5SUkJyc\nzOLFi3E4HFx11VVMnjwZu93O5MmTWbRoEUFBQUycOJERI0a4q24RERERkTpV66kXycnJ7N27l6+/\n/pqwsDAyMzMBmDlzJhkZGaSlpbF582aSkpKIjY0lIiKi1kWLiIiIiNS1Wt3MV1JSwvz583nqqaeq\nFsTv1KkTAIsWLWLkyJH4+/vTt29fYmNjSU1NdUvRIiIiIiJ1rVZBedeuXRgMBr799lsGDhzIlVde\nybffflv1XMeOHZkwYQILFiwgOjqanTt3uqVoEREREZG6VqupF0ePHsVut5OVlcWyZctYv349o0eP\n5ptvvsFms2GxWNi+fTsxMTFYrVays7PdVbeIiIiISJ2qVVD29fWloqKCu+66C7PZTL9+/ejYsSM/\n/fQTfn5+2Gw25s+fD8DUqVOr1vY80d69e2tTgoiIiIhItbRr165G59cqKLdr187lDlBOp5OoqCgy\nMzPp0aMHAJmZmQwdOtRlO927d69NGfI7hIWFMWfOHBISEjxdSrOk/vcs9b/nqO89S/3vWep/zwkL\nC2PlypU1fl2t5igHBQXRp08fZs6cSXl5OevWrWPnzp306tWLESNGMGvWLAoLC1mzZg0bNmwgMTGx\nNpcTEREREak3blke7oknnqBPnz6Eh4fzt7/9jZYtWzJq1Ch27NhBQkICQUFBJCcnEx4e7o6aRURE\nRETqXK2Dctu2bZk1a9bpDXt5kZycTHJycm0vIXVEU148S/3vWep/z1Hfe5b637PU/41LraZeSOOm\n/1k9S/3vWep/z1Hfe5b637PU/42LgrKIiIiIiAsKyiIiIiIiLigoi4iIiIi4oKAsIiIiIuKCgrKI\niIiIiAsKyiIiIiIiLigoi4iIiIi4oKAsIiIiIuKCgrKIiIiIiAsKyiIiIiIiLigoi4iIiIi4oKAs\nIiIiIuKCgrKIiIiIiAsKyiIiIiIiLigoi4iIiIi4oKAsIiIiIuKCgrKIiIiIiAsKyiIiIiIiLigo\ni4iIiIi4oKAsIiIiIuKCgrKIiIiIiAsKyiIiIiIiLigoi4iIiIi4oKAsIiIiIuKCgrKIiIiIiAsK\nyiIiIiIiLigoi4iIiIi4oKAsIiIiIuKCgrKIiIiIiAsKyiIiIiIiLigoi4iIiIi4oKAsIiIiIuKC\ngrKIiIiIiAsKyiIiIiIiLigoi4iIiIi4oKAsIiIiIuKCgrKIiIiIiAu1DsojR47kwgsvJDY2ltjY\nWB577DEA7HY7kyZNonfv3gwZMoSFCxfWulgRERERkfri5Y5Gnn76aW688caTjs2cOZOMjAzS0tLY\nvHkzSUlJxMbGEhER4Y5LioiIiIjUKbdMvXA6nacdW7RoESNHjsTf35++ffsSGxtLamqqOy4nIiIi\nIlLn3BKU//73v3PxxRdz9913k5mZCcCuXbvo2LEjEyZMYMGCBURHR7Nz5053XE5EREREpM7VeurF\nY489RpcuXaioqGD69OmMGTOGr7/+GpvNhsViYfv27cTExGC1WsnOznbZRlhYWG3LkBry9vYG1Pee\nov73LPW/56jvPUv971nqf8+p7PuaqnVQjomJqXo8fvx4Zs+eTWZmJn5+fthsNubPnw/A1KlTsVqt\nLtuYMmVK1eP4+HgSEhJqW5aIiIiINGMrVqwgLS0NAJPJRHx8fI3bcMvNfCcyGAw4nU6ioqLIzMyk\nR48eAGRmZjJ06FCXrxkzZsxJP+fm5rq7LDlF5W+z6mvPUP97lvrfc9T3nqX+9yz1f/2KiYmpGtAN\nCwtj5cqVNW6jVnOUCwsLWbFiBWVlZZSVlfHPf/6TFi1a0KlTJ0aMGMGsWbMoLCxkzZo1bNiwgcTE\nxNpcTkRERESk3tRqRNlut/P666/z8MMP4+3tzQUXXMBbb72Fl5cXo0aNYseOHSQkJBAUFERycjLh\n4eHuqltEREREpE7VKiiHhoYyd+5c1w17eZGcnExycnJtLiEiIiIi4hHawlpERERExAUFZRERERER\nFxSURURERGrJ1S7F0vgpKIuIiIi4YM7Lw5yXd9ZzHA4nL7y/glf+/X/1VJXUJ7evoywiIiLS2FnT\n0wlISgKgMCWFori4084pKStnwgtzmbvtMF7OCka2MRKROKi+S5U6pBFlERERkROY8/IISErCmJ2N\nMTubgKSk00aW8wpLuG3KF8zddpiA8lIWbJxNr8cfOucItDQuGlEWERERqYHdBwv408uL2PHbESLt\nR1mwYRYXFh3AERHh6dLEzTSiLCIiInKCstBQClNScERE4IiIoDAlhbLQUADWZx7k6snz2fHbEbq3\nD+Wb+/sRE2A47TxpGjSiLCIiIs1O5RSJMwXborg47KmpJ52zOH0XY95cSklZBfExkbzz0DACLGby\nTjlPmg6NKIuIiEizYk1PJzQxkdDERKzp6Wc8ryw0tCr8/uubTdzzeiolZRXcktCFfz96OQEW82nn\nSdOiEWURERFpNk68UQ8gICkJe2rqGYOuw+FkykdreGfhzwBMuPEiHr4uFoPBUG81i+coKIuIiIi4\nYCsr58Hpy1mwbideJgOv/Dmemy7p4umypB4pKIuIiEizUXmj3olrJJ86mlzhcDBnVQYv/zed/blF\nBPh58+7DiVwSE+mJksWDFJRFRESkyTjXTXrg+kY9OLYN9bKfskj+ZC2/7jnWTvd2ofxz7BC6tdMc\n5OZIQVlERESahOrsplfp1CD9044cpn68htWbfwOgTZiViTfFccPATpiMWvuguVJQFhERkUavpjfp\nVdp1oICX/5vO/O8yAQiymHnwulhGJZ6Pr1kxqbnTJ0BERESandwCG6/PXc+sJb9ir3Dg42Line truncated
|
|
|
|
|
"png": "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\nry9lZWUsWrQIgBkzZlSv7Xm8Xbt21acEEREREZFa6dy5c52Or1dQ7ty5s9MdoBwOB+Hh4eTm5tKn\nTx8AcnNzGTlypNN2evfuXZ8y5AyEhISwYMEC4uLi3F1Ki6T+dy/1v/uo791L/e9e6n/3CQkJIT09\nvc7n1WuOcmBgIIMHD2bevHlUVVWxbt068vLyGDBgAAkJCcyfP5+ioiLWrFlDZmYm8fHx9bmciIiI\niMhZ45Ll4R577DEGDx5MaGgoL7zwAm3btmX8+PFs27aNuLg4AgMDSUpKIjQ01BU1i4iIiIg0uHoH\n5U6dOjF//vwTG/b0JCkpiaSkpPpeQhqIpry4l/rfvdT/7qO+dy/1v3up/5uWek29kKZN/7O6l/rf\nvdT/7qO+dy/1v3up/5sWBWUREREREScUlEVEREREnFBQFhERERFxQkFZRERERMQJBWUREREREScU\nlEVEREREnFBQFhERERFxQkFZRERERMQJBWUREREREScUlEVEREREnFBQFhERERFxQkFZRERERMQJ\nBWUREREREScUlEVEREREnFBQFhERERFxQkFZRERERMQJBWUREREREScUlEVEREREnFBQFhERERFx\nQkFZRERERMQJBWUREREREScUlEVEREREnFBQFhERERFxQkFZRERERMQJBWUREREREScUlEVERERE\nnFBQFhERERFxQkFZRERERMQJBWUREREREScUlEVEREREnFBQFhERERFxQkFZRERERMQJBWURERER\nEScUlEVEREREnFBQFhERERFxQkFZRERERMQJBWURERERESfqHZTHjRtHv379iIqKIioqikceeQQA\nq9XK448/zsCBAxk+fDiLFy+ud7EiIiIiImeLpysaeeqpp7j22mtrPDZv3jxycnJIS0sjKyuLxMRE\noqKiCAsLc8UlRUREREQalEumXjgcjhMeS0lJYdy4cfj7+xMTE0NUVBSpqamuuJyIiIiISINzSVB+\n6aWXGDp0KLfddhu5ubkAbN++nYiICKZMmcLXX39Nt27dyMvLc8XlREREREQaXL2nXjzyyCP06NED\nm83GG2+8wcSJE/nqq68oKyvDz8+P7OxsIiMjMZvNFBQUOG0jJCSkvmVIHXl5eQHqe3dR/7uX+t99\n1Pfupf53L/W/+xzr+7qqd1COjIys/vzBBx/k/fffJzc3F19fX8rKyli0aBEAM2bMwGw2O21j+vTp\n1Z/HxsYSFxdX37JEREREpAVbsWIFaWlpAHh4eBAbG1vnNlxyM9/xDAYDDoeD8PBwcnNz6dOnDwC5\nubmMHDnS6TkTJ06s8fXBgwddXZb8wbHfZtXX7qH+dy/1v/uo791L/e9e6v+zKzIysnpANyQkhPT0\n9Dq3Ua85ykVFRaxYsYLKykoqKyt57bXXaNOmDd27dychIYH58+dTVFTEmjVryMzMJD4+vj6XExER\nERE5a+o1omy1Wnn55Ze5//778fLyom/fvvzzn//E09OT8ePHs23bNuLi4ggMDCQpKYnQ0FBX1S0i\nIiLSKJgsFgAqg4PdXIm4Wr2CcnBwMJ999pnzhj09SUpKIikpqT6XEBEREWm0zBkZBCQmAlCUnExJ\ndLSbKxJX0hbWIiIiImfAZLEQkJiIsaAAY0EBAYmJ1aPL0jwoKIuIiIiIOKGgLCIiInIGKoODKUpO\nxh4Whj0sjKLkZM1TbmZcvjyciIiISEtREh2NNTUV0M18zZGCsoiIiIgTtV3NQgG5+dLUCxEREZE/\nMGdkEBwfj3nUpfitW+fucsRNNKIsIiIiLZ61yk7OnkNs3mXh1193s3XhEjZGjOU37wAM/7cBX++N\nmH1NmH288PX2xOzthZ+3J2YfL/x8jn5MGn8BBoPB3S9FXEhBWURERFqcjXkHWJm1h827LGTtOEj2\n7kNYbfb/HeB/DgAeDjs2g5HSShullWXsP1zmtD0fLw9m3nrh2ShdziIFZREREWlRPlyxlQffTDvh\n8fDQVvTuHMx55wQzwFrIkJefJcJ6hCP/nMOBvv0pKa+ipMJKaXkVpRVWSsqtlFZUUVJuper4kC3N\nhoKyiIiItBgLV+Xw0O8h+abDWxl09SV0vSiKXp2C8Pc11TjWNGoghzh6s54/nPC8NH8KyiIiItJs\nnGqlisXr8rj3n9/hAGZsW8rfdn6P/bflWP6cSqWTEKzVLESrXoiIiEizcGyliuD4eMwZGTWeW5q5\nk7tnL8Nmd/D4gfX8bef3bqpSmhIFZREREWnyTBYLAYmJGAsKMBYUEJCYWD26/P0vu7nz5SVYbXbu\nTIjk4Rm3azc9qRVNvRAREZFma+3WAm596VsqrDbGjezNtLFDKTUYqNJuelILGlEWERGRJsFksVSP\nEv9RZXAwRcnJNUaK1xRWMe75FMoqqrgutkeNdY4rg4MVkuW0NKIsIiIijZ45I4OAxEQAipLine truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a9576be0>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb3f8978>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 33
|
|
|
|
|
"prompt_number": 34
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2464,21 +2501,21 @@
|
|
|
|
|
{
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4lFXa+PHvmUx6752WUAIIBJCqIiALCAgoVkTBV4XX\nuuvPsq69LKura1nXsiqvIvZFEAtBwEWKShOQEkoKkAQCCekhk2SSOb8/JgkEkpAyk0m5P9flJTPP\n85znJJPAPWfuc9/q4MGDGiGEEEIIIUQtBkdPQAghhBBCiLZIAmUhhBBCCCHqIIGyEEIIIYQQdZBA\nWQghhBBCiDpIoCyEEEIIIUQdJFAWQgghhBCiDhIoCyGEEEIIUQcJlIUQQgghhKiD0dETEEKIppgz\nZw7btm0DQClFUFAQsbGx3HHHHYwaNcrBszvj7Hmebdq0abz00kt2v/8vv/zC66+/zsGDB3Fzc+Py\nyy/n4YcfJiAgwO73bqyvv/6a9evXs2PHDk6ePNng92bjxo289tprJCcn4+/vzzXXXMNdd92Fk5NT\nK89aCNGZSKAshGh3fH19efzxx9Fac+LECb744gtuu+02XnzxRaZPn+7o6dWIiYlhwYIFtZ6Ljo62\n+323b9/OHXfcQe/evXn00UfJzs5m0aJF7N+/n6VLl+Ls7Gz3OTTGhx9+SGZmJoMHD+bkyZMopeo8\n77fffmPBggX079+fxx57jAMHDvDmm29SUFDA448/3sqzFkJ0JhIoCyHaHXd3d6ZNm1bzeMaMGUyc\nOJH33nuvTQXKgYGBtebZWl577TW8vLz46KOP8PLyAiA8PJzHHnuM7777jpkzZ7b6nOry1ltvERER\nAUCfPn3qPe+1114jICCADz/8EHd3dwAqKyv57LPPmDdvHpGRka0yXyFE5yM5ykKIdi8kJIQePXqQ\nnp7u6KnUorWmoqKC06dPt9o98/Ly+O233xgzZkxNkAxw5ZVX4uTkxNq1a1ttLhdSHSQ3JD8/n99+\n+42JEyfWBMkAs2bNorKyknXr1tlzikKITk5WlIUQ7V5lZSVZWVmEhIQ0+drS0lJKSkoaPMfLywsX\nF5cmj717924GDRpERUUFwcHBzJ49m/nz59ebYmALycnJaK2JjY2t9by7uzsREREkJyc3ecyCggIq\nKysbPMdeuc/JyclYLBb69u1b6/nevXujlOLgwYN2ua8QQoAEykKIdqiyspK8vDy01pw6dYoPP/yQ\nU6dO8dRTTzV5rPfee48333yzwXNeeOEFZsyY0aRxu3btyqhRo+jZsyfFxcWsWLGC1157jczMTJ55\n5pkmz7OxsrOzAfDz8zvvmL+/f7MC5ZkzZ3L8+PF6jyul2L9/f5PHbYysrCzAmsaSnJzMnDlzmDx5\nMk8++SQ+Pj41X68QQtiDBMpCiHYnOzubkSNH1jyOiIjgnXfeYcyYMU0ea8aMGQwdOrTBc85dnW2M\n559//rz7zJ8/ny+//JK5c+fSvXv3Jo/ZGOXl5QB1bthzdnauOd4UL7/8MmVlZS2eW3NUz9fFxYWC\nggIKCgrIyMgArF+Po+YlhOgcJFAWQrQ7/v7+vPLKK1gsFnbu3Mk777zD6tWrmxUoR0dHt0olCoDZ\ns2ezfv16tm7dardAuTpFxGw2n3fMbDbj6enZ5DEHDx7c4nk1V/XXU15ezsiRI9m4cWPNarnZbMbV\n1dVhcxNCdHwSKAsh2h1XV9eaFeXRo0djMBj45z//yZQpU5pcS7mkpOSCm+18fHxsEpCFhoYC1pxf\newkODgasm+DOlZeXh6+vb5PHzM3NvWCOcvV9ba067zwnJwewpmCANXAuLCy0232FEAIkUBZCdABz\n585l8eLFvPHGG00OlBctWmSXHOW6VOf52rPpR2xsLEopkpKSaj1vMpk4duwYEydObPKYs2bNcliO\ncmxsLAaDgcTERK6++uqa5w8cOIDWmt69e9vlvkIIARIoCyE6AA8PD6677jree+89tm/ffsGc47PZ\nI0e5qKgIDw+PWl3jKisr+eCDDzAajYwePbrO68aNG8fx48f56KOPGDZsWJPuWc3f35/BgwezYcMG\nioqK8Pb2BiAhIQGLxcJll13W5DEdmaPs5+fHkCFDWLVqFQ888AAeHh4ALF26FKPRyNixYx0yLyFE\n5yCBshCi3dFan/fczTffzAcffMD777/fpEDZHjnKW7Zs4YUXXmDChAlER0dTUlJCQkIC+/bt4557\n7iE8PLzO6ywWC0qpFnfO+9Of/sStt97KrbfeyrXXXktOTg6LFi2iZ8+ezWrIYq8c5f/+978cOHCg\n5vGhQ4d46623ABg/fnzNavH999/Prbfeyty5c7nmmms4ePAgX375JbNnz5ZmI0IIu7JZoLx9+3Zu\nvvlmnnvuOa699lrMZjNPPfUUq1atwtfXl4cffpjJkyfb6nZCiE6srjrEoaGhTJo0iZUrV5KcnNys\nShW20r17d2JjY/n+++8pKChAKUWvXr34+9//zlVXXVXnNXl5eZw4cYLu3bszaNCgFt1/6NChvPvu\nu7z++uv87W9/o7y8nICAAD766CMMhrbTZ2rNmjUsX74coKYm8oEDB1BKERERURMoDx06lLfffpvX\nX3+dv/71rwQEBHDXXXdx9913O3L6QohOQB08ePD8pZkmqqio4Oabb6aoqIh58+Yxa9Ys3nvvPdas\nWcP//d//kZiYyPz580lISCAsLMwW8xZCiA5l9erV3Hfffbz88stMnTrVpmN/+eWXPPnkk1x33XU8\n++yzNh1bCCE6MpssLXz88ceMHTu21gaVVatWMWfOHLy8vBg2bBjx8fGsWbPGFrcTQogOZ+vWrcTG\nxto8SAa47rrreOCBB9i1axcnT560+fhCCNFRtTj1Ijs7m2XLlrF06VI2bdpU8/yRI0fo3r07Dz74\nIOPGjSMmJobDhw+39HZCCNEhPf7443Yd/8477+T2229vU6kXQgjR1rX4b8wXX3yRBQsW1BSFr2Yy\nmfDw8CApKYmsrCw8PT0pKSlp6e2EEEI0kwTJQgjRNC1aUf7tt9/IyMjgyiuvrHmueje6u7s7JpOJ\nFStWANZ2rnV1hEpPT2/JFIQQQgghhGiUplY5alGgvHfvXnbt2kWfPn1qntu2bRtJSUl069aNlJQU\n+vXrB0BKSgrjx4+vc5y4uLiWTEM4QGBgIMuWLWtWy2DhePL6tV/y2rVv8vq1b/L6tV+BgYG1UoQb\nq0Wfw916660cOHCg5r+LL76Y559/nr/85S9MnjyZJUuWUFRUxJYtW9i1axcTJkxoye2EEEIIIYRo\nNXZrODJ37lxSU1MZM2YMvr6+LFy4kNDQUHvdTgghhBBCCJuyaaC8ZMmSMwMbjSxcuJCFCxfa8hai\nDZGUmfZNXr/2S1679k1ev/ZNXr/ORbZAi2aTvyzaN3n92i957do3ef3aN3n9OhcJlIUQQgghhKiD\n3XKUbcVsNpOXl4dSytFTEWfJy8sDrO3L2yJnZ2f8/PwcPQ0hhBBCtGNtOlA2m83k5OQQEhIihfJF\nk+Tn51NSUoKHh4ejpyKEEEKIdqpNR595eXkSJItm8fX1pbi42NHTEEIIIUQT6NNF6PIyR0+jRpuO\nQJVSEiSLZlFKSbqOEEII0Y7oExlYHr0Dyz+fdfRUakgUKoQQQgghHEprjWXJW2AqgUN70SVt41Nh\nCZSFEEIIIYRD6Z/XwqG9VQ80pBx07ISqSKDcyd12221ERUURFRXFn/70J0dPRwghhBCdjC7MR//n\nA+uD8Gjrc8n7HTijMyRQbuOGDx/OK6+8YrfxX3/9dXbu3Mm0adMkp1cIIYQQrU5/sQhKiqFvPIar\nb7E+l5zo4FlZtenycAK7B6/e3t54e3vj6uqK1tqu9xJCCCGEOJveuwO9dT24uGC4+X/Braqs65FD\n6IoKlNGxoaqsKNvJ6tWrmTlzJv369SMmJoaZM2eybdu2Wuf88MMPTJkyhZiYGOLj43nggQcwm82A\ndSU5KiqKjIwMXnnllZr0iFdffbXm+lmzZtVabU5PTycqKorNmzcDUF5ezgMPPMCoUaPo0aMHQ4YM\n4dlnn6W8vPy8+cpqshBCCCFaky4rw/LJ2wCoqTeigsNQ3j4QFgnl5ZCe6uAZyoqy3WRnZ3P99dcT\nHx+Pq6sr//73v5k9ezZbtmzB39+f1atXc/vtt3Pffffx+uuvU1JSwjfffENZWRnOzs4kJCRQWVnJ\nlVdeyfTp01mwYAHAeQ00GgpwzWYzLi4uvPLKK0RHR5OSksL999+Ps7Mzjz76qF2/fiGEEEKIhuhv\nP4NTJyGqG2rC9JrnVUwc+sQxdPJ+VPdeDpxhBwiUI2e/Z5dxj31yR4uunz17dq3Hjz32GEuWLGHL\nli1MmjSJf/3rX0yaNImHHnqo5pwBAwbU/DkgIAAAJycnPD09CQoKavIcPD09eeGFF2oeR0ZGMmPG\nDH788UcJlIUQQgjhMDr9MHrN16AUhjl3106xiI2Dn9daN/SdFUA7QrsPlNuqtLQ0XnrpJXbs2EFO\nTg4WiwWA06dPA5CYmMj06fZ/8T/55BM+/fRTMjIyMJlMmM1mIiIi7H5fIYQQQoi6aEslliVvgsWC\nGjsF1aN3reMqNg4NkLIfrbVD00PbfaDc0pVfe7n11lvp2rUrr776KiEhIZSXlzNu3LiagNkWzv3B\nOXfsb7/9lmeeeYZnnnmGwYMH4+bmxltvvcX69esbNZ4QQgghhK3pdQlw+BD4BaJmzjn/hNBI8PKB\ngjxrakZwWOtPsops5rOD3NxckpKSePTRRxk2bBjdunWjsLCw1jn9+vXj119/veBYzs7ONRv8zuXr\n60tRUVHN44yMjFrHt2zZwpgxY7jxxhvp3bs3Xbt2JT09vc6A2NPTk5KSksZ8eUIIIYQQzaLine truncated
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XecVOX1+PHPnZntle1sb3QUFpAqoBAiFhSsMWoUo4Gf\nsaCxRLGgGNRYsCQ2QtRgF40kRoxg/AqodJAmZQtbYNnO9jI78/z+uLsDy9ZpW+C8Xy9fy86997nP\n7sB45pnznKMdOHBAIYQQQgghhGjB0NMTEEIIIYQQojeSQFkIIYQQQog2SKAshBBCCCFEGyRQFkII\nIYQQog0SKAshhBBCCNEGCZSFEEIIIYRogwTKQgghhBBCtEECZSGEEEIIIdpg6ukJCCGEPW644Qa2\nbNkCgKZphIWFkZqayq233srEiRN7eHYnnDzPk82aNYtnn33W7ff/4YcfeOmllzhw4ADe3t6cd955\n3H///YSEhLj93l31+eef891337F9+3YKCgo6/N2sX7+eF198kfT0dPr168cVV1zBbbfdhtFo7OZZ\nCyHOJBIoCyH6nKCgIB5++GGUUhw7doyPPvqIm2++mWeeeYbLLrusp6dnk5KSwvz581s8FhcX5/b7\nbt26lVtvvZVBgwbx4IMPUlRUxPLly/n5559ZuXIlHh4ebp9DV7z99tvk5+czatQoCgoK0DStzfO2\nbdvG/PnzGT58OAsXLmT//v389a9/pby8nIcffribZy2EOJNIoCyE6HN8fHyYNWuW7fvZs2dzwQUX\nsGzZsl4VKIeGhraYZ3d58cUX8ff35x//+Af+/v4A9O/fn4ULF/LFF18wZ86cbp9TW1599VWio6MB\nGDx4cLvnvfjii4SEhPD222/j4+MDgMVi4YMPPmDu3LnExMR0y3yFEGceyVEWQvR5ERERJCcnk5ub\n29NTaUEpRWNjI9XV1d12z7KyMrZt28bUqVNtQTLARRddhNFoZO3atd02l840B8kdOX78ONu2beOC\nCy6wBckAV155JRaLhW+//dadUxRCnOFkRVkI0edZLBYKCwuJiIiw+9q6ujpqamo6PMff3x9PT0+7\nx961axcjR46ksbGR8PBwrrvuOubNm9duioErpKeno5QiNTW1xeM+Pj5ER0eTnp5u95jl5eVYLJYO\nz3FX7nN6ejpWq5WhQ4e2eHzQoEFomsaBAwfccl8hhAAJlIUQfZDFYqGsrAylFMXFxbz99tsUFxfz\n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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a9731ef0>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb22ae48>"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8VNW2wPHfmUx6r5QkBJJACCCQAKEKCqIgIKLYLqLo\nQ+FxBdFreVcEUbzYwV4oomIXQa4KSBEFpAtIhySUFAIJ6SGTZJLZ74+RkUCQTDKTmcD6fj5+JKfs\nvc6cgazZs87e2qFDhxRCCCGEEEKIanSODkAIIYQQQghnJImyEEIIIYQQNZBEWQghhBBCiBpIoiyE\nEEIIIUQNJFEWQgghhBCiBpIoCyGEEEIIUQNJlIUQQgghhKiBJMpCCCGEEELUQO/oAIQQYvTo0Wzb\ntg0ATdMICQkhNjaWBx54gF69ejk4ur+cG+e5hg0bxiuvvGL3/jdu3Mgbb7zBoUOH8PDw4JprruGJ\nJ54gKCjI7n3XltFo5O2332bJkiUUFhbSpk0bHnnkkXrdx9OnT/PCCy+wbt06qqqqSEpKYsqUKURG\nRlqOOXnyJF988QW//PILmZmZuLu707ZtWyZNmkSnTp1scWlCiCuQJivzCSEcbfTo0Rw+fJinn34a\npRQnT57kq6++IjMzk5deeonhw4c7OkTAHGdeXh7jx4+vtj0yMpLOnTvbte/t27dz7733EhcXxx13\n3EFOTg7z58+nRYsWLFq0CFdXV7v2X1vPPPMMX3/9NaNGjaJNmzZ88803HDhwgM8++6xOCWtFRQUj\nR44kKyuLsWPH4u7uzvz583F1deW7777Dz88PgC+++IKXX36ZQYMGkZCQwJkzZ/jyyy9JT0/n3Xff\n5ZprrrHxlQohrgSSKAshHG706NGkp6fzyy+/WLZlZ2dzww03EB4ezg8//OC44M4xevRoNE3jk08+\nafC+7777bpKTk1mzZg0+Pj4AfPvtt0yZMoUXXniBESNGNHhM50tPT+f6669n1KhRPP300wCUlJRw\n/fXXExcXx4IFC6xuc/HixTz11FO8+eabXH/99QD88ccf3HHHHTz88MP87//+LwCpqamEhITg7+9v\nOTcnJ4frr7+eqKgovvvuOxtcoRDiSiM1ykIIpxQWFkZ0dDTp6emODqUapRSVlZWcOXOmwfrMz8/n\n999/p1+/fpYkGeDGG2/ExcWF1atXN1gsf+fnn39GKcUtt9xi2ebj48OgQYPYunUrxcXFVre5Zs0a\n/P39GThwoGVbp06diI2NZdWqVZZtMTEx1ZJkgNDQUKKjozly5EgdrkYIIaRGWQjhpKqqqsjOziYs\nLMzqc8vKyigtLf3bY3x8fHBzc7O67d27d9O5c2cqKysJDQ1l1KhRjBs3Dk3TrG6rtlJSUlBKERsb\nW227p6cnzZs3JyUlxeo2CwsLqaqq+ttjrK19PnToEC4uLsTFxVXbHh8fT1VVFcnJySQmJlrdZps2\nbS54fdu2bctPP/10yfPz8vLq9B4SQgiQRFkI4SSqqqrIz89HKcXp06f56KOPOH36NM8884zVbc2d\nO5d33nnnb4958cUXufnmm61qNyoqil69etG6dWtKSkpYunQpr7/+OllZWTz77LNWx1lbOTk5AAQE\nBFywLzAwsE6J8ogRIzhx4sRF92uaxoEDB6xqMycnB39/f1xcXHj//feZN28e7777LsHBwYD5oTxr\n5eTk0KFDBwDGjh3LsWPH+PrrrwkJCcFoNFJQUFDj6wLmEe6srCweeughq/sVQgiQRFkI4SRycnLo\n2bOn5efmzZvz/vvv069fP6vbuvnmm+natevfHnP+6GxtPP/88xf0M27cOL7++mvGjBlDq1atrG6z\nNioqKgBqfGDP1dXVst8ar776KuXl5fWO7VwVFRWWGE+cOMGZM2fIzc3F19cXMI/016fN9PR0cnNz\nMRgMlm8DLnYNubm5TJs2jejoaMaOHVuXyxFCCEmUhRDOITAwkFmzZmEymdi5cyfvv/8+K1eurFOi\nHBkZWW3qMHsaNWoUv/76K1u3brVbonw2KTQajRfsMxqNeHt7W92mtSUQteHm5mZJ2qdPn87EiRMJ\nDQ3l559/BsDDw8PqNt3d3S3XvXTpUioqKvDz87P04+7ufsE55eXl/POf/7RMVVeXfoUQAiRRFkI4\nCXd3d8uIcu/evdHpdLz55psMGTLE6jl4S0tLL/mwnZ+fX41JlrWaNGkCmGt+7SU0NBSAgoKCC/bl\n5+df8BBbbeTl5V2yRvlsv7UVGhpqqX12cXGxnJ+bmwtASEiI1XGGhoZazvfw8LAkvadPn8bNze2C\nazeZTDz22GMcOHCAefPmER0dbXWfQghxliTKQginNGbMGD7++GPeeustqxPl+fPn26VGuSZn63zt\nuehHbGwsmqaRnJxcbbvBYCAzM5MbbrjB6jZHjhxp8xrluLg4TCYTBw8epH379pbt+/fvR6fT0bp1\n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 truncated
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a952d9e8>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb3f34e0>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 34
|
|
|
|
|
"prompt_number": 35
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2509,7 +2546,7 @@
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"source": [
|
|
|
|
|
"**author's note: text needs to move to kalman math chapter. leaving here for now. Do not read **\n",
|
|
|
|
|
"**author's note: text needs to move to kalman math chapter. leaving here for now.**\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"But what does \"quite large\" and \"quite small\" mean, and what should $\\textbf{Q}$ contain? The numbers in the $\\textbf{Q}$ matrix are not arbitrary, but the variances of the process noise. This means that they have the same units as the rest of the system. So, suppose the noise of our sensor has a standard deviation of $0.5m$, and the rest of our system is specified in meters as well. Variance is the standard deviation squared, so if $\\sigma=0.5$, then $\\sigma^2 = 0.25$.\n",
|
|
|
|
|
"\n",
|
|
|
|
@@ -2525,7 +2562,7 @@
|
|
|
|
|
"\n",
|
|
|
|
|
"But again, what does this *mean*? This is a one dimensional problem, where our variables are $x$ and $\\dot{x}$. Assume we are tracking a person walking in 1D, so $x$ is their position, and $\\dot{x}$ is their velocity. We have no state variable for $\\ddot{x}$, so we are assuming acelleration is zero, and thus their velocity is constant. No one walks with constant velocity, even if they are trying to do so. The *process noise* specifies how much variance there is in each state variable due to the changes in velocity that inevitably happen.\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"You will very typically see Q expressed in this form (indeed, this is what the code immediately above does):\n",
|
|
|
|
|
"You will very typically see Q expressed in this form in introductory materials (and even in some published papers):\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"$$\\begin{bmatrix}\n",
|
|
|
|
|
"0&0 \\\\\n",
|
|
|
|
@@ -2587,13 +2624,13 @@
|
|
|
|
|
{
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a9483780>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb0fa828>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 35
|
|
|
|
|
"prompt_number": 36
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2659,11 +2696,11 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAAGXCAYAAAC9TOY9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmQ5HV9//HX9+z7mHt2l0UkILsJKi6EitHsquCBQkVR\nK5aWR6JClKBgDBqjliX+jFVGjWExBozxiMagiKhYlkcSEJAQFbVKdFUQWPaYnbPv7m9/j98fw66u\nuLtzdPe3e/r5+EN3eqa737sf5vt9zWfen8/H2LNnTyQAAABgSJhxFwAAAAD0EgEYAAAAQ4UADAAA\ngKFCAAYAAMBQIQADAABgqBCAAQAAMFQIwADQIddcc422bdsWdxkntG3bNu3evTvuMgAgNnbcBQDA\nRmIYxu98vFQq6T/+4z/07W9/Ww899JAk6bTTTtMll1yiXbt2rfn92u22du/erZtuukmlUkmPe9zj\ndOWVV+qP//iP1/yaALDRMQMMAB0URb/7bKEf/ehHuvbaa7Vlyxa94Q1v0F/91V+p2Wzq0ksv1Wc/\n+9k1v9973vMeXXfddXrWs56lv/u7v5MkXXLJJfrRj3605tcEgI2OGWAA6IHTTjtN3/zmNzU9PX3k\nsRe/+MV69rOfrQ9/+MN6yUteItNc3ZzE3r17dcMNN+hlL3uZ3v72t0uSnvvc5+pZz3qW/vEf/1H/\n9m//1tG/AwBsFMwAA0APbN68+ajwK0nJZFJPfOITVSqVtLCwsOrX/K//+i9FUaSLL774yGPZbFbP\nec5zdPfdd6tSqay7bgDYiAjAABCj+fl5JRIJFQqFVT93z549sixLZ5xxxlGPb9++XUEQ6Be/+EWn\nygSADYUADAAx+elPf6of/OAHeu5znyvHcVb9/NnZWRUKBVmWpY9+9KM655xzdPfdd2tsbEySNDc3\n1+mSAWBDIAADQAwajYauuuoqjY6O6q//+q/X9Bqe5x0Jzvv371etVtP8/Lxc15UkNZvNjtULABsJ\nARgAeiwMQ73lLW/Rgw8+qA9/+MMaHx9f0+u4rivP8yRJ73rXu3TbbbfpggsuOPJYMpnsWM0AsJGw\nCwQA9Nj73vc+ffOb39T73/9+nXPOOWt+nYmJCZVKJQVBIMuyNDExIWm5r1jSmoM1AGx0zAADQA99\n/OMf16c+9Sm99a1v1YUXXriu1zrjjDMUhqF+9rOfHfX4vffeK9M0dfrpp6/r9QFgoyIAA0CPfPWr\nX9X73/9+/eVf/qVe+cpXrvv1nvGMZ8g0TX3xi1888li1WtXXv/51nXvuucrlcut+DwDYiGiBAIAe\n+PGPf6y3vvWtOuWUU3Tqqafq5ptvPurzT33qU4/s3rBSW7du1Yte9CJ99rOflWEYOv300/WFL3xB\nlUpFV1xxRSfLB4ANhQAMAD1w3333yfd9PfDAA7rqqquO+pxhGPrUpz616gAsSe94xzs0MjKim266\nSTfccIPOOOMMXXfddTrrrLM6VToAbDgEYADogRe84AV6wQte0PHXdRxHV155pa688sqOvzYAbFT0\nAAMAAGCoEIABAAAwVAjAANAhhmHIMIy4ywAAnICxZ8+eKO4iAAAAgF5hBhgAAABDhQAMAACAoUIA\nBoAOueaaa7Rt27a4yzihbdu2affu3XGXAQCxIQADQAedaBHczTffrAsvvFBPeMIT9KxnPUuf/vSn\n1/2e3/nOd/Tyl79cZ599tnbs2KEXvehFuuOOO9b9ugCwUXEQBgB0UBQde13x1772Nb3lLW/Rn/zJ\nn+iVr3yl7rrrLv2///f/5Pu+/vzP/3xN7/flL39ZV111lc466yxdccUVSiQSuu+++3To0KG1/hUA\nYMMjAANAD0RRpH/4h3/Qtm3bdN1118kwDL34xS9WqVTStddeq5e85CVKpVKres1qtar3vOc92rlz\np6677rouVQ4AGw8tEADQA3v27NH+/fv1/Oc//6g2iRe96EWqVqu66667Vv2a3/rWt1Qul3X55ZdL\nkur1usIw7FjNALBREYABoAd+9rOfSZK2b99+1OOHP96zZ8+qX/OHP/yhXNdVGIZ63vOepx07dujs\ns8/WO9/5TrVarfUXDQAbFAEYAHpgdnZWkjQ+Pq7vfve7Ouecc3T99ddrfHxckjQ3N7fq1zx48KBc\n19Vll12mJz/5ydq9e7de+MIX6oYbbtD73ve+jtYPABsJPcAA0AOe50mSHMfR/Py8qtWq9u/fL9d1\nJUnNZnPVr9loNFStVvXMZz5Tb3/72yVJ559/vhYXF/X5z39el19+uUZHRzv3lwCADYIADAA9cDjo\nttttXXjhhTr33HM1OTmparUqSUomk2t+zec85zlHPf4nf/InuuWWW3T//fcTgAHgd6AFAgB6YGJi\nQtKvWx0mJyclSfPz85J0pBViNcbGxiRJIyMjRz1eLBYlia3QAOAYCMAA0ANnnHGGJOnee+896vHD\n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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a9678630>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb500470>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 36
|
|
|
|
|
"prompt_number": 37
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2688,11 +2725,11 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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\nfZjvDwoA0C0EYACQ9LWvfU1bt27Vxz/+cb35zW+e93Wazaamp6d133336b777jvo4xs2bNAll1yi\nj3/84wsp92Ude+yxkg4OulNTU5KkdDp9xNd85Stfqccff1zT09PK5XKzjz/zzDPKZrMaGRlZQMUA\nsPhogQDQ9x566CHdfPPNuvzyy3XJJZcc9vPHxsZ0/vnn64ILLjjoY4lEQlu2bNGdd945+9+WLVt0\n3HHHKZvN6s4779Tb3/72TnwZkqTXve51CofDeuihhw44/ONf//VfJUmvec1rDnrO008/rfPPP1/v\nfe97X/KaGzdulKQDjjXes2ePHnvsMZ1zzjltrB4AFgcrwAD62tNPP63rrrtORx99tNauXavvf//7\nB3z8zDPPnG0r2M80Te3YseMl9/UNBAI666yzDnr8q1/9qsrlcsePQ85ms3rf+96nO++8U+9///t1\nzjnnaPv27br//vt13nnn6bjjjjvoOY1GQzt27Jjt8/1DZ5xxht7whjfo1ltvValU0vDwsLZu3apo\nNKrLL7+8o18PAHTCggPwNddco3//939Xo9HQypUr9ZGPfIQVAQCe8dxzz8myLO3YseOgbcJ8Pp+2\nbt16UACer8U6Cvnqq69WKpXS/fffr7/9279VPp/X+973Pl199dXzruu2227TF77wBX3rW99So9HQ\nq171Kt1yyy1avXp1u8sHgI7zbd++3T38p728Z599VmvXrlU4HNYvfvELXXbZZfqP//gPxWKxdtUI\nAAuyefNm3XHHHfPaAQHzs2vXLm3cuFE33XST3vrWt3a7HAA4wIJXgPfvJ+m6rkzTVCKRWLRVDgAA\nAOBItaUH+IYbbtB3vvMdRaNR3XnnnewJCQAAgJ7Vll0gbrjhBj311FO6+uqr9bGPfUytVqsdlwWA\ntvD5fPxmCgAwa8E9wH/oggsu0LXXXjt7F/TOnTvbeXkAAADgZc3l5ty2b4P2+/tO7nfCCSe0+2Ww\nCPL5vL773e92fNsmdAbj512Mnbcxft7F2HlbPp/Xtm3b5vS5C2qBmJyc1P33369qtSrLsnTfffep\nUCjo5JNPXshlAQAAgI5Z0Aqw3+/XQw89pC9+8YsyTVPHHnusvvzlLyubzbarPgAAAKCtFhSABwYG\n9A//8A/tqgU9iPYVb2P8vIux8zbGz7sYu/7Qll0gsHQxEXgb4+ddjJ23MX7exdj1BwIwAALine truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a93fc780>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb25de48>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 37
|
|
|
|
|
"prompt_number": 38
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2758,11 +2795,11 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VFX6wPHvnZIyM6mTBiRACiUQSkIHpQSRotLEXVmK\n4FpYVl1Qf+DqWlFWVwXdVVexi1gp4iogVaoUqWogJJSQAIE0QiaZZCYz9/fHyEgkQELKQPJ+nicP\nmVvOfedkQt45c+57lNTUVBUhhBBCCCFEBRpPByCEEEIIIcTVSBJlIYQQQgghKiGJshBCCCGEEJWQ\nRFkIIYQQQohKSKIshBBCCCFEJSRRFkIIIYQQohKSKAshhBBCCFEJnacDEEKIhmbx4sU8+uij7sda\nrRaz2UyPHj144IEHiIqKqlZ7//nPf3j99dcv2B4eHs769esrbLPb7bz22mssWbKEwsJCWrduzfTp\n0+ndu/cF52/cuJFXXnmF9PR0goKCuPXWW5k6dSparbZa8QkhREMlibIQQtSRe++9l7i4OMrKyti3\nbx+LFy9m8+bN/O9//8NsNle7vRdffLHCY19f3wuOefbZZ/niiy8YN24crVu35ssvv+See+5hwYIF\ndOrUyX3czp07mTJlCgkJCTz22GMcOHCA119/ncLCQv7xj39U/8kKIUQDJImyEELUkZ49e9KrVy8A\nxowZQ3R0NC+88AKLFi3innvuqXZ7t9xyyyX3Z2ZmupPkc8nusGHDuPHGG3nllVd4//333ce+8sor\nBAcH88EHH7gTbofDwaeffsrkyZNp1qxZteMTQoiGRuYoCyFEPenTpw8AWVlZV9yGxWJBVdVK961d\nuxZVVRk9erR7m8lkYsiQIWzfvp2ioiIAzpw5w86dOxk8eHCFUekxY8bgcDhYt27dFccnhBANiYwo\nCyFEPcnIyAAgKCiIs2fPUl5efsnjg4ODKzzu2rUrFosFg8HA4MGDeeSRRwgICHDvT01NRavV0qZN\nmwrnxcfH43A4SEtLIykpifT0dJxOJ+3atatwXJs2bVAUhdTU1Jo8TSGEaDAkURZCiDpisVjIz8/H\nZrOxb98+nnvuObRaLUOHDmXkyJGcOHHikucfOHAAgICAACZOnEinTp3Q6XRs3ryZL7/8kv379/PF\nF1/g5eUFQE5ODgEBAWi1Wt58803eeecd3njjDfd86NzcXABOnz4NgNlsJj09nQkTJjB06FCeeOIJ\n/P39ycnJqasuEUKIa4okykIIUUfuv//+Co/Dw8OZM2cObdu25aWXXqKsrKxK7UycOLHC48GDB9O8\neXNeeuklli5dym233QaAzWZDr9cDcOLECYqLi8nLy8PPzw+A0tJS93EAXl5eFBYWUlhY6J4Ootfr\nqxyXEEI0dJIoCyFEHZkxYwbx8fHodDrMZjMxMTHufUlJSTVqe/z48bz88sts3brVnSh7eXm5k+Cn\nnnqK+++/n9DQUNauXQuAj4+P+zhwJcy9evVi48aNBAYGAq7yct7e3jWKTQghGgpJlIUQoo7Ex8e7\nq178Xn5+Pg6H45Lnh4aGXnSfj48P/v7+nDlzpsLxhYWFOBwOtFqt+/y8vDwAQkJCAAgLC6uw/dzU\nDJvNxtmzZy95XSGEaEwkURZCCA8YM2bMJecoK4rC/v37L7rfYrFQWFhYoR5zmzZtcDqdHDhwgPbt\n27u3p6SkoNFoaNWqFQBxcXFoNBpSUlIqVMg4cOAAqqpecDOgEEI0VpIoCyGEB1R1jrLD4aC4uBh/\nf/8K29977z0A+vbt696WnJzMCy+8wOLFi92JssViYcWKFXTv3t09VzkwMJAuXbqwYsUKHnzwQQwG\nAwALFy5Ep9MxYMCAWnmOQghxrZNEWQghPKCqc5SLi4sZOHAggwcPJi4uDr1ez7Zt21i5ciW9evXi\npptuch8bFRXFmDFj+OSTT1AUhVatWrFw4UKKioqYNm1ahXb/9re/cccddzBp0iRuvfVWUlNT3YuV\nyGIjQgjhIomyEELUAUVRaqUdHx8fkpOT2bZtG8uWLcNmsxEZGcl9993HPffcc8F1Hn/8cYKCgliy\nZAlffPEFbdq0Yd68eXTu3LnCcV27duW///0vr776Ks899xzBwcFMnTqVv/71r7UStxBCNARKampq\n5Us8CSGEEEII0YjJEtZCCCGEEEJUQhJlIYQQQgghKiGJshBCCCGEEJWQRFkIIYQQQohKeLzqRWZm\npqdDEEIIIYQQjUBUVFS1jvd4ogyuZV5F/TKbzSxevJh+/fp5OpRGSfrfs6T/PUf63rOk/z1L+t9z\nzGYzmzZtqvZ5MvVCCCGEEEKISkiiLIQQQgghRCUkUW7EZMqLZ0n/e5b0v+dI33uW9L9nSf9fWyRR\nbsTkl9WzpP89S/rfc6TvPUv637Ok/68tkigLIYQQQghRiaui6sWl2O12CgoKUBTF06E0KAUFBQCU\nl5d7OJK6odfrCQwM9HQYQgghhLiGXdWJst1uJy8vj7CwMDQaGfwWVXfmzBlKSkowGAyeDkUIIYQQ\n16irOvssKCiQJFlckYCAACwWi6fDEEIIIcQ17KrOQBVFkSRZXBFFUWS6jhBCCCFqRLJQIYQQQggh\nKiGJshBCCCGEEJWQRLmRu/POO4mMjCQyMpLp06d7OhwhhBBCiKtGjRLlEydOkJiYWOGrbdu2rFq1\nivLych599FGSkpIYMGAAy5cvr62YG5UePXowZ86cOmv/1VdfZffu3dxyyy0yp1cIIYQQ4jw1Kg/X\ntGlTdu/e7X6ckZHBqFGjuP7663n//fdJT09nw4YNpKSkcO+995KYmEhERESNg25M6jp59fPzw8/P\nD29vb1RVrdNrCSGEEEJcS2p16sWiRYu48cYb8fHxYcWKFUyYMAGTyUT37t1JTExk1apVtXm5q9rK\nlSsZNWoU7du3JzY2llGjRrFjx44Kx3z33XfcdNNNxMbGkpiYyIMPPojdbgdcI8mRkZFkZWUxZ84c\n9/SIuXPnus8fM2ZMhdHmzMxMIiMj2bp1KwA2m40HH3yQ3r17ExMTQ5cuXXjmmWew2WwXxCujyUII\nIYQQFdXagiNOp5OlS5fy/PPPA3D06FGio6N5+OGHSU5OJjY2liNHjtTW5a56OTk5/PGPfyQxMRFv\nb2/eeustxo0bx7Zt2wgKCmLlypXcddddPPDAA7z66quUlJTw9ddfU1ZWhl6vZ/ny5TgcDoYNG8aI\nESOYMmUKwAULaFwqwbXb7Xh5eTFnzhyioqI4dOgQf/vb39Dr9fz973+v0+cvhBBCiLrhcNo4YdlL\nse00bUNu8nQ4DVqtJcqbNm1CURR69eoFgNVqxWAwkJaWRkJCAkajkezs7Nq6nFuzcW/XepsAxxfc\nXaPzx40bV+HxY489xvz589m2bRtDhgzhtddeY8iQIfzf//2f+5iOHTu6vw8ODgZAq9ViNBoJCQmp\ndgxGo9H9xgWgWbNmjBw5kjVr1kiiLIQQQlyjnKqTHzJfAyA2aCB6rY+HI2q4ai1RXrx4McOHD3c/\n9vX1xWq1snTpUgCeffZZjEZjpeeazeZKtxcUFNRWePXu2LFjvPjii+zatYu8vDycTicAxcXFAKSk\npDBixIg6j2PBggV88sknZGVlYbVasdvtNG3atM6vezXQ6XQXfW15ml6vBy7+2hd1S/rfc6TvPUv6\n37Nqs/9DsmLJsaRRrs8hIqhzjdtr6M71fXXVSqJcWFjI2rVrWbJkiXtby5YtOXToEO3btwfg0KFD\nDBw4sNLzZ82a5f6+b9++9OvXr8rXrunIb1254447aNGiBXPnziUsLAybzUZycrI7Ya4Nv5928fu2\n//e///H000/z9NNPk5SUhI+PD2+88Qbr16+vUntCCCGEuDo1CWhPjiWNE4U/EymJcqXWr1/Phg0b\nANcn9H379q12G7WSKH/zzTe0bt2a2NhY97ahQ4cyf/58BgwYQEpKCnv27KkwDeB8U6dOrfA4Ly8P\ngPLy8toIr97l5+eTlpbGm2++SZs2bQD48ccfKxzTvn17fvjhB/785z9fsi29Xu++we/3AgICKCoq\ncj/OysqqsH/btm3069ePsWPHurdlZmZWmhAbjUZyc3Mv/cSuMeXl5e7X0tXm3GjC1RpfQyf97znS\n954l/e9Ztdn/fprmAGTm7SXWb2iN22uIEhISSEhIAFx9v2nTpmq3UStVLxYvXszIkSMrbJs0aRKt\nWrWiX79+PPLII8yePZvw8PDauNxVLzAwELPZzPz588nIyGDLli089dRTFRLU++67j++++46XXnqJ\ntLQ0fv75Z2bNmoXFYqnQVkxMDBs2bODkyZOUlpbicDjc+zp16sTq1as5e/YsVquVN998s8K5cXFx\n7Nixg61bt3L48GHmzp3Lzp07K425U6dObNq0iT179nD69GmsVmst9ogQQgghasPGY3PZceI9/Lya\nAJBnTcepXpsDi9eCWkmUFy1axPjx4yts0+l0zJ49m127drFu3TqGDm0873Y0Gg1vvfUW27ZtIzk5\nmccff5wZM2ag0fzW3YMGDeLdd99l3bp1DBkyhLFjx5KTk4O3t3eFth555BE0Gg19+/YlLi6Of//7\n3+59kyZNIiYmhl69enHLLbcwaNCgCsn4+PHjGTx4MHfddRc33XQTJ06c4M4776w05tGjRzN06FDG\njh1LUlISn3zySS33ihBCCCFqorS8kBNFu8g4sxmTVxjxITeT1OQOVLX2pnWKipTU1FSPrjKRmZlJ\nfHx8pftycnIIDQ2t54hEQ3E1v37k40/Pkv73HOl7z5L+96ya9n9G4Q9szXqDCGMH+rWcUZuhNXjn\npl5ERUVV67xaXXBECCGEEELUjVOWnwEIN7X3cCSNhyTKQgghhBBXOVVVOVX8CwDhRkmU64Line truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a97a4e80>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb15f198>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 38
|
|
|
|
|
"prompt_number": 39
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2787,11 +2824,11 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8VFXawPHfnZJMZiZ1UiEBUiiBUBKkSxcFC012VxZR\ncG0vqy6WF311rSir6wrrrusqrmtBLLsCoiIgTaoUpWowhBYSIJBGkkkmyZT7/jEyEkggIZNMSJ7v\n55MPmVvOfeZkQp45c+5zlIyMDBUhhBBCCCFENRpfByCEEEIIIURzJImyEEIIIYQQNZBEWQghhBBC\niBpIoiyEEEIIIUQNJFEWQgghhBCiBpIoCyGEEEIIUQNJlIUQQgghhKiBztcBCCFEa7V48WIef/xx\nz2OtVovFYqFfv3488MADxMXF1au94uJi3nnnHXbu3MnevXupqKjgnXfeYcCAAd4OXQghWgVJlIUQ\nwsfuuecekpKSqKysZO/evSxevJjNmzfzxRdfYLFY6tzOiRMneOONN4iPj6dz587s2bOnEaMWQoiW\nTxJlIYTwsf79+3tGfSdNmkR8fDwvvfQSixYt4u67765zO/Hx8WzZsoWwsDAWL14sibIQQjSQJMpC\nCNHMDBo0CICcnJx6nWcwGDAYDI0RkhBCtEqSKAshRDOTlZUFQGhoKCUlJTgcjoseHxYW1hRhCSFE\nqyOJshBC+JjVaqWwsJCqqir27t3LCy+8gFarZcyYMYwfP54TJ07Ueq6iKOzfv78JoxVCiNZDEmUh\nhPCx+++/v9rjqKgo5s6dS5cuXfjLX/5CZWWljyITQojWTRJlIYTwsVmzZpGcnIxOp8NisZCQkODZ\nl5aW5sPIhBCidZNEWQghfCw5ObnWWseFhYU4nc6Lnh8REdEYYQkhRKsnibIQQjRjkyZNkjnKQgjh\nI5IoCyFEMyZzlIUQwnckURZCiGasvnOUX3/9dQDPKPPnn3/Orl27AJgxY4Z3gxNCiBZOEmUhhPAh\nRVG82t7f/vY3FEVBVVUURWHJkiWe60iiLIQQ9aNkZGSovg5CCCGEEEKI5kbj6wCEEEIIIYRojiRR\nFkIIIYQQogaSKAshhBBCCFEDSZSFEEIIIYSogc+rXmRnZ/s6BCGEEEII0QrExcXV63ifJ8rgXr5V\nNC2LxcLixYsZOnSor0NplaT/fUv633ek731L+t+3pP99x2KxsGnTpnqfJ1MvhBBCCCGEqIEkykII\nIYQQQtRAEuVWTKa8+Jb0v29J//uO9L1vSf/7lvT/lUUS5VZMfll9S/rft6T/fUf63rek/31L+v/K\nIomyEEIIIYQQNWgWVS8uxm63U1RUhKIovg6lRSkqKgLA4XD4OJLGodfrCQkJ8XUYQgghhLiCNetE\n2W63U1BQQGRkJBqNDH6Lujtz5gzl5eUYjUZfhyKEEEKIK1Szzj6LiookSRaXJTg4GKvV6uswhBBC\nCHEFa9YZqKIokiSLy6IoikzXEUIIIUSDSBYqhBBCCCFEDSRRFkIIIYQQogaSKLdyd9xxB7GxscTG\nxvLggw/6OhwhhBBCiGajQYnyiRMnSE1NrfbVpUsXVq1ahcPh4PHHHyctLY3hw4ezfPlyb8XcqvTr\n14+5c+c2Wvuvvvoqu3bt4qabbpI5vUIIIYQQ52hQebg2bdqwa9cuz+OsrCwmTJjA4MGDeeeddzh4\n8CAbNmwgPT2de+65h9TUVKKjoxscdGvS2MlrYGAggYGB+Pv7o6pqo15LCCGEEOJK4tWpF4sWLeLa\na6/FYDCwYsUKpk6ditlspm/fvqSmprJq1SpvXq5Z+/rrr5kwYQLdunUjMTGRCRMmsGPHjmrHrFy5\nkhtuuIHExERSU1N56KGHsNvtgHskOTY2lpycHObOneuZHjFv3jzP+ZMmTao22pydnU1sbCxbt24F\noKqqioceeoiBAweSkJBA7969ee6556iqqrogXhlNFkIIIYSozmsLjrhcLpYuXcqLL74IwNGjR4mP\nj+eRRx5hxIgRJCYmcuTIEW9drtnLy8vjN7/5Dampqfj7+/Pmm28yZcoUtm3bRmhoKF9//TV33nkn\nDzzwAK+++irl5eV8/vnnVFZWotfrWb58OU6nk+uvv55x48Zx7733AlywgMbFEly73Y6fnx9z584l\nLi6OQ4cO8Yc//AG9Xs///d//NerzF0IIIUTjcLqqOGHdQ1nVabqE3+DrcFo0ryXKmzZtQlEUBgwY\nAIDNZsNoNJKZmUlKSgomk4nc3FxvXc6j7ZS3vN4mwPGFdzXo/ClTplR7/MQTT7BgwQK2bdvG6NGj\nee211xg9ejT/+7//6zmmR48enu/DwsIA0Gq1mEwmwsPD6x2DyWTyvHEBaNu2LePHj2fNmjWSKAsh\nhBBXKJfq4tvs1wBIDB2JXmvwcUQtl9cS5cWLFzN27FjP44CAAGw2G0uXLgXg+eefx2Qy1XiuxWKp\ncXtRUZG3wmtyx44d4+WXX2bnzp0UFBTgcrkAKCsrAyA9PZ1x48Y1ehwLFy7kww8/JCcnB5vNht1u\np02bNo1+3eZAp9PV+tryNb1eD9T+2heNS/rfd6TvfUv637e82f/hOYnkWTNx6POIDu3V4PZaurN9\nX19eSZSLi4tZu3YtS5Ys8Wzr0KEDhw4dolu3bgAcOnSIkSNH1nj+7NmzPd8PGTKEoUOH1vnaDR35\nbSy333477du3Z968eURGRlJVVcWIESM8CbM3nD/t4vy2v/jiC5599lmeffZZ0tLSMBgMvP7666xf\nv75O7QkhhBCieYoJ7kaeNZMTxT8QK4lyjdavX8+GDRsA9yf0Q4YMqXcbXkmUv/zySzp16kRiYqJn\n25gxY1iwYAHDhw8nPT2d3bt3V5sGcK4ZM2ZUe1xQUACAw+HwRnhNrrCwkMzMTN544w06d+4MwHff\nfVftmG7duvHtt9/yu9/97qJt6fV6zw1+5wsODqa0tNTzOCcnp9r+bdu2MXToUCZPnuzZlp2dXWNC\nbDKZyM/Pv/gTu8I4HA7Pa6m5OTua0Fzja+mk/31H+t63pP99y5v9H6hpB0B2wR4SA8c0uL2WKCUl\nhZSUFMDd95s2bap3G16perF48WLGjx9fbdu0adPo2LEjQ4cO5bHHHmPOnDlERUV543LNXkhICBaL\nhQULFpCVlcWWLVt45plnqiWo9913HytXruQvf/kLmZmZ/PDDD8yePRur1VqtrYSEBDZs2MDJkyep\nqKjA6XR69vXs2ZPVq1dTUlKCzWbjjTfeqHZuUlISO3bsYOvWrRw+fJh58+bx/fff1xhzz5492bRp\nE7t37+b06dPYbDYv9ogQQgghvGHjsXnsOPFvAv1iACiwHcSlXpkDi1cCryTKixYt4tZbb622TafT\nMWfOHHbu3Mm6desYM6b1vNvRaDS8+eabbNu2jREjRvDkk08ya9YsNJpfunvUqFG8/fbbrFu3jtGj\nRzN58mTy8vLw9/ev1tZjjz2GRqNhyJAhJCUl8be//c2zb9q0aSQkJDBgwABuuukmRo0aVS0Zv/XW\nW7nuuuu48847ueGGGzhx4gR33HFHjTFPnDiRMWPGMHnyZNLS0vjwww+93CtCCCGEaIgKRzEnSneS\ndWYzZr9IksNvJC3mdlTVe9M6RXVKRkaGT1eZyM7OJjk5ucZ9eXl5RERENHFEoqVozq8f+fjTt6T/\nfUf63rek/32rof2fVfwtW3NeJ9rUnaEdZnkztBbv7NSLuLi4ep3n1QVHhBBCCCFE4zhl/QGAKHM3\nH0fSekiiLIQQQgjRzKmqyqmyHwGIMkmi3FQkURZCCCGEaObK7fmU2wvw05oJMbTzdTithtcWHBFC\nCCGEEI3D5BfBuM6vUVqZi6LIOGdTkURZCCGEEOIKYNAFY9AFV9tWaDvMj6eXYPaLIjXm1lrOFJdL\n3pIIIYQQQlzBTlh3c8K6x9dhtEiSKAshhBBCXKFCDO3RafyxVuVis5/xdTgtjiTKQgghhBBXKI2i\nxRKQBEC+LdPH0bQ8kigLIYQQQjRjRbYsnK7al6kON3YCIL8so6lCajUkURZCCCGEaKYcrkpWH3mG\nzzL+B4erosZjIoydASiwHWrK0FoFSZTFFadfv37MnTvX12EIIYQQjS6//AAu1UGgXww6jaHGYyzG\njoyMf5LhHR5v4uhaPikPJ644iqL4OgQhhBCiSdRl2Wqdxs8z/UJ4l4woN4ItW7aQlpbGHXfcQXJy\nMu+++y6jRo2iR48ebNy4EYCSkhJmzZpFz549SU5OZvLkyWRm/jIJ/+DBg0yfPp3U1FQSEhIYOnQo\nH374YbXr2O12nnrqKXr37k1iYiJXX3018+fP9+zPzs4mNjaW48ePe7a98sor9O/fv1o7n3zyCbGx\nsfzwww/ceOONJCYm0rdvX3780b1UZlVVFc8//zy9e/emY8eOjB07lu+++85zfr9+/bj//vvp1q0b\nd999N7Nnz6ZTp048/vjjF1xn6NChJCYmMmzYMD766KNq+2NjY1m4cCHjx48nKSmJG2+8kYMHD1a7\nTmxsLDk5OcydO5fY2FhiY2OZN29evX4+QgghxJUiV5at9ikZUW4keXl53HvvvbRv354nn3yS//73\nv6xevZr58+czePBgpk6dil6v57333iM4OJi33nqLW265hY0bN2I0GiksLCQ1NZWZM2disVjYsGED\njz76KG3btmXo0KEAvPPOO3z66afMnz+f+Ph4jh49SnZ29iVjq21E9oknnuD+++8nOTmZffv2odfr\nAXjwwQfJyMjgH//4B23atGHx4sVMnjyZjRs3Eh0djaIohIaG8t577zFhwgSmT5/Oxx9/zPjx43n4\n4YexWCx88MEHzJkzhz/96U/07t2bPXv28OCDDxIaGsro0aM9MfzrX//ixRdfJCgoiBkzZvLine truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a974e208>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb148160>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 39
|
|
|
|
|
"prompt_number": 40
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2821,11 +2858,11 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a95e02b0>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb2e5668>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 40
|
|
|
|
|
"prompt_number": 41
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2852,11 +2889,11 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8VFX6+PHPnZIyM6mTBiRACoFAKAkdlSpSVJq4K0sR\nXNuXtYD6A1fXirK6KuhaVrGLWCliAZQmvUlVAyG0kACBNEImmWQmM/f3x8BIJISElCHheb9eeZG5\n5dxnTibhmTPnPkdJTU1VEUIIIYQQQpSj8XQAQgghhBBCXIkkURZCCCGEEKICkigLIYQQQghRAUmU\nhRBCCCGEqIAkykIIIYQQQlRAEmUhhBBCCCEqIImyEEIIIYQQFdB5OgAhhGhsFi5cyGOPPeZ+rNVq\nMZvNdO/enQceeICoqKhqtff666/z5ptvXrA9PDycNWvWlNtmt9t54403WLRoEQUFBcTHxzN16lR6\n9ep1wfnr1q3j1Vdf5cCBAwQFBXHLLbcwefJktFptteITQojGShJlIYSoI/fccw9xcXGUlpayZ88e\nFi5cyIYNG/juu+8wm83Vbu+ll14q99jX1/eCY5577jm++uorxo4dS3x8PF9//TV333038+bNo2PH\nju7jtm/fzr333ktiYiKPP/44+/bt480336SgoIB//etf1X+yQgjRCEmiLIQQdaRHjx707NkTgNGj\nRxMdHc2LL77IggULuPvuu6vd3s0331zp/oyMDHeSfC7ZHTp0KDfccAOvvvoqH374ofvYV199leDg\nYD766CN3wu1wOPj888+ZNGkSzZo1q3Z8QgjR2MgcZSGEqCfXXHMNAJmZmZfdhsViQVXVCvetWrUK\nVVUZNWqUe5vJZGLw4MFs3bqVwsJCAE6fPs327dsZNGhQuVHp0aNH43A4WL169WXHJ4QQjYmMKAsh\nRD1JT08HICgoiDNnzlBWVlbp8cHBweUed+nSBYvFgsFgYNCgQTz66KMEBAS496empqLVamndunW5\n8xISEnA4HKSlpZGcnMyBAwdwOp20bdu23HGtW7dGURRSU1Nr8jSFEKLRkERZCCHqiMViIS8vD5vN\nxp49e3j++efRarUMGTKEESNGcPz48UrP37dvHwABAQFMmDCBjh07otPp2LBhA19//TV79+7lq6++\nwsvLC4Ds7GwCAgLQarW8/fbbvPfee7z11lvu+dA5OTkAnDp1CgCz2cyBAwcYP348Q4YM4cknn8Tf\n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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90ac362da0>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb1ee080>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 41
|
|
|
|
|
"prompt_number": 42
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -2922,21 +2959,21 @@
|
|
|
|
|
{
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"png": "iVBORw0KGgoAAAANSUhEUgAAAsMAAAGDCAYAAADOPB2zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VGX6//H3KTOTTDKpJAihN0FQqhQLCCsrLCjgl90V\nUVexsaCIYEEUhEWxLriyKor1p2IDXNwVXAVdI8sKqGABRYogQaSlZ+opvz+GGQhJIAmp5H555Uoy\np92TQ/TD7XOeR9m6dauNEEIIIYQQDZBa2wUIIYQQQghRWyQMCyGEEEKIBkvCsBBCCCGEaLAkDAsh\nhBBCiAZLwrAQQgghhGiwJAwLIYQQQogGS8KwEEIIIYRosPTaLkAIIeqjq6++mg0bNgCgKAqNGjWi\nXbt23HjjjZx33nm1XN1Rx9Z5rEsvvZTHHnusFioSQoi6RcKwEEJUUmJiIvfddx+2bfPrr7/y1ltv\nMW7cOB555BFGjBhR2+VFtW3blvHjxxd7rXnz5rVUjRBC1C0ShoUQopJiY2O59NJLo9+PHDmSSy65\nhEWLFtWpMJyamlqsTiGEEEfJmGEhhKgi6enptGnThj179tR2KcXYto1hGBQVFdV2KUIIUedIZ1gI\nIaqIaZocOHCA9PT0Ch/r9/vxer0n3Cc+Ph6n01nhc3/zzTd069YNwzBIS0tj7Nix3HzzzSiKUuFz\nCSHE6UbCsBBCVJJpmuTk5GDbNocOHeLll1/m0KFD3H///RU+16JFi3jqqadOuM/DDz/MyJEjK3Te\nli1bct5559G+fXsKCwtZvnw5TzzxBPv27WP27NkVrlMIIU43ytatW+3aLkIIIeqb0mZpaNq0Kfff\nfz8DBgyo8Pn27NlDVlbWCfdp164daWlpFT738W6++WYyMzNZsWIFrVu3PuXzCSFEfSadYSGEqKTk\n5GTmzZuHZVls3LiRhQsX8uGHH1YqDDdv3rzGZngYO3Ysn376KevXr5cwLIRo8CQMCyFEJblcLvr1\n6wfA+eefj6qqPPnkkwwbNqzCcw17vd6TPuCWkJCAy+WqdL0RjRs3BiAvL++UzyWEEPWdhGEhhKgi\n1157La+88goLFiyocBh+4YUXqmXMcGl++eUXAFJSUk75XEIIUd9JGBZCiCridrv5wx/+wKJFi/ji\niy/o1atXuY8dOXLkSfdv165dheopKCjA7XajaVr0NdM0eemll9B1nfPPP79C5xNCiNORhGEhhKgk\n2y75/PFVV13FSy+9xPPPP1+hMFwdY4bXrVvHww8/zODBg2nevDler5eVK1eyefNmbrnlFpo0aVKl\n1xNCiPpIwrAQQlRSafP0Nm7cmCFDhrBixQq2b99e4W5uVWrdujXt2rXj/fffJy8vD0VR6NChA48+\n+iiXXXZZrdUlhBB1yUmnVjMMg+nTp7N27Vr8fj9nnXUWM2fOpF27dixYsICFCxdGJ4FPSUlh9erV\nNVK4EEIIIYQQp+qkyzFblkXLli1ZunQpX3zxBYMGDWLixInR7cOGDWPjxo1s3LhRgrAQQgghhKhX\nThqGnU4nEydOjE7Fc/nll7N7926ys7OB0sfMCSGEEEIIUR+cNAwfb+PGjTRu3Jjk5GQAPvnkE/r0\n6cPIkSP55JNPqrxAIYQQQgghqkuFlmMuKChg9OjRTJ48maFDh7Jjxw5SU1PxeDx8/PHH3HXXXSxb\ntkxWNBJCCCGEEPVCuWeTCAaDTJw4kWHDhjF06FAA2rZtG90+ePBgevfuzZo1a4qF4T179lRhuUII\nIYQQQpStotNUlisMm6bJlClTaNWqFZMmTapwUZ06darwMaL2paamsmzZMgYMGFDbpYgKkntXv8n9\nq9/k/tVfcu/qt9TUVNasWVPh48o1ZnjmzJmoqsqsWbOKvf7RRx+Rn5+PZVn85z//Yf369VxwwQUV\nLkIIIYQQQojacNLO8N69e1m6dCmxsbH07NkTCE80/9xzz/H+++9zzz33YJomrVq14oknnpDxwkII\nIYQQot44aRjOyMjghx9+KHVbRZYaFfWTDHGpv+Te1W9y/+o3uX/1l9y7hqfCU6uJhkX+pVB/yb2r\n3+T+1W9y/+ovuXcNj4RhIYQQQgjRYJV7arXqEgqFyMnJQVGU2i5FHCcnJwcAwzBquZKSbNsmOTkZ\nh8NR26UIIYQQoh6r1TAcCoU4fPgw6enpqKo0qUX5WZbFgQMHSE1NlUAshBBCiEqr1QSak5MjQVhU\niqqqpKenR7vXQgghhBCVUaspVFEUCcKi0lRVleE1QgghhDglkkSFEEIIIUSDJWFYCCGEEEI0WBKG\nT3Pjxo2jWbNmNGvWjNtvv722yxFCCCGEqFMkDNeyPn36MG/evGo7/9/+9jc2btzIpZdeKuNrhRBC\nCCGOU+vzDDd01R1QPR4PHo8Hl8uFbdvVei0hhBBCiPpGOsOV9OGHHzJq1Cg6d+5M27ZtGTVqFBs2\nbCi2z7///W+GDRtG27Zt6d69O1OmTCEUCgHhjnCzZs3Iyspi3rx50aEM8+fPjx4/evToYl3jPXv2\n0KxZMz7//HMAgsEgU6ZM4bzzzqNNmzb07NmTv/zlLwSDwRL1SldYCCGEEKIk6QxX0sGDB/njH/9I\n9+7dcblcPPvss4wdO5Z169aRnJzMhx9+yA033MCkSZP429/+htfr5b333iMQCOBwOFi5ciWmafK7\n3/2OESNGMH78eADcbnex65woxIZCIZxOJ/PmzaN58+bs2LGD2267DYfDwT333FOt718IIYQQ4nRQ\n58NwxqKMajv33hv3VvrYsWPHFvv+3nvv5dVXX2XdunUMGTKEv//97wwZMoQ777wzus8555wT/Tol\nJQUATdOIi4ujUaNGFa4hLi6Ohx9+OPp9RkYGI0eOZPXq1RKGhRBCCCHKoc6H4brq559/5rHHHuOr\nr77i8OHDWJYFQFFREQBbtmxhxIgR1V7H66+/zuLFi8nKysLn8xEKhWjatGm1X1cIIYQQ4nRQ58Pw\nqXRvq9Of/vQnWrZsyfz580lPTycYDDJo0KBoKK4Kxw+ROP7c//znP5k9ezazZ8+mR48exMTE8PTT\nT/Ppp5+W63xCCCGEEA2dPEBXCdnZ2Wzbto177rmH3r1706pVK/Lz84vt07lzZ/73v/+d9FwOhyP6\nUN3xEhMTKSgoiH6flZVVbPu6desYMGAAY8aM4cwzz6Rly5bs2bOn1NAbFxeH1+stz9sTQgghhGgw\nJAxXQlJSEqmpqbz66qvs3r2btWvXMmvWrGIh9JZbbuHf//43jz/+ONu2beO7775jzpw5FBYWFjtX\nmzZtyMzMZN++ffj9fkzTjG7r2rUrq1atIj8/H5/Px8KFC4sd265dOzZs2MDnn3/Ozp07mT9/Pl9+\n+WWpNXft2pU1a9awadMmDhw4gM/nq8KfiBBCCCFE/SRhuBJUVeXZZ59l3bp1DBo0iBkzZnDXXXeh\nqkd/nIMHD+aFF17gk08+YciQIYwZM4aDBw/icrmKnWvatGmoqkr//v1p164dTz75ZHTbtddeS5s2\nbejXrx+XXnopgwcPLha4r7rqKi655BJuuOEGhg0bxi+//MK4ceNKrfnyyy9n6NChjBkzhh49erB4\n8eIq/qkIIYQQQtQ/ytatW6t1JYY9e/bQqVOnUrcdPHiQtLS06ry8OM3Jn6HSpaamAnD48OFarkRU\nhty/+k3uX/0l965+S01NZc2aNTRv3rxCx0lnWAghhBBCNFgShoUQQgghRIMlYVgIIYQQQjRYEoaF\nEEIIIUSDJWFYCCGEEEI0WBKGhRBCCCFEgyVhWAghhBBCNFgShoUQQgghRIMlYVgIIYQQQjRYEoaF\nEEIIIUSDJWFY1Dl9+vRh3rx5tV2GEEIIIRoACcOizlEUpbZLEEIIIUQDIWG4EtauXUuPHj0YN24c\nnTp14uWXX2bw4MGcc845fPbZZwDk5+dz11130bVrVzp16sSYMWPYtm1b9Bzbt2/nuuuuo3v37rRp\n04YBAwawePHiYtcJhULMnDmTnj170rZtWy644AKee+656PY9e/bQrFkz9u7dG33tr3/9K3379i12\nnrfeeotmzZrx3XffMXz4cNq2bUvv3r3ZvHkzAMFgkAceeICePXvSvn17LrvsMr744ovo8X369OHW\nW2+lc+fO3HTTTcyZM4cOHTowffr0EtcZMGAAbdu25aKLLuKNN94otr1Zs2a8/vrrjBw5knbt2jF8\n+HC2b99e7DrNmjUjKyuLefPm0axZM5o1a8b8+fMrdH+EEEIIIcpLr+0C6quDBw8yfvx4WrZsyYwZ\nM3jnnXdYtWoVzz33HBdeeCFXX301DoeDV155hcTERBYtWsQVV1zBZ599htvtJjs7m+7duzN58mRS\nU1PJzMzk7rvvJiMjgwEDBgDw0ksvsWTJEp577jlat27Nrl272LNnz0lrK6uzeu+993LrrbfSqVMn\nvv32WxwOBwC33347W7du5amnnqJp06YsW7aMMWPG8Nlnn3HGGWegKArJycm88sorjBo1iuuuu443\n33yTkSNHMnXqVFJTU3nttdeYO3cuDz30ED179uTrr7/m9ttvJzk5mSFDhkRreP7553n44YdJSEhg\nwoQJzJ49m1dffRWAlStXYpomv/vd7xgxYgTjx48HwO12n9K9EkIIIYQoS70Iw00zMkp9/ZdjOqKn\nsn9lpKam0rt3bwoLC3n33Xfp27cvPp+P1atX89lnn/HVV1/x1VdfkZaWBsCcOXNYsmQJq1at4rLL\nLqN379707t07er4rr7ySV199ldWrV0fD8J49e2jcuDEXXHABABllvK/j2bZd6uu33HILgwcPBqBF\nixYA7Ny5k+XLl/P+++/TtWtXACZPnsy7777LsmXLmDBhAgCDBg2iV69epKamMmjQIHr06ELine truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a93e3cc0>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb411898>"
|
|
|
|
|
]
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"metadata": {},
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"png": "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 truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a952d860>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb4114a8>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 42
|
|
|
|
|
"prompt_number": 43
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -3007,11 +3044,11 @@
|
|
|
|
|
"output_type": "display_data",
|
|
|
|
|
"png": "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\nrYebEZs2bcKMGTNQUFCATZs2YezYsTjrrLMAAPv27cPKlStx8skn46WXXkJVVRU2btyIESNGYOLE\nic0el1+1She5lmWhtrYW27ZtQ+/evbP6WEgMEwRB7IdJkybhueeew+OPP56xGH7mmWdy4hlujG3b\ntgEAysrKxLaBAwfis88+g+u6KYvovv76awwYMEBs+973vgcAWLVqVcoHzapVq1J+TxBEyzAMA9df\nfz1UVcWsWbPAGMOUKVMwYsQITJ48GcFgUOR8H3vsseK91lFYt24d5syZA8YYIpEITj/9dGiahnHj\nxmHLli1wXRfvvfcennnmGZSVlcFxHJx99tkwDANXXHFFk8cdNGgQevbsKdYxcNauXQvAE9okhgmC\nINqYUCiESy+9FHPnzsVnn32W0YrlXHiGa2trEQqFIMuy2GbbNp599lkoioKRI0eK7ePGjcO7776L\nhQsX4owzzgAArFixAuvXr8dPf/pTsd+JJ56IUCiE+fPni0xh27bx2muv4ZBDDqEkCYLIkNmzZyMW\ni+EPf/iDeK9eccUVmD9/Pnr16pXT+/7lL38prursj7KyMjz44IMZHf+II47AjBkzxMl0OBzGiBEj\n8Oijj2LcuHGiqtuvXz9xci5JEk466SQ8/vjjmDhxYpMJOowx3HPPPbj33nuxb98+lJaW4osvvhB2\nL//fvWxBYpggCCKNxjxoV155JZ599lk8/fTTGYnhXHiGP/30UzzwwAMYP348+vTpg2g0in/84x/4\n6quvcPPNN+Oggw4S+5577rl49tlncdddd2HTpk3QdR1PP/00DjroIFx11VViv4KCAtx444145JFH\ncPvtt4sOdOvXr8cjjzyS1fETRGentrYWzz//PGbPnp0i3gzDEKIul8yYMSOnxw+Hww22BYNBrFu3\nDjU1NSgtLQXQsCNmYWEhqqqqsHbtWhx55JFNHn/MmDGoqKjAM888g6KiIgwaNAjDhg3Dl19+mfWq\nMEBimCAIogHpmbyA58edMGEC/v73v2PdunUHlACRLfr164cBAwbgrbfeQnV1NRhjGDRoEB588EGc\nd955Kfuqqopnn30W999/P55++mnYto3jjjsOd911FwoLC1P2vfHGG6HrOl544QW88847OPTQQ/HQ\nQw9hwoQJbfnwCKLD89lnn8G27ZRUGgD44osvRBpCRyUSieC8887D+PHjMWXKlJTtPJGmZ8+eCAQC\nsCyr0WO0pLp71FFH4aijjhI/L1iwAEcddVRKC/lssV8xvGjRIsydOxerVq3COeecI7LiTNPEPffc\ng7fffhvFxcW44447cOaZZ2Z9gARBEG3J888/3+TvZs6cKVoV55P+/fvjySefbPH+FRUVePjhh1u0\n76RJkzBp0qQDHBlBEIAXRVhaWppiBdi5cyc+/PBDvPrqqzm//1zaJCRJgmEYDTKFN23ahKOPPlrE\noY0cOVKsY+Ds3r0bJSUlIr+8KaZNm4ZPP/0Ub775JgCvor5s2TLceeedLR5nJuxXDBcVFeG6667D\nRx99lJIzOW/ePKxbtw5Lly7FqlWrcOONN2LYsGHo2bNnTgZKEARBEATRETjuuOOQSCREUxvDMHDn\nnXfi9ttvb5M2y9mwSXC7mG3bKdtDoRAuuuginHDCCWLbf/7zH2zevBkvvvii2HbTTTfh+uuvF77f\n6upqLF26FD/72c9EZXjJkiX45S9/iVmzZqUsTq6rq8PRRx8tfp49ezaGDx+Oc845p8XjzAS2evXq\nFgW0Pfroo9i5c6eoDF988cWYNGkSzj33XADANddcgzFjxqR40AiCIAiCILoiH3zwARYsWIC+ffti\n586dGDduHMaMGZOyz65du/CPf/wDW7duxZFHHgnTNLFt2zb89Kc/FbFsBx10EHbu3InjjjsOxx57\nLBzHwUsvvYTS0lJs3boVl19+eaMe3gPl888/x/PPP4+vv/4a3333HXr06IGhQ4fivPPOE+2QDcPA\n//3f/4mIxr179+L6669PacUMAEuXLsUrr7wiHsPYsWNTknOWLFmC22+/HQ8//DBGjRoltu/cuRNz\n5syBruuora1Fr169cNNNN4kGQi0dZ0tpsRh+5JFHsGvXLiGGhw8fjueeew7z5s3D2LFjsXz5cti2\njd/85jcZDYAgCIIgCKIr8vrrr+PMM8/E+PHj8dZbbyEcDuOyyy7DE088gfvuuw8//OEPceKJJyIW\ni+HSSy/Fm2++iaVLl2L16tW4/vrrMW3aNFx++eVtUm3uzEj738UjfUFJLBZDKBTC2rVrsWvXLhQU\nFCAajWZ9gARBEARBEJ2RcePG4auvvsJxxx0nqru7du3Cd999h61bt4oFeNXV1di1axcAz+M7d+5c\nTJ48GaeddhoJ4SzQ4jSJ9KihYDCIWCyG119/HYBndi4oKGj0tps3b27FEAmCIAiCIDon77Line truncated
|
|
|
|
|
"text": [
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f90a936de48>"
|
|
|
|
|
"<matplotlib.figure.Figure at 0x7f0bfb3a2278>"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"prompt_number": 43
|
|
|
|
|
"prompt_number": 44
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"cell_type": "markdown",
|
|
|
|
@@ -3043,7 +3080,7 @@
|
|
|
|
|
"source": [
|
|
|
|
|
"** author's note: this code is somewhat old. This section needs to be edited; I would not pay a lot of attention to it right now. **\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"The kalman filter code that we are using is implemented in my Python library `filterpy`. If you are interested in the full implementation of the filter you should look in `filterpy\\kalman\\kalman_filter.py`. In the following I will present a simplified implementation of the same code. The code in the library handles issues that are beyond the scope of this chapter, such as numerical stability and support for the extended Kalman filter, subject of a later chapter. \n",
|
|
|
|
|
"The kalman filter code that we are using is implemented in my Python library `FilterPy`. If you are interested in the full implementation of the filter you should look in `filterpy\\kalman\\kalman_filter.py`. In the following I will present a simplified implementation of the same code. The code in the library handles issues that are beyond the scope of this chapter, such as numerical stability and support for the extended Kalman filter, subject of a later chapter. \n",
|
|
|
|
|
"\n",
|
|
|
|
|
"The code is implemented as the class `KalmanFilter`. Some Python programmers are not a fan of object oriented (OO) Python, and eschew classes. I do not intend to enter into that battle other than to say that I have often seen OO abused. Here I use the class to encapsulate the data that is pertinent to the filter so that you do not have to store and pass around a half dozen variables everywhere.\n",
|
|
|
|
|
"\n",
|
|
|
|
@@ -3219,7 +3256,7 @@
|
|
|
|
|
"\n",
|
|
|
|
|
"- [3] Brown, Robert Grover. *Introduction to Random Signals and Applied Kalman Filtering* John Wiley & Sons, Inc. 2012\n",
|
|
|
|
|
"\n",
|
|
|
|
|
"- [4] `filterpy` library. Roger Labbe.\n",
|
|
|
|
|
"- [4] `FilterPy` library. Roger Labbe.\n",
|
|
|
|
|
"https://github.com/rlabbe/filterpy"
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|