More work on R and Q.
Added more examples and cleaned up explanations on modifying R and Q. In particular, the filter setting for R was not the same as the simulated noise for no obvious reason. Also, names were bad R instead of R_var, for example.
This commit is contained in:
1 parent
60e31b890d
commit
66f20b745e
2 files changed
+157
-235
No files matched your search
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:d1b0c8df5adc3f6828e00de679f540ececc73c594852c8bb356e1f41477cbe6f"
|
||||
"signature": "sha256:63839e6625440fe53d29a11aae661a9ece51c55f09e88a3f11289b2e5eaab027"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
@@ -261,7 +261,7 @@
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 1,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7fbc822637b8>"
|
||||
"<IPython.core.display.HTML at 0x7f4afaa955c0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -281,7 +281,8 @@
|
||||
"input": [],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": []
|
||||
"outputs": [],
|
||||
"prompt_number": 1
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -403,7 +404,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc82252f28>"
|
||||
"<matplotlib.figure.Figure at 0x7f4afaa87da0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -571,7 +572,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5dd79d68>"
|
||||
"<matplotlib.figure.Figure at 0x7f4afaa8a198>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -625,7 +626,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 0x7fbc5e0ed278>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5c942e8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -723,7 +724,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 0x7fbc5ddf37f0>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5c6bba8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -750,7 +751,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5de04128>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5e75320>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -777,7 +778,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 0x7fbc5e06fba8>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5a5f0b8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -808,7 +809,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 0x7fbc5dc3d1d0>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5e2b320>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -873,7 +874,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5e00c2b0>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5d19470>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -1386,7 +1387,9 @@
|
||||
"\n",
|
||||
"In the previous chapter we tracked a dog in one dimension by using a Gaussian. The mean $(\\mu)$ represented the most likely position, and the variance ($\\sigma^2$) represented the probability distribution of the position. In that problem the position is the *state* of the system, and we call $\\mu$ the *state variable*.\n",
|
||||
"\n",
|
||||
"In this chapter we will be tracking both the position and velocity of the dog, so we have two state variables. State variables can either be *observed variables* - directly measured by a sensor, or *unobserved variables* - inferred from the observed variables. For our dog tracking problem, our observed state variable is position, and th unobserved variable is velocity. \n",
|
||||
"In this chapter we will be tracking both the position and velocity of the dog, so we have two state variables. It is important to understand that this is a design choice with implications and assumptions that we are not yet prepared to explore. For example, we could optionally also track acceleration, or even acceleration and jerk. For now I will only state that the decision to track position and velocity contains an assumption that acceleration is zero, which of course often not true. If the object being tracked *is* accelerating, then the performance of the filter will be suboptimal, or even diverge. However, this is a good way to introduce the concept of Kalman filtering without getting bogged down into too many details, or having to deal with large matrices.\n",
|
||||
"\n",
|
||||
"State variables can either be *observed variables* - directly measured by a sensor, or *unobserved variables* - inferred from the observed variables. For our dog tracking problem, our observed state variable is position, and the unobserved variable is velocity. \n",
|
||||
"\n",
|
||||
"In the previous chapter would denote the dog's position being 3.2 as:\n",
|
||||
"$$\\mu = 3.2$$\n",
|
||||
@@ -1430,7 +1433,7 @@
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"##### **Step 2:** Design State Transition Function\n",
|
||||
"##### **Step 2:** Design the State Transition Function\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"The next step in designing a Kalman filter is telling it how to predict the next state from the current state by providing it with equations that describe the physical model of the system. For example, for our dog tracking problem we are tracking a moving object, so we just need to provide it with the Newtonian equations for motion. If we were tracking a thrown ball we would have to provide equations for how a ball moves in a gravitational field, and perhaps include the effects of things like air drag. If we were writing a Kalman filter for a rocket we would have to tell it how the rocket responds to its thrusters and main engine. A Kalman filter for a bowling ball would incorporate the effects of friction and ball rotation. You get the idea. \n",
|
||||
@@ -1438,9 +1441,9 @@
|
||||
"In the language of Kalman filters the physical model is call the *process model*. That is probably a better term than *physical model* because the Kalman filter can be used to track non-physical things like stock prices. We describe the process model with a set of equations we call the *State Transition Function.* \n",
|
||||
"\n",
|
||||
"\n",
|
||||
"We know from elementary physics how to compute a future position given our current position and velocity. Let $x$ be our current position, and $\\Delta t$ be the amount of time in the future. The velocity is then the derivative of $x$, which we notate as $\\dot{x}$. We can then write \n",
|
||||
"We know from elementary physics how to compute a future position given our current position and velocity. Let $x$ be our current position, and $\\Delta t$ be the amount of time in the future. The velocity is then the derivative of $x$ with respect to time, which we notate as $\\dot{x}$. We can then write \n",
|
||||
"\n",
|
||||
"$$x_t = \\dot{x}\\Delta t + x_{t-1}$$\n",
|
||||
"$$x_t = \\dot{x}_{t-1}\\Delta t + x_{t-1}$$\n",
|
||||
"\n",
|
||||
"However, to avoid subscripts we will adopt the notation that uses $x^-$ to denote our predicted position, and write\n",
|
||||
"\n",
|
||||
@@ -1471,7 +1474,7 @@
|
||||
"\n",
|
||||
"$$\n",
|
||||
"\\begin{aligned}\n",
|
||||
"{\\begin{bmatrix}x\\\\\\dot{x}\\end{bmatrix}}^- &=\\begin{bmatrix}1&\\Delta t \\\\ ?&?\\end{bmatrix} \\times \\begin{bmatrix}x \\\\ \\dot{x}\\end{bmatrix}\n",
|
||||
"{\\begin{bmatrix}x\\\\\\dot{x}\\end{bmatrix}}^- &=\\begin{bmatrix}1&\\Delta t \\\\ ?&?\\end{bmatrix} \\begin{bmatrix}x \\\\ \\dot{x}\\end{bmatrix}\n",
|
||||
"\\end{aligned}\n",
|
||||
"$$\n",
|
||||
"\n",
|
||||
@@ -1486,7 +1489,7 @@
|
||||
"\n",
|
||||
"which is our equation for computing the new position based on velocity, time, and the previous position.\n",
|
||||
"\n",
|
||||
"Now we have to account for the second row. I've let it somewhat unstated up to now, but we are assuming constant velocity for this problem. Naturally this assumption is not true; if our dog moves it must accelerate and decelerate. If you cast your mind back to the *g-h Filter* chapter we explored the effect of assuming constant velocity. So long as the acceleration is small compared to $\\Delta t$ the filter will still perform well. \n",
|
||||
"Now we have to account for the second row. I've left it somewhat unstated up to now, but we are assuming constant velocity for this problem. Naturally this assumption is not true; if our dog moves it must accelerate and decelerate. If you cast your mind back to the *g-h Filter* chapter we explored the effect of assuming constant velocity. So long as the acceleration is small compared to $\\Delta t$ the filter will still perform well. \n",
|
||||
"\n",
|
||||
"Therefore we will assume that\n",
|
||||
"\n",
|
||||
@@ -1524,7 +1527,7 @@
|
||||
"\n",
|
||||
"$$x_t = \\dot{x}(\\Delta t) + x_{t-1}$$\n",
|
||||
"\n",
|
||||
"Suppose that instead of passively tracking our dog we were actively controlling a robot. At each time step we would send control signals to the robot based on our current position vs desired position. Kalman filter equations incorporate that knowledge into the filter equations, creating a predicted position based both on current velocity *and* control inputs to the drive motors. \n",
|
||||
"Suppose that instead of passively tracking our dog we were actively controlling a robot. At each time step we would send control signals to the robot based on its current position vs desired position. Kalman filter equations incorporate that knowledge into the filter equations, creating a predicted position based both on current velocity *and* control inputs to the drive motors. \n",
|
||||
"\n",
|
||||
"We will cover this use case later, but for now passive tracking applications we set those terms to 0. In step 2 there was the unexplained term $\\mathbf{Bu}$ in equation (1):\n",
|
||||
"\n",
|
||||
@@ -1553,7 +1556,7 @@
|
||||
"\n",
|
||||
"In other words, for the thermometer tracking problem, it would take the filter's current prediction of temperature, convert that to whatever voltage would represent that temperature, and then subtract it from the current thermometer voltage output. This gives it a residual in the correct units (volts).\n",
|
||||
"\n",
|
||||
"It does this with a *measurement function* matrix that you provide it. At first it might seem counterintuitive: to use the thermometer we need to know how to convert the output voltage into a temperature, but we tell the Kalman filter how to convert a temperature into a voltage!. But if you think about it, what you are really telling the filter is how your sensor works. Your sensor converts temperature into voltage, and you are just telling the Kalman filter how it does it. The Kalman filter equations can take that information and figure out how to perform the inverse operation without you explicitly telling it the computation.\n",
|
||||
"It does this with a *measurement function* matrix that you provide. At first it might seem counterintuitive: to use the thermometer we need to know how to convert the output voltage into a temperature, but we tell the Kalman filter how to convert a temperature into a voltage!. But if you think about it, what you are really telling the filter is how your sensor works. Your sensor converts temperature into voltage, and you are just telling the Kalman filter how it does it. The Kalman filter equations can take that information and figure out how to perform the inverse operation without you explicitly telling it the computation.\n",
|
||||
"\n",
|
||||
"The Kalman filter equation that performs this step is:\n",
|
||||
"\n",
|
||||
@@ -1585,13 +1588,9 @@
|
||||
"source": [
|
||||
"##### **Step 5**: Design the Measurement Noise Matrix\n",
|
||||
"\n",
|
||||
"The *measurement noise* is a matrix that models the noise in our sensors as a covariance matrix. This can be admittedly a very difficult thing to do in practice. A complicated system may have many sensors, the correlation between them might not be clear, and usually their noise is not a pure Gaussian. For example, a sensor might be biased to read high if the temperature is high, and so the noise is not distributed equally on both sides of the mean. Later we will address this topic in detail. For now I just want you to get used to the idea of the measurement noise matrix so we will keep it deliberately simple.\n",
|
||||
"The *measurement noise matrix* is a matrix that models the noise in our sensors as a covariance matrix. This can be admittedly a very difficult thing to do in practice. A complicated system may have many sensors, the correlation between them might not be clear, and usually their noise is not a pure Gaussian. For example, a sensor might be biased to read high if the temperature is high, and so the noise is not distributed equally on both sides of the mean. Later we will address this topic in detail. For now I just want you to get used to the idea of the measurement noise matrix so we will keep it deliberately simple.\n",
|
||||
"\n",
|
||||
"In the last chapter we used a variance of 5 for our position sensor. Let's use the same value here. The Kalman filter equations uses the symbol $R$ for this matrix.\n",
|
||||
"\n",
|
||||
"$$R = 5$$\n",
|
||||
"\n",
|
||||
"In general the matrix will have dimension $m{\\times}m$, where $m$ is the number of sensors. It is $m{\\times}m$ because it is a covariance matrix, as there may be correlations between the sensors. We have only 1 sensor here so we write:\n",
|
||||
"In the last chapter we used a variance of 5 for our position sensor. Let's use the same value here. The Kalman filter equations uses the symbol $R$ for this matrix. In general the matrix will have dimension $m{\\times}m$, where $m$ is the number of sensors. It is $m{\\times}m$ because it is a covariance matrix, as there may be correlations between the sensors. We have only 1 sensor here so we write:\n",
|
||||
"\n",
|
||||
"$$R = \\begin{bmatrix}5\\end{bmatrix}$$"
|
||||
]
|
||||
@@ -1667,7 +1666,7 @@
|
||||
"\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 the code 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."
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -1836,7 +1835,7 @@
|
||||
"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(2) # process noise\n",
|
||||
"dog_filter.Q = Q_discrete_white_noise(2,dt=0.1,var=0.1) # process noise\n",
|
||||
"dog_filter.P *= 500. # covariance matrix "
|
||||
],
|
||||
"language": "python",
|
||||
@@ -1852,29 +1851,18 @@
|
||||
"\n",
|
||||
"**1**: We just assign the initial value for our state. Here we just initialize both the position and velocity to zero. \n",
|
||||
"\n",
|
||||
"**2**: We set $\\textbf{F}=(\\begin{smallmatrix}1&1\\\\0&1\\end{smallmatrix})$, as in design step 2 above. \n",
|
||||
"**2**: We set $\\textbf{F}=\\begin{bmatrix}1&1\\\\0&1\\end{bmatrix}$, as in design step 2 above. \n",
|
||||
"\n",
|
||||
"**3**: We set $\\textbf{H}=(\\begin{smallmatrix}1&0\\end{smallmatrix})$, as in design step 3 above.\n",
|
||||
"**3**: We set $\\textbf{H}=\\begin{bmatrix}1&0\\end{bmatrix}$, as in design step 3 above.\n",
|
||||
"\n",
|
||||
"**4**: We set $\\textbf{R} = 5$ and $\\mathbf{Q}=0$ as in steps 5 and 6.\n",
|
||||
"**4**: We set $\\textbf{R} = \\begin{bmatrix}5\\end{bmatrix}$. $\\textbf{R}$ is initialized to the identity matrix, so multiplying by 5 performs this assignment for us.\n",
|
||||
"\n",
|
||||
"**5**: Recall in the last chapter we set our initial belief to $\\mathcal{N}(\\mu,\\sigma^2)=\\mathcal{N}(0,500)$ to signify our lack of knowledge about the initial conditions. We implemented this in Python with a list that contained both $\\mu$ and $\\sigma^2$ in the variable $pos$:\n",
|
||||
"**5** We use the `Q_discrete_white_noise()` method to set $\\mathbf{Q}$'s variance to 0.1.\n",
|
||||
"\n",
|
||||
" pos = (0,500)\n",
|
||||
" \n",
|
||||
"Multidimensional Kalman filters stores the state variables in $\\mathbf{x}$ and their *covariance* in $\\mathbf{P}$. These are `f.x` and `.P` in the code above. Notionally, this is similar as the one dimension case, but instead of having a mean and variance we have a mean and covariance. For the multidimensional case, we have\n",
|
||||
"\n",
|
||||
"$$\\mathcal{N}(\\mu,\\sigma^2)=\\mathcal{N}(\\mathbf{x},\\mathbf{P})$$\n",
|
||||
"\n",
|
||||
"$\\mathbf{P}$ is initialized to the identity matrix of size $n{\\times}n$, so multiplying by 500 assigns a variance of 500 to $x$ and $\\dot{x}$. So $\\verb,f.P,$ contains\n",
|
||||
"**5**: $\\mathbf{P}$ is initialized to the identity matrix of size $n{\\times}n$, so multiplying by 500 assigns a variance of 500 to $x$ and $\\dot{x}$. So $\\verb,f.P,$ contains\n",
|
||||
"\n",
|
||||
"$$\\begin{bmatrix} 500&0\\\\0&500\\end{bmatrix}$$\n",
|
||||
"\n",
|
||||
"This will become much clearer once we look at the covariance matrix in detail in later sessions. For now recognize that each diagonal element $e_{ii}$ is the variance for the $ith$ state variable, and that the *500* is just a statement that we are very uncertain about our initial value by some *amount*. \n",
|
||||
"\n",
|
||||
"> Summary: For our dog tracking problem, in the 1-D case $\\mu$ was the position, and $\\sigma^2$ was the variance. In the 2-D case $\\mathbf{x}$ is our position and velocity, and $\\mathbf{P}$ is the *covariance* of the position and velocity. It is the same thing, just in higher dimensions!\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"All that is left is to run the code! The `DogSensor` class from the previous chapter has been placed in `DogSensor.py`."
|
||||
]
|
||||
},
|
||||
@@ -1896,23 +1884,23 @@
|
||||
" dog_filter.R *= R # measurement uncertainty\n",
|
||||
" dog_filter.P *= cov # covariance matrix \n",
|
||||
" if np.isscalar(Q):\n",
|
||||
" dog_filter.Q = Q_discrete_white_noise(dim=2, var=Q)\n",
|
||||
" dog_filter.Q = Q_discrete_white_noise(dim=2, dt=0.1, var=Q)\n",
|
||||
" else:\n",
|
||||
" dog_filter.Q = Q\n",
|
||||
" return dog_filter\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def filter_dog(noise=0, count=0, R=0, Q=0, P=500., data=None, \n",
|
||||
"def filter_dog(noise_var=0, count=0, R=0, Q=0, P=500., data=None, \n",
|
||||
" initial_x=None):\n",
|
||||
" \"\"\" Kalman filter 'count' readings from the DogSensor.\n",
|
||||
" 'noise' is the noise scaling factor for the DogSensor.\n",
|
||||
" 'noise_var' is the variance of the noise from the measurements.\n",
|
||||
" 'data' provides the measurements. If set, noise will\n",
|
||||
" be ignored and data will not be generated for you.\n",
|
||||
" \n",
|
||||
" returns a tuple of (positions, measurements, covariance)\n",
|
||||
" \"\"\"\n",
|
||||
" if data is None: \n",
|
||||
" dog = DogSensor(velocity=1, noise=noise)\n",
|
||||
" dog = DogSensor(velocity=1, noise_var=noise_var)\n",
|
||||
" zs = [dog.sense() for t in range(count)]\n",
|
||||
" else:\n",
|
||||
" zs = data\n",
|
||||
@@ -1978,11 +1966,11 @@
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"def plot_track(noise=None, count=0, R=0, Q=0, P=500., initial_x=None,\n",
|
||||
"def plot_track(noise_var=None, count=0, R_var=0, Q_var=0, P=500., initial_x=None,\n",
|
||||
" data=None, plot_P=True, title='Kalman Filter'):\n",
|
||||
" \n",
|
||||
" ps, zs, cov = filter_dog(noise=noise, data=data, count=count,\n",
|
||||
" R=R, Q=Q, P=P, initial_x=initial_x)\n",
|
||||
" ps, zs, cov = filter_dog(noise_var=noise_var, data=data, count=count,\n",
|
||||
" R=R_var, Q=Q_var, P=P, initial_x=initial_x)\n",
|
||||
" \n",
|
||||
" p0, = plt.plot([0,count],[0,count])\n",
|
||||
" p1, = plt.plot(range(1,count+1),zs, linestyle='dashed')\n",
|
||||
@@ -2016,14 +2004,14 @@
|
||||
"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.01$."
|
||||
"Finally, call it. We will start by filtering 50 measurements with a noise variance of 10 and a process variance of 0.01."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"plot_track (noise=30, R=5, Q=0.01, count=100)"
|
||||
"plot_track (noise_var=10, R_var=10, Q_var=0.01, count=50)"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
@@ -2031,17 +2019,17 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VFX+x/H3nZI26UMSQhJIAxOpCdI7SBV7WVHZBVaF\nn8quriwWVFQUdVXQ1d217VoQbHRFQIoSEjpIL6aQkACBkELaJJlyf3+MDAwJkEoS8n09j4/Jveee\ncybcdT85nKIcOXJERQghhBBCCOFE09gdEEIIIYQQoimSoCyEEEIIIUQVJCgLIYQQQghRBQnKQggh\nhBBCVEGCshBCCCGEEFWQoCyEEEIIIUQVJCgLIVq04cOHExMT4/jnxIkTjd2lq27x4sWX/Ow7duxw\n+vmMHz++EXoohBCNQ4KyEKLZGDp0KPfdd1+l6wsXLiQmJobnnnuuxnU+/fTTvPnmm9xzzz310cVG\ndy70VvVPly5dLvmcoihVXo+MjOTNN9/kH//4B5GRkZcsd6G1a9fy+eef1/ozCCFEU6Fr7A4IIURN\nXBzU1q5dywsvvMCIESOYNWtWjesbNmwYAGazmW+//bZe+tgUTJ48mejoaKdrWq22yrK33XYbY8eO\nxcXFpdI9f39/br75ZgC+++67arW9du1atm3bxp/+9Kca9loIIZoWCcpCiGZr69atPPHEE/Ts2ZO3\n3367WqOdLUXv3r3p06dPtcpqNJoqQ7IQQrR0MvVCCNEsHTx4kEceeYQOHTrw73//G71e73R/yZIl\n/PnPf2bAgAF07tyZoUOH8uqrr1JYWFir9mJiYnjjjTcYOnQo/fr1IyEhgenTpxMXF8fUqVOpqKhw\nlF2/fj2PPvooQ4YMoXPnzvTv359nnnmGU6dOOdX53nvvERMTw7Fjx5g4cSJxcXGMHDmSpUuX1qqP\nNTV27Nh6m5+dlZXlqGfp0qWcOHHCqe7333/fqXxFRQX//Oc/GT58OJ07d2bIkCHMnTsXi8VSqe5z\nPyeTycTMmTPp06cPcXFx3HnnnWRnZ9e6z0IIcSUyoiyEaHbS09N58MEHCQwM5JNPPsHDw6NSmf/9\n738EBgby5z//GU9PTw4fPszXX3/Nvn37+Prrr2vV7po1a3jwwQf57LPPmDp1KoMHD+bhhx/mn//8\nJ2vWrOGmm24C4Ntvv6WgoIBx48bRqlUr0tPTWbBgAdu2bWPlypWVRm8fffRRBg4cyPDhw1m4cCHP\nPPOMI2DWVnFxMXl5eU7XPD09ndqeNm0aRUVFbN++vc7TToxGI2+++SYA33zzDampqTz77LOO+9dd\nd53ja5vNxv/93/+xdetW7rnnHmJiYjh8+DD//e9/yc7O5o033qiyjWnTppGfn8/DDz+MRqMhKSmJ\ngoICWrduXae+CyHEpUhQFkI0K3l5eUyaNIm8vDymTZuGn59fleX++9//EhgY6HTN19eX999/n717\n9152Ydul3HXXXdx3330UFhbyzjvv8OyzzxIUFMSyZcv47bffHEH5pZdeIigoyOnZiIgInnnmGdat\nW8fo0aOd7t1zzz2O3SQGDx7MsGHDWL9+fZ2C8tSpUytde/bZZ/njH//o+H7w4MFA/czPdnd3d8xl\nTkpK4uTJk47vL7Z8+XKSkpJ46623GDt2rON6UFAQc+fO5eGHHyYqKqrSczabjfnz5zum2PzpT3/C\nZrPVqd9CCHE5EpSFEM3K0aNHadWqFcHBwcydO5fhw4fj5eVVqdyFIbm4uJiKigoiIyMBOHbsWK2C\nstFoBOwL3ABatWoFgJ+fHwUFBY5yF4bk0tJSysrKCA8Pd7R9sZEjRzq+btOmDb6+vnWeUjB9+nRi\nY2OdrkVERNSpzppQVfWS91atWoWnpyd9+/Z1GvXu3LkzANu3b68yKE+ePLnSPHSNRmYQCiEajgRl\nIUSzYjAY+Pjjjzl16hRTpkzhtddeY/bs2ZXKHThwgPfee48dO3ZQXFzsdK+8vLxWbZ+bB63T2f/T\neW4XCZ1Oh9lsdpTLyMjgvffeY+PGjZw9e/aKbV888u3u7u5UX23ExsZWezHf1ZaRkUFxcTF9+/at\ndE9RFPLz86t87uJdPIQQoqFJUBZCNCsxMTHExsYSGxvLyJEjWbx4MWPHjnUKXcePH+f++++nTZs2\nPPHEE4SFhaHX6zlw4ABvvfXWZUc7a+tcncXFxdx///1otVomT55MZGQkrq6unDp1iqeffrpB2m6O\n2rVrx4svvljlvdDQ0Cqve3p6NmCPhBCiMgnKQohm67nnnmPTpk0899xz/PDDD45FfWvXrqWsrIyP\nPvrIKXRlZWVdsq5zo8VWq7VOfdqyZQtnzpzh888/p1evXo7rmzdvrlO9TYFer6esrOyK5a60TV/b\ntm359ddf6d27t2zpJ4Ro0mRylxCi2QoICODJJ5/kxIkTvP32247r56ZEXHjAhtls5quvvrpkXcHB\nwQCkpaXVqU9Vta2qKl988UWd6m0K2rRpw7Fjx664gM5gMJCfn3/JXzpGjhxJYWEhCxYsqHQvLy+v\nWmFcCCGuBhlRFkI0a/feey/Lly9nwYIFjB49mhtuuIGBAwfi6urKlClTuOeeeygvL+f777+vco/e\nc7p160abNm2YPXs2J0+exN3dnZiYGKdtzaqje/fu+Pv78/TTT/PAAw+g0WhYs2aN02K/puDw4cMc\nOXIEgN27dwP27e98fX0B6N+/v2Px4jljxoxh4cKF/P3vf2fAgAEoisKIESNwd3d3KhcfH8+XX37J\njBkzuPHGG3FxcSE8PJy2bdsC9pMAf/jhB1555RV27dpFfHw8JpOJQ4cOsX79elasWEGbNm0a+kcg\nhBBXJEFZCNHsvfzyy9x2220899xzLF++nLZt2/LBBx8wZ84c3nrrLby8vBg7diwDBgxg4sSJVdah\n0+n4z3/+w8yZM3n11VexWCw8+uijlwzKl5oy4O3tzSeffMLrr7/OP//5T1xcXLjxxht54YUXKm2X\npihKg0w9qE6da9eudToERFEUXnvtNcfXX3zxRaWg3LdvX2bMmMGnn37KihUrUBSFHj16VArKY8aM\n4fDhwyxdupTly5djs9l47LHHeOyxxwD7ThUffPAB//3vf/n+++/56aefMBgMREVFMXXqVMduIhf2\nTaZoCCEag3LkyJE6rSwpKytj9uzZrF69GpvNxtixY5k5cyZms5mZM2eyatUqfHx8mD59eqW9Q4UQ\nQgghhGiq6jyiPHv2bDIzM1mxYgVGo5HU1FQAPvvsM1JSUkhISODgwYNMnjyZuLg4OUFJCCGEEEI0\nC3VazFdWVsayZct47rnnaNWqFYqiOPa5XLVqFePHj8fT05OePXsSFxfHmjVr6qXTQgghhBBCNLQ6\nBeX09HQURWHt2rX069ePm266ibVr1zruRUREMG3aNH788UeioqI4evRovXRaCCGEEEKIhlanqRfF\nxcWYzWaysrL4+eef+fXXX5kyZQo//fQTJpMJDw8PkpOT6dSpEwaDoc5HsgohhBBCCHG11Ckou7m5\nYbVamThxIi4uLvTq1YuIiAj27NmDu7s7JpOJZcuWAfDKK69gMBgq1ZGZmVmXLgghhBBCCFEtYWFh\nNSpfp6AcFhZW5ZY9qqoSHh5OamoqHTt2BCA1NZVhw4ZVWU9sbGxduiGuMUajkcWLFzNo0KDG7opo\nIuSdEFWR90JURd4LURWj0UhiYmKNn6vTHGUfHx969OjBZ599hsViYfv27Rw9epRu3boxevRo5s2b\nR1FREVu3bmX37t0MHz68Ls0JIYQQQghx1dTL9nDPPPMMPXr0ICgoiDfffJOAgAAmTJhAWloagwYN\nwsfHh9mzZxMUFFQffRZCCCGEEKLB1Tkoh4aGMm/evMoV63TMnj2b2bNn17UJ0QLJdBxxMXknRFXk\nvRBVkfdC1Jc6Tb0QoqHIf+TExeSdEFWR90JURd4LUV8kKAshhBBCCFGFOk+9aGhms5n8/Pwqd9cQ\n16b8/HwALBZLrevQ6/X4+vrWV5eEEEII0QI16aBsNpvJzc0lMDAQjUYGv0X1FRQUUFpaioeHR2N3\nRQghhBDNVJNOn/n5+RKSRa34+PhQXFzc2N0QQgghRDPWpBOooigSkkWtKIoi03WEEEIIUSeSQoUQ\nQgghhKiCBGUhhBBCCCGqIEG5hZs0aRKhoaGEhobyxBNPNHZ3hBBCCCGaDAnKTVyvXr2YM2dOg9X/\n7rvv8uuvv3LzzTfLnF4hhBBCiAs06e3hBA0eXr28vPDy8sLV1RVVVRu0LSGEEEKI5kRGlBvITz/9\nxO23307Hjh2Jiori9ttvZ/v27U5lVq9ezU033URUVBRxcXH87W9/w2w2A/aR5NDQULKyspgzZ45j\nesTcuXMdz991111Oo82ZmZmEhoayZcsWACoqKvjb3/5G3759iYyMpHv37rz88stUVFRU6q+MJgsh\nhBBCOJMR5QaSk5PDH/7wB+Li4nB1deXDDz/k/vvvZ+vWrfj5+fHTTz/x4IMP8pe//IV3332X0tJS\nli9fTnl5OXq9npUrV2K1WhkzZgy33norU6ZMAah0gMblAq7ZbMbFxYU5c+YQFhZGamoqf/3rX9Hr\n9TzzzDMN+vmFEEIIIZq7Zh+UQ+7/uEHqPT7/oTo9f//99zt9P2PGDObNm8fWrVsZNWoU77//PqNG\njeLvf/+7o0yXLl0cX/v7+wOg1WoxGAy0atWqxn0wGAy8/vrrju9DQkK47bbbWLdunQRlIYQQQogr\naPZBuak6duwYb775Jrt27SI3NxebzQZASUkJAAcPHuTWW29t8H7Mnz+fBQsWkJWVhclkwmw206ZN\nmwZvVwghhBCiuWv2QbmuI78N5U9/+hPt2rVj7ty5BAYGUlFRwdChQx2BuT5cPO3i4rq///Line truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5de45cc0>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5e4d2e8>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"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
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5dc1a898>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5f71c50>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -2208,9 +2196,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5dc2da20>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5cd9e10>"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -2218,7 +2206,7 @@
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5df0f9b0>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5ea2208>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -2402,7 +2390,7 @@
|
||||
"def pos_vel_filter(R,Q):\n",
|
||||
" f = KalmanFilter(dim_x=2, dim_z=1)\n",
|
||||
" f.R = R\n",
|
||||
" f.Q = Q_discrete_white_noise(dim=2, var=Q)\n",
|
||||
" f.Q = Q_discrete_white_noise(dim=2, dt=0.1, var=Q)\n",
|
||||
" \n",
|
||||
" f.F = np.array([[1,1],\n",
|
||||
" [0,1]]) # state transition matrix\n",
|
||||
@@ -2450,9 +2438,9 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGDCAYAAAAyKTZ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlclOX+//HXDDsDIoMKiiiImiapGG5Z4kZJ2ebpnE6L\nZdsZU9vMtPpVdo4esr6txxYp61hm22lRTxmGmZK75JKGC+KGCy6ACggyw8zvD5PjMiY4AyPwfj4e\nPBhm7rnvD5eUby6v+3MZNm/e7EBERERERE5j9HQBIiIiIiIXIwVlEREREREnFJRFRERERJxQUBYR\nERERcUJBWURERETECQVlEREREREnFJRFRERERJxQUBYRqQGbNm1i1KhR9OzZky5dunD11Vczbtw4\n1q1bd9axU6ZMYeXKlW679u7du5kyZQp79uxx2zlFRBoib08XICJS32zatInbbruN0NBQhg8fTnh4\nOHv37mXevHksXLiQLl26nHb8W2+9hcFgoEePHm65/p49e3jrrbfo1asXkZGRbjmniEhDpKAsIuJm\nb7/9NgaDgS+++IImTZpUPj969Gj2799fa3U4HNp4VUTEFQZtYS0i4l6DBw8mMDCQr7/++pzHTJky\nhbfeeuucry9YsIAWLVoAsHnzZj766CMyMzPZv38/Pj4+dOnShdGjR9O1a9fK9wwbNoxVq1Y5PV+L\nFi1YsGDBac9lZGQwdepUNm7ciNFopEePHowfP57o6OhqfLciIvWXZpRFRNwsPDyctWvXsmXLFtq3\nb+/0mKuvvpro6GgcDgfjxo3j6quvJikpqfL10NDQyseLFy9m+fLlDBkyhNatW1NQUMAXX3zBXXfd\nxRdffEGHDh0AePDBB/nLX/7C1q1bSU1NZcSIEcTGxgIQGBh42vVnzZrFk08+Sffu3Rk7diylpaV8\n8skn3H777cyZM+e0mXARkYZKM8oiIm62cOFCHnzwQby8vLjiiiu44oorGDhwIFFRUU6P79ChA6NH\nj2b06NFOXz906BBhYWEYDIbK53bv3s2gQYO47bbbmDBhwmnHr1ixgrvvvpsZM2bQvXv3s85XXFxM\nv3796Nq1K9OmTTvtnIMHD2b48OGMHTv2Qr51EZF6RV0vRETcrF+/fsyYMYPevXuzbNkyJk+eTFJS\nEvfddx8HDhyo9vmaNGlSGZKtViuFhYUEBgYSGhrKrl27qn2+JUuWUFxczJAhQygoKKj8CAwMJCoq\n6pzLN0REGhotvRARqQEJCQkkJCRw7NgxVq1axZw5c/juu+945JFH+PTTT6t1ruLiYt59911mzZrF\nwYMHT7tJ7/jx49WubefOnQA8+eSTTl9v1apVtc8pIlIfKSiLiNSgwMBAEhMTSUxMxNfXl2+++Ya9\ne/dW3qhXFY8//jhLly7l7rvvpkuXLgQFBQEwZswYlzpbTJw4kZYtW571vL+//wWfU0SkPlFQFhGp\nJSdvujt06FCVg/LRo0fJyMhg5MiRPPTQQ5XPl5eXc+TIEafvOXUtszOtW7cGoHHjxvTu3btKdYiI\nNERaoywi4mYrV66koqLirOeXLFmC0Wg8axbXZDKdc+2y0Wg87fNJM2fOxG63O32PyWQCOOc5+/Tp\ng8lk4v3338dms532mt1ur9VezyIiFzPNKIuIuFlqaio5OTkkJyfTpk0bSkpKWLBgAStXruTWW2/F\nbDafdny3bt349ttvadu2La1bt8ZgMNCzZ0/8/PwICgqiV69eTJs2DavVSkREBGvXrmXx4sWEhoY6\nXXrRrl07GjVqxJQpU7DZbISGhuLv71+5819QUBDPPPMMTz/9NDfffDNDhgyhUaNGbN++nZ9++okb\nb7zxnB04REQaErWHExFxs+XLlzNr1izWrFnDgQMHcDgctGnThhtvvJG77rrrrKURu3fv5vnnn2f1\n6tUcO3YMg8HAjz/+WLk8Iz8/n8mTJ7N48WLKysro1q0bTz31FCNHjqRp06bMnDnzrBqWLl3Kyy+/\nTHZ2NlarlcjISH788cfTjlmyZAnTpk1j/fr1VFRU0KJFC3r37s1tt91W2X9ZRKQhczkol5WVkZKS\nwrx587Db7QwZMoQJEyZgtVqZMGECaWlphISEMG7cOJKTk91Vt4iIiIhIjXJ56UVKSgq5ubl89913\nhIWFkZOTA8D06dPZunUrGRkZZGVlYbFYiI+PJyIiwuWiRURERERqmks385WVlTF79myeeeaZyob4\nbdu2BSAtLY1hw4YRFBREjx49iI+PJz093S1Fi4iIiIjUNJeC8o4dOzAYDMyfP58+ffpw3XXXMX/+\n/MrXYmJiGDt2LHPnziU2Npbt27e7pWgRERERkZrm0tKL4uJirFYru3fv5qeffmLNmjWMGDGCH374\ngdLSUgIDA8nOziYuLg6TyUReXp676hYRERERqVEuBWV/f38qKiq455578PX1pWfPnsTExLBu3ToC\n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 truncated
|
||||
"png": "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\ny8sLs9nM4sWLAZg+fXrt2p4n27dvX0OqICIiIiJSJ506darX+Q0Kyp06dbK7A5TNZiM8PJzs7Gz6\n9OkDQHZ2NiNHjrRbTu/evRtSDTkPwcHBfPrpp8TGxjq7Kq2S2t+51P7Oo7Z3LrW/c6n9nSc4OJj0\n9PR6X9egMcr+/v4MGDCAuXPnUlVVxaZNm9izZw+XXnop8fHxzJs3j+LiYr799ls2b95MXFxcQ24n\nIiIiItJkHLI83NNPP82AAQMICQnhpZdeom3btowdO5bdu3cTGxuLv78/SUlJhISEOKLOIiIiIiKN\nrsFBuWPHjsybN+/0gt3cSEpKIikpqaG3kEaiIS/OpfZ3LrW/86jtnUvt71xq/wtLg4ZeyIVN/1md\nS+3vXGp/51HbO5fa37nU/hcWBWURERERETsUlEVERERE7FBQFhERERGxQ0FZRERERMQOBWURERER\nETsUlEVERERE7FBQFhERERGxQ0FZRERERMQOBWURERERETsUlEVERERE7FBQFhERERGxQ0FZRERE\nRMQOBWURERERETsUlEVERERE7FBQFhERERGxQ0FZRERERMQOBWURERERETsUlEVERERE7FBQFhER\nERGxQ0FZRERERMQOBWURERERETsUlEVERERE7FBQFhERERGxQ0FZRERERMQOBWURERERETsUlEVE\nRERE7FBQFhERERGxQ0FZRERERMQOBWURERERETsUlEVERERE7FBQFhERERGxQ0FZRERERMQOBWUR\nERERETsUlEVERERE7FBQFhERERGxQ0FZRERERMQOBWURERERETsaHJTHjBnDJZdcQnR0NNHR0Tz5\n5JMAWCwWpkyZQr9+/Rg+fDhLlixpcGVFRERERJqKmyMKefbZZ7nllltOOTZ37lx27dpFWloamZmZ\nJCQkEB0dTWhoqCNuKSIiIiLSqBwy9MJms512bOnSpYwZMwYfHx8GDhxIdHQ0qampjridiIiISLNS\nbbU6uwrSCBwSlP/5z38yePBg7r33XrKzswHIyckhIiKCxMREvvrqKyIjI9mzZ48jbiciIiLSLBwp\nrSDxrTQenLPa2VWRRtDgoRdPPvkkPXr0oLq6mjlz5jBhwgS+/PJLzGYz3t7eZGVlERUVhclkIj8/\n324ZwcHBDa2G1JO7uzugtncWtb9zqf2dR23vXGp/x7HZbCxM20HiGys4UFSK0d2VIxUuRHYIPOM1\nan/nOdH29dXgoBwVFVX7ePLkycyfP5/s7Gy8vLwwm80sXrwYgOnTp2MymeyWMW3atNrHMTExxMbG\nNrRaIiIiIo3il4NHeXjWcpZsrPkr+hVRHZnzcPxZQ7I0vTVr1pCWlgaAq6srMTEx9S7DIZP5TmYw\nGLDZbISHh5OdnU2fPn0AyM7OZuTIkXavmTBhwilfFxQUOLpa8hsnfptVWzuH2t+51P7Oo7Z3LrV/\nw1Rbrby7PJMXFmyirKIKP28jz9w+iLsvaYtLeSHnala1f9OKioqq7dANDg4mPT293mU0aIxycXEx\na9asobKyksrKSmbNmkWbNm3o1q0b8fHxzJs3j+LiYr799ls2b95MXFxcQ24nIiIi4hQ/7S3g+qmL\nmTpvPWUVVYweFMHqF3/P/X4ltLl6FEFxcZgyMpxdTXGwBvUoWywWXnnlFR555BHc3d25+OKLef31\n13Fzc2Ps2LHs3r2b2NhY/P39SUpKIiQkxFH1FhEREWl05ooqXv7se9748keqrTbaB5lIuucKRvXr\ngrGwEN+EBFyOz8HyTUjAkppKZVCQk2stjtKgoBwUFMRnn31mv2A3N5KSkkhKSmrILUREREScIiPr\nAA/NWcXeg8UYDHDf1X144vf98fEyOrtq0kQcPkZZRERE5EK38JssHk9Jo7LKSu9OQbw47kr6dWt3\nyjmVQUEUJyfjm5AAQHFysnqTWxgFZREREZHjrFYbLyzYxKz/bgFgUuFWpj40hsrfhOQTSvv3x3J8\nQzWF5JZHQVlEREQEKC238NDrq1iasRdXm5VZWV8xfn8G1glrKTzL2GMF5JZLQVlERERavbzDJYyd\nuYzMXwrx93Ln452fErf/O2dXS5xMQVlERERate+yDnDfy6kcOmomItSP9xKv5pK8KKwae9zqKSiL\niIhIs3foaBkvffwdbfy9GHZJR/p1a4eba4O2gwBg0bpdTH4zjQpLNUP7dCD54asIMHlQ2l5jj0VB\nWURERJq5fYeK+cPzX5Fz4BgA/1r0A75e7gztE0bMxWEMu6Qjndv51atMt8MFvPBVJv9ctgOAMSN7\nM+2uIbi7/S98KyCLgrKIiIg0WztzC7ljxhLyi8qICg9mUM9QVv+YS/avR1mSkcOSjBwAIkL9GHZJ\nR2Iu7kh0ZFvMFVUcK6vkaGklx8oqah6XVXKstJKyPfvYuXYzq01huBjgb3cNYWzcRRgMBuLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5dc2db38>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5c60e10>"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -2491,21 +2479,28 @@
|
||||
"\n",
|
||||
"Let's start varying our parameters to see the effect of various changes. This is a *very normal* thing to be doing with Kalman filters. It is difficult, and often impossible to exactly model our sensors. An imperfect model means imperfect output from our filter. Engineers spend a lot of time tuning Kalman filters so that they perform well with real world sensors. We will spend time now to learn the effect of these changes. As you learn the effect of each change you will develop an intuition for how to design a Kalman filter. As I wrote earlier, designing a Kalman filter is as much art as science. The science is, roughly, designing the ${\\mathbf{H}}$ and ${\\mathbf{F}}$ matrices - they develop in an obvious manner based on the physics of the system we are modeling. The art comes in modeling the sensors and selecting appropriate values for the rest of our variables.\n",
|
||||
"\n",
|
||||
"Let's look at the effects of the noise parameters ${\\mathbf{R}}$ and ${\\mathbf{Q}}$. I will only run the filter for twenty steps to ensure we can see see the difference between the measurements and filter output. I will start by holding ${\\mathbf{R}}$ to 5 and vary ${\\mathbf{Q}}$. "
|
||||
"Let's look at the effects of the noise parameters ${\\mathbf{R}}$ and ${\\mathbf{Q}}$. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"dog = DogSensor(velocity=1, noise=30)\n",
|
||||
"zs = [dog.sense() for t in range(30)]\n",
|
||||
"# dog = DogSensor(velocity=1, noise_var=50)\n",
|
||||
"# zs = [dog.sense() for t in range(50)]\n",
|
||||
"# I've hard coded zs to ensure we are all looking at the same data\n",
|
||||
"zs = [3.59, 1.73, -2.575, 4.38, 9.71, 2.88, 10.08, 8.97, 3.74,\n",
|
||||
" 12.81, 11.15, 9.25, 3.93, 11.11, 19.29, 16.20, 19.63,\n",
|
||||
" 9.54, 26.27, 23.29, 25.18, 26.21, 17.1, 25.27, 26.86,\n",
|
||||
" 33.70, 25.92, 28.82, 32.13, 25.0, 38.56, 26.97, 22.49,\n",
|
||||
" 40.77, 32.95, 38.20, 40.93, 39.42, 35.49, 36.31, 31.56,\n",
|
||||
" 50.29, 40.20, 54.49, 50.38, 42.79, 37.89, 56.69, 41.47, 53.66]\n",
|
||||
" \n",
|
||||
"plot_track(data=zs, R_var=30, Q_var=20,count=50, plot_P=False, \n",
|
||||
" title='R_var = 30, Q_var = 20')\n",
|
||||
"\n",
|
||||
"plot_track(data=zs, R=5, Q=10,count=30, plot_P=False, \n",
|
||||
" title='R = 5, Q = 10')\n",
|
||||
"\n",
|
||||
"plot_track(data=zs, R=5, Q=.02,count=30, plot_P=False, \n",
|
||||
" title='R = 5, Q = 0.02')"
|
||||
"plot_track(data=zs, R_var=30, Q_var=.02,count=50, plot_P=False, \n",
|
||||
" title='R_var = 30, Q_var = 0.02')"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
@@ -2513,21 +2508,21 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5dd376a0>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5fbf278>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "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\n/vtr3acQwrkkURaimZs8eTIff/wxb731Vp0T5ZEjR/Lxxx8TFxdHamoqiqJUq+36zTffEBISwocf\nflhlKsXatWvrFX9NDB48+JLn6zNH+UKVo7dmsxl3d3f7FIyjR4/Sr18/+3VHjx4FsJ9vCJVtx8fH\nVzmenJxMeXk5Xbp0qVO7vr6+9ukXM2bM4H//+x8xMTFVKmucOHGC+Ph45s+fz4QJE+zHLzblwpmW\nLFni9DnKERERaDQajh49WuX1HDt2DFVV6/RzPP/ZOL/u9sWejX379vHYY49xww03MHfu3Fr3J4Rw\nPkmUhWjmPDw8uOOOO1i8eDG//PLLZed2OtK9e3dat25NbGwsaWlpdO/evVpVCq1Wi0ajqZIknzlz\nhi1btlSbg+xsDTFHOT09vdrUkry8PH766SdCQkLw8/MDKioYtG7dmq+++opJkybZ55OuWbMGLy8v\n+vfv77D9yoVy//vf/2jdunWt46vsu1WrVsTGxvLggw/a5w9XjuDXdZMMqHhz9K9//YvPPvuM/Pz8\natMuKl/nhfNnP/nkkzr3WVMNMUfZ19eXXr16ERsby6OPPmpfuLp69WpcXFwuWrlkxIgRKIrCsmXL\nqszZhoopQR4eHqxdu5Ybb7wRqFhs+9VXX9GmTZsqI/4JCQnMnDmTXr168dprrzX43xkhRM3UO1E2\nm83Mnz+fjRs3YrPZGD16NHPmzMFisTBnzhxiY2Px8fHhySefrPYPrRDC+Rx95P23v/2NpUuX8uGH\nH9YpUVYUhZtuuonPPvsMs9lcbdoFwA033MCmTZt44IEHGDp0KJmZmaxatYqQkJBqI57O1hDzOGfO\nnImPjw/R0dG0bt2as2fPsnr1anJzc5k9e3aVax999FEef/xx7r//fm666SZ2797N9u3befLJJx1u\nNlJZ5aFyoVd9PPbYYzz++OP8/e9/Z9SoUZw8eZLly5czaNCgem02EhMTw9y5c3nttdfw8/Or9j0O\nDw+nXbt2/Oc//+Hs2bN4enqyc+dOkpOTG3zxWUPMUQb45z//yaRJk5g8eTK33norx48f54svvuDe\ne++96GYjycnJKIricKtpg8HA9OnTWbhwIY8//jj9+vUjNjaWxMREFi5caL+uqKiIadOmUVZWxo03\n3sj3339fpZ3IyMgG/WRCCHFx9U6U58+fT2pqKt999x1Go9FeaH7ZsmUkJCQQFxfH0aNHmTLine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5de69320>"
|
||||
"<matplotlib.figure.Figure at 0x7f4afaa87390>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 35
|
||||
"prompt_number": 44
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2539,97 +2534,24 @@
|
||||
"\n",
|
||||
"Let's remind ourselves of what the term *process uncertainty* means. Consider the problem of tracking a ball. We can accurately model its behavior in static air with math, but if there is any wind our model will diverge from reality. \n",
|
||||
"\n",
|
||||
"In the first case we set ${\\mathbf{Q}}=10$, which is quite large. In physical terms this is telling the filter \"I don't trust my motion prediction step\". Strictly speaking, we are telling the filter there is a lot of external noise that we are not modeling with $\\small{\\mathbf{F}}$, but the upshot of that is to not trust the motion prediction step. So the filter will be computing velocity ($\\dot{x}$), but then mostly ignoring it because we are telling the filter that the computation is extremely suspect. Therefore the filter has nothing to use but the measurements, and thus it follows the measurements closely. \n",
|
||||
"In the first case we set `Q_var=10`, which is quite large. In physical terms this is telling the filter \"I don't trust my motion prediction step\" as we are saying that the variance in the velocity is 10. Strictly speaking, we are telling the filter there is a lot of external noise that we are not modeling with $\\small{\\mathbf{F}}$, but the upshot of that is to not trust the motion prediction step. So the filter will be computing velocity ($\\dot{x}$), but then mostly ignoring it because we are telling the filter that the computation is extremely suspect. Therefore the filter has nothing to use but the measurements, and thus it follows the measurements closely. \n",
|
||||
"\n",
|
||||
"In the second case we set ${\\mathbf{Q}}=0.02$, which is quite small. In physical terms we are telling the filter \"trust the motion computation, it is really good!\". Again, more strictly this actually says there is very small amounts of process noise, so the motion computation will be accurate. So the filter ends up ignoring some of the measurement as it jumps up and down, because the variation in the measurement does not match our trustworthy velocity prediction.\n",
|
||||
"\n",
|
||||
"**AUTHOR'S NOTE: move covariance matrix coverage here, then do R, then Q. Order as below is confusing.**"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 3,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Designing $\\textbf{Q}$"
|
||||
"In the second case we set `Q_var=0.02`, which is quite small. In physical terms we are telling the filter \"trust the motion computation, it is really good!\". Again, more strictly this actually says there is very small amounts of process noise (variance 0.02), so the motion computation will be accurate. So the filter ends up ignoring some of the measurement as it jumps up and down, because the variation in the measurement does not match our trustworthy velocity prediction."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"**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",
|
||||
"If we have $m$ state variables then $\\textbf{Q}$ will be an $m{\\times}m$ matrix. $\\textbf{Q}$ is a covariance matrix for the state variables, so it will contain the variances and covariances for the process noise for each state variable. \n",
|
||||
"\n",
|
||||
"Let's make this concrete. Assume our state variables are $x=\\begin{bmatrix}x&\\dot{x}\\end{bmatrix}^\\mathsf{T}$. (**note**: it is customary to use this transpose form of writing an matrix in text. It is how we denote that $x$ is a column matrix without taking up a lot of line space). Then $\\textbf{Q}$ will contain:\n",
|
||||
"\n",
|
||||
"$$Q = \\begin{bmatrix}\n",
|
||||
"\\sigma_x^2 & \\sigma_{x\\dot{x}} \\\\\n",
|
||||
"\\sigma_{\\dot{x}x}& \\sigma_{\\dot{x}}^2\n",
|
||||
"\\end{bmatrix}\n",
|
||||
"$$\n",
|
||||
"\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 in introductory materials (and even in some published papers):\n",
|
||||
"\n",
|
||||
"$$\\begin{bmatrix}\n",
|
||||
"0&0 \\\\\n",
|
||||
"0&0.1\n",
|
||||
"\\end{bmatrix}\n",
|
||||
"$$\n",
|
||||
"\n",
|
||||
"Why all zeros but in the last row and column. This is a useful approximation that we can use for $\\textbf{Q}$ under certain circumstances. Think about the person. As they accelerate, that will also alter their velocity, and eventually their position. But if the acceleration is small compared to our time sample rate, then the changes to distance will small. This follows from the Newtonian equations:\n",
|
||||
"$$\n",
|
||||
"\\begin{aligned}\n",
|
||||
"v&=a\\Delta t \\\\\n",
|
||||
"d&=\\frac{a}{2}{\\Delta t}^2\n",
|
||||
"\\end{aligned}\n",
|
||||
"$$\n",
|
||||
"If t is small and a is small than the contribution of $\\frac{a}{2}{\\Delta t}^2$ will be extremely small. In this case it is safe to set all of the terms in $\\mathbf{Q}$ to 0 except the variance for the last term. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"On the other hand, let's suppose this is not the case. How should Q be designed? Our design of the system is:\n",
|
||||
"\n",
|
||||
"$$ X_{n+1} = \\Phi X_n + U_n$$\n",
|
||||
"\n",
|
||||
"where $\\Phi X_n$ is our state transition, which computes $\\mathbf{x}$ at time $n+1$ using Newtonian equations, and $U_n$ is the white noise associated with the process. For a walking human, based on the equations above we get\n",
|
||||
"\n",
|
||||
"$$U_n = \\begin{bmatrix}\\frac{a{\\Delta t}^2}{2} \\\\ \\Delta t\\end{bmatrix}$$\n",
|
||||
"\n",
|
||||
"So white noise has the variance $U_n$ and a mean of 0, which we notate as $w \\sim \\mathcal{N}(0,Q)$. \n",
|
||||
"\n",
|
||||
"Finding an analytic value for $\\textbf{Q}$ in a simple problem like this is not difficult, but it quickly becomes difficult to impossible as the number of state variables increase. So in this chapter we will use the simplification that only the variance of the last term is important. In the Kalman filter math chapter we will discuss finding an analytic solution for $\\textbf{Q}$, and then present C. F. van Loan's extremely useful numerical technique for finding $\\textbf{Q}$, which is what you will typically use in practice. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "heading",
|
||||
"level": 3,
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Designing R"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Now let's leave ${\\mathbf{Q}}=0.1$, but bump ${\\mathbf{R}}$ up to $1000$. This is telling the filter that the measurement noise is very large. "
|
||||
"Now let's set `Q_var=0.2`, and bump `R_var` up to 10,000. This is telling the filter that the measurement noise is very large. "
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"plot_track(data=zs, R=1000, Q=0.1,count=30, plot_P=False, \n",
|
||||
" title='R = 1000, Q = 0.1')"
|
||||
"plot_track(data=zs, R_var=10000., Q_var=.2,count=50, plot_P=False, \n",
|
||||
" title='R_var = 10000, Q_var = .2')"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
@@ -2637,21 +2559,77 @@
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGCCAYAAAD5deXcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3WdgVNXW8PH/mZIeUiYJgYSaUCI19CJEUKogIODVq0i5\nthcbchULih3l6hW7XsAHELEgoNgogiX0jpRASAFCgJBCemaSycx5P8QMDplAkpmQBNfvi8k5++yz\nZjjgmj1776XEx8erCCGEEEIIIexo6joAIYQQQggh6iNJlIUQQgghhHBAEmUhhBBCCCEckERZCCGE\nEEIIByRRFkIIIYQQwgFJlIUQQgghhHBAEmUhhBBCCCEckERZCCGEEEIIByRRFqIBmjRpEu3bt6d9\n+/ZERUUxYMAApk6dyrZt2+o6tAZp6dKlPPjgg/Tt25f27dvz9ttvV9p2zZo1jBo1is6dOzN06FCW\nLVvmsN2pU6e4//776datG7169WLWrFlcuHChQjuz2cz8+fMZOHAgXbp0YeLEiZX+OW7evJnx48fT\npUsXbrjhBt577z0sFkvNXnQ1bdu2jX/84x907dqVPn368NRTTzl8PcI1Dh48yOzZsxk2bBhdu3Zl\n8ODBPPXUU6SlpdV1aEL8rUiiLEQD5efnxxtvvMG8efOYNGkSKSkpTJs2jTVr1tR1aA3O+++/z8GD\nB7nuuusAUBTFYbuffvqJJ598kiZNmvDcc8/RqVMnXn31VRYvXmzXLicnh0mTJnH06FEeffRRpk2b\nxqZNm7jnnnsqJLavvPIKCxYsYOjQocyePRuA++67jz/++MOu3d69e3nggQfQ6XTMnj2bwYMH88EH\nH/Daa6+56m2o1J49e7j33nsxm808/fTT3HXXXaxfv56pU6diNptr/f5/R4sXL2br1q0MHjyYZ599\nlltuuYWNGzcyduxYzp07V9fhCfG3oavrAIQQNePp6cno0aNtv48dO5Zhw4axcOFCxowZU4eRNTzf\nfvstYWFhnDlzhhtvvNFhG1VVefPNN2nfvj0LFixAURQmTpxIbm4uH3zwAbfffjuenp4ALFu2jPT0\ndFatWkWHDh0AaN68OTNnzuTHH3/klltuAeD06dOsWLGCO++8k2effRaAkSNHMnToUN5++227BPzt\nt98mMDCQJUuW2O5jsVj44osvmDp1KmFhYbX2/rz99tv4+Pjw6aef4uPjA0CTJk2YPXs2P/zwA+PG\n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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5e127e80>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5eacda0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 36
|
||||
"prompt_number": 45
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The filter output should be much closer to the green line, especially after 10-20 cycles. If you are running this in Ipython Notebook, I strongly urge you to run this many times in a row (click inside the code box, and press CTRL-Enter). Most times the filter tracks almost exactly with the actual position, randomly going slightly above and below the green line, but sometimes it stays well over or under the green line for a long time. What is happening in the latter case?\n",
|
||||
"\n",
|
||||
"The filter is strongly preferring the motion update to the measurement, so if the prediction is off it takes a lot of measurements to correct it. It will eventually correct because the velocity is a hidden variable - it is computed from the measurements, but it will take awhile.\n",
|
||||
"The effect of this can be subtle. We have created an suboptimal filter because the actual measurement noise variance is 30, not 10,000. By setting the filter's noise variance so high we force the filter to favor the prediction over the measurement. This can lead to apparently very smooth and good looking results. In the chart above the track may look extremely good to you since it follows the ideal path very closely. But, the 'great' behavior at the start should give you pause - the filter has not converged yet ($\\mathbf{P}$ is still large) so it should not be able to be so close to the actual position. Let's make $\\mathbf{R}$ larger yet. Let's see the result of a bad initial guess for the position by guessing the initial position to be 20 and the initial velocity to be 1."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"plot_track(data=zs, R_var=10000., Q_var=.2,count=50, \n",
|
||||
" initial_x=np.array([[20],[1]]),plot_P=False, \n",
|
||||
" title='R_var = 10000, Q_var = .2')"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "iVBORw0KGgoAAAANSUhEUgAAAsoAAAGCCAYAAAD5deXcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd809X++PHXJ2m60p22FFqk0AKtzLIRBUGRIYi4FzKu\ngx8uRMWB4ka5ct3rgn5BEQcCilelIF69BRkCsivQltGWUjrobtKkyef3R20kNIW2SRe8n4/Hfdh+\nxjnvhA/cd07OOW/l4MGDKkIIIYQQQggHmuYOQAghhBBCiJZIEmUhhBBCCCGckERZCCGEEEIIJyRR\nFkIIIYQQwglJlIUQQgghhHBCEmUhhBBCCCGckERZCCGEEEIIJyRRFkIIIYQQwglJlIVohSZNmkRc\nXBxxcXHEx8dz2WWXMXXqVDZt2tTcobVKn3zyCffddx+DBw8mLi6ON998s9ZrV69ezbhx4+jZsydX\nXXUVS5cudXrdsWPHuPfee+nTpw8DBgxg9uzZnDp1qsZ1FouFN954g6FDh9KrVy9uvPHGWv8cN2zY\nwPXXX0+vXr24/PLLeeedd7BarQ170fW0adMmbr75Znr37s2gQYN44oknnL4e4R579uxhzpw5jBo1\nit69ezNixAieeOIJsrOzmzs0IS4okigL0UoFBgby2muvMX/+fCZNmkR6ejrTpk1j9erVzR1aq/Pu\nu++yZ88eLr74YgAURXF63Y8//sjjjz9O27ZteeaZZ+jRowcvv/wyixcvdriusLCQSZMm8eeff/LQ\nQw8xbdo0fv75Z+66664aie1LL73EwoULueqqq5gzZw4A99xzD7t373a4bseOHUyfPh0PDw/mzJnD\niBEjeO+993jllVfc9TbUavv27dx9991YLBaefPJJ7rjjDtauXcvUqVOxWCyN3v+FaPHixfz222+M\nGDGCp59+mmuuuYb169dz7bXXcuLEieYOT4gLhkdzByCEaBgfHx/Gjx9v//3aa69l1KhRLFq0iAkT\nJjRjZK3Pt99+S2RkJMePH+eKK65weo2qqixYsIC4uDgWLlyIoijceOONFBUV8d5773HLLbfg4+MD\nwNKlS8nJyWHlypV069YNgIsuuohZs2bxww8/cM011wCQkZHB8uXLuf3223n66acBGDt2LFdddRVv\nvvmmQwL+5ptvEhISwpIlS+z9WK1WvvjiC6ZOnUpkZGSjvT9vvvkmfn5+fPrpp/j5+QHQtm1b5syZ\n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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5d27a58>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 37
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Here we can see that the filter cannot acquire the actual track at all. This happens because even though the filter is getting reasonable good measurements it assumes that the measurements are bad, and eventually just predicts forward from a bad position at each step. If you think that perhaps that bad initial position would give similar results for a smaller measurement noise, let's set it back to the correct value of 30."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"plot_track(data=zs, R_var=30, Q_var=.2,count=50, \n",
|
||||
" initial_x=np.array([[20],[1]]),plot_P=False, \n",
|
||||
" title='R_var = 30, Q_var = .2')"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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\nZ7kkGar/+77jjjvKvVlx5uKn7HXp66+/ZsOGDUydOtXx+oUQDZskykJcp/z9/Xnrrbew2+3s2bOH\nDz74gPXr19c4Ue7cuTOhoaGsW7fOkSivW7eOTp060bhx43LHxsbGsnjxYo4ePVouSVMUheLiYqfj\nuyKhufCNgatFR0c7Yhw2bBjDhw/nhRde4H//+x+AIyG2WCwMHz6cbt26ERISQkFBAVC7JL0yF177\nYhaLpdwbl+oYMmQIL7zwAgkJCURHR7N161by8/PLvTGC0jdl77//PrGxsWRnZ5fbV5e/76ZNm9K0\nadNaj+MK+/btY/bs2fTv359p06bVdzhCiCqSRFmI65S7u7sjcezduzcajYa3336bYcOG1biWctn0\ni5KSEjIzMzlw4EC5RV1QmiRPnz6d3r178/LLLxMcHIxGo2HVqlWXrbbhilJalU0x0Gq1NU4aL2Qw\nGOjXrx9ffPEFJpMJT09PxzzczMxMoqKiHE/Ns7KygNIpGXWl7No5OTnltquqSm5uLq1atarRuIMG\nDeKll15i3bp1REdHExsbi5+fX7n7x263M3HiRNLS0hg/fjxt2rTBy8sLm83GpEmTnC7gBPDx8alR\nTBcqKiqisLDwssf4+vri7u5e62tdzsmTJ5kyZQotW7bkX//6V4VPRoQQDZckykIIAMaPH8/HH3/M\nO++8U+NEeciQIXz88cfExcWRnJyMoigMHjy43DHffvst4eHhLF68uFzCsHr16lrFXxV9+/a97P7a\nzFG+WNnTW7PZjKenp2MKxqFDh+jevbvjuEOHDgE49teFsrHj4+PLbT9x4gRWq5V27drVaFw/Pz/H\n9IspU6bw008/MWjQoHKVNY4ePUp8fDxz585l9OjRju2XmnLhSh999FG9z1HOyspi0qRJ+Pr6smjR\nojorASiEqBuSKAshAPDy8uLuu+9m0aJF7Ny5s9K5nc506tSJJk2aEBsbS0pKCp06dapQlUKr1aLR\naMolyadPn2bjxo11/qStLuYop6amVphakpOTw6+//kp4eDj+/v5AaXWLJk2a8PXXXzNu3DjHfNtV\nq1bh4+NTrjHJhcoWyv300080adKk2vGVXbtx48bExsby2GOPOeYPlz3B79evX43GhdI3R3//+9/5\n/PPPyc3NrTDtoux1Xjy/+JNPPqnxNauqrucob9iwgTfffJNOnToxf/78CvsLCwuZPHkyJSUlrFix\nwiWfVgghrqxaJ8pms5m5c+eybt067HY7w4cPZ86cOVgsFubMmUNsbCxGo5GZM2dW+AdUCFF/nH3k\n/eCDD7JkyRIWL15co0RZURRuu+02Pv/8c8xmc4VpFwB/+ctfWL9+PX/961/p378/6enprFixwtG5\nrC7VxRzlqVOnYjQaiYmJoUmTJpw5c4aVK1eSnZ3N7Nmzyx375JNP8tRTTzF58mRuu+02tm3bxubN\nm5k5c6bTJ41lVR4URSm3OK4mZsyYwVNPPcXDDz/MsGHDOH78OMuWLaNPnz61ajYyaNAgXnzxRd58\n8038/f0r/IyjoqJo3rw5r7/+OmfOnMHb25vffvuNEydOVHtxXnXV9Rzl/Px8Tpw4cclSb08//TQH\nDx5k8uTJjpbxZYKDg6VdvBBXgVonynPnziU5OZnvv/+ewMBARwH5pUuXkpCQQFxcHIcOHeLRRx8l\nJiamWjVPhRB1x9nT20aNGjF48GB++OEHxwKt6hoyZAhLlixBo9FUmHYBcPvtt5Obm8unn37Kpk2b\nCA8PZ/r06WRmZvL22287jbMhz+m86667WLduHV9++SU5OTl4eHjQsWNH/vGPf1RIGocPH47VamXR\nokW8/PLLNG7cmOeee46HHnrI6dhltZd79OhR67q7w4cPR1VVx7WtVivR0dGVTk2ojNFopGfPnmze\nvJnhw4dXSH61Wi0LFy7ktdde46OPPkJVVXr16sV///tfBg4cWKtr17fK7svDhw+jKAoLFy6ssK9b\nt26SKAtxFahVC2uz2Uz37t1ZvXo1UVFR5fbdeeedjB8/3tH5aeLEiQwYMICxY8fWLmIhhLhOLFmy\nhPnz57NixQpiYmJcOvaCBQv48MMPmT59OlOmTHHp2EIIca2o1edeJ06cQFEUNm7cSO/evRk2bJij\nFeqJEydo3rw5Tz31FD/88ANRUVEcP37cJUELIcT1YPv27fTp08flSTLAE088wT333MOWLVsqrQwh\nhBDXq1pNvSgoKMBisZCSksLPP//Mnj17mDJlCuvXr8dkMuHl5UV8fDzt27fHYDCQlpbmqriFEHUs\nPz+/0iYYzloPC9f54IMP6nT8F1980TF9wG63O0rVXYrBYHB0XRRCiOtBrRJlDw8PbDYbEyZMwM3N\nje7du9O8eXP27duHp6cnJpOJNWvWAPDqq69iMBgqjJGcnFybEIQQdeT1119nw4YNl9yvKALine truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5edfeb8>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 57
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"Here we see that the filter initially struggles for several iterations to acquire the track, but then it accurately tracks our dog. In fact, this is nearly optimum - we have not designed $\\mathbf{Q}$ optimally, but $\\mathbf{R}$ is optimal, and thus will yield optimal results.\n",
|
||||
"\n",
|
||||
"To some extent you can get similar looking output by varying either ${\\mathbf{R}}$ or ${\\mathbf{Q}}$, but I urge you to not 'magically' alter these until you get output that you like. Always think about the physical implications of these assignments, and vary ${\\mathbf{R}}$ and/or ${\\mathbf{Q}}$ based on your knowledge of the system you are filtering."
|
||||
]
|
||||
@@ -2709,11 +2687,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 0x7fbc5dc017f0>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5ea4be0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 37
|
||||
"prompt_number": 39
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2738,11 +2716,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 0x7fbc5dd7cda0>"
|
||||
"<matplotlib.figure.Figure at 0x7f4ad5f38978>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 38
|
||||
"prompt_number": 40
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2805,15 +2783,17 @@
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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\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 0x7fbc5dd86240>"
|
||||
"ename": "TypeError",
|
||||
"evalue": "plot_track() got an unexpected keyword argument 'R'",
|
||||
"output_type": "pyerr",
|
||||
"traceback": [
|
||||
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m\n\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
|
||||
"\u001b[1;32m<ipython-input-41-04a41870c3a8>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 12\u001b[0m plot_track(data=zs, R=5., Q=.02, P=500., count=len(zs), \n\u001b[1;32m---> 13\u001b[1;33m plot_P=False, title='P=500')\n\u001b[0m",
|
||||
"\u001b[1;31mTypeError\u001b[0m: plot_track() got an unexpected keyword argument 'R'"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 39
|
||||
"prompt_number": 41
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2833,17 +2813,7 @@
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5ddbe048>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 40
|
||||
"outputs": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2867,17 +2837,7 @@
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5df62470>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 41
|
||||
"outputs": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2898,17 +2858,7 @@
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"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 0x7fbc5ddc4278>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 42
|
||||
"outputs": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -2973,25 +2923,7 @@
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5e09b9b0>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7fbc5dedf1d0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 43
|
||||
"outputs": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
@@ -3056,17 +2988,7 @@
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"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 0x7fbc5e026240>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 44
|
||||
"outputs": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
|
||||
+3
-3
@@ -12,14 +12,14 @@ import math
|
||||
|
||||
class DogSensor(object):
|
||||
|
||||
def __init__(self, x0=0, velocity=1, noise=0.0):
|
||||
def __init__(self, x0=0, velocity=1, noise_var=0.0):
|
||||
""" x0 - initial position
|
||||
velocity - (+=right, -=left)
|
||||
noise - scaling factor for noise, 0== no noise
|
||||
noise_var - noise variance, 0== no noise
|
||||
"""
|
||||
self.x = x0
|
||||
self.velocity = velocity
|
||||
self.noise = math.sqrt(noise)
|
||||
self.noise = math.sqrt(noise_var)
|
||||
|
||||
def sense(self):
|
||||
self.x = self.x + self.velocity
|
||||
|
||||
Reference in new issue
Block a user