Clean up headers, added exercise.

UKF chapter's headings were all messed up in the PDF output. I added
an exercise to use the unscented transform on the 5,000 point nonlinear
monte carlo example from the beginning of the chapter.
This commit is contained in:
Roger Labbe committed 2015-01-13 14:02:55 -08:00
1 parent 6533e3b22e
commit 597d3e2b5a
1 file changed
+296 -97
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:a65be81c259be7ffd74061efd23d3345108262b7f803512ced8660b900899d6e"
"signature": "sha256:5dcd9e2170b6dd3b4854a622f15d1432c9897ce652b0994c6b8ab0a32b67d2a7"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -259,13 +259,13 @@
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 1,
"prompt_number": 40,
"text": [
"<IPython.core.display.HTML at 0x7fed97b51240>"
"<IPython.core.display.HTML at 0x7facfd875a90>"
]
}
],
"prompt_number": 1
"prompt_number": 40
},
{
"cell_type": "markdown",
@@ -309,13 +309,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed7b6ac390>"
"<matplotlib.figure.Figure at 0x7facfaeb5d68>"
]
}
],
"prompt_number": 2
"prompt_number": 41
},
{
"cell_type": "markdown",
@@ -347,13 +347,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed7b68a208>"
"<matplotlib.figure.Figure at 0x7facfadfdeb8>"
]
}
],
"prompt_number": 3
"prompt_number": 42
},
{
"cell_type": "markdown",
@@ -396,11 +396,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed7b683d68>"
"<matplotlib.figure.Figure at 0x7facfade7c88>"
]
}
],
"prompt_number": 4
"prompt_number": 43
},
{
"cell_type": "markdown",
@@ -408,11 +408,22 @@
"source": [
"Here on the left we show an ellipse depicting the $1\\sigma$ distribution of two state variables. The arrows show how three randomly sampled points might be transformed by some arbitrary nonlinear function to a new distribution. The ellipse on the right is drawn semi-transparently to indicate that it is an *estimate* of the mean and variance of this collection of points - if we were to sample, say, a million points the shape of the points might be very far from an ellipse. \n",
"\n",
"Let's look at that by running a bunch of points through a nonlinear function.\n",
"\n",
"###### Exercise: Plot 2D points\n",
"\n",
"Write a function to pass points through the state transition function:\n",
"Let's look at that by running a bunch of points through a nonlinear function."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Exercise: Plot 2D points"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Write a function to pass randomly generated points with a Gaussian distribution through the state transition function:\n",
"\n",
"$$\\mathbf{Fx} = \\begin{bmatrix}1 & 1 \\\\ .1x &y\\end{bmatrix}\\begin{bmatrix}x\\\\y\\end{bmatrix}$$ \n",
"\n",
@@ -431,14 +442,20 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
"prompt_number": 44
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Solution"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"###### Solution\n",
"\n",
"Here is my answer."
]
},
@@ -460,7 +477,7 @@
"mean = (0, 0)\n",
"p = np.array([[32, 15],[15., 40.]])\n",
"\n",
"xs ,ys = multivariate_normal(mean=mean, cov=p, size=5000).T\n",
"xs ,ys = multivariate_normal(mean=mean, cov=p, size=50000).T\n",
"fxs, fys = [], []\n",
"for x,y in zip(xs,ys):\n",
" fx, fy = f(x,y)\n",
@@ -475,15 +492,18 @@
"computed_mean_y = np.average(fys)\n",
"\n",
"plt.subplot(121)\n",
"plt.scatter (xs,ys, marker='.')\n",
"plt.scatter (xs,ys, marker='.', alpha=0.1)\n",
"plt.axis('equal')\n",
"\n",
"plt.subplot(122)\n",
"plt.scatter(fxs, fys, marker='.')\n",
"plt.scatter(mean_fx[0], mean_fx[1], marker='v', s=120,c='r')\n",
"plt.scatter(computed_mean_x, computed_mean_y, marker='*',s=120,c='r')\n",
"plt.scatter(fxs, fys, marker='.', alpha=0.1)\n",
"plt.scatter(mean_fx[0], mean_fx[1], \n",
" marker='v', s=300,c='k', label='mean')\n",
"plt.scatter(computed_mean_x, computed_mean_y, \n",
" marker='*',s=120,c='r', label='computed')\n",
"plt.ylim([-10,290])\n",
"plt.xlim([-150,150])\n",
"plt.legend(loc='best', scatterpoints=1)\n",
"plt.show()\n",
"print ('Difference in mean x={:.3f}, y={:.3f}'.format(\n",
" computed_mean_x-mean_fx[0], computed_mean_y-mean_fx[1]))"
@@ -494,27 +514,40 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76b94a90>"
"<matplotlib.figure.Figure at 0x7facf319c390>"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Difference in mean x=0.051, y=42.372\n"
"Difference in mean x=-0.008, y=43.321\n"
]
}
],
"prompt_number": 6
"prompt_number": 45
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This plot shows the strong nonlinearity that occurs with this function, and the large error that would result if we linearized the function at (0,0). We would reasonably expect an EKF to diverge rapidly with this function."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Choosing Sigma Points (continued)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This plot shows the strong nonlinearity that occurs with this function, and the large error that would result if we linearized the function at (0,0). We would reasonably expect an EKF to diverge rapidly with this function.\n",
"\n",
"In the chart above we used 5,000 points to generate this solution. While the answer is quite accurate, computing 5,000 points for every update would cause our filter to be very slow. So, what would be fewest number of sampled points that we can use, and what kinds of constraints does this problem formulation put on the points? We will assume that we have no special knowledge about the nonlinear function as we want to find a generalized algorithm that works for any function. For reasons that come clear in the next section, we will call these points *sigma points*.\n",
"\n",
"Let's consider the simplest possible case and see if it offers any insight. The simplest possible system is *identity* - the transformation does not alter the input. In mathematical notation this is just $f(x) = x$. It should be clear that if our algorithm does not work for the identity function then the filter will never converge. In other words, if the input is 1 (for a one dimensional system), the output must also be 1. If the output was different, such as 1.1, then when we fed 1.1 into the transform at the next time step, we'd get out yet another number, maybe 1.23. The filter would run away (diverge). \n",
@@ -542,11 +575,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed7b399c88>"
"<matplotlib.figure.Figure at 0x7facfb08a828>"
]
}
],
"prompt_number": 7
"prompt_number": 46
},
{
"cell_type": "markdown",
@@ -582,11 +615,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAv4AAAF0CAYAAABbpj2aAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3WlwHGWeJvAn61KVVKpUqUpXSfIh2ZYPbIMvbGwDNtiY\nwxjUDRiGpnFPT/d2z+zQXzZ2JmI/zLfdjf3S3Tvb19IN2wxgTCOmwbhpGxsMvm9s4wtLsq37qEtS\nqUqqqsz9UBbY40tHVr1Zlc8voiM6RDh4hCvz/9SbmW9KqqqqICIiIiKinGYSHYCIiIiIiNKPxZ+I\niIiIyABY/ImIiIiIDIDFn4iIiIjIACy3+gfhcDiTOYiIiIiISCOyLN/wM674ExEREREZAIs/ERER\nEZEB3PJWn2vd7FIBERERERHpx51u1eeKPxERERGRAbD4ExEREREZAIs/EREREZEBsPgTERERERkA\niz8RERERkQGw+BMRERERGQCLPxERERGRAbD4ExEREREZAIs/EREREZEBsPgTERERERkAiz8RERER\nkQGw+BMRERERGQCLPxERERGRAbD4ExEREREZAIs/EREREZEBsPgTERERERkAiz8RERERkQGw+BMR\nERERGQCLPxERERGRAbD4ExEREREZAIs/EREREZEBsPgTERERERkAiz8RERERkQGw+BMRERERGQCL\nPxERERGRAbD4ExEREREZAIs/EREREZEBsPgTERERERkAiz8RERERkQGw+BMRERERGQCLPxERERGR\nAbD4ExEREREZAIs/EREREZEBsPgTERERERkAiz8RERERkQGw+BMRERERGQCLPxERERGRAbD4ExER\nEREZAIs/EREREZEBsPgTERERERkAiz8RERERkQGw+BMRERERGQCLPxERERGRAbD4ExEREREZAIs/\nEREREZEBsPgTERERERkAiz8RERERkQGw+BMRERERGQCLPxERERGRAbD4ExEREREZAIs/EREREZEB\nsPgTERERERkAiz8RERERkQGw+BMRERERGQCLPxERERGRAbD4ExEREREZAIs/EREREZEBsPgTERER\nERkAiz8RERERkQGw+BMRERERGQCLPxERERGRAbD4ExEREREZAIs/EREREZEBWEQHoNyTTCYRDAbh\n9/vh9/vR2urHwMAQhocTiMeTSCYVmM0mWK1mWK1mOJ15qKrywONJ/c/tdsNi4UeTaLxUVUU0Gv3m\nGOzu9qOjI/zNMZhIJKGqKqxWyzfHYVmZC2Vl3x6HBQUFkCRJ9K9ClLXGMwsrK4vh8Xjg9Xo5Cykt\n+ImiCUkkEmhubsb58024dKkXra1+9PT0QVVdkCQPFMUDi6UcVqsDkmSGyWSGJJmgqgoUJQlVTSKR\niCEeD0CSLgPwAwijpKQQlZUeTJ7sQV3dVNTU1MBms4n+dYl0KRAI4Pz5C2hs7MCVK360tfkRiagw\nm71QVQ9U1YO8vFqYzdZvjkMA3xyDipLA0FAYwBVI0nEoih92exI+nwfV1R5Mm1aOuroZ8Hq9/DJA\ndBNazkKTqQWq2gsgDK+3EFVVnIWkHUlVVfVm/yAcDn/z/2VZzlgg0r+BgQFcuHABR45cwLFjzRge\nLockTYPDUYr8fA/sdvc3xWI8FCWJWCyEaNSPwcEeqOpFmM1tuPvuyViyZAZmzJjBzyQZmqIoaGlp\nwVdfXcD+/efR2hoDMAM2WzXy8z1wODywWvMnVNLj8UFEowEMDvoxNNQC4ALKyy24774ZmDNnBiZP\nngyzefzHOVG2u3EWlgGYhvz8srTMQkW5CIuFs5Bu7079ncWfRiUUCuHYsS9x4MAFXLzoh6rWwm6v\nQ3HxNFit+Wn/9ycSMQQCFxGNXgBwEVOnunDffXW455558Hg8af/3E4mmKAouXLiAw4fP4NChi4hE\nXABmoKioDoWFvrSvxKuqikikC4HAeQAXYLf7sXhxLRYvnoVZs2bxSwAZQigUwvHjJ7F//3mBs7AR\n0eh5jMzCZctmYMGC+ZyFBIDFnyaoo6MDO3bsxe7djVCUeXC5ZkKWJ01oFWOiVFVBONyCcPg8gBNY\nvnwSHnlkOaqrq4VlIkqX4eFhHD9+Av/+7/vR0eGE1ToPHs8M2O1iz8vDwwPw+y9gePg0PJ5ebNhw\nLxYvXgi73S40F1E6pGbhPuzefRHJ5FzI8kzI8mThs7CvrxWh0DlI0pe4775qrF17HyZNmiQsE4nH\n4k9jpqoqGhsbsW3bXhw75ofFshTl5QthseSJjnaDZHIYnZ0nMDy8H3PnOvH44/ehrq4OJhM3rKLs\nFolEsG/fIXz44RH09U2C230fZFmfX277+zvg9+9Dfv5FPPbYPbj//qVwuVyiYxFNyLezcB+OHeu9\nOgsXwGLR35fbZDKOrq4TGBrax1locCz+NGrJZBKnTp3Cn/+8D01NEhyO+1BaepfQFY3RUlUFPT1n\nEYnsQ3V1DBs2LMM999zNHREo6/j9fnz66T5s3/4V4vG7UFKyDPn52XEJPxYLoavrAMzmL7F69Qw8\n9NB9KCsrEx2LaEySySROnz59dRYCdnt2zcLe3nMYGNjLWWhQLP40Ki0tLfh//28rvv7aAVleAbe7\nNit371BVFeHwFQSDe1Bd7ccPfvAEampqRMciuqN4PI5PPtmN9947BlVdjLKyJbDZCkTHGpd4PIqu\nrqNQlANYv342Hn10NW8BoqyQq7Nw06bHUVtbKzoWZQCLP91WNBrFRx99gq1bLyA//xGUlMzJypPc\nzfj9F9DXtw1r107Chg1r4XQ6RUciuqmvv/4ar722DW1tlaisXAebLTc+q/F4FG1tO+DxfI0f/GAd\nZs+enTPnF8ot0WgU27btxNat5+Fw5OYsfPjhajz99COchTmOxZ9uSlVVnDx5Cq+9th3h8CxUVj6k\ny/sWJyqZHEZb22coKPgS3//+aixcuCBnTuaU/fr7+9HQ8DF27mxHUdHjKC6eJjpSWoTDVxAIbMWy\nZTKee+4xuN1u0ZGIAKRm4alTp/H669sRDM7M8Vm4G/n5x/HSS6uxePFCzsIcxeJPN/D7/Xj77Y9w\n6NAgvN4n4HJViY6UdgMDneju3or58yW8+OITvO+YhFIUBYcOHcEbb3yGWGwRfL6VMJutomOllaIk\n0dGxHybTPjz//H1YuXIZtwAloQKBAN5++yMcPDgAr3e9QWZh19VZCM7CHMXiT9c5evQ4fve7HVCU\nlfD57oUkGeeJf1VV0dl5FMnkLmzadD/uu+9ernhQxg0MDODVV9/FsWNAWdkTKCgoER0po6LRIDo6\ntmH27AH8p//0HIqKikRHIgM6fvwEfvOb7VCUFaiouDcrHtzVSmoWHkMyuQsvv7wCy5cv5SzMISz+\nBCC1S8Gf//wx3n+/CeXlGw1XNq4Vi4XQ1rYZ69aV4tln18Nqze2VVtKPtrY2/PKXW+D3343KygcN\nO2xVVUV7+wEUFOzFK698B1OnThUdiQwimUzigw/+ivffb0RZGWchZ2HuYfEnDAwM4P/+3y04ftyO\nSZPqc/L+xbFKJuO4cuUDzJrVi5/8ZCM/45R2x44dx69/vQN5eU/C650pOo4uBINN6O9vwN/+7Qpe\ngaO0+/ZqWx5n4VUjs3DmzF785Ce8ApcLWPwNrq2tDb/4xTvw++9BVZVxVxhvJrXquB8FBfvws599\nF1OmTBEdiXLQyApjQ0Oj4a+23QxXHSkTRq629fbOR1XVKs7Ca/AKXG5h8TcwrjCODlcdKV24wjg6\nvAJH6XT8+An86lfbYbOtR0nJLNFxdCsYbEZ//3uchVmOxd+AVFXFtm2fYPPmc1xhHKXUA4fvYP36\nSnz3u0/whEcT1tvbi//1v94w/P38ozVyBc7p3If/8l9egM/nEx2JstzILHznnXOGv59/tEauwK1f\n78N3v/sETCbjbACSK1j8DUZVVWzduh1btlzGpEnfg9XqEB0paySTw7h06S088YQbzz77JIsajVtv\nby/+x//4IyKR1Sgru1t0nKzS23sOkvQh/vmf/4bln8ZNVVV89NEOvPNOMyZNeomzcAxSs/BtPPaY\njOeee5LlP8vcqb/zbzOHsPRPjNlsw5QpL2Dr1iC2bPkAt/hOTHRbLP0T4/XOhKqux3//72+ivb1d\ndBzKQiz9E5Oahc9j27Yw3nnnAyiKIjoSaYjFP0ew9GuD5Z8mgqVfGyz/NF4s/dpg+c9dLP45gKVf\nWyz/NB4s/dpi+aexYunXFst/bmLxz3Is/enB8k9jwdKfHiz/NFos/enB8p97WPyz3LZtn7D0p8m1\n5f/ddz9k+aebCgaD+J//k6U/Xa4t/11dXaLjkE795S87WfrT5Nryz1mY/Vj8s9ixY8exefNZlv40\nGin/H37Yjr17D4iOQzozNDSE//N/3kY4vJylP4283plIJtfhl7/cjMHBQdFxSGeOHz+BzZvPcBam\n0Uj537q1E198sV90HJoAFv8s1drail//egfKy5/niS7NzGYbKis34ve/34vGxkbRcUgnVFXFW2/9\nOy5erEJFxRLRcXJeaelcdHbOwe9//y6SyaToOKQTra2t+NWvtqOsbCOs1nzRcXLayCx87bV9uHjx\noug4NE4s/lmov78fP//5FuTlbeALSTLEbi+CLD+Dn/+8AYFAQHQc0oGdO3dj164BTJr0GN/5kCFV\nVatx+LAFH364XXQU0oH+/n784hdbkJf3JAoKSkXHMQS7XYYsP4Nf/OJ9+P1+0XFoHFj8s0wikcBv\nfrMZodBieL11ouMYSlHRZAwPr8L//t9vY2hoSHQcEujs2bN4443jqK5+DiaTRXQcw5AkEyZN+g4a\nGhpx5Mgx0XFIoEQigd/+9h0Eg4vg9c4UHcdQioomIx5fjX/9182chVmIxT+LqKqKd9/ditLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76e11710>"
"<matplotlib.figure.Figure at 0x7facfa8e9f28>"
]
}
],
"prompt_number": 8
"prompt_number": 47
},
{
"cell_type": "markdown",
@@ -637,11 +670,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAxQAAAGNCAYAAACIdTczAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmMZfld3/33ufu+VN26tfQy3T0L0PawiMEW5rHHxA6a\n2CaAEfBEgAgJQnEwJjgif0DwgxQrIKwnfxgIkWwpZAEJUMAW4AxLnsnEljWICdix3QZ7pmemu9Zb\nd9/Ofn7PH9Xd9nh6eqZrbvW999TnJbW751ZXnV9VX59zPuf3/f2+ljHGICIiIiIicgyJeQ9ARERE\nRESWlwKFiIiIiIgcmwKFiIiIiIgcmwKFiIiIiIgcmwKFiIiIiIgcmwKFiIiIiIgcmwKFiIiIiIgc\n20wDxd7eHj/2Yz9Gs9kkn8/zute9jv/1v/7XLA8hIiIiIiILJDWrL9Tv9/mO7/gO3vKWt/CJT3yC\ntbU1rl69SrPZnNUhRERERERkwViz6pT98z//83zyk5/kk5/85Cy+nIiIiIiILIGZlTx97GMf4w1v\neAM/9EM/xPr6Ot/yLd/Cb/zGb8zqy4uIiIiIyAKa2QxFLpfDsize//7384M/+IP8zd/8DT/90z/N\nr/zKr/BTP/VTt/7eYDCYxeFEREREROQeq1arL3ltZoEik8nwhje8gU996lO3XvuFX/gF/vAP/5Ar\nV67cek2BQkRERERkOd0uUMys5Glra4vLly+/6LWv//qv59q1a7M6hIiIiIiILJiZ7fL0Hd/xHfzt\n3/7ti1770pe+xIULF172c26XcOTlPf300zzyyCPzHobEiN5TMmt6T8lJ0PtKZk3vqbvzShVGM5uh\n+Nmf/Vmeeuop/u2//bc888wz/P7v/z6/9mu/9qL1EyIiIiIiEi8zCxSPPPIIH/vYx/i93/s9Hn74\nYX7xF3+RD37wg7znPe+Z1SFERERERGTBzKzkCeAd73gH73jHO2b5JUVEREREZIHNbIZCRERERERO\nHwUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUK\nERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERER\nERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5\nNgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUK\nERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERER\nERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5\nNgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5NgUK\nERERERE5NgUKERERERE5NgUKERERERE5NgUKERERERE5thMLFL/8y79MIpHgp3/6p0/qECIiIiIi\nMmcnEiieeuopPvKRj/CN3/iNWJZ1EocQEREREZEFMPNAMRgM+JEf+RH+43/8j9Tr9Vl/eRERERER\nWSAzDxQ/+ZM/yQ/8wA/w6KOPYoyZ9ZcXERGZO13fRES+IjXLL/aRj3yEq1ev8ju/8zsAKncSEZGl\nEEUGxwvwgpAgjAjDiODGrzAyX/Xno9+j6ChQJBIWCct62d+TyQS5TIpcJkU+kyKbmellV0RkIVhm\nRo9Z/u7v/o43v/nNfOpTn+Khhx4C4K1vfSsPP/wwv/Zrv3br7w0Gg1t//vKXvzyLQ4uIiLwqxhi8\nIML1I1w/xPVDnCDC80P8yCMwAaGJiExIaCIMEaEJCaMIYyJCjj5mMICFxdHDM4sEN/8XyyJhJUhg\nkbCSpKwUmWSGtJUmm0qTTiXIppNkb/yeufG7iMiievDBB2/9uVqtvuTjMwsUv/Vbv8U/+Sf/hGTy\nKyfFMAyxLItkMslkMiGdTr8oUNxuQPLynn76aR555JF5D0NiRO8pmbVFek9FkWFse0xdH9v1sd0A\nxwtwAw83dHADFyd0cQMXP/LIpBJk0gmSCYtk8miWIZU8+u/EjddSN/6cSFi3jhEZgzFHfzYGImNu\n/TmMDK4X4t0IMEEA2VSGTDJLNpUlm8yQTeYoZnPUSjmqxSyVYlYz/F9jkd5XEg96T92dV7p/n9nc\n6/d93/fxhje84dZ/G2P48R//cR566CF+/ud/nnQ6PatDiYiIvMTNADGauoxt7yhMBDa2b+OGLm7g\n4IUeySTkMkmymSSVTIJsOkMmnTvWTXwicWNW4i7GeBQufFzPYeBHOJMQSFEelClny5SzRSqF7K2A\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76d06080>"
"<matplotlib.figure.Figure at 0x7facfbe58320>"
]
}
],
"prompt_number": 9
"prompt_number": 48
},
{
"cell_type": "markdown",
@@ -650,12 +683,18 @@
"We can see that the sigma points lie between the first and second deviation, and that the larger $\\kappa$ spreads the points out further. Furthermore, the larger $\\kappa$ weighs the mean (center point) higher than the smaller $\\kappa$, and weighs the rest of the sigma points less. This should fit our intuition - the further a point is from the mean the less we should weight it. We don't know *how* these weights and sigma points are selected yet, but the choices look reasonable."
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Sigma Point Algorithm"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Choosing Sigma Points\n",
"\n",
"As I already said there are several published algorithms for choosing the sigma points. I will present the method first chosen by the inventors of the UKF. \n",
"\n",
"Our first sigma point is always going to be the mean of our input. We will call this $\\mathcal{X}_0$. So,\n",
@@ -708,18 +747,37 @@
"$$"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"The Unscented Filter"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we can present the entire Unscented Kalman filter algorithm. Assume that there is a function $f(x)$ that performs the state transition for our filer - it predicts the next state given the current state. Also assume there is a measurement function $h(x)$ - it takes the current state and computes what measurement that state corresponds to. These are just nonlinear forms of the $\\mathbf{F}$ and $\\mathbf{H}$ matrices used by the linear Kalman filter."
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Predict Step"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Unscented Filter\n",
"\n",
"Now we can present the entire Unscented Kalman filter algorithm. Assume that there is a function $f(x)$ that performs the state transition for our filer - it predicts the next state given the current state. Also assume there is a measurement function $h(x)$ - it takes the current state and computes what measurement that state corresponds to. These are just nonlinear forms of the $\\mathbf{F}$ and $\\mathbf{H}$ matrices used by the linear Kalman filter.\n",
"\n",
"### Predict Step\n",
"For the predict step, we will generate the weights and sigma points as specified above.\n",
"$$\\mathcal{X} = sigma\\_function(\\mu, \\Sigma) \\\\\n",
"W = weight\\_function(n, \\kappa)$$\n",
"$$\\begin{aligned}\n",
"\\mathcal{X} &= sigma\\_function(\\mu, \\Sigma) \\\\\n",
"W &= weight\\_function(n, \\kappa)\\end{aligned}$$\n",
"\n",
"We pass each sigma point through the function f.\n",
"\n",
@@ -740,11 +798,18 @@
"\\end{aligned}$$"
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Update Step"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Update Step\n",
"Now we can perform the update step of the filter. Recall that Kalman filters perform the update state in measurement space. So, the first thing we do is convert the sigma points into measurements using the $h(x)$ function.\n",
"\n",
"\n",
@@ -867,7 +932,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 10
"prompt_number": 49
},
{
"cell_type": "markdown",
@@ -912,7 +977,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 11
"prompt_number": 50
},
{
"cell_type": "markdown",
@@ -939,7 +1004,7 @@
},
{
"cell_type": "heading",
"level": 3,
"level": 2,
"metadata": {},
"source": [
"Implement the Filter"
@@ -1016,13 +1081,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76e0eeb8>"
"<matplotlib.figure.Figure at 0x7facf185c2e8>"
]
}
],
"prompt_number": 12
"prompt_number": 51
},
{
"cell_type": "markdown",
@@ -1048,13 +1113,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76e31898>"
"<matplotlib.figure.Figure at 0x7facfad775f8>"
]
}
],
"prompt_number": 13
"prompt_number": 52
},
{
"cell_type": "markdown",
@@ -1097,11 +1162,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAp4AAAJ2CAYAAAD2YYJ8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4FeeZN/7vzOmSjiRUKCqAAAGiV9FsbIPBBju2Y1xw\nbId0x+nJJtl3s9l3/ctmd19v3mQ3Tn03ZY2duCQuxBUXMNiAqaYjQHQhIQn1I51+Zn5/CLCkMwKV\nZ2bOmfP9XBcXeM7RMzfm6NE9z/0USVVVFUREREREOpPNDoCIiIiIUgMTTyIiIiIyBBNPIiIiIjIE\nE08iIiIiMgQTTyIiIiIyhN3oG7a2thp9SyIiIiISLCsrq99fwxFPIiIiIjIEE08iIiIiMoThpfau\nBjJESzQQu3fvxpw5c8wOg1IEP29kNH7myCiDnTLJEU8iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08i\nIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIi\nIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIi\nIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIi\nMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIy\nBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIE\nE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQT\nTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNP\nIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08i\nIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIi\nIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIi\nIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIi\nMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIy\nBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIE\nE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQT\nTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNP\nIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08i\nIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIi\nIiIyBBNPIiIiIjIEE08iIiIiMgQTTyIiIiIyBBNPIiIiIjKE3ewAiJJFIBRBsy+IjmAYgVAUgVAE\ngXDn78Fw9Mq1aEyBCkBRVKiqChWALEmQZQkSALtNhsflgNtph8dlh8flgMd56XeXHWkuB3IyPfC4\nHCb/jYmIiMRi4kkEoCMQRk2jDxca29HY5kdTWwBNvku/2gJo9gURCEcNjcnttCPH60ZOpgdDMjzI\nzfRgiLfz9xG5XhTmeZHucRoaExER0WAw8aSUoSgqahp9qL7YhvMX2zr/3OBDTYMPze1Bs8OLEwxH\nUdPYjprG9l7fk53hRkFuBgrzMlGY50Vh/qXf8zIhy5KB0RIREV0bE0+yJFVVUdfcgcrzjag834TN\nu4/C/9ppBA0etdRbS3sQLe1BHDnb0O26y2HD2IIhGF+Ui9KiXJQW5WB4TgYkickoERGZR2ji+dhj\nj+FHP/pRt2vDhw9HTU2NyNsQxWlpD6LyfCOOVzWisroJleeb0OYPffx6iw/Z2TYTIzRWKBLDkbMN\n3RJSr8eJ0qIclBblXkpIczDE6zExSiIiSjXCRzwnTpyITZs2Xflvmy11ftiTcVrag9h1tBp7jl/A\n8apGXGz1mx1SwvMFwvioshYfVdZeuZaXlYYJxbmYVToCcycWMBElIiJdCU88bTYbhg4dKrpZSnGq\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76e146d8>"
"<matplotlib.figure.Figure at 0x7facfafed518>"
]
}
],
"prompt_number": 14
"prompt_number": 53
},
{
"cell_type": "markdown",
@@ -1220,11 +1285,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAqkAAAJ9CAYAAAAWiev+AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmcT/Xix/HX+X5nM4sZM8wMRrKTNImEorK1ELm6obpt\nSgphkiKMLRLZSrTXj0p0tUtaEA0xyp7KzjArs2/f+Z7z+2PunXvdSmRmzndm3s/HYx4PvufMmff5\nmPF9zznnc45hWZaFiIiIiIgHcdgdQERERETkf6mkioiIiIjHUUkVEREREY+jkioiIiIiHkclVURE\nREQ8jkqqiIiIiHgclVQRERER8ThnLakLFy4kOjqa4OBggoOD6dixI6tWrSpZfu+99+JwOM746Nix\n4xnbKCgoYPjw4dSqVYvAwED69OlDQkJC2eyNiIiIiFQKZy2p9erV49lnn+XHH39k27ZtdOnShVtv\nvZUdO3YAYBgG3bt3JzExseTjv0sswMiRI1m5ciXLli1jw4YNZGZm0qtXL0zTLLu9EhEREZEKzTjf\nJ06FhYXxzDPP8OCDD3LvvfeSlpbGJ5988rvrZmRkEB4ezptvvsnAgQMBOH78OPXr1+fzzz+nR48e\nF74HIiIiIlLpnPM1qW63m2XLlpGfn0/nzp2B4iOpGzduJCIigmbNmjF48GBSUlJKPmfbtm24XK4z\nymhUVBQtWrQgLi6uFHdDRERERCoTrz9bYdeuXXTo0IGCggKqVavG8uXLadasGQA33ngj/fr1o0GD\nBhw6dIjx48fTpUsXtm3bho+PD4mJiTidTsLCws7YZkREBElJSWWzRyIiIiJS4f1pSW3evDk7d+4k\nIyODFStWMGDAANauXUvbtm3p379/yXotW7akTZs21K9fn88++4y+ffued5iMjIzz/hwRERER8SzB\nwcEXvI0/Pd3v7e1Nw4YNad26NdOnT6d9+/YsXLjwd9etXbs2UVFR7N+/H4DIyEjcbjdpaWlnrJeY\nmEhkZOQFhxcRERGRyum875Pqdrv/cGZ+SkoKCQkJ1K5dG4A2bdrg7e3NmjVrStY5fvw4+/bt+82t\nqkRERERE/u2sp/uffPJJevXqRVRUFFlZWbzzzjusX7+e1atXk5OTQ2xsLLfddhuRkZEcPnyYsWPH\nEhERUXKqPzg4mEGDBjFmzBjCw8MJDQ0lJiaG6OhounXrdtZgpXGYWH5ffHw8bdu2tTtGpadxLnsa\n4/KhcS57GuPyoXEuW6V92eZZS2pSUhJ33XUXiYmJBAcHEx0dzerVq+nevTv5+fns3r2bJUuWkJ6e\nTu3atenSpQvvv/8+AQEBJduYN28eXl5e9O/fn7y8PLp168bSpUsxDKNUd0REREREKo+zltQ33njj\nD5f5+fmxevXqP/0CPj4+LFiwgAULFpx/OhERERGpks77mlQRERERkbKmkioiIiIiHkclVUREREQ8\njkqqiIiIiHgclVQRERER8TgqqSIiIiLicVRSRURERMTjqKSKiIiIiMdRSRURERERj6OSKiIiIiIe\nRyVVRERERDyOSqqIiIiIeByVVBERERHxOCqpIiIiIuJxVFJFRERExOOopIqIiIiIx1FJFRERERGP\no5IqIiIiIh5HJVVEREREPI5KqoiIiIh4HJVUEREREfE4KqkiIiIi4nFUUkVERETE46ikioiIiIjH\nUUkVEREREY+jkioiIiIiHkclVUREREQ8jkqqiIiIiHgclVQRERER8TgqqSIiIiLicVRSRURERMTj\nqKSKiIiIiMdRSRURERERj6OSKiIiIiIeRyVVRERERDyOSqqIiIiIeByVVBERERHxOCqpIiIiIuJx\nVFJFRERExOOopIqIiIiIx1FJFRERERGPo5IqIiIiIh5HJVVEREREPI5KqoiIiIh4HJVUEREREfE4\nKqkiIiIiVZiVnmZ3hN+lkioiIiJSRVm7tmIO6Y35xft2R/kNlVQRERGRKsiK34A5dTjk58K+HViW\nZXekM3jZHUBEREREypcV9xXmnLFQVIRxQz+Mh8ZhGIbdsc6gkioiIiJShZhrP8V6PhZME6P3XRj3\nxXhcQQWVVBEREZEqw1y9AmvxdACM/oMxBgzxyIIKKqkiIiIiVYL50RKsN+YAYNw9Asff7rU30J9Q\nSRURERGppP49Gcpa/jLWu4sBMAaPxXHz7XbGOicqqSIiIiKVTK7L5J7VxygoMll++gO8P14CDgfG\nsFgcXXrbHe+cqKSKiIiIVCJpeUXc/ulRTue5eHz763gfXEOR4eTUkMnU7tLT7njnTPdJFREREakk\nDmcUcs/qY2TkFjJx2yJuP7iGAoc3ozuM5uakpnbHOy86kioiIiJSwWUVujmQXsiodSfIzitk2pYF\ndE/YTJ7Tl5iOY9ga3goAl2nh7fDM2fz/SyVVREREpAJ7bP0JvjmaA4CPu5BZm+fQKfEHsr2qMeLq\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76d4eb00>"
"<matplotlib.figure.Figure at 0x7facfb02c6d8>"
]
}
],
"prompt_number": 15
"prompt_number": 54
},
{
"cell_type": "markdown",
@@ -1252,11 +1317,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed7b3d36a0>"
"<matplotlib.figure.Figure at 0x7facf310b320>"
]
}
],
"prompt_number": 16
"prompt_number": 55
},
{
"cell_type": "markdown",
@@ -1289,7 +1354,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 17
"prompt_number": 56
},
{
"cell_type": "heading",
@@ -1352,11 +1417,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76b0de80>"
"<matplotlib.figure.Figure at 0x7facfb000a58>"
]
}
],
"prompt_number": 18
"prompt_number": 57
},
{
"cell_type": "heading",
@@ -1403,11 +1468,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAArQAAAJ2CAYAAACuHhFlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XV4VFf+x/H3vRN3FwjuVqS0tLRQobLUZeu6ta1u3bYu\n21/dZbvVrfvWBVrcSinQAsWhgbh7JjL3/P6YMCEkwZJABj6v5+kDV+bkDtM7+cyZc77HMsYYRERE\nRET8lL27L0BEREREpC0UaEVERETErynQioiIiIhfU6AVEREREb+mQCsiIiIifi1gd1/AziotLd3d\nlyAiIiIibRQdHd3mNtRDKyIiIiJ+TYFWRERERPya3w452Fx7dFVL+1uwYAGjR4/e3ZchW6HXqHPT\n69P56TXq3PT6dF7tPXRUPbQiIiIi4tcUaEVERETErynQioiIiIhfU6AVEREREb+mQCsiIiIifk2B\nVkRERET8mgKtiIiIiPg1BVoRERER8WsKtCIiIiLi1xRoRURERMSvKdCKiIiIiF9ToBURERERv6ZA\nKyIiIiJ+TYFWRERERPyaAq2IiIiI+DUFWhERERHxawq0IiIiIuLXFGhFRERExK8p0IqIiIiIX1Og\nFRERERG/pkArIiIiIn5NgVZERERE/JoCrYiIiIj4NQVaEREREfFrCrQiIiIi4tcUaEVERETErynQ\nioiIiIhfU6AVEREREb+mQCsiIiIifk2BVkRERET8mgKtiIiIiPg1BVoRERER8WsKtCIiIiLi1xRo\nRURERMSvKdCKiIiIiF9ToBURERERv6ZAKyIiIiJ+TYFWRERERPyaAq2IiIiI+DUFWhERERHxawq0\nIiIiIuLXFGhFRERExK8p0IqIiIiIX1OgFRERERG/pkArIiIiIn5NgVZERERE/JoCrYiIiIj4NQVa\nEREREfFrCrQiIiIi4tcUaEVERETErynQioiIiIhfU6AVEREREb+mQCsiIiIifk2BVkRERET8mgKt\niIiIiPg1BVoRERER8WsKtCIiIiLi1xRoRURERMSvKdCKiIiIiF9ToBURERERv6ZAKyIiIiJ+TYFW\nRERERPyaAq2IiIiI+DUFWhERERHxawq0IiIiIuLXFGhFRERExK8p0IqIiIiIX1OgFRERERG/pkAr\nIiIiIn5NgVZERERE/JoCrYiIiIj4NQVaEREREfFrCrQiIiIi4tcUaEVERETErynQioiIiIhfU6AV\nEREREb8WsLsvQERkdzDGUFnnUFbrUFbroaym4c/Ntj3GYFsWFuCywLIsbIuG/7z7bQtcloXVsN/C\nwmXTcKz5+Vu2ExZgExXkIirY+2dkkE2AbW312us8hiJ3PQVuD4XV9RRUeyis9lDo9v692O0hIdRF\nn5gg+sYE0ycmiLSIQFzbaFdExF8p0IqI3zLGUF1vKG0IoOVbBNLNA2p5rUNpjXe7vGHbY3b3M9iW\naFi+eucfnt7412CXRe/ooCYht29MEMlhAViWgq6I+DcFWhHp1Oo8hlXFNSwtdLOkwM2GsjpfYC2v\n9VDfhlAaFmB5e0Ubekejg2wiN+stDbQtHGNwDN7/MBgDHuMN05v2e4yhqs5hfVktK4tqqGrLRXWQ\nGo9heVENy4tqgPIWz4kNdnFyvyhO6BNFj6igXXuBIiJtoEArIp2GMYaN5XUsLXCztLCGpQVuVhTV\nUOe0HhBDXBZRwS6ighq+ug+yiQpuCKYN+6K32I4KsokM9gbWHVFV55BZUcecrCo+WVVKRkVdW59y\np1Jc4+H1pcW8vrS4yf6IQJujekTQNzaYXtFBpIYHEBpgExpgERqw7SESIiIdTYFWRHabYreHpYVu\nb4AtcLOswE1prdPsvF5RgQxNCGFoQgj9YoOJDt7Um2oT5Gq/ua0ex5BfXU9GRR2Z5XVkVNSTWV7H\nH0Vu0sv2rPC6IyrqHD5bU7bd5x/TK5IJ3SPoEuENvuGBNmENAVjDG0SkI7RroJ0xYwaPP/44Cxcu\nJCsrizfeeIMLLrigyTn33nsvr7zyCsXFxYwZM4YXXniBwYMH+47X1NRw00038cEHH1BdXc2ECRN4\n8cUX6dq1a3teqojsYu56h5XF3l7XJQVulhXUtNjDGR/iYmhCCMMSQhiSEMKQ+GAig1wdel1fri3j\nxcWFLYbp9hLQkLstvJPDACwLNo93m7KeBQS5LCxPPRGhwYS4LIJdFkEum5CATX+3CHHZm/3dIjjA\nbvz7pvMbjgcHWATbNrWOodhdz7rSWhbluVmYW03tVnrAd8a368v5dn3LwxoAEkJddI8MYkRSCCMS\nQ9knMYTo4I57jUVkz9eugbayspJ99tmHCy64gPPPP7/ZJ/FHHnmEJ598kv/+97/079+f+++/nyOP\nPJKVK1cSEREBwHXXXceXX37JBx98QFxcHDfccAPHHXccv/76K7atKmMi/sAxhj/L6nw9r0sL3Kwu\nrmk23jXEZTEoPphhDb2vQxNCSOmgSUqlNR4W5laTWVFHTmU983OqWF1S2+Z2h8QHM65rOPsmh9In\nJpjYkPYLZgsWLGD06AHt1t6OKqnxsKakhvWltSzOc281pO6IgmoPBdXVLMyrBrzDG3pHBzEiMYTh\nSaGMSAyhW2SgenNFZLu1a6CdOHEiEydOBODCCy9scswYw9NPP83tt9/OySefDMB///tfkpKSeO+9\n97jssssoLS3l9ddf580332TChAkAvP322/To0YMff/yRo446qj0vV0TaSUF1fUOvq7f39Y/CGirq\nmvZ2WkDfmKDG3tf4EPrEBHXY+EtjDKuKa5mVWcmszEp+L3Czsx2RXcID2C8lzFcZoE9MMImhrj0+\ncMUEuxidHMbo5DBO6w//OjjFd8wYw+qSWr5YU8anq0upaWPJiHWltawrrfUNbYgLcTE80duDOzwp\nhMFxIQS69ux/bxHZebtsDO369evJzc1tEkpDQkIYP348c+bM4bLLLuPXX3+lrq6uyTlpaWkMGjSI\nOXPmKNCKdCK1HodPVpXx3opiMivqmx1PDgtgSEJD72t8CIPiQwgP7NhvWcprPfycXcXsrCpmZVZS\nUO3ZqXZO6RvF+LRw+sYEkxoRgL2HB9edYVkW/WODuXm/RG7eLxHwDt9YUVTDD3+WMzm9gkL3zv37\nAxS5PUzdWMnUjZUABNkWQxKCGZ4Y6uvJjdEwBRFpsMsCbU5ODgDJyclN9iclJZGVleU7x+VyER8f\n3+Sc5ORkcnNzd82FishW1TuGb9aV8e/fi8ip9AbZsACLIfGNwwaGJoSQFNbxby/GGNaV1jIr0xtg\nF+dV73AZr97RQZw7KIZjekcS3I4TzPZGIQE2I5JCGZEUyq37J/n213kMy4vc/LShgh/TK8iqbP4B\naFtqHcOiPDeL8ty+fb2iAn1DFEYkhdJdwxRE9lqdosqB3oBEOj9jDD9uqOClxYWsb5jx3yc6iKtG\nxjO+a/guW4Wqus5hfk4Vsxp6YXN2MBz1iw3ioiFxHNglrEMnIpnCPAgOgaJ8yN4AIWGYonxYvxKz\nagkU5mLtdwhUVUCXHuA4EByC+fBl6DUQli9iJOCJT8I69DjMF29BfcNzPeBwLFeAt/3oOIhLhJpq\nrC7dMYX5WGk9oWd/rNgEjDG7/T020GWxT2Io+ySGcv2+ib79tR6H1cW1TMuo5NUlRTvc7vqyOtaX\n1fF5wzCFxFAXJ/eL5tR+0bvkA5WIdB677I5PSfGOvcrNzSUtLc23Pzc313csJSUFj8dDYWFhk17a\nnJwcxo8f32rbCxYs6KCrlrbSa9P5bes1MgaWVQbweX4w6W7vW0ZCoMOJiW72jyrFzs1nUQd/gZJb\na7OkIoAlFQGsqgqg3uxYQDs+wc3Y6FriA423kkBhPqsL23ZNUWuWEL5hNeFZf1IbGUNQWRF1kTEE\nlhWDZRGZvrLZY+oiogmsKPVtm28/bH7cXQ3LFzXuLMyj9odPCazfLLjPm4LZ8nEVpb59m/50xyUR\nUpTnO68qpTvG5aJw+MHUh0dSFxmDsV3UxiTgCQnbyX+JthsDjBnk/XutA98XBvNVQch2PTYuwCE2\n0CGv1ia/Gv7zexGv/V7IqKg6Do+tpU+oh47O83qf69z0+nRO/fr1a9f2dlmg7dWrFykpKUyaNIl9\n990XALfbzaxZs3j88ccB2HfffQkMDGTSpEmcddZZAGRkZLBixQrGjh3batujR4/u+CcgO8w7Q1uv\nTWe2rddocV41zy8u5NfcasBbbunSYXGc3De6QyfouOsdfs2tZlZmJbOzqthYvuM1YP85JpGT+kbv\n8OIJAKa6EvJzoLQI8/M0qCzDTP268YT4ZCjcSooPCGxxd9ARJ2I+f8u3bR10lPcTQ5fuYNsEhUVA\n+mpI6Yb5YxElbjexh0wkKDgY/liEydoA5SVYw8eAuxoGDofSIoJsF+atZyAyBspLfO2HhIXDZh2f\nYTkbAAjPXO/dkZwGuRlNL3LEgVj9hkBcIla33tBnEFZo+Hb9u7WXscD9wMqiGh5bkO/7/68lRfU2\nRfU2wxJC6BUdSF6Vh/k5VfxSFsQvZUEMigvmzIExHN0zokOGlOh9rnPT69N5lZaWbvukHdDuZbtW\nr/auO+44Dunp6SxevJj4+Hi6devGddddx0MPPcTAgQPp168fDz74IJGRkZx99tkAREdHc/HFF3PL\nLbeQlJTkK9s1fPhwjjjiiPa8VBHZilXFNbywqJAZmd4JOVFBNn8bGssZA2IIDeiYcabV9Q7TNlby\n/fpy5udU4d7BWfMuC84cGMNp/aN3aNlWk5+Dmfk9ZtYP3q/ul/4K7irvQdv2DgXY0mahERqCaXQs\n9B+GFZsACSkQGgqRsViBW4TbC6/f7mtbv2AB8Zt+GU84cesnn3Jh0+flOFBdCYV5mNXLYPLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76cbc400>"
"<matplotlib.figure.Figure at 0x7facf183ec88>"
]
}
],
"prompt_number": 19
"prompt_number": 58
},
{
"cell_type": "markdown",
@@ -1421,7 +1486,7 @@
"level": 2,
"metadata": {},
"source": [
"Problem: Sensor Position Effects"
"Exercise: Sensor Position Effects"
]
},
{
@@ -1440,7 +1505,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 20
"prompt_number": 59
},
{
"cell_type": "heading",
@@ -1478,11 +1543,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76cde0f0>"
"<matplotlib.figure.Figure at 0x7facf1831898>"
]
}
],
"prompt_number": 21
"prompt_number": 60
},
{
"cell_type": "markdown",
@@ -1493,7 +1558,7 @@
},
{
"cell_type": "heading",
"level": 3,
"level": 2,
"metadata": {},
"source": [
"Exercise: Compute Position Errors"
@@ -1515,7 +1580,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 22
"prompt_number": 61
},
{
"cell_type": "heading",
@@ -1557,7 +1622,7 @@
]
}
],
"prompt_number": 23
"prompt_number": 62
},
{
"cell_type": "heading",
@@ -1599,11 +1664,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76d9e160>"
"<matplotlib.figure.Figure at 0x7facf18e7be0>"
]
}
],
"prompt_number": 24
"prompt_number": 63
},
{
"cell_type": "heading",
@@ -1670,11 +1735,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed7b09c748>"
"<matplotlib.figure.Figure at 0x7facf1898f98>"
]
}
],
"prompt_number": 25
"prompt_number": 64
},
{
"cell_type": "markdown",
@@ -1770,11 +1835,11 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed7b0ed358>"
"<matplotlib.figure.Figure at 0x7facfb083ef0>"
]
}
],
"prompt_number": 26
"prompt_number": 65
},
{
"cell_type": "markdown",
@@ -1805,11 +1870,145 @@
"output_type": "display_data",
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed7b0f3748>"
"<matplotlib.figure.Figure at 0x7facfad5f2b0>"
]
}
],
"prompt_number": 27
"prompt_number": 66
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Exercise: Visualize Sigma Points"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Early in the chapter you were asked to pass points through a nonlinear function and to plot the mean. Use the UKF to generate sigma points and pass them through the nonlinear function, and plot the sigma points and their mean against the 5,000 points.\n",
"\n",
"Pass the points through the state transition function:\n",
"\n",
"$$\\mathbf{Fx} = \\begin{bmatrix}1 & 1 \\\\ .1x &y\\end{bmatrix}\\begin{bmatrix}x\\\\y\\end{bmatrix}$$ \n",
"\n",
"for the mean $$\\mu = \\begin{bmatrix}0\\\\0\\end{bmatrix}$$ and the covariance\n",
"$$\\Sigma=\\begin{bmatrix}32&15\\\\15&40\\end{bmatrix}$$"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"# Your solution here"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 67
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Solution"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from filterpy.kalman import unscented_transform\n",
"\n",
"def f(x,y):\n",
" return np.array([x+y, .1*x**2 +y*y])\n",
"\n",
"mean = (0, 0)\n",
"p = np.array([[32., 15],\n",
" [15., 40.]])\n",
"\n",
"\n",
"### compute mean via UKF\n",
"kappa = 0.\n",
"w = UKF.weights(2, kappa)\n",
"sigmas = UKF.sigma_points(mean, p, kappa)\n",
"sigmas_f = np.zeros((5,2))\n",
"for i in range(5):\n",
" sigmas_f[i] = f(sigmas[i,0], sigmas[i,1])\n",
" \n",
"\n",
"ukf_mean, _ = unscented_transform(sigmas_f, w, w, np.zeros((2,2)))\n",
"\n",
"# generate 500000 points to compute accurate mean\n",
"np.random.seed(73291)\n",
"xs ,ys = multivariate_normal(mean=mean, cov=p, size=10000).T\n",
"fxs, fys = [], []\n",
"for x,y in zip(xs,ys):\n",
" fx, fy = f(x,y)\n",
" \n",
" fxs.append(fx)\n",
" fys.append(fy)\n",
"\n",
"computed_mean_x = np.average(fxs)\n",
"computed_mean_y = np.average(fys)\n",
"\n",
"\n",
"plt.subplot(121)\n",
"plt.scatter (xs[0:10000], ys[0:10000], marker='.', alpha=0.1)\n",
"plt.scatter(sigmas[:,0], sigmas[:,1], c='r',s=50)\n",
"plt.axis('equal')\n",
"\n",
"plt.subplot(122)\n",
"plt.scatter(fxs[0:10000], fys[0:10000], marker='.', alpha=0.1)\n",
"plt.scatter(computed_mean_x, computed_mean_y, \n",
" marker='v',s=300,c='k', label='computed')\n",
"plt.scatter(ukf_mean[0], ukf_mean[1], \n",
" marker='o', s=50, c='r', label='ukf')\n",
"plt.ylim([-10,290])\n",
"plt.xlim([-150,150])\n",
"plt.legend(loc='best', scatterpoints=1)\n",
"plt.show()\n",
"print ('Difference in mean x={:.3f}, y={:.3f}'.format(\n",
" computed_mean_x-ukf_mean[0], computed_mean_y-ukf_mean[1]))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAqsAAAJ2CAYAAAB4u8sAAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X1wm9WdL/DveR7FOHFsWZIl2cSNY4Lzul3gJlAamLSU\nkG3L2812u9CU3Xa3nfQlQAIzpYXektClZOkwbEopdLczlCyQdqEtYWbptlmmado0sCUse1vgkoQk\nDSHEsi3LLwl5sXTO/ePoPHokS7Zs6z3fz0wGR3okHZn4+Kff+Z3fEUopBSIiIiKiCmSVewBERERE\nRLkwWCUiIiKiisVglYiIiIgqFoNVIiIiIqpYDFaJiIiIqGJ5yj2AbAYHB8s9BCI6S3m93nIPoSg4\nrxJRuUx1XmVmlYiIiIgqFoNVIiIiIqpYFVkG4FatS3J79uzB0qVLyz2MSanmsQPVPX6OvTzOtiXy\napxXq/nfF1Dd46/msQPVPf5qHnsh51VmVomIiKqUlApS8iBKqm0MVomIiKqQlAq9vUBvLxiwUk1j\nsEpEREREFavia1aJiIhoNMsSCAaV83UtMBniWnk/VBgMVomIiKpULQV1pqwBAIJBVVPvjaamoGUA\nx44dw2c+8xmEQiFMnz4dixcvxm9+85u0azZu3IhZs2ZhxowZuOKKK/DGG28UcghEREREVEMKllkd\nGBjAZZddhuXLl+PnP/85gsEgDh48iFAo5Fxz//3348EHH8SWLVswb948fPOb38RVV12FvXv3YubM\nmYUaChEREU2AlBJnzpzJel9HRwdOnTpVknE0NekygDNnCpdVLeX4C61Sx15XVwfLKt22p4IFq9/+\n9rcxa9YsPP74485tHR0dztdKKWzevBl33nknVq1aBQDYsmULQqEQtm7dijVr1hRqKERERJQnKSVO\nnz6N+vp6CDE6SKyvry/DqAqnmsdfiWNXSuHUqVM455xzShawFuxVtm3bhksuuQQ33HADwuEwLrro\nInzve99z7j906BAikQhWrlzp3FZfX4/ly5dj9+7dhRoGERERTcCZM2dyBqpEmYQQqK+vz5mJL4aC\nBasHDx7EI488gvPPPx/bt2/HunXr8LWvfc0JWLu7uwEA4XA47XGhUMi5j4iIiEqPgSpNRKn/vRSs\nDEBKiUsuuQTf+ta3AAAXXHAB9u/fj+9973tYu3btmI/lDwkREdHksN0T1bqCBavnnnsuFi1alHbb\nggUL8PbbbwMAWltbAQCRSATt7e3ONZFIxLkvmz179hRqiCXHsZdPNY+fYy+9rq6ucg+BaFLY7onO\nBgULVi+77DK8+eababft27cPc+bMAQB0dnaitbUV27dvx5IlSwAAp06dwq5du/DAAw/kfN6lS5cW\naogltWfPHo69TKp5/Bx7eQwODpZ7CEREFcWyLGzYsAEbNmwo91AKF6zedtttWLZsGe677z789V//\nNV599VV897vfxaZNmwDopf7169fjvvvuw4IFC9DV1YV7770XjY2NWL16daGGQUREdNYo5ylWiUQC\nr7766pRWVEKhED70oQ8hEAgUcGRnj0ceeQQNDQ34zGc+U5Tnr5QyzYIFq0uXLsW2bdtw11134R/+\n4R/Q0dGBe++9F1/60peca+644w6cPHkSa9euRSwWw6WXXort27ejoaGhUMMgIiI6q5Rr6d+2bcTj\ncdx8881IJBKTeo6tW7fC7/cXeGRnj0ceeQTBYLBowWqlKOhxqx//+Mfx8Y9/fMxrKiWlTERERFNz\n4YUX4otf/GJaq8p8dXZ2YtmyZRWTvaPKVbrjB4iIiKim1NfX46abboJt2xN+7Le+9S3Mnj27CKNK\nd+zYMXzhC19Ae3s76uvr0dnZiTVr1uD48eMAgD/96U+44YYbEAgEMGPGDFxyySV47rnn0p7j17/+\nNSzLwo9+9CPcc889mDVrFhobG/GJT3wCAwMDOH36NNavX49QKITGxkZ89rOfHXXylGVZ+NKXvoR/\n+7d/w6JFizB9+nRceOGF+OUvf5l23caNG7M223/88cdhWZazcX3OnDl44403sHPnTliWBcuy0NnZ\n6Vx/+vRp3HPPPejq6kJ9fT3a29tx++234+TJk2nPe/r0adx2220IBoNoamrC9ddfj3feeWfy3/Ai\nKGhmlYiIiEqr3K2rJpNdLVVWtbu7G5dccgn6+/uxZs0aLF68GEePHsW2bdvQ39+P9957D8uWLcOJ\nEydw6623IhgM4oknnsBf/uVf4qmnnsKNN96Y9nzf/va3MX36dNx1113Yv38/vvvd78Lj0aHU8PAw\nvvnNb+Kll17Cv/7rv6KjowP33HNP2uN/97vf4emnn8a6deswc+ZM/Mu//AuuvfZa7NixA5dddplz\nXT7fl+985zu45ZZb0NjYiK9//esA4Bxdr5TCqlWr8Jvf/AZr1qzBokWL8MYbb+CRRx7B66+/nhYg\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7facf3148c18>"
]
},
{
"output_type": "stream",
"stream": "stdout",
"text": [
"Difference in mean x=0.083, y=-0.215\n"
]
}
],
"prompt_number": 68
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Discussion"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The first exercise had an error of roughly 43 in the y axis, whereas with 10,000,000 points simulated the UKF has an error of around 0.03. It is very likely that a larger number is displayed above, but that is because I set the number of points to 10,000 so the cell will run quickly for you. I find this result very astonishing - using only 5 points the UKF generates a better estimate than using 5000 points with a naive algorithm. "
]
},
{
"cell_type": "heading",
@@ -1898,7 +2097,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 28
"prompt_number": 69
},
{
"cell_type": "heading",
@@ -1992,13 +2191,13 @@
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 29,
"prompt_number": 70,
"text": [
"array([410, 520, 630])"
]
}
],
"prompt_number": 29
"prompt_number": 70
},
{
"cell_type": "markdown",
@@ -2083,7 +2282,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 30
"prompt_number": 71
},
{
"cell_type": "heading",
@@ -2129,7 +2328,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 31
"prompt_number": 72
},
{
"cell_type": "heading",
@@ -2204,7 +2403,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 32
"prompt_number": 73
},
{
"cell_type": "heading",
@@ -2519,7 +2718,7 @@
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 33
"prompt_number": 74
},
{
"cell_type": "heading",
@@ -2555,11 +2754,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAJ3CAYAAAAEWuCCAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmczuX+x/H3fc9qLGPfCYmTIgdFCoeT0iGdpdOiU5ZK\nJWTNnhljCYOhTRJpPVp0WkSWRJFjK46fbDlIDNlGgzHb9/fHdQzTLGaYme9939fr+XjMY2a+93f5\n3N8y857r+l7X5XEcxxEAAACs4XW7AAAAABQtAiAAAIBlCIAAAACWIQACAABYhgAIAABgGQIgAACA\nZQiAAAqV1+tV27Zt3S7Dp3311Vfyer3q3r17nvaPioqS1+vVypUrC7kyAIGKAAgEMK/Xm+kjKChI\nZcqU0S233KIXXnhBqampRVKHx+Mpkutc7Hyoys/H/v37i7zOi+X1Pnk8nowPALgcwW4XAKBweTwe\njR49WpKUmpqqvXv3asGCBfr222+1dOlSffzxxy5XWDhq166tqKioTNscx1F0dHSme3Kx0qVLF1F1\nV6Z379564IEHVKNGDbdLAeCnPKwEAgQur9crj8ejtLS0TNt37dqlJk2a6PTp01qxYoXatGlTqDX8\n4Q9/0Jdffllo18iPnO6Jm7766iu1a9dO3bp105w5c9wuB4AF6AIGLHTNNdeodevWkqQNGzZkem3n\nzp0aOnSomjVrpgoVKig8PFy1atXSY489pp9++inb8yUnJysmJkZXX321wsPDVadOHY0aNUrnzp3L\ndv+DBw9qzJgxuuWWW1S5cmWFhYWpWrVq6tKli7Zt25Zl/71792Y8S3jw4EH16NFDVapUUXBwcIG1\nYHq9XtWuXVunTp1Sv379dNVVVykkJETTp0+/7PsiSUuXLlXnzp1VqVIlhYeHq0aNGurUqZM+++yz\nS9bkOI4GDx4sr9erTp066fTp05IuPAO4atWqbN/DmTNnNHjwYNWsWVPh4eG65pprNGnSpByvMX36\ndDVo0EDFihVT9erV1adPHyUkJKhWrVqqXbt2Xm8hAD9CFzBgqfON/2FhYZm2L1iwQK+88oratWun\nW2+9VaGhodq6davmzJmjTz/9VBs3blS1atUynefee+/VJ598oquvvlp9+vRRcnKy5s6dqy1btmR7\n7VWrVmnixIlq166dmjRpohIlSmjnzp368MMP9cknn+ibb75R48aNsxx37NgxtWzZUqVLl9Z9992n\n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\nzZqlf/3rX7rpppu0bt061axZ0+e6gKXLuy/R0dFatGiRWrVqpUWLFik2NlZffPGFateurZ49e17y\nml26dNH8+fN16NAhtWnTRjt27JBknlXM7z3K6ZiXX35ZU6dOVcmSJTVr1iy9++67uv3227VkyRIl\nJCRkPCcIILCwFjAAIItdu3apfv36euCBB7Id5ALAv9ECCAAWO3LkSKbnGiXpzJkz6tevnyTpL3/5\nixtlAShkTAMDABabMWOG3nzzTbVt21aVK1dWfHy8li9frp9//ll/+tOfdM8997hdIoBCkGMATEhI\nKMo6AAAuaNGihdavX68vvvhCJ06cUEhIiK6++mo9/vjj6tWrF78LgABx8XKPUi7PAPKPHgAAIDD8\nNgDyDCAAAIBl8vQM4G9TIwAAAHxbbr25tAACAABYhgAIAABgGQIgAACAZQiAAAAAliEAAgAAWIYA\nCAAAYBkCIAAAgGUIgAAAAJYhAAIAAFiGAAgAAGAZAiAAAIBlCIAAAACWIQACAABYhgAIAABgGQIg\nAACAZQiAAAAAliEAAgAAWIYACAAAYBkCIAAAgGUIgAAAAJYhAAIAAFiGAAgAAGAZAiAAAIBlCIAA\nAACWIQACAABYhgAIAABgGQIgAACAZQiAAAAAliEAAgAAWIYACAAAYBkCIAAAgGUIgAAAAJYhAAIA\nAFiGAAgAAGAZAiAAAIBlCIAAAACWIQACAABYhgAIAABgGQIgAACAZQiAAAAAliEAAgAAWIYACAAA\nYBkCIAAAgGUIgAAAAJYhAAIAAFiGAAgAAGAZAiAAAIBlCIAAAACWIQACAABYhgAIAABgGQIgAACA\nZQiAAAAAliEAAgAAWIYACAAAYBkCIAAAgGUIgAAAAJYhAAIAAFiGAAgAAGAZAiAAAIBlCIAAAACW\nIQACAABYhgAIAABgGQIgAACAZQiAAAAAliEAAgAAWIYACAAAYBkCIAAAgGUIgAAAAJYhAAIAAFiG\nAAgAAGAZAiAAAIBlCIAAAACWIQACAABYhgAIAABgGQIgAACAZQiAAAAAliEAAgAAWIYACAAAYBkC\nIAAAgGUIgAAAAJYhAAIAAFiGAAgAAGAZAiAAAIBlCIAAAACWIQACAABYhgAIAABgGQIgAACAZQiA\nAAAAliEAAgAAWIYACAAAYBkCIAAAgGUIgAAAAJYhAAIAAFiGAAgAAGAZAiAAAIBlCIAAAALine truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76c99470>"
"<matplotlib.figure.Figure at 0x7facfaefaf60>"
]
}
],
"prompt_number": 34
"prompt_number": 75
},
{
"cell_type": "markdown",
@@ -2673,11 +2872,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAsUAAAKUCAYAAADsGUVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VdW9///XPnNycjLnJCGBECQMRqQWlOEKKjOKqNWW\nyr04/ORCr2K1XH/cSx9Wcfja6631S72IVX+1Uqyl2sGhDqSIgkjaCg5FZmQMkJCETOfkzGf//sjl\n1CODQSAJ5P18PPIwZ++1z/ls3Oy8WVl7LcM0TRMRERERkW7M0tkFiIiIiIh0NoViEREREen2FIpF\nREREpNtTKBYRERGRbk+hWERERES6PYViEREREen2FIpFREREpNvrtFD84x//mIsvvpiMjAy8Xi9T\np05l48aNSW1uueUWLBZL0tfIkSOT2oRCIe68807y8vJIS0vjmmuuYf/+/UltGhoamDFjBpmZmWRm\nZnLTTTfR1NR0xs9RRERERM4OnRaKV61axZw5c6isrGTlypXYbDbGjRtHQ0NDoo1hGIwfP57q6urE\n15tvvpn0PnfffTd/+MMfWLZsGe+//z7Nzc1MmTKFeDyeaDN9+nQ++eQTli9fzttvv81HH33EjBkz\nOuxcRURERKRrM7rKinZ+v5+MjAxeffVVrrrqKqCtp7i+vp7XX3/9mMc0NTXh9Xp5/vnnufHGGwGo\nqqqipKSEt956iwkTJrB582bKy8v54IMPGDFiBAAffPABo0aNYsuWLfTr169jTlBEREREuqwuM6a4\nubmZeDxOVlZWYpthGKxZs4b8/Hz69+/PrFmzqK2tTexfv349kUiECRMmJLYVFxczcOBAKisrAais\nrCQtLS0RiAFGjhyJ2+1OtBERERGR7s3W2QUccdddd3HRRRclhddJkyZx/fXXU1payq5du7j33nsZ\nM2YM69evx+FwUF1djdVqJScnJ+m98vPzqa6uBqC6upq8vLyk/YZh4PV6E21EREREpHvrEqF47ty5\nrF27ljVr1mAYRmL7tGnTEt+Xl5czZMgQSkpKeOONN7juuuuO+35fd0SIHr4TEREROftlZGSc9DGd\nPnziBz/4Ab/97W9ZuXIlvXv3PmHbwsJCiouL2bFjBwAFBQXEYjHq6+uT2tXU1FBQUJBo88UhF9AW\nmg8dOpRoIyIiIiLdW6eG4rvuuisRiNvzwFttbS379++nsLAQgCFDhmC326moqEi0qaqqYsuWLYmp\n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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76ba1668>"
"<matplotlib.figure.Figure at 0x7facf310bd68>"
]
}
],
"prompt_number": 35
"prompt_number": 76
},
{
"cell_type": "markdown",
@@ -2783,11 +2982,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAsUAAAKUCAYAAADsGUVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8VdW9///XPnNycjLnJCGBECQMRqQWlOEKKjOKqNWW\nyr04/ORCr2K1XH/cSx9Wcfja6631S72IVX+1Uqyl2sGhDqSIgkjaCg5FZmQMkJCETOfkzGf//sjl\n1CODQSAJ5P18PPIwZ++1z/ls3Oy8WVl7LcM0TRMRERERkW7M0tkFiIiIiIh0NoViEREREen2FIpF\nREREpNtTKBYRERGRbk+hWERERES6PYViEREREen2FIpFREREpNvrtFD84x//mIsvvpiMjAy8Xi9T\np05l48aNSW1uueUWLBZL0tfIkSOT2oRCIe68807y8vJIS0vjmmuuYf/+/UltGhoamDFjBpmZmWRm\nZnLTTTfR1NR0xs9RRERERM4OnRaKV61axZw5c6isrGTlypXYbDbGjRtHQ0NDoo1hGIwfP57q6urE\n15tvvpn0PnfffTd/+MMfWLZsGe+//z7Nzc1MmTKFeDyeaDN9+nQ++eQTli9fzttvv81HH33EjBkz\nOuxcRURERKRrM7rKinZ+v5+MjAxeffVVrrrqKqCtp7i+vp7XX3/9mMc0NTXh9Xp5/vnnufHGGwGo\nqqqipKSEt956iwkTJrB582bKy8v54IMPGDFiBAAffPABo0aNYsuWLfTr169jTlBEREREuqwuM6a4\nubmZeDxOVlZWYpthGKxZs4b8/Hz69+/PrFmzqK2tTexfv349kUiECRMmJLYVFxczcOBAKisrAais\nrCQtLS0RiAFGjhyJ2+1OtBERERGR7s3W2QUccdddd3HRRRclhddJkyZx/fXXU1payq5du7j33nsZ\nM2YM69evx+FwUF1djdVqJScnJ+m98vPzqa6uBqC6upq8vLyk/YZh4PV6E21EREREpHvrEqF47ty5\nrF27ljVr1mAYRmL7tGnTEt+Xl5czZMgQSkpKeOONN7juuuuO+35fd0SIHr4TEREROftlZGSc9DGd\nPnziBz/4Ab/97W9ZuXIlvXv3PmHbwsJCiouL2bFjBwAFBQXEYjHq6+uT2tXU1FBQUJBo88UhF9AW\nmg8dOpRoIyIiIiLdW6eG4rvuuisRiNvzwFttbS379++nsLAQgCFDhmC326moqEi0qaqqYsuWLYmp\n20aMGIHP50saP1xZWYnf7z9qejcRERER6Z46bfaJO+64gxdeeIFXXnmFgQMHJrZ7PB7cbjd+v5/7\n77+fG264gYKCAnbv3s38+fPZv38/mzdvxu12A3D77bfz+uuv8/zzz5Odnc3cuXNpampi/fr1iaEY\nV155JVVVVTzzzDOYpsmsWbPo06cPr776alJNXxw+8XW63UVO1rp16xg6dGhnlyHdiK456Wi65qSj\nnGqO67QxxU899RSGYTB27Nik7QsWLOC+++7DarXy2WefsXTpUhobGyksLGTMmDH87ne/SwRigIUL\nF2Kz2Zg2bRqBQIBx48bxwgsvJI1NfvHFF7nzzjuZOHEiANdccw2LFi3qmBMVERERkS6vy8xT3BWo\np1g6mnpQpKPpmpOOpmtOOsqp5rhOf9BORERERKSzKRSLiIiISLenUCwiIiIi3Z5CsYiIiIh0ewrF\nIiIiItLtKRSLiIiISLenUCwiIiIi3Z5CsYiIiIh0ewrFIiIiItLtKRSLiIiISLenUCwiIiIi3Z5C\nsYiIiIh0ewrFIiIiItLtKRSLiIiISLenUCwiIiIi3Z5CsYiIiIh0ewrFIiIiItLtKRSLiIiISLen\nUCwiIiIi3V6nheIf//jHXHzxxWRkZOD1epk6dSobN248qt2CBQsoKioiNTWVK664gk2bNiXtD4VC\n3HnnneTl5ZGWlsY111zD/v37k9o0NDQwY8YMMjMzyczM5KabbqKpqemMnp+IiIiInD06LRSvWrWK\nOXPmUFlZycqVK7HZbIwbN46GhoZEm0cffZTHH3+cRYsW8eGHH+L1ehk/fjw+ny/R5u677+YPf/gD\ny5Yt4/3336e5uZkpU6YQj8cTbaZPn84nn3zC8uXLefvtt/noo4+YMWNGh56viIiIiHRdhmmaZmcX\nAeD3+8nIyODVV1/lqquuwjRNevTowfe//33mz58PQDAYxOv18thjjzFr1iyamprwer08//zz3Hjj\njQBUVVVRUlLCW2+9xYQJE9i8eTPl5eV88MEHjBgxAoAPPviAUaNGsWXLFvr165eo4Yu9xxkZGR14\n9tJdrVu3jqFDh3Z2GdKN6JqTjqZrTjrKqea4LjOmuLm5mXg8TlZWFgC7du2ipqaGCRMmJNq4XC5G\njx7N2rVrAVi/fj2RSCSpTXFxMQMHDqSyshKAyspK0tLSEoEYYOTIkbjd7kQbERERETk7RWImb+9q\nOeX36TKh+K677uKiiy5KhNfq6moA8vPzk9p5vd7EvurqaqxWKzk5OUlt8vPzk9rk5eUl7TcMI+l9\nREREROTs0xqJM2flfuavOfVMZzsN9ZyyuXPnsnbtWtasWYNhGF/Z/qvadJERISIiIiLyNTUEY+xu\nDhOKmfTy2NnWEOKjQwG2N4SJxE1sBuxujlDTGiXHZT3lz+v0UPyDH/yAl156iXfffZfevXsnthcU\nFABQU1NDcXFxYntNTU1iX0FBAbFYjPr6+qTe4pqaGi677LJEm9ra2qTPNE2TQ4cOJd7nWNatW3fK\n5ybSHrrWpKPpmpOOpmtO2mt/0MJrdS62tVrxxdo3oCHXHufuohYg5yvbnkinhuK77rqLl19+mXff\nfTfpgTeA0tJSCgoKqKioYMiQIUDbg3Zr1qzhscceA2DIkCHY7XYqKiqSHrTbsmULI0eOBGDEiBH4\nfD4qKysTQzMqKyvx+/2JNseihwKkI+gBFOlouuako+mak68SN03er/Lzh+3NvL/fz5Hf96faDHpn\nOHBYDPY0R+iVbmdYYSoDs5247RYicZPcFBul6Q7sVuOUp9vttFB8xx138MILL/DKK6+QkZGRGN/r\n8Xhwu90YhsHdd9/NI488woABAygrK+Phhx/G4/Ewffp0oO3Jwttuu4158+bh9XrJzs5m7ty5DB48\nmHHjxgEwcOBAJk2axOzZs3nmmWcwTZPZs2dz9dVXU1ZW1lmnLyIiItJtfN4Yoi4Q4yKvi+0NYXY0\nhojGodofYVWVn+2NYQBsFri+LIMZA7PokWZr17Da06XTQvFTTz2FYRiMHTs2afuCBQu47777AJg3\nbx6BQIA77riDhoYGhg8fTkVFBW63O9F+4cKF2Gw2pk2bRiAQYNy4cbzwwgtJf4gvvvgid955JxMn\nTgTgmmuuYdGiRR1wliIiIiLdRzRusvVwiAP+CINyXcRN+O3WRpZuasQEbAZEj/HolzfVxj8PyGRK\nHw/ZKZ0TT7vMPMVdgeYplo6mXytKR9M1Jx1N19y564Avwt+qW9nbHKGnx05DKMavNjbQFI4f1dZq\nQC+PnV3NEbypNobmp+CwGuSl2Oib6eDynm4c1lObFO1Uc1ynP2gnIiIiIl1fbWuUij0t1Adi1Aej\nvLGzhdgxulZ7euwUp9n5e10QmwGD81KYOSibQXkuGkMx0h0WLB04LKK9FIpFRERE5Jj2NIdZXeVn\nVZWfjw8FiH8hBFsMGNPLzXkZTj5vChGOmfzzgEyGFaZiGEZiitwvDmnNdJ761GlnikKxiIiISDcW\ni5vsaYmwvSFEKGayqynMXw62UtUSwRf5x1AImwUuL3YzMMdFzDSZUOKhNMNx3PftyIfkTgeFYhER\nEZFzSCxuEjchjkkgavJhdSt1gRj5qTa2N4TYfDhEYyhGUyhGYyhGczie1AP8RekOC//Uw81lPd2M\n7JGKx9F1e3pPlUKxiIiIyDlgT3OYn39az5/3+I451vdE8lNtDMx24nFYyHbZGNEjlQHZTtIdlrOu\nx/frUigWEREROYuZpslL25r46bo6Iv/b5WuzgIGB1YDyXBe90+0c9Efp6bFzkTeF3BQbmU4LmU4r\n6U4rdkv3CL4nolAsIiIichYyTZMPqwM8u+Ew62oCAFzdx8O/fSOHQre9k6s7+ygUi4iIiHRhkbjJ\njoYQMRMMo23M8I7GMK9+3szfa4MApNkt3Dvcy8Tenk6u9uylUCwiIiLSgZpCMeqDMWJxk2p/lH0t\nEQ74I0TjJi3hODubwrisBt5UG8GoySe1AZqPsSAGQIbDwj8PzOK7AzLO6YfgOoJCsYiIiMgZ1hKO\n8e4+P8t3t/DXg60n/SBcL48dj8OSmCWiV3rb2OCr+6STaj+1leCkzUmF4rfffptf/OIX7Ny5k4aG\nhqRJmU3TxDAMdu7ceUYKFREREenqYnGTj2sDVPujZDitrNrno/JAKwf80UQbmwG90+0YhkF+qo1i\nj52iNBsuqwWn1aBPpoNwzKQuEMVptVCa4TjhfMByerQ7FP/kJz/hP/7jPygoKOCSSy5h0KBBR7Xp\nLlN2iIiIiByxtznM77Y38VldkF1NERpDsaPa2Cxtyx1P6u1hbK80slwa6tDVtDsU/+xnP2PMmDG8\n9dZb2O16olFERES6p3AsztbDYQ74I7yxs5k1+1v54miInh47A7Od1AViDMx2cvV56fTJdGjasy6u\n3aG4oaGBb3/72wrEIiIi0q0EonFWV/nZejhESyTOij2+pN5gh8VgcqmHib3T6OVx0CPNpt+en4Xa\nHYqHDRvG1q1bz2QtIiIiIp3CNE2CUZMUu4W4afL32iDv7vPxSW2QbYdDBL/0ZFzvdDu9PA4Ge11c\n2zedbJfmLjjbtfv/4KJFi7jyyiv55je/yb/8y7+cyZpEREREzijTNKlujbKhNsjHhwKsqvLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76d58358>"
"<matplotlib.figure.Figure at 0x7facf313e0b8>"
]
}
],
"prompt_number": 36
"prompt_number": 77
},
{
"cell_type": "heading",
@@ -2847,11 +3046,11 @@
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAsAAAAKUCAYAAAAKMI4OAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xlc1WXe//HX2eCwb3IAQREVd0MEBVwwE6XUyXbTO2u6\n9TYnazKn8R6nmXLKu6aZ7m5zWsffWJZjjjaWWinkkoK4gbiCuIAIssm+Hc45nPP9/UGdOqHlgoDy\neT4e5wGc6zrX9/rylcPbi+t7XSpFURSEEEIIIYToItQd3QEhhBBCCCHakwRgIYQQQgjRpUgAFkII\nIYQQXYoEYCGEEEII0aVIABZCCCGEEF2KBGAhhBBCCNGlSAAWQgghhBBdSqcOwEuWLEGtVjs8unfv\n3qpOcHAwrq6ujB8/nqysLIdyk8nE008/jb+/P+7u7kybNo0LFy6052kIIYQQQohOpFMHYIABAwZQ\nUlJifxw7dsxe9tprr/HGG2/w1ltvcfDgQQwGAxMnTqS+vt5eZ8GCBWzYsIG1a9eSkpJCbW0tU6dO\nxWazdcTpCCGEEEKIDqbt6A78HI1Gg8FgaPW8oigsW7aMxYsXc++99wKwatUqDAYDa9asYe7cudTU\n1LBy5Uo+/PBDJkyYAMDHH39MaGgo27ZtY9KkSe16LkIIIYQQouN1+hHg3NxcgoOD6d27NzNmzCAv\nLw+AvLw8SktLHUKsXq8nPj6etLQ0ADIyMrBYLA51QkJCGDhwoL2OEEIIIYToWjp1AI6NjWXVqlUk\nJSWxYsUKSkpKGDVqFJWVlZSUlAAQEBDg8BqDwWAvKykpQaPR4Ofn51AnICCA0tLS9jkJIYQQQgjR\nqXTqKRB33nmn/fMhQ4YQFxdHWFgYq1atIiYm5rKvU6lUV32smpqaa+qjEEIIIYToXLy8vH6yvFOP\nAP+Yq6srgwcP5syZMwQFBQG0GsktLS0lMDAQgMDAQKxWKxUVFQ51SkpK7HWEEEIIIUTXclMF4Kam\nJrKzswkKCiIsLIzAwECSk5MdylNTUxk1ahQAUVFR6HQ6hzqFhYWcPHnSXkcIIYQQQnQtnXoKxHPP\nPcfdd99Njx49KCsr4+WXX8ZoNPLYY48BLUucvfLKKwwYMIDw8HCWLl2Kh4cHM2fOBFqGv2fPns2i\nRYswGAz4+vqycOFCIiIiSEhIuOxxf27YXNw60tPTiY6O7uhuiHYm173rkWve9cg1v7nk15pJOldH\n0rl6ThVdpO74Hoz5WZhK8zGVnMNceh6b2QjA8nVf8fSDd7Vq42qms3bqAHzhwgVmzJhBeXk5/v7+\nxMXFsW/fPnr06AHAokWLMBqNzJ8/n6qqKmJjY0lOTsbNzc3exrJly9BqtUyfPh2j0UhCQgKrV6++\npnnCQgghhBDi+tWbrZysMnH0YhNfn6sj88hRao/sovboLhpOZ4LN2uo1fn5+hIeHM9Tf5bqPr1IU\nRbnuVm4BP/xfg4wAdx0yQtA1yXXveuSadz1yzTsPs9VGVoXp20cTJ8qN5Jw6Rf3pTBpOZ1B3NAVL\n1ff3dGm1WsaMGUN8fDz9+vUjPDyc8PBwfHx8fvI4V5PlOvUIsBBCCCGEuLmYrTaOl5tIL20ko9TI\nocIqqk4dpvFMJg2nM2k4cxhrQ7XDawIDA5k8eTKTJ08mISHhhg9GSgAWQgghhBDXzGy1cazcRMa3\ngTcj/yJVJzOozzlIQ046jbnHUKwWh9cEBQURFxdHXFwcEyZMICIiArW6/dZmkAAshBBCCCHsbIrC\n1/n1/PtUDWoVBLrpCHLXEuSmI9BVS4CblovGZjJKjKSXGsk8V0Jl1kHqTx6gPicdY34WKDZ7e2q1\nmmGRkYwZM4a4uDhGjRpFz549O/R+LAnAQgghhBACm6Kw/Xw97x+p5GyN+QclRhSbDZupEZupEaux\ngaaCnG8D70GaCnIc2tFqtURHj2TcuHHEx8czevToTnd/lQRgIYQQQoibjNlqo6i+mYJ6CxfqLBTW\nWSist1BUb8HfVctdYR6M7+GOm+7npxXYFIWdBQ28f6SC09VmTKX5mA9swnxkG3UVF2lsaMDcZLzs\n652dnYmJibEH3ri4OIcVuTojCcBCCCGEEDeJi43NrDxeyYbTtZhtl17I63S1mbSiRvSaMsb1cGNy\nmAdx3d3QqVumHBgtNs7VmsmtMZNXYyblQgNZheVUH/iK+r0bqT6Zccl23d3dcXd3x83NjV69ejFu\n3DjGjRvHyJEj0ev1N+ycbwQJwEIIIYQQnVylsZkPs6pYl1ODydoSfIPdtQS76+jhoSPYXUeIh47u\nbjpOVDSxJa+OwxebSDpXT9K5eryd1Qzw1XO+1kxRQzOKtZmmC6dpPHuUuhNp1GZux2Zpmfbg5ubG\n/fffz6xZsxg6dCju7u64uLi0601qN5oEYCGEEEKIdmCy2qgx2TBZbZiaFUw2peWj1YZapcLLWY2X\nswZvJw16rQqVSkW1ycpHJ6pYm1ONsbkl+N7Rw415EX6E+zjT2NhITk4O2Uez2ZWVRXZ2NlarlW7d\nujHKw5sylQd5za7kazzIMxlpzD2KMe8oxnNZWM1N9r6pVComTJjAo48+yn333Ye7u3tHfZvahQRg\nIYQQQogbpNLYzK7CBnYW1LO/2HjZaQs/5qRuCcT1Fps9+MYHu/HLfi5k797Cb5et49ixY+Tl5XGt\ne5r16dOHESNGEBMTw3333UfPnj2vqZ2bkQRgIYQQQog2dKHOws6CenYU1HPkYhPfZV4V4KfX4KxR\n4axVo9eoWj7XqLApUG22UmOyUd1kxWxTuGhs2Q44LsiFMdY8UtavYfwnnzjseKbVagkPD2fQoEEM\nHDiQgQMHotfrqaiooLy8nPLycvvnGo2GqKgoRo4cyYgRI/Dz8+uA707nIAFYCCGEEKINGC023sws\n51853wdUnVpFXJAL43u4M66HG91cfjp6KYpCbW0t5wqKOFNwgaOHD/Hv1z7i3RMn7HWio6N5/PHH\nGT9+PH379kWn092wc7pVSQAWQgghhLhOh8uMvJBWSkGdBa0a7ujhzh093Rnd3RV3J429XnNzM4WF\nheTl5ZGbm0tubi55eXmcP3+ekpISiouLaWxsbNW+v78/s2bN4vHHH2fIkCHteWq3JAnAQgghhBDX\nyGy18e6RSj7KqsKmQLi3Ey+PDqS/rzMAjY2NbNm+i6SkJLZt20ZOTg7Nzc0/2aaLiwtBQUEEBQUR\nGhrKgw8+yOTJk3FycmqPU+oSJAALIYQQQlyDnEoTf9xTwulqM2oVPD7Yh3kRvpw+mc3rK7eQlJRE\nSkoKJpPJ4XVBQUH07t2b3r17ExYWRu/evQkNDbWHXg8Pjw7dJrgrkAAshBBCCPEzTFYb52osnK02\ncabazNlqM2nFDTTboIeHjj/FGSg7nMKkCa+ya9cuh9dGRUWRmJhIYmIiI0aMwMXFpYPOQnxHArAQ\nQgghxA80WmxkVTaRVW7iREUTp6pMFNRZsF5itbEH+rgTdj6FOZNf49ChQwB4eXkxbdo0EhMTmThx\nIv7+/u18BuLnSAAWQgghRJdWY7Ky/Xw9h8uMnKgwkVdj5sdZV62CUE8dfbyd6OvtTIhzM6d2bmLF\nf/4vOTk5ABgMBhYuXMi8efPw8vJq/xMRV0wCsBBCCCG6HKtNYV9xI5vO1rKzoAHLDzao0Kog3MeZ\nQX7ODPbTM9DPGQ9LLen79pKyOYVVqalkZGTYb2br1asXv/3tb3n88cdlesNNQgKwEEIIIbqM/Foz\nm87W8kVuHWWNLQFWBcQGuTIuxI3BfnrCfXQUnstjz56dbNmzh+dTU8nOznZoR61WM2LECJ5++mke\nfvhhWYv3JnPTBOBXX32V559/nvnz5/O3v/3N/vySJUtYsWIFVVVVxMTE8PbbbzNo0CB7uclk4rnn\nnmPt2rUYjUYmTJjAO++8Q3BwcEechhBCCCE6gMWq8H+HyvnkZLX9uR4eOu7u48nkXm4UZh9h9xe7\n+deePaSlpVFWVubwer1eT2xsLGPGjGHs2LHExsbi6enZ3qch2shNEYD37dvHihUruO222xyWBXnt\ntdd44403WLVqFf369eOll15i4sSJ5OTk4O7uDsCCBQvYtGkTa9euxdfXl4ULFzJ16lQyMjJQq9Ud\ndUpCCCGEaCdF9RYW7S7mRIUJrRqmhHlyVw89VSf2svGdjbywcSPFxcUOr/H392f06NH2R1RUlKzD\newvp9AG4pqaGRx55hA8++IAlS5bYn1cUhWXLlrF48WLuvfdeAFatWoXBYGDNmjXMnTuXmpoaVq5c\nyYcffsiECRMA+PjjjwkNDWXbtm1MmjSpI05JCCGEEO3km4J6Xkgrpc5sI8DJxsT6dDLe+pL/+/JL\namtr7fV69uzJpEmT7IG3b9++shbvLazTB+C5c+fy4IMPMm7cOBTl+wnqeXl5lJaWOoRYvV5PfHw8\naWlpzJ07l4yMDCwWi0OdkJAQBg4cSFpamgRgIYQQ4iZ0sbGZzDIjhy82YVMUBvnpGdJNTy9PHepv\nQ2uzAm9kXOTjrGqUZgt+x7/kxPq3SCo4b29n6NCh3HPPPdxzzz1ERkZK4O1COnUAXrFiBbm5uaxZ\nswbA4R9mSUkJAAEBAQ6vMRgMFBUV2etoNBr8/Pwc6gQEBFBaWnojuy6EEEKINmCxKRTWWTh60cih\nMiOZZU0U1Fl+VKsGADedmkG+zgzupicl340zdRepTttIw5b3OHKhJfgOHDiQ2bNnM23aNPr27dvO\nZyM6i04bgHNycnj++edJTU1Fo9EALdMefjgKfDnyPzghhBDi5tJsU0gvNZJXY+Z8rZnzdRYK6iwU\n1bfegMJVqyLC34VIgwsaNZyoaNm0oqSxmf0Xakg7XUjtkV2Ub3oHY2lL8B0wYAAvvvgiDzLine truncated
"text": [
"<matplotlib.figure.Figure at 0x7fed76bc7588>"
"<matplotlib.figure.Figure at 0x7facfbe58828>"
]
}
],
"prompt_number": 37
"prompt_number": 78
},
{
"cell_type": "markdown",