Minor edits.

changed variable name, cleaned up a few expressions.
This commit is contained in:
Roger Labbe committed 2015-05-24 17:00:26 -07:00
1 parent a30013c00d
commit 163052bcb1
1 file changed
+157 -265
+157 -265
View File
@@ -16,7 +16,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 2,
"metadata": {
"collapsed": false
},
@@ -237,7 +237,10 @@
" },\n",
" displayAlign: 'center', // Change this to 'center' to center equations.\n",
" \"HTML-CSS\": {\n",
" scale:85,\n",
" scale:100,\n",
" availableFonts: [\"Neo-Euler\"],\n",
" preferredFont: \"Neo-Euler\",\n",
" webFont: \"Neo-Euler\",\n",
" styles: {'.MathJax_Display': {\"margin\": 4}}\n",
" }\n",
" });\n",
@@ -247,7 +250,7 @@
"<IPython.core.display.HTML object>"
]
},
"execution_count": 1,
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
@@ -375,7 +378,7 @@
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 3,
"metadata": {
"collapsed": false
},
@@ -384,7 +387,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x5de9240>"
"<matplotlib.figure.Figure at 0x627f4e0>"
]
},
"metadata": {},
@@ -435,7 +438,7 @@
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 4,
"metadata": {
"collapsed": false
},
@@ -457,7 +460,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 5,
"metadata": {
"collapsed": false
},
@@ -475,7 +478,7 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 6,
"metadata": {
"collapsed": false
},
@@ -493,7 +496,7 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 7,
"metadata": {
"collapsed": false
},
@@ -512,7 +515,7 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 8,
"metadata": {
"collapsed": false
},
@@ -545,7 +548,7 @@
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 9,
"metadata": {
"collapsed": false
},
@@ -554,7 +557,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x5de91d0>"
"<matplotlib.figure.Figure at 0x87a34e0>"
]
},
"metadata": {},
@@ -582,16 +585,16 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAr8AAAD9CAYAAAC1Fh+gAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXl8FPX9/18zs2fuOyFAEq4A4b4EBSp44F2rVvFoQWy/\nHtWWgm390l+1trVfPNt++21FrQrUG61nVTwqCggiCMh9JoQk5L6zm71m5vdHmN2Z2dndmd2ZzW7y\neT7MQ/Yz12dn53h93p/3QfE8z4NAIBAIBAKBQBgE0P3dAQKBQCAQCAQCIV4Q8UsgEAgEAoFAGDQQ\n8UsgEAgEAoFAGDQQ8UsgEAgEAoFAGDQQ8UsgEAgEAoFAGDQQ8UsgEAgEAoFAGDQQ8UsgEAgEAoFA\nGDQQ8UsgEAgEAoFAGDQQ8UsgEAgEAoFAGDQQ8UsgEAgEAoFAGDQQ8UsgEAgEAoFAGDQQ8UsgEAgE\nAoFAGDQQ8UsgEAgEAoFAGDQQ8UsgEAgEAoFAGDQQ8UsgEAgEAoFAGDQQ8UsgEAgEAoFAGDQQ8Usg\nEAgEAoFAGDQQ8UsgEAgEAoFAGDQQ8UsgEAgEAoFAGDQQ8UsgEAgEAoFAGDQQ8UsgEAgEAoFAGDSY\n+rsDBAJhcMPzPFiWBcdx8Hg8AACKovz/p2kaNE1L/i1eh0AgEAgELRDxSyAQ4opY7HIcp7ic53n/\nv8XtgFT0CoJY+LdYIAuCWfgjEAgEAgEg4pdAIBiMWOyKhS0Q2XorF7pKiAW0WDTL15cLYUEoMwzj\n/7d4GYFAIBAGJkT8EggEXYkkdo0UlpHEq5JVWdw/8bZyMSx3vSBWZQKBQEhOiPglEAgxoafYpSgq\nSIwaRTRCWfxvuVVablVmGCZIKIc7HoFAIBDiA8XH601DIBAGBDzPg+M4sCyr2Y0hEl6vN27i10jC\nWZVDuV8QqzKBQCDEB2L5JRAIYRHErvAXTzeGZCUaq7LD4ZCsk5KSoiiWxQF9RCgTCASCdoj4JRAI\nEgSx6/F40N3d7RdqDMMgIyPDcJ/dgWD51UKo8ykWtGKxzLKsv02+j1BWZbFlmYhlAoEw2CHil0AY\n5ISy7AquDQJKackI8ccoX2WSKo5AIAwWiPglEAYZat0YiOBJftSkiguXASNSUB8pQEIgEJIRIn4J\nhAGOXOwKbUB4n115ezzcEQS3ByKe+gc9U8WRAiQEAiFRIeKXQBhgRBK74v+Hoz/ELyF5UHMtkQIk\n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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAr8AAAD9CAYAAAC1Fh+gAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd83PT9/1+Sbvm8RzyTOHuTHVYIhABh70JYTaCUVVYT\n6EjLagtlFDp+30KYgZQNZYYyAiVNSEISJ2SRPZ14b599vinp94ejO0mnu5PupBv25/l4+GH7o/U5\n3UfSS+/Pe1A8z/MgEAgEAoFAIBD6AXSyO0AgEAgEAoFAICQKIn4JBAKBQCAQCP0GIn4JBAKBQCAQ\nCP0GIn4JBAKBQCAQCP0GIn4JBAKBQCAQCP0GIn4JBAKBQCAQCP0GIn4JBAKBQCAQCP0GIn4JBAKB\nQCAQCP0GIn4JBAKBQCAQCP0GIn4JBAKBQCAQCP0GIn4JBAKBQCAQCP0GIn4JBAKBQCAQCP0GIn4J\nBAKBQCAQCP0GIn4JBAKBQCAQCP0GIn4JBAKBQCAQCP0GIn4JBAKBQCAQCP0GIn4JBAKBQCAQCP0G\nIn4JBAKBQCAQCP0GIn4JBAKBQCAQCP0GIn4JBAKBQCAQCP0GIn4JBAKBQCAQCP0GU7I7QCAQ+jc8\nz4NlWXAcB6/XCwCgKCrwm6Zp0DQt+Vu8DoFAIBAIWiDil0AgJBSx2OU4TnE5z/OBv8XtgFT0CoJY\n+FsskAXBLPwQCAQCgQAQ8UsgEAxGLHbFwhaIbr2VC10lxAJaLJrl68uFsCCUGYYJ/C1eRiAQCIS+\nCRG/BAJBV6KJXSOFZTTxqmRVFvdPvK1cDMtdL4hVmUAgENITIn4JBEJc6Cl2KYoKEaNGEYtQFv8t\nt0rLrcoMw4QI5UjHIxAIBEJioPhEPWkIBEKfgOd5cBwHlmU1uzFEw+fzJUz8Gkkkq3I49wtiVSYQ\nCITEQCy/BAIhIoLYFX4S6caQrsRqVfZ6vfD7/YH/zWYzLBaL5DyLA/qIUCYQCATtEPFLIBAkCGLX\n6/Wiq6srINQYhkFOTo7hPrt9wfKrBfn5VPr8YrHMsmzIemKxrWRVFluWiVgmEAj9HSJ+CYR+TjjL\nruDaIKCUloyQeIzyVSap4ggEQn+BiF8CoZ+h1o2BCJ70R02quEgZMKIF9ZECJAQCIR0h4pdA6OPI\nxa7QBkT22VUzHa83gtsDEU/JQc9UcaQACYFASFWI+CUQ+hjRxK74dySSIX4J6YOasUQKkBAIhFSE\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x5de90f0>"
"<matplotlib.figure.Figure at 0x627f3c8>"
]
},
"metadata": {},
@@ -618,7 +621,7 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 11,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -628,7 +631,7 @@
"data": {
"image/png": "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\n5j62b9++ph/zxS9+MXbv3t304xLR8mEuIAq+Zr/OD+16n4itW7cesbi+4447cMcddzQrLDoOzpgT\nEREREfkAC3MiIiIiIh9gYU5ERERE5AMszH1AkiTfbB5ARN5hLiAKvrC8zsPwGJeDJIQQXgdBRERE\nRBR27JgTEREREfkAC3MiIiIiIh9gYe4D1113HWRZxoEDB7wOZR5ZlrF9+3avwyAKBeYCouDz8+u8\nmdavX48tW7Z4HUbLYWHeAnbv3o0tW7Ygl8shm83ixS9+Me66664FHWPv3r24+eab8cpXvhJr165F\nPB5HT08PLrzwQnz3u9895s/yAg4if2hGLgAAVVXxoQ99CGeccQaSySTy+Ty2bNmCu++++5g/x1xA\ntHwqlQo+9rGP4c1vfjPOOOMMKIoCWZZx7733LvhYSznnP9fIyAg+85nP4KKLLsKGDRuQTCbR0dGB\nzZs3HzP/hOUi12bjzp8+99nPfhZXXXUVurq68Ja3vAWxWAzf+MY3sG3bNvzf//3fUbfHfa5rrrkG\nX//613H66afjggsuQHd3N5555hl8+9vfxr333ourr74aN9988zI/GiJarGblgnK5jJe97GV47LHH\nsGnTJrzzne+EYRj47ne/i9e//vXYuXMnduzYscyPhoiea9++fXj/+98PSZKwevVqdHd3Y2JiYlHF\nbTPP+bfeeituvvlmrFu3Dps3b8bAwABGRkawa9cubNu2Dbt378bXvva1eT/HtUUWSZDnrr32WiFJ\nkhgcHDzs9n379ol4PC66uroO+1qpVBKnnHKKkCRJ/PznPz+h+7jjjjvEo48+Ou/23//+9yKXywlJ\nksT//M//zPu6JEli+/btC3xERLQYK5EL3v3udwtJksTrX/96Ydv23O2VSkWcddZZIhKJMBcQLaOj\nvc5LpZJ44IEHRKlUEkIIsXXrViFJkrj33nsXfB+LPecfya5du8RDDz007/bR0VGxZs0aIUmS2LVr\n17yvr1u3TmzZsmXBsYcdR1l87Itf/CJM08Tf/u3fYu3atXO35/N5fOADHwAAfP7znz+hY23btg0v\nfOEL593+vOc9D5dddhkA4KGHHlp60ETUdM3MBbt27YIkSfjIRz6CSCQyd3tbWxt27NgB13Xx2c9+\ntrkPgIiOa3akLJ/PL/lYzTznX3LJJTjvvPPm3d7f348rrrhiQcei42Nh7mMPPPAAAOCCCy6Y97UL\nL7wQAPDggw8u+X4URTnsbyLyl2bmgvHxcQDAhg0b5n1t9rbZ+yOi4GnmOZ/1Q/OxMPexPXv2QJIk\nnHrqqfO+1tfXh1QqheHhYei6vuj7qFQq+Na3voVIJIJXvepVSwmXiJZJM3NBV1cXAOCZZ56Z97Wn\nn34aADA4OAjDMJYYNRH5TTPP+bZtz138eaSmAS0OC3Mfq1QqAIBcLnfEr8/ePvt9C+W6LrZv347J\nyUlcccUVOO200xYXKBEtq2bmgte+9rUQQuBDH/oQHMeZu71areKGG26Y+/9yubyUkInIZ5p9zr/6\n6qvx2GOP4eKLL8b555/fpCiJnz2ElBACf/M3f4O7774bW7ZswSc+8QmvQyKiFbBz507cf//92LVr\nF8466yy84hWvgGEY+N73vod4PI5cLodqtQpZZt+GKCiafc7/6Ec/iltuuQXPf/7z8eUvf7lJURLA\njrmvHa8Ldrwu2tEIIfCud70L//7v/45XvvKV2L17N+fDiHysmbmgp6cHv/71r/Ge97wHjUYDn//8\n53H33XfjVa96FR5++GHYtg1FUdDR0dG8B0BEnmn2Of+GG27ABz/4QZx11ll48MEHF1yD0LGxMPex\n0047DUII7NmzZ97XxsbGoGkaVq9ejUQiccLHdBwH27Ztw+23344LL7wQ3/ve9xb080S08pqdCzo6\nOvCJT3wCTz/9NAzDwPj4OL74xS+i0WigXq/jBS94wWErthBRa2r2OX/Hjh245pprcPbZZ+PBBx9E\nZ2dnE6MlgIW5r73iFa8AAPzgBz+Y97Xvf//7AICXv/zlJ3w8y7Lwpje9CV/+8pfxute9Dt/5zncQ\ni8WaEywRLZtm54KjufPOOwEAb37zm5d8LCLyVrPP+e973/tw44034iUveQl++MMfNmVZR5qPhbmP\nbd++HfF4HJ/5zGcwODg4d3upVMKNN94ISZLwrne964SOZRgGLr30UnzjG9/AZZddhm9+85scXyFq\nEc3MBUIIqKo67/bvf//7uPnmm3H66afjHe94R9NiJ6KlEcfYQbNQKODJJ5+cWwZ1VjPP+UIIXHHF\nFfjUpz6F8847D/fffz+y2eyijkXHx8rMx9avX4+Pf/zjuOqqq3D22WfjsssuQzQaxTe/+U2MjIzg\n6quvxp/8yZ+c0LHe9a534Xvf+x5yuRw2btyInTt3zvueF7zgBfjzP//zZj8MIlqiZLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa3ea4a8>"
"<matplotlib.figure.Figure at 0xa3da128>"
]
},
"metadata": {},
@@ -657,7 +660,7 @@
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 12,
"metadata": {
"collapsed": false
},
@@ -666,7 +669,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtUAAAE6CAYAAADZSa6hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3X2wHXV9P/D3Pu+e53vuc54gqQEUK0MaLGSm/AgIJVJT\naXwCCkodUYtWEHWkQ0nUFAfbUq2iVh3bqGPFsVYdUcQWECOoCTZYiCKaB0KSe3MfzvPZ593fHyf3\nSkgCZ/fszTn33vdrBoVzzu5+707m5J1PPvv5CmEYhiAiIiIiotjEbi+AiIiIiGi+Y6gmIiIiIuoQ\nQzURERERUYcYqomIiIiIOsRQTURERETUIYZqIiIiIqIOMVQTEXXZli1bIIoinnnmmW4v5TiiKOL6\n66/v9jKIiHoeQzURUY96/PHH8aEPfQh/8id/gqVLl0LTNCxZsgSbNm3Cj3/841jnfPTRR3HFFVeg\nWCwilUrhnHPOwSc+8QkEQXDSYwRBiPsjEBEtGnK3F0BERCf29re/HT//+c9x7rnn4rWvfS3y+Tx2\n796Nb3/72/iv//ovfPKTn8SNN97Y9vm+/e1vY9OmTUilUnjjG9+IYrGI73znO7j55pvxk5/8BF//\n+tfn8KchIlrYGKqJiHrUNddcgy9/+ctYvXr1Ma8/+OCD+NM//VPccssteN3rXofh4eEXPVe1WsXb\n3vY2KIqChx56CGvWrAEAfPjDH8bFF1+Mb3zjG7jnnnvwxje+cU5+FiKihY7tH0REPerd7373cYEa\nANavX4+LLroIjuPgJz/5SVvn+sY3voHJyUm86U1vmg3UAKBpGrZu3QoA+MxnPpPMwomIFiGGaiKi\neUhRlGP+/8U88MADAIDLL7/8uPcuvPBCGIaBRx99FK7rJrdIIqJFhKGaiGie2b9/P/7nf/4H6XQa\nF154YVvHPPXUUwCAM84447j3JEnCypUr4Xke9uzZk+haiYgWC/ZUExHNI6Zp4k1vehMcx8Edd9yB\nfD7f1nGVSgWCIJz08/l8HmEYolwuJ7lcIqJFg5VqIqJ5wnEcvOENb8DPfvYzXHPNNXjve9/b7SUR\nEdFRDNVERPOAbdvYtGkT7r33Xlx77bX40pe+FOn4mUp0pVI54fszrxcKhY7XSkS0GDFUExH1uGaz\nide85jW499578da3vhXbtm2LvCHLmWeeCeD3vdXP5Xke9u7dC0VRsGrVqkTWTES02DBUExH1sFqt\nhg0bNuC///u/ceONN+Lzn/98rPNccsklAID77rvvuPcefvhhmKaJdevWtT1NhIiIjsVQTUTUo8rl\nMi699FL8+Mc/xi233IJPfvKTsc/1ute9DgMDA/ja176Gxx57bPZ1y7Jw2223AQDe+c53drxmIqLF\nitM/iIh61JVXXomf//znWLZsGTKZDLZs2XLcZ9avX4//9//+34ueK5vN4gtf+AI2bdqEiy66CG96\n05vQ19eH73znO/jNb36D17/+9XjDG94wBz8FEdHiwFBNRNSj9u3bB0EQcPDgQXzoQx867n1BECCK\nYluhGgA2btyIH//4x/jIRz6C//zP/4RlWVi9ejX++Z//GX/zN3+T9PKJiBYVhmoioh61d+/exM95\n/vnn49577038vEREix17qomIiIiIOsRQTURERETUIYZqIiIiIqIOMVQTEXWZIAiRN3MhIqLeIoRh\nGHZ7EURERERE8xkr1UREREREHWKoJiIiIiLqEEM1EVGXbdmyBaIo4plnnun2Uo4jiiKuv/76bi+D\niKjnMVQTEfW4e++9F+vXr0c+n0c2m8X555+PL33pS5HPU6/Xcfvtt+NlL3sZDMNAoVDA+vXr8a1v\nfesFj+NDlEREL46hmoioh9199914zWtegyeffBLXXXcdbrjhBhw6dAhvectb8P73v7/t85TLZVxw\nwQXYunUrBEHA29/+dlx11VV4+umn8Rd/8RfYunXrHP4UREQLH7cpJyLqUfv27cMtt9yC/v5+7Ny5\nEytWrAAA/N3f/R3OO+88/NM//RM2bdqE888//0XPtWXLFjz55JO48sor8fWvfx2SJAEA7rzzTlx4\n4YXYsmULrrjiCpx77rlz+jMRES1UrFQTEfWoL37xi3AcB+9617tmAzUAFAoF/O3f/i0A4LOf/Wxb\n5/rmN78JQRDwkY98ZDZQA0Aul8Ntt92GIAhw9913J/sDEBEtIgzVREQ96oEHHgAAXH755ce9t2HD\nBgDAgw8+2Na5xsbGAACrVq067r2Z12auR0RE0TFUExH1qKeeegqCIOCMM8447r2RkRGkUik8++yz\nsCzrRc81MDAAANizZ89x7/3ud78DAOzfvx+2bXe4aiKixYmhmoioR1UqFQBAPp8/4fszr8987oVs\n3LgRYRji9ttvh+/7s69Xq1X8/d///ex/l8vlTpZMRLRo8UFFIqJF4MMf/jB++MMf4pvf/CbOOecc\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8f37080>"
"<matplotlib.figure.Figure at 0xb4afe48>"
]
},
"metadata": {},
@@ -742,7 +745,7 @@
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": 13,
"metadata": {
"collapsed": false
},
@@ -751,7 +754,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAukAAAEtCAYAAAC1Vf40AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdcVuX/x/EXCKg4c++VK2ea+a2s3IKCgFtxm3ubaW4t\nv+6BmuYeuEoFEQUUVHBShiXOb47cO0coCCrc5/eHP8/3e+fIEgTx/Xw8ekT3de5zXffhPOjNxXU+\nl41hGAYiIiIiIpJi2Cb3AERERERExJpCuoiIiIhICqOQLiIiIiKSwiiki4iIiIikMArpIiIiIiIp\njEK6iIiIiEgKo5AuIiIiIpLCJFtI37VrF25ubhQoUABbW1u8vb2t2u/cuUPPnj0pWLAgjo6OlC5d\nmhkzZiTTaEVEREREXh275Oo4JiaGChUq0L59e9q1a4eNjY1Ve//+/dm5cycrV66kaNGi7Ny5ky5d\nupAjRw7atGmTTKMWEREREUl6Nilhx9FMmTIxZ84c2rVrZ75Wvnx5mjZtyujRo83XatSoQYUKFZg1\na1ZyDFNERERE5JVIsWvS69evz8aNG7l48SIA4eHhREZG4uzsnMwjExERERFJWsm23OWvTJo0iXbt\n2lGoUCHs7B4Nc/bs2TRo0CCZRyYiIiIikrRSbEj/4osv2LdvH5s2baJw4cLs3LmTgQMHUrhwYZyc\nnKyOjYqKSqZRioiIiIi8vCxZslj9d4oM6TExMcycORM/Pz9cXFwAKFeuHJGRkUydOvWJkC4iIiIi\nkpqkyDXphmFgGAa2ttbDs7W1JQU85yoiIiIikqSStQTjyZMnAbBYLJw7d47IyEiyZ89OwYIFqV27\nNkOGDCFjxowUKlSInTt3smLFCqZMmfLc8/75TwXy+tu/fz8AVapUSeaRSGqhe0qSgu4rSWy6p1K/\n5y3ZTraZ9IiICCpXrkzlypWJi4tj9OjRVK5c2Sy5uGrVKv71r3/Rpk0bypYty+TJk/n3v/9Nr169\nkmvIIiIiIiKvRLLNpNeoUQOLxfLM9pw5c7Jo0aJXOCIRERERkZQhRa5JFxERERF5kymki4iIiIik\nMArpIiIiIiIpjEK6iIiIiEgKo5AuIiIiIpLCKKSLiIiIiKQwCukiIiIiIimMQrqIiIiISAqjkC4i\nIiIiksIopIuIiIiIpDAK6SIiIiIiKYxCuoiIiIhICqOQLiIiIiKSwiiki4iIiIikMArpIiIiIiIp\njEK6iIiIiEgKo5AuIiIiIpLCKKSLiIiIiKQwCukiIiIiIilMsoX0Xbt24ebmRoECBbC1tcXb2/uJ\nY06cOEHjxo156623yJAhA++99x6//vprMoxWREREROTVSbaQHhMTQ4UKFZg5cybp06fHxsbGqv3M\nmTNUq1aNt99+m7CwMI4ePcq4cePImDFjMo1YREREROTVsEuujuvXr0/9+vUB6NChwxPtw4cPx9nZ\nmSlTppivFSlS5BWNTkREREQk+aTINekWi4WAgADeeecdnJ2dyZUrF1WrVmXt2rXJPTQRERERkSSX\nIkP69evXiY6OZvz48Tg7O7Nt2zZatWpF69atCQoKSu7hiYiIvJSoqCgCAwMJDAxk7969xMfHJ/eQ\nRCSFsTEMw0juQWTKlIk5c+bQrl07AC5fvkyBAgXw9PRk5cqV5nGtW7fm9u3bTwT1qKgo8+uTJ0++\nmkGLiIj8DTExMWzcuJGwsDAOHTpEQkKC2VapUiVmzZpFunTpknGEIvKqlShRwvw6S5YsVm3Jtib9\neXLkyIGdnR1lypSxer106dKsWbMmmUYlIiLy9924cYM1a9bg6+vL3bt3AUiTJg0VKlQgQ4YMHDp0\niAMHDrBixQq6dOmSzKMVkZQiRYZ0BwcH3n///SfKLZ44ceIvHx6tUqVKEo5MksP+/fsBfW8l8eie\nkqTw5/vq8bLN6dOnc//+fQA++eQTevfujZOTkzlrNnv2bPr06UN8fLzuSbGin1Wp3/+uBvmzZAvp\nMTEx5tIUi8XCuXPniIyMJHv27BQsWJDBgwfTvHlzPvnkE2rWrElYWBhr1qzB398/uYYsIiLylwzD\n4LvvvmPQoEFcvnwZAA8PDwYPHsyHH374xPGZMmUCMGfZRUQgGR8cjYiIoHLlylSuXJm4uDhGjx5N\n5cqVGT16NADu7u4sWLCAqVOnUqFCBebMmcOKFSvMso0iIiIpzYkTJ6hevTqtW7fm8uXLvP/++/z4\n44/4+fk9NaAD7NmzB3i0Ll1E5LFkm0mvUaMGFovluce0b9+e9u3bv6IRiYiI/DM3b95k4sSJ+Pn5\nYbFYyJkzJxMnTqRDhw7Y2j57PswwDIKDgwFwcnJ6VcMVkddAiizBKCIi8roICgqiTJky+Pr6YmNj\nQ//+/Tlx4gSdOnV6bkAHCA0N5cKFC+TNm5d33333FY1YRF4HCukiIiL/QGxsLH369MHFxYXr169T\nqVIlVq1ahZeXF1mzZn2hc0yePBmAXr16/WWgF5E3S4qs7iIiIpKSHTx4EE9PT44dO4a9vT3jxo2j\nevXqfytoHzx4kJCQEDJkyECPHj2ScLQi8jrSr+0iIiIvyGKx4OXlRdWqVTl27BilSpXixx9/ZNCg\nQX97Jnzs2LEAdO7cmWzZsiXFcEXkNaaZdBERkRdw+fJlOnTowNatWwHo3r0706ZNw9HR8W+fKzQ0\nFF9fXxwdHfniiy8Se6gikgoopIuIiPyFDRs20LlzZ27evEmOHDlYvHgxbm5u/+hcDx8+pG/fvgAM\nGzaMAgUKJOZQRSSV0HIXERGRZ4iJiaFbt240atSImzdvUq9ePQ4dOvSPAzrA3LlzOXr0KMWKFWPg\nwIGJOFoRSU00ky4iIvIUP//8M56enpw4cQIHBwcmT55Mnz59XqoKy/Xr1xk1ahQAXl5epEuXLrGG\nKyKpjEK6iIjI/zAMg2+//ZYBAwbw8OFDypYty+rVq6lQocJLn3v48OFERUXh7OxMw4YNE2G0IpJa\nabmLiIjI/7t37x7t27end+/ePHz4kN69exMREZEoAT0iIoLFixdjb2/PjBkzsLGxSYQRi0hqpZl0\nERER4PTp0zRu3JiDBw/i6OjI4sWLadmyZaKc+3H4NwyD/v37U6pUqUQ5r4ikXgrpIiLyxtu8eTOt\nW7fm9u3bFC9enPXr11O+fPlEO/+gQYP4z3/+wzvvvMNXX32VaOcVkdRLy11EROSNZbFY+Oqrr3Bx\nceH27ds0bNiQiIiIRA3oAQEBfPvttzg4OLB69WrSp0+faOcWkdRLM+kiIvJGioqKok2bNgQEBGBj\nY8PYsWMZNmzYS1Vv+bOrV6/SsWNHACZMmMC7776baOcWkdRNIV1ERN44x48fx93dnePHj/PWW2+x\nevVqnJ2dE7UPi8VChw4duHHjBnXq1KF///6Jen4RSd203EVERN4oQUFBVK1alePHj1OuXDkiIiIS\nPaADzJ49m+DgYLJly4a3t3eiztCLSOqnnxgiIvJGMAyDCRMm4Orqyp07d2jcuDE//PADb7/9dqL3\ndfjwYQYPHgzAokWLyJcvX6L3ISKpm0K6iIikejExMbRq1Yphw4ZhGAZff/0169atI2PGjIneV1xc\nHJ6enty/f58uXbrQqFGjRO9DRFI/rUkXEZFU7ezZs3h4eHDw4EEyZcrEypUrcXNzS7L+hgwZwpEj\nRyhZsiReXl5J1o+IpG7JNpO+a9cu3NzcKFCgALa2tnh7ez/z2G7dumFra8u0adNe4QhFROR1Fx4e\nzvvvv8/BgwcpUaIEP/74Y5IG9PDwcGbOnImdnR2rVq0iQ4YMSdaXiKRuyRbSY2JiqFChAjNnziR9\n+vTP3B7Zx8eHiIgI8uXLpy2URUTkha1Zs4ZatWpx48YNnJyc2LdvH2XKlEmy/m7fvm1uVDR27Fiq\nVKmSZH2JSOqXbCG9fv36/Pvf/6ZJkybPfOL93Llz9O/fn++++w57e/tXPEIREXkdGYbB+PHjadmy\nJffv36dHjx4EBATw1ltvJVmfCQkJjBo1ilu3blG9enUGDRqUZH2JyJshxa5Jj4+Pp1WrVowcOZJS\npUol93BEROQ18PDhQ7p3786SJUuwsbFh6tSpDBgwIMn/Ejtq1Ch+/PFH3nrrLVasWEGaNGmStD8R\nSf1SbEgfPXo0uXLlolu3bsk9FBEReQ388ccfNG3alO3bt5M+fXpWrVr1QpVVLl++TEBAAHFxcZQv\nX56aNWv+rX79/f0ZP348tra2jBs3joIFC/7TjyAiYkqRIX3Hjh14e3sTGRlp9bphGH/53v379yfV\nsCSZ6XsriU33VOpx+fJl+vfvz5kzZ8iWLRvTp0+nYMGCz/wex8fHs2HDBoKCgjh8+LBV27Bhw164\nbOK5c+do3749AL179+b999/XfSWJTvdU6lWiRIlntqXIOuk7d+7kypUr5M2bF3t7e+zt7Tl37hxf\nfvklhQoVSu7hiYhICnL06FE6duzImTNnKFasGMuWLaNs2bLPPH7v3r20atWKSZMmcfjwYdKmTUv1\n6tX54IMPAAgODn6hfu/du8egQYOIiYmhdu3atGnTJlE+j4gIpNCZ9J49e9KsWTPzvw3DwMnJCU9P\nT7p06fLc9+pp+tTn8QyCvreSWHRPpR6+vr50796duLg46tSpg4+PD1myZHnqsf/5z38YOHAgmzdv\nBqB48eJ8/fXXuLm5kSFDBrZt20bdunWxtbX9y3vDMAxatGjBmTNneOedd/Dz8+P48eOA7itJPPpZ\nlfpFRUU9sy3ZQnpMTAwnT54EwGKxcO7cOSIjI8mePTsFCxYkZ86cVsfb29uTJ0+e5/5ZQERE3gyG\nYTBt2jQGDx6MYRh89tlnzJ0796mVwP744w9Gjx7NnDlzSEhIIHPmzIwaNYrevXuTNLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9d0b3c8>"
"<matplotlib.figure.Figure at 0x8f063c8>"
]
},
"metadata": {},
@@ -778,7 +781,7 @@
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": 14,
"metadata": {
"collapsed": false
},
@@ -787,7 +790,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8e7ff28>"
"<matplotlib.figure.Figure at 0x9d57d68>"
]
},
"metadata": {},
@@ -968,7 +971,7 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 15,
"metadata": {
"collapsed": false
},
@@ -999,7 +1002,7 @@
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 16,
"metadata": {
"collapsed": false
},
@@ -1016,7 +1019,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa3423c8>"
"<matplotlib.figure.Figure at 0x8ec2278>"
]
},
"metadata": {},
@@ -1041,7 +1044,7 @@
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 17,
"metadata": {
"collapsed": false
},
@@ -1050,7 +1053,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9cc3ba8>"
"<matplotlib.figure.Figure at 0x9c8bb70>"
]
},
"metadata": {},
@@ -1071,7 +1074,7 @@
},
{
"cell_type": "code",
"execution_count": 17,
"execution_count": 18,
"metadata": {
"collapsed": false
},
@@ -1080,7 +1083,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9ce6278>"
"<matplotlib.figure.Figure at 0x9ccc9b0>"
]
},
"metadata": {},
@@ -1115,7 +1118,7 @@
},
{
"cell_type": "code",
"execution_count": 18,
"execution_count": 19,
"metadata": {
"collapsed": false
},
@@ -1124,7 +1127,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9d2eda0>"
"<matplotlib.figure.Figure at 0x9cb89b0>"
]
},
"metadata": {},
@@ -1189,7 +1192,7 @@
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 20,
"metadata": {
"collapsed": false
},
@@ -1198,7 +1201,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9cc3be0>"
"<matplotlib.figure.Figure at 0x9d332e8>"
]
},
"metadata": {},
@@ -1219,7 +1222,7 @@
},
{
"cell_type": "code",
"execution_count": 20,
"execution_count": 21,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -1229,7 +1232,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtIAAAEWCAYAAABL+3CVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Wd0nOd55//vzGAaBr2XAUACRGGnWCSSkiiKaqYsUVZs\n2ZLsSEo2TvP6xLveJP/NsVf7wik+e06y3hPFKyfrWHbiknUkq1iWqEZRFEmRFDtBFBJEBwa9TZ95\nnv8LiloViiKBAQbA/D7n+AjGgPNcJMF5frjnuq/bYpqmiYiIiIiIXBNrsgsQEREREVmIFKRFRERE\nRKZBQVpEREREZBoUpEVEREREpkFBWkRERERkGhSkRURERESmQUFaRERERGQarhik9+7dy65du/B6\nvVitVp566qkPPf7tb3+b5cuXk5GRQV5eHrfffjsHDhyY1YJFREREROaDKwZpv9/PmjVr+N73vofb\n7cZisXzo8YaGBv7hH/6B06dPs2/fPpYuXcpdd92Fz+eb1aJFRERERJLNcrUnG2ZmZvLEE0/wyCOP\nfOLXTExMkJOTw8svv8wdd9yRsCJFREREROabhPVIRyIRfvCDH5Cfn8+GDRsS9bQiIiIiIvNS2kyf\n4IUXXuChhx4iEAhQWFjIr3/9a/Ly8hJRm4iIiIjIvDXjIL1jxw5OnDjB0NAQP/jBD7j33ns5dOgQ\nVVVV73/N+Pj4TC8jIiIiIpI02dnZH/vcjFs70tPTqa6u5vrrr+ef/umfyM7O5kc/+tFMn1ZERERE\nZF5L+BzpeDyOYRiJfloRERERkXnliq0dfr+f1tZWAAzDoKOjg+PHj5Ofn09OTg7f/e532bVrFyUl\nJQwODvLEE0/Q29vLF7/4xU98zssti4tcjSNHjgCwcePGJFciMr/o34bI5enfhszUp7UnX3FF+vDh\nw6xfv57169cTCoV4/PHHWb9+PY8//jhpaWk0NjZy//33U1dXx65duxgdHeWtt95i5cqVCf1NiIiI\niIjMN1dckd6+ffsV2zSefvrphBckIiIiIrIQJLxHWkREREQkFShIi4iIiIhMg4K0iIiIiMg0KEiL\niIiIiEyDgrSIiIiIyDQoSIuIiIiITIOCtIiIiIjINChIi4iIiIhMg4K0iIiIiMg0KEiLiIiIiEyD\ngrSIiIiIyDQoSIuIiIiITIOCtIiIiIjINChIi4iIiIhMg4K0iIiIiMg0pCW7ABER+XSmaTIVjDDu\nDxMMRzEME8M0iRsmLb0TWADXhQFsVgs2qxWr1YLHZSfb48LtTMNisST7tyAisugoSIuIzANjUyF6\nBicYmwox7g8z7g996OPxqTCxeATDiGCaMcDExATTZHR0BIBXznYDFixYwGLBYrFjtThwOhxke1xk\ne5xke1zkZLz3cYaLvEw33sIs0l32pP7+RUQWIgVpEZE5NjYVotM3Todv7L3/jjM6NUk87sc0whhm\nBNOIfOy/LnucDLeJ22FitZrYrGC1Qo59EgB3eiamCXEDDMNCIGxhImBhYiKN4REHFosDi9WB1eLA\nar30sQubzUNRbhaVRdlUFWdTVZJDZVG2wrWIyKdQkBYRmUXxuEFrzwit3cMfCc1TF/8XmyJuTOKw\nhSjJjZPjMch0m2S6DTLcJlnpF/9/htvAbrv8NQYHhwEoLLz8tpdwFCaDViaDFqaCViYC730csjIy\nacU3ZqNtKp2O3gz22zKw2TI/Fq7rKwuoKs5Wi4iIyAcoSIuIJFggFOX0hQFOtvk41TbAVHCEWGzs\nQ6G5NC9OWV6csvw4Zblx8jINZiujOu3gtBsUZAHEP/a4YcDA+CS9I0P0jqTRN2Kjf/SD4TqTtLQc\n8rLyWFNTzNqaYhoqC7CnfUKyFxFJEQrSIiIJMDjm5+R5HyfO+2jpHiQSGSUaGyYWHaEgK8gyb4zy\ngtkPzdNhtUJJrkFJrsH6mijw4XDdM5RGS28a3f0e+ofyeeNoHm5XHiuXFLKmupjV1cVkeZxJ/l2I\niMw9BWkRkWkanQyy71QnR1v76B4cIRq9GJwNY5SqwggN3ij13hi5GUayS71mHw3Xpgn9o36ae0Zp\n6rbTN+Jk/0Qeh8/mY7fnUVNWwMb6Mjav8Kq3WkRShoK0iMg1ME2Tps4h9hxv58S5XkLhfiLRAezW\nSWrLojR4oywri+F2mMkuNaEsFijNMyjNC7N9dZiJgJ/mnkmau3u44HNwsjWHsx3FPP1WMTcs97J9\n3RIqirKTXbaIyKxSkBYRuQqBUJT9Z7rYe6KD3iEf4UgfRmyA5RUh1tdEWFIcw5ZCR1xlpZtsqo2w\nqTZCJBqgpdfPu+cGueBr45XDxew90coybwm3rF3ChrpS9VOLyKKkIC0icgUd/WO8eaKDQ03d+IM+\nIuFePM4xbm6IsGFZhAz34lp5ng6HHVZVRVlVFWVoIsjhlkmOtXVxqjWf5s42cjKLuWlVJdvWVlGQ\nnZ7sckVEEkZBWkTkMtp6R3lm31maOnoJR/qIRPqpKQ5yfX2YurIY1hRafb4WBVkGOzeGuG1tiNMd\nQQ61DNA/kMFz+y7w8uESNjVUsmtrPUW5nmSXKiIyYwrSIiIf0Dc8ya/2NXG0pZNQuAMb/WyoDrOp\nNkJ+1sLbNJgsDjusXxbhupoIPcNBDrWMc7qzg7eOd/Nuczc3r1nKPVvqNO1DRBY0BWkREWBkIsjz\n+5s5cKadQLATM97LloYgN64I4XIku7qFy2IBb0Ecb0GQHWtDvHEyyMn2PnYf6mX/mU7u2FDDnZtq\ncDs16UNEFh4FaRFJaf5ghN8cOscbx84zFegiFuli/bIgt6wKkan+54TK8ZjcvyXIjSvCvHY8QHNv\nD796q489J9q5+4Zatq9bok2JIrKgfGqX3969e9m1axderxer1cpTTz31/mOxWIw///M/Z+3atWRk\nZFBWVsaXv/xlurq6ZrVoEZGZisUNfvNOK3/xT6/xwv59jIy+Q21xK1/77Bj3bAoqRM+iomyDh24J\n8B9uH6YosxHf4Dv87NW3+PYP3+BgYzemqT97EVkYPnVF2u/3s2bNGh599FEeeeQRLB84jsvv93Ps\n2DG+9a1vsW7dOsbGxvjmN7/JZz7zGU6ePInNppUFEZl/OvrHeOrlE7T3tRMMnae6eIo71gUpzVMP\n9FyqKIzzO7f7ae0N8+rxCbr6uvmnFwY53FTNV+5YQ26mO9kliohc0acG6Z07d7Jz504AHnvssQ89\nlp2dze7duz/0uSeffJKVK1fS1NTEypUrE1epiMgMxeIGLx5s5cWDZ/EHzpHp6ueBW4NUl8SSXVrK\nsligrjxGbdkUxy+EefndCY6cHeZczzBf3L6KrasqPrSAIyIynyS8R3p8fByA3NzcRD+1iMi0fXAV\nOhRq5fraSW5bF8KhnSLzgsUC11VHqS2d4PlD52npHeaffzPO0VatTovI/JXQW0gkEuGb3/wmu3bt\noqysLJFPLSIyLZdbhf7SjgBLiuPJLk0uI8Nt8uC2AKfao7x4xK/VaRGZ1yzmNezqyMzM5IknnuCR\nRx752GOxWIyHH36Ys2fPsnfv3g+tSF9apQZobW2dYckiIlenbzTAC0d6GBjrxzS7WL90lJuXT2BP\n02a2hcAfsrL7ZC7n+3OxWKpYVlrEzvVestI1Kk9E5kZtbe37H2dnZ3/s8YSsSMdiMR566CHOnDnD\nnj171NYhIkl3tG2Y3ce7iMW6yEkf5K7rRqjIjyS7LLkGHpfB5zYNc7YnwGungrT2jdHzqp/f2ryE\nJUUZyS5PRGTmQToajfLggw/S2NjInj17KCoquuLXb9y4caaXlBR15MgRQN9DcmXxuMG/7TnDofYx\nHI4utq4Y447r4jjSPr6SsFgMDg4CUFhYmORKZkdREWxoiPLMwWEuDMArZ3N4sLSK7euWqNVDrkj3\nDZmpD3ZVXM5Vjb+71I5hGAYdHR0cP36c/Px8ysrKeOCBBzhy5AjPP/88pmnS398PQE5ODi6XKwG/\nBRGRqzMVjPCD59/ldFsL4XAT990wybrqaLLLkgTIcJt8+RY/r5+Ms+9smH99JUz34AQP3baaNNun\nHokgIjIrPrVHes+ePezYsePiF1ss7w/Kf+yxx3j88cdZunTphz5/yY9+9KP3e6k/mOYv118icjW0\nsiBX0jM4wT88e5jugRbsljYevNlPRWFqbChc7CvSH3Wq3c6vDmbicNazfEktf7hrI5npzmSXJfOQ\n7hsyU5+WYT91RXr79u0YxicfUnClx0RE5sLxc/38nxffZWz8LIVZfTy0zU9WujYULlarl0TJyxzn\n53vPcPq8n7/8lyBf+9wmKoq0UCMic0vvh4nIgmWaJi8ebOWJZ95mePQoDeU9/O4dUwrRKaA8P84f\nfGaSosw2un3H+O7P3uLd5t5klyUiKUZBWkQWJMMw+fHLJ/j3vYfx+4+xY/Ugn98awG5LdmUyVzLc\nJo/dPsWqih5GRo/yv5/bzytHzie7LBFJITrTS0QWnHjc4Ie/OcaBM43EImd4cNsk9eU65jsVpdng\nc5uDFOcMsvvYCX7xhkE0ZnD35tpP/8UiIjOkIC0iC0osbvCPL7zL4bONxKKN/Patk1SmyKZCuTyL\nBbYuj+B2jvL8Oyd5eq9JJBbnvhvrNR5PRGaVgrSILBixuMH/fu4IR5sbMWKNPLpjCm+BQrRcdF11\nlDTrGE8fOMkL+01icYPPb1uuMC0is0ZBWkQWhFjc4AfPv8vR5jMQP8tjt01SmqepQfJhq5dEsVnH\n+OX+k7z0jkmazaqVaRGZNdpsKCLznmGY/PDFYxxpasSMneVRhWi5ghWVMR64cZxA4DQv7D/Biwdb\nk12SiCxSCtIiMq8ZhsmPXjrOwcYzxKON/PaOKUpyFaLlypZXxPitreMEA6d4Zt9xdLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9c468d0>"
"<matplotlib.figure.Figure at 0x9d13eb8>"
]
},
"metadata": {},
@@ -1251,7 +1254,7 @@
},
{
"cell_type": "code",
"execution_count": 21,
"execution_count": 22,
"metadata": {
"collapsed": false
},
@@ -1260,7 +1263,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xb48f6a0>"
"<matplotlib.figure.Figure at 0xb4f1278>"
]
},
"metadata": {},
@@ -1290,7 +1293,7 @@
},
{
"cell_type": "code",
"execution_count": 22,
"execution_count": 23,
"metadata": {
"collapsed": false
},
@@ -1299,7 +1302,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuAAAAEWCAYAAAAn/SKQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl4XPWV4P3vrU1VpX3fbS3WYtmWLVky3tkNNsFgEiAQ\nYhw60EwnmQlvd5KXmZ525umkk/RkMvBCEsibITHQBLIYDIQEm4AtvGHJlmzti7VY+77WolrnDyMF\nx7a8qDZJ5/M8eh7r3rr3nssPVR39dO75KW63240QQgghhBDCJ1T+DkAIIYQQQoiFRBJwIYQQQggh\nfEgScCGEEEIIIXxIEnAhhBBCCCF8SBJwIYQQQgghfEgScCGEEEIIIXxIEnAhhBBCCCF8aMYEvKSk\nhO3bt5OSkoJKpWLPnj3T+xwOB9/5zndYuXIlISEhJCUl8aUvfYn29vYrXvTQoUOsXr0ag8FAZmYm\nL7744uzvRAghhBBCiDlgxgTcZDKRn5/Ps88+i8FgQFGUC/aVl5fzz//8z5SXl7Nv3z7a29u58847\ncTqdlz1nS0sL27ZtY+PGjVRUVPD000/zjW98g71793ruroQQQgghhAhQytWuhBkaGspPf/pTdu7c\nednX1NbWsmzZMiorK1m2bNklX/Od73yHt956i/r6+ultjz/+ONXV1Rw9evQawxdCCCGEEGJu8WgN\n+OjoKACRkZGXfc2xY8fYsmXLBdu2bNlCWVnZjDPnQgghhBBCzAceS8BtNhv/+I//yPbt20lKSrrs\n63p7e4mPj79gW3x8PA6Hg4GBAU+FI4QQQgghREDSeOIkDoeDRx55hLGxMd59911PnBL464y6EEII\nIYQQc1F4ePhF22adgDscDh566CGqq6s5ePDgjOUnAAkJCfT09Fywrbe3F41GQ0xMzGzDEUIIIYQQ\nIqDNqgTFbrfz4IMPUlVVxUcffURcXNwVj1m3bh0HDhy4YNuBAwcoLi5GrVbPJhwhhBBCCCEC3owz\n4CaTicbGRgBcLhdtbW1UVFQQHR1NUlIS999/P2VlZbzzzju43e7pme2IiAj0ej0AO3fuRFGU6R7i\nTz75JM8//zxPPfUUTzzxBEeOHGHPnj28/vrrMwZ6qel74X9lZWUAFBUV+TkS4Q0yvvOXjO38JuM7\nf8nYzg1XKqOecQa8tLSUwsJCCgsLsVqt7N69m8LCQnbv3k1HRwdvv/023d3drF69mqSkpOmv3/72\nt9PnaG9vv2BxnrS0NN577z1KSkooKCjgBz/4Ac899xw7duyY5a0KIYQQQggR+GacAb/ppptwuVyX\n3T/TvikfffTRRds2b97MyZMnryI8IYQQQggh5heP9gEXQgghhBBCzEwScCGEEEIIIXxIEnAhhBBC\nCCF8SBJwIYQQQgghfEgScCGEEEIIIXxIEnAhhBBCCCF8SBJwIYQQQgghfEgScCGEEEIIIXxIEnAh\nhBBCCCF8SBJwIYQQQgghfEgScCGEEEIIIXxIEnAhhBBCCCF8SBJwIYQQQgghfEgScCGEEEIIIXxI\nEnAhhBBCCCF8SBJwIYQQQgghfEgScCGEEEIIIXxIEnAhhBBCCCF8SBJwIYQQQgghfGjGBLykpITt\n27eTkpKCSqViz549F+zfu3cvd9xxB3FxcahUKg4dOnTFCx48eBCVSnXRV0NDw+zuRAghhBBCiDlg\nxgTcZDKRn5/Ps88+i8FgQFGUC/abzWY2btzIT37yE4CL9s+kpqaGnp6e6a8lS5ZcR/hCCCGEEELM\nLZqZdm7dupWtW7cCsGvXrov2P/LIIwAMDAxc84VjY2OJjo6+5uOEEEIIIYSYy/xWA15UVERSUhK3\n3XYbBw8e9FcYQgghhBBC+JTPE/CkpCReeOEF9u7dy969e8nJyeHWW2/l8OHDvg5FCCGEEEIIn1Pc\nbrf7al4YGhrKT3/6U3bu3HnRvoGBAeLi4jh48CCbN2++5iDuuusuNBoN+/btu2D76Ojo9L8bGxuv\n+bxCiPnN7XbTO2rFanPicLlxOl1o1CriwvWE6DXX9FyKEEII4SlZWVnT/w4PD79o/4w14L6yZs0a\n3njjDX+HIYSYIwbHJ6lsG6a6fYTeIQd2mwq3G1xuUKvAYHASGqwmPsJAQoSe7KRwkqMufpBcCCGE\n8IeASMArKipISkqa8TVFRUU+ikZci7KyMkDGZ74KxPEtrevkrZLTnGt309cXjt1iwKAJRoUKRVHh\ncNnpcYyh1tppDYawMKjsGCU53kZhViKrsxPJSIpc8Ml4II6t8BwZ3/lLxnZu+GwVx6XMmICbTKbp\n0g+Xy0VbWxsVFRVER0eTmprK8PAwbW1tjIyMAOfLRMLCwkhMTCQ+Ph6AnTt3oijKdA/xZ555hvT0\ndPLy8rDZbLz66qvs27ePvXv3zvpmhRDz28n6Ln7+VjlnKt0YHUlkGNMID466KJl2u91MuiyYHOOM\n9g9Q1d5Njd5CRVUzb8c2syjByM0FaWxcsQhDkNZPdyOEEGKhmjEBLy0t5ZZbbgHO9/jevXs3u3fv\nZteuXbz00kvs27ePxx57bHr/448/DsB3v/td/uVf/gWA9vb2Cz4c7XY73/rWt+jo6MBgMLB8+XLe\ne+897rzzTq/coBBifrDZnbxy4AyVVW5iySE1POuys9iKoqBXG9GrjUQHxZMekse4Y4SBgW6qO7po\nMJqpbarhnaMNbFyxiFsK04kJN/r4joQQQixUV/0Qpj98dvr+UgXswv/kT2HzWyCN75HKc/zv10/T\n3hDJysgN111C4na7GbL10WluxqIMkJQIyckKRTkJbFubRWrcwnivCaSxFZ4n4zt/ydjODVfKYQOi\nBlwIIa7k0Ok2ursg0bB4VvXbiqIQHRRPdFA8E/ZROnta+KS9k5aWbo7XdLNxRTLbN+QQGxHsweiF\nEEKIv5IEXAgR8JxOF609I4yMKOTFzvzA9rUI0YaTE74KmzOXjpFmTva20NXZyYnabm4qWMRda7MJ\nCw7y2PWEEEIIkARcCDEHmKx27A7QKDpUitrj59ep9WSE5pFkTOdcfz3Hezro7GrlcGU7dxRnsqU4\nE71O3i6FEEJ4hnyiCCEC3oTFht0OWpXOq9fRqw1kh6/C5MikrbOOo509dHY1cLjqHA/etIzC7MQF\n375QCCHE7EkCLoQIeOZJO04HqBXfvGUFa0LJiyhmzDZEc0sN3T3DdPWepDgvli/espz4qBCfxCGE\nEGJ+kgRcCBHwQg06tDqwuSZ9et0wXRQrIzfQa22nsqKWnt5+atsOsW3tErbesAStxvPlMEIIIeY/\nScCFEAEvOtyIQa9gc1lwu90+LQNRFIUEwyKiguJpHarjeP85+vob+KS2gy/espwVGfE+i0UIIcT8\nIAm4ECLgadQqIkP16HQWJl0W9GrfL5qjUwWRHbaSMVsqjU2V9PSO0d5zgpsKU3jw5mUEG7xbny6E\nEGL+kARcCDEnRIcZ0OstWBwmvyTgU8J0URRGbabT3EJFeR1DQx3UtPXzpdtWUJCV6Le4hBBCzB2S\ngAsh5oT0xEjCw4cYHRwkMijWr7EoikJKcAbRQfE0tJ/m44FB+gbLuLEgmYduXYFRr/VrfEIIIQKb\nyt8BCCHE1Vi6KIaICBie7Pd3KNMMmmDyI9cR515ORbmaNz/s5H/sOURtW+DEKIQQIvDIDLgQYk7I\nSokmOkpNtXsUm2sSnSowVqhUFIUkYzqRujjqz5Xz8dAwvUPH2bY2gx2bcqVTihBCiIvIDLgQYk7Q\nadVkpUQRHuFmxDbg73AuYtAEszJyA+G2XMpPqXj9/Wa+/+rHnOsd9XdoQgghAozMgAsh5oy8xbFE\nRfYz1NFLnD7Z3+FcRFEUFoVkEWmPpb6xnMHBcbr6D3PvpmzuXLMElUpW0RRCCCEz4EKIOaQwO5GY\nWBiy9eBw2f0dzmWFaiMojN6M1pTOiTIXv/5jHf/rt0cZmbD6OzQhhBABQBJwIcScERNuZHl6DJFR\nTvqtXf4OZ0YqRU1m6HKyDWtpqNHzwZEhvvdKCY0dg/4OTQghhJ9JAi6EmFPWL08lPgF6re3+DuWq\nRAbFUhC1mbHeGI6emORHrx3jg5PNuN1uf4cmhBDCT6QGXAgxpxRmJZIYV0lj4zAmxzjBmlB/h3RF\nOlUQKyLW0jpRx8mTTVgs1bR0D7Nzy0qCdPI27A0ul5uGjkGaOoc41zvKub5RxkyTKAqoVSqyUqIo\nzk2mKCcJjVrmooQQviXv/EKIOUWnVbNmaTL1jW30DraTEZrn75CuiqIopIcuJdQaQdWZCiYmuuga\nHOfJu4uIjwrxd3jzgtvtpnNgnE9qOjhR18ng6AB2xzBO5wRO5wRu1ySggKJieDSKisYEDldm8PUd\na9DLL0JCCB+a8df+kpIStm/fTkpKCiqVij179lywf+/evdxxxx3ExcWhUqk4dOjQVV300KFDrF69\nGoPBQGZmJi+++OL134EQYsHZuGIRCQnQaz2Hw+XwdzjXJEafSH7EJjqaQzh0bJzvv3qY0009/g5r\nTjNZbLx/ool/fbmE//Hr/bx95CDt3UfQcpLCtHruXXOOr9/Vz3//4gj//MVh/mnHEFtWtaFynaaq\nuZqX3z/t71sQQiwwM/7KbzKZyM/P59FHH2Xnzp0oyoUttMxmMxs3buTLX/7yJfdfSktLC9u2beOr\nX/0qr732Gh9//DH/8A//QGxsLPfdd9/s7kYIsSCkJUSQnxVNa+sgPZY2UoIz/R3SNTFqQlgVtYnG\n4dMcL+1ibKKUezdnsX19jrQqvAaTNgd/OdXC+6VNjE10YrP1olWPkJ9mZ2WajZQYJ5f6WNIa3KzJ\ntpGZ4OCnfzzLqYY4xkzLCQsOjMWdhBDz34wJ+NatW9m6dSsAu3btumj/I488AsDAwLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xb493cc0>"
"<matplotlib.figure.Figure at 0xb4f8278>"
]
},
"metadata": {},
@@ -1321,7 +1324,7 @@
},
{
"cell_type": "code",
"execution_count": 23,
"execution_count": 24,
"metadata": {
"collapsed": false
},
@@ -1330,7 +1333,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xb4f1eb8>"
"<matplotlib.figure.Figure at 0xb56d1d0>"
]
},
"metadata": {},
@@ -1362,7 +1365,7 @@
},
{
"cell_type": "code",
"execution_count": 24,
"execution_count": 25,
"metadata": {
"collapsed": false
},
@@ -1371,7 +1374,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xb4fcef0>"
"<matplotlib.figure.Figure at 0x9cdf748>"
]
},
"metadata": {},
@@ -1396,7 +1399,7 @@
},
{
"cell_type": "code",
"execution_count": 25,
"execution_count": 26,
"metadata": {
"collapsed": false
},
@@ -1405,7 +1408,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtIAAAEWCAYAAABL+3CVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xlwpfdd5/v3s5x919EutXpxt5du23Fkk0xwyJhgJ3ES\nGjJcBwIpYiDMpchkCJcaqJkK9PwxC6mhAE/BcJMAN87MAEXNDRMSyI1NSOK4EhN30h0v7aXt7tbS\n2o/Ovj7b/UPujjttt9uSWudI+ryqTkk6j/roK/tIz0ff8/39HiMIggAREREREXldzG4XICIiIiKy\nHSlIi4iIiIisg4K0iIiIiMg6KEiLiIiIiKyDgrSIiIiIyDooSIuIiIiIrIOCtIiIiIjIOlwxSD/y\nyCMcPXqU8fFxTNPkwQcfvOT4b//2b3PTTTeRTCbp6+vj7rvv5lvf+tY1LVhEREREpBdcMUjX63Vu\nvfVWHnjgAWKxGIZhXHL8xhtv5L/9t//GU089xaOPPsr+/ft55zvfyeLi4jUtWkRERESk24yrvbJh\nKpXij//4j/n5n//5V/2cSqVCNpvly1/+Mvfcc8+mFSkiIiIi0ms2bUa60+nwqU99inw+z+23375Z\nDysiIiIi0pPsjT7AF7/4RT7wgQ/QaDQYGBjg7/7u7+jr69uM2kREREREetaGg/Tb3/52vve977Gy\nssKnPvUpfvzHf5xvf/vb7N279+LnlMvljX4ZEREREZGuyWQyl9234dGOeDzOgQMHeNOb3sSf/umf\nkslk+MxnPrPRhxURERER6Wmbvo+053n4vr/ZDysiIiIi0lOuONpRr9c5ffo0AL7vMzU1xcmTJ8nn\n82SzWT7xiU9w9OhRhoeHWV5e5o//+I+Zm5vj/e9//6s+5iu1xUWuxvHjxwG44447ulyJSG/Rz4bI\nK9PPhmzUa40nX7Ej/fjjjzM5Ocnk5CStVotjx44xOTnJsWPHsG2bU6dO8b73vY/rr7+eo0ePUiwW\n+cY3vsGRI0c29ZsQEREREek1V+xI33XXXVcc0/jc5z636QWJiIiIiGwHmz4jLSIiIiKyGyhIi4iI\niIisg4K0iIiIiMg6KEiLiIiIiKyDgrSIiIiIyDooSIuIiIiIrIOCtIiIiIjIOihIi4iIiIisg4K0\niIiIiMg6KEiLiIiIiKyDgrSIiIiIyDooSIuIiIiIrIOCtIiIiIjIOihIi4iIiIisg4K0iIiIiMg6\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x86c6fd0>"
"<matplotlib.figure.Figure at 0x87af9e8>"
]
},
"metadata": {},
@@ -1430,7 +1433,7 @@
},
{
"cell_type": "code",
"execution_count": 26,
"execution_count": 27,
"metadata": {
"collapsed": false
},
@@ -1439,7 +1442,7 @@
"data": {
"image/png": "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\nHmkBF0LMCgWZCSTEa1QagwT1USzqzLhDpaIopDtyibMkU3vqCK/39dPZ9xa3r1vIndctlpFShBBC\nnENawIUQs4LFrFGQGU+sx2Ag2BPtcs5hNzlZEbeB2OBijryr8stX6vnus69zqnMw2qUJIYSYYaQF\nXAgxayxZkER8XDd9LZ0k2zKiXc45FEUh21VAXCiJ2hNH6O0dpq37IB+/bhG3XZOPqspdNIUQQkgL\nuBBiFilZlEZiEvQFOwjroWiXc0Fus4eShE2Yfbm8U6bzsz/U8G+/OsSANxDt0oQQQswAEsCFELNG\nYqyDpbmJxMVH6A60RbucCamKRp57KYvs66irsvGnN/p4+JkDnGjpjXZpQgghokwCuBBiVrl2aRYp\nqdAZaI52KZckzprEqvhNDHUmcuidUR597k3+dLgewzCiXZoQQogokQAuhJhVSgrSSEs2Mar24wsP\nR7ucS2JRrSzzrMM1ms/hwwY/famSn/zhXUaD4WiXJoQQIgokgAshZhWLWeOaogxSkqHTPztawWHs\nAs1cdxELbWuoOGbipf1t/MsvDtLZ5412aUIIIabZhAH8wIEDbN26lczMTFRVZdeuXWfN3717N7fe\neivJycmoqsr+/fsvaaf79+9n9erV2O128vLyeOqpp678CIQQ887GZdmkpkJn4BRhfXa1Iifa0lju\nuY6Wehf73xzmu88e5OjJjmiXJYQQYhpNGMB9Ph/Lly9n586d2O12FOXsIbRGRkbYuHEjjz32GMA5\n88+noaGB22+/nY0bN1JeXs5DDz3EAw88wO7du6/iMIQQ80lOqoflBQnEJYTo8DdFu5zL5jC5WBl/\nHeH+dN4qDfHvvyrlhYM16Lr0CxdCiPlgwnHAt2zZwpYtWwDYvn37OfPvueceAHp6Lv2mGE8++SSZ\nmZns3LkTgMLCQt5++22+//3v84lPfOKStyOEmN9uXZvPkZpejpfXk+7IRVVmV486k2picWwJrSMe\nyo9U4/efoKljgC/dUYLLbol2eUIIIabQtH9jvfnmm2zevPmsaZs3b6asrIxIJDLd5QghZqninCQK\nc2JwxQboCrREu5wroigKmc48Cl3rqK2y8sob3Xz32QM0dQxEuzQhhBBTaNoDeGdnJykpKWdNS0lJ\nIRwOX1ZLuhBiflMUhVvX5pOVBS2+92b1sH4eSyIr466jtyWON97288hzh3jj+KlolLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8f0ee48>"
"<matplotlib.figure.Figure at 0x8fb3e80>"
]
},
"metadata": {},
@@ -1478,7 +1481,7 @@
},
{
"cell_type": "code",
"execution_count": 27,
"execution_count": 28,
"metadata": {
"collapsed": false
},
@@ -1487,7 +1490,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xb4f4780>"
"<matplotlib.figure.Figure at 0xa49cda0>"
]
},
"metadata": {},
@@ -1508,7 +1511,7 @@
},
{
"cell_type": "code",
"execution_count": 28,
"execution_count": 29,
"metadata": {
"collapsed": false
},
@@ -1517,7 +1520,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9c5fef0>"
"<matplotlib.figure.Figure at 0xa49c908>"
]
},
"metadata": {},
@@ -1543,7 +1546,7 @@
},
{
"cell_type": "code",
"execution_count": 29,
"execution_count": 30,
"metadata": {
"collapsed": false
},
@@ -1552,7 +1555,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8e4a5f8>"
"<matplotlib.figure.Figure at 0xb4d2da0>"
]
},
"metadata": {},
@@ -1572,7 +1575,7 @@
},
{
"cell_type": "code",
"execution_count": 30,
"execution_count": 31,
"metadata": {
"collapsed": false
},
@@ -1581,7 +1584,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9c14400>"
"<matplotlib.figure.Figure at 0xa3dbb70>"
]
},
"metadata": {},
@@ -1601,7 +1604,7 @@
},
{
"cell_type": "code",
"execution_count": 31,
"execution_count": 32,
"metadata": {
"collapsed": false
},
@@ -1610,7 +1613,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9be27b8>"
"<matplotlib.figure.Figure at 0xb563d68>"
]
},
"metadata": {},
@@ -1630,7 +1633,7 @@
},
{
"cell_type": "code",
"execution_count": 32,
"execution_count": 33,
"metadata": {
"collapsed": false
},
@@ -1639,7 +1642,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAvUAAAEtCAYAAACIx59SAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl0XeV5Nvxr731mDUeTNduWbGvyCMZMJiU2ZTBNY5KP\npLw42EDTkATC2JIvtLQ2lAWLN10UWCYU0tLXHwRCmr5JM7BspyVgHJzEBtvY8mxLsq15PJLOfPbe\n3x/P2WewJVuWzihdv7W0ztHZW/KjvbykS7fu596Srus6iIiIiIgoa8npXgAREREREU0NQz0RERER\nUZZjqCciIiIiynIM9UREREREWY6hnoiIiIgoyzHUExERERFlOYZ6IiIiIqIslxWh/rnnnsOVV14J\np9OJ0tJSrF27Fs3Nzeedt2nTJlRVVcHhcGD16tU4dOhQGlZLRERERJRaWRHqP/zwQ3znO9/Brl27\n8P7778NkMuHGG2/E4OBg5Jznn38eL7zwAjZv3ozdu3ejtLQUN910E0ZHR9O4ciIiIiKi5JOy8Y6y\nbrcbTqcT//Vf/4UvfOEL0HUdlZWVeOihh/DEE08AAHw+H0pLS/FP//RPuO+++9K8YiIiIiKi5MmK\nSv25hoeHoWkaCgsLAQAtLS3o7u7GzTffHDnHZrPh+uuvx8cff5yuZRIRERERpURWhvqHH34Yl19+\nOa699loAQFdXFwCgrKws7rzS0tLIMSIiIiKi6cqU7gVcqsceewwff/wxdu7cCUmSLnr+uee4XK5k\nLY2IiIiIKOmcTud5r2VVpf7RRx/Fu+++i/fffx81NTWR18vLywEA3d3dced3d3dHjhERERERTVdZ\nE+offvjhSKCvr6+PO1ZbW4vy8nJs37498prP58POnTuxcuXKVC+ViIiIiCilsqL95oEHHsBbb72F\nn//853A6nZE++by8POTk5ECSJDzyyCN49tln0djYiLq6OjzzzDPIy8vDunXrxv28Y/3pYqbYs2cP\nAGDFihVpXkl24vWbPF67qeH1mxpev8njtZsaXr+p4fW7eAt5VoT6V199FZIk4U//9E/jXt+0aRP+\n4R/+AQDw3e9+F16vFw888AAGBwdxzTXXYPv27cjJyUnHkomIiIiIUiYrQr2maRM6b+PGjdi4cWOS\nV0NERERElFmypqeeiIiIiIjGxlBPRERERJTlGOqJiIiIiLIcQz0RERERUZZjqCciIiIiynIM9URE\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa3e3898>"
"<matplotlib.figure.Figure at 0xb4c1208>"
]
},
"metadata": {},
@@ -1715,7 +1718,7 @@
},
{
"cell_type": "code",
"execution_count": 33,
"execution_count": 34,
"metadata": {
"collapsed": false
},
@@ -1724,7 +1727,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9cc5240>"
"<matplotlib.figure.Figure at 0xb4c1320>"
]
},
"metadata": {},
@@ -1978,7 +1981,7 @@
},
{
"cell_type": "code",
"execution_count": 34,
"execution_count": 35,
"metadata": {
"collapsed": false
},
@@ -2196,7 +2199,8 @@
"\n",
"The Kalman filter generalizes this problem by having you supply a *measurement function*. It is somewhat counterintuitive at first. As I already stated the Kalman filter performs its calculations in *measurement space.* It needs to do that because it only really makes sense to talk about the residual of the measurement in terms of the measurement. So it does something like this:\n",
"\n",
" residual = measurement - convert_to_measurement(predicted state)\n",
" CELSIUS_TO_VOLTS = 0.21475 # constant from manufacturer's spec\n",
" residual = measurement - CELSIUS_TO_VOLTS * predicted_state\n",
"\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",
@@ -2206,7 +2210,12 @@
"\n",
"$$\\textbf{y} = \\mathbf{z} - \\mathbf{H x^-} \\;\\;\\;(3)$$\n",
"\n",
"where $\\textbf{y}$ is the residual, $\\mathbf{x^-}$ is the predicted value for $\\mathbf{x}$, $\\textbf{z}$ is the measurement, and $\\textbf{H}$ is the measurement function. It is just a matrix that we multiply the state into to convert it into a measurement.\n",
"where $\\textbf{y}$ is the residual, $\\mathbf{x^-}$ is the predicted value for $\\mathbf{x}$, $\\textbf{z}$ is the measurement, and $\\textbf{H}$ is the measurement function. $\\textbf{H}$ is a matrix that we multiply the state into to convert it into a measurement. It is analogous to the constant `TEMPERATURE_TO_VOLTS` in the one dimensional example directly above. Maybe it will help to see the two equations together.\n",
"\n",
"$$\\begin{aligned}residual &= measurement - CELSIUS\\_TO\\_VOLTS \\times predicted\\_state \\\\\n",
"\\textbf{y} &= \\mathbf{z} - \\mathbf{H x^-}\\end{aligned}$$\n",
"\n",
"\n",
"\n",
"For our dog tracking problem we have a sensor that measures position, but no sensor that measures velocity. So for a given state $\\mathbf{x}=\\begin{bmatrix}x & \\dot{x}\\end{bmatrix}^\\mathsf{T}$ we will want to multiply the position $x$ by 1 to get the corresponding measurement of the position, and multiply the velocity $\\dot{x}$ by 0 to get the corresponding measurement of velocity (of which there is none).\n",
"\n",
@@ -2289,14 +2298,14 @@
"\n",
"$$\\mathbf{P} = \\mathbf{FP{F}}^\\mathsf{T} + \\mathbf{Q}$$\n",
"\n",
"In this equation $\\mathbf{FP{F}}^\\mathsf{T}$ is just some linear algebra 'magic' that projects $\\mathbf{P}$ forward to the next time step according to our motion model $\\mathbf{F}$, and $\\mathbf{Q}$ is the *process noise matrix*. We are just adding matrices, so hopefully it is clear that each element in $\\mathbf{Q}$ specifies how much uncertainty is added to the system due to the process noise. \n",
"In this equation $\\mathbf{FP{F}}^\\mathsf{T}$ projects $\\mathbf{P}$ forward to the next time step according to our motion model $\\mathbf{F}$, and $\\mathbf{Q}$ is the *process noise matrix*. We are just adding matrices, so hopefully it is clear that each element in $\\mathbf{Q}$ specifies how much uncertainty is added to the system due to the process noise. \n",
"\n",
"Let's take a brief moment to look at the behavior of these equation in more detail. I will project $\\mathbf{x}$ forward according to the motion model $\\mathbf{F}$ with the equation $\\mathbf{x} = \\mathbf{Fx}$. Then I will project P to the next timestep with the equation $\\mathbf{P} = \\mathbf{FP{F}}^\\mathsf{T}$. I will draw the original covariance in red and the new covariance in black."
]
},
{
"cell_type": "code",
"execution_count": 35,
"execution_count": 36,
"metadata": {
"collapsed": false
},
@@ -2305,7 +2314,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAu8AAAEtCAYAAAC4S45zAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt8zvX/x/HHtYPZbM7MKIeclkNOc8oxoSjklOTc91vp\ni0QKlUIqER1IDt9iCkVY/FIMhYqY89eZkZg5n23Ltuv3x8e1LMbGtvd1eN5vt+v2uXYddj0vH+a1\n9/V6v982u91uR0REREREnJ6X6QAiIiIiIpI+Kt5FRERERFyEincREREREReh4l1ERERExEWoeBcR\nERERcREq3kVEREREXISKdxERERERF2G0eC9ZsiReXl43XB5//PE0n7N9+3YaNWpEQEAA99xzD2+/\n/XY2JhYRERERMcfH5Itv3LiRpKSklK9jYmKoUaMGnTp1uunjL1y4QLNmzWjcuDFRUVHs2rWLXr16\nkStXLgYOHJhdsUVEREREjDBavBcoUCDV19OmTSNPnjw8+eSTN338rFmziI+PJzw8HD8/PypUqMDu\n3bsZP368incRERERcXtO0/Nut9v5/PPP6dq1K35+fjd9zNq1a2nQoEGq+5s3b05MTAx//PFHdkUV\nERERETHCaYr3yMhIDh06xLPPPpvmY2JjYwkODk51m+Pr2NjYLM0nIiIiImKa0baZ602bNo1atWpR\nuXLlNB9js9nS/f3Onz+fGbFERERERIzIkyfPDbc5xcj7iRMnWLRo0S1H3QGKFClywwj78ePHU+4T\nEREREXFnTlG8z5gxg5w5c9K5c+dbPq5u3bqsWbOGhISElNsiIyMpVqwYJUqUyOqYIiIiIiJG2ex2\nu91kALvdTvny5XnooYeYMmVKqvuGDh3Khg0bWL58OWAtFVm+fHkaN27MG2+8wZ49e+jVqxfDhw9n\nwIABqZ57fdvMzT5ycDdRUVEAhIWFGU4iWUHn173p/LovnVv3pvPrvkye29vVsMZ73n/++WcOHDjA\n7Nmzb7gvNjaW6OjolK9z585NZGQkffr0ISwsjPz58zNo0KAbCncREREREXdkvHh/6KGHUm3UdL3p\n06ffcFulSpVYtWpVVscSEREREXE6TtHzLiIiIiIit6fiXURERETERah4FxERERFxESreRURERERc\nhIp3EREREREXoeJdRERERMRFqHgXEREREXERKt5FRERERFyEincRERERERdhfIdVERG55upVOHEC\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xb43df28>"
"<matplotlib.figure.Figure at 0x8755668>"
]
},
"metadata": {},
@@ -2339,7 +2348,7 @@
},
{
"cell_type": "code",
"execution_count": 36,
"execution_count": 37,
"metadata": {
"collapsed": false
},
@@ -2348,7 +2357,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa411828>"
"<matplotlib.figure.Figure at 0x8fb0400>"
]
},
"metadata": {},
@@ -2376,7 +2385,7 @@
"source": [
"You can see that over time our uncertainty in the position grows. However, our uncertainty in the velocity does not. Why is that? Well, our process model states that the velocity is constant, and we do not model the possibility that there is error in the model (so far!). We assume the model is perfect, so the variance of the velocity does not change.\n",
"\n",
"But of course no model is perfect. Except perhaps in a perfect vacuum velocity will never remain constant. If we are tracking a car, for example, even if we set the cruise control the car will slightly change velocity due to the wind, hills, bumps in the road, imperfections in the cruise control, and so on. If the Kalman filter used the equation above it would quickly become over-certain in its computations. Recall that in the unidimensional Kalman filter chapter every predict cycle increased our uncertainty, and every update decreased it. The same needs to happen here.\n",
"So I have demonstrated the reason for the $\\mathbf{FP{F}}^\\mathsf{T}$ part of the equation, which assumes a perfect model. But of course no model is perfect. Except perhaps in a perfect vacuum velocity will never remain constant. If we are tracking a car, for example, even if we set the cruise control the car will slightly change velocity due to the wind, hills, bumps in the road, imperfections in the cruise control, and so on. If the Kalman filter used the equation above it would quickly become over-certain in its computations. Recall that in the unidimensional Kalman filter chapter every predict cycle increased our uncertainty, and every update decreased it. The same needs to happen here.\n",
"\n",
"This is where $\\mathbf{Q}$ comes in. It is a covariance matrix that describes how much *process noise* is in the system. That is just a fancy way of saying how much uncertainty gets added to the system by things we haven't modeled.\n",
"\n",
@@ -2385,7 +2394,7 @@
},
{
"cell_type": "code",
"execution_count": 37,
"execution_count": 38,
"metadata": {
"collapsed": false
},
@@ -2394,7 +2403,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8dfa320>"
"<matplotlib.figure.Figure at 0xa3cd198>"
]
},
"metadata": {},
@@ -2463,14 +2472,14 @@
"source": [
"It general it is not true that acceleration will be constant and uncorrelated, but this is still a useful approximation for moderate time period, and will suffice for this chapter. Fortunately you can get a long way with approximations and simulation. Let's think about what these matrices are implying. We are trying to model the effects of *process noise*, such as the wind buffeting the flight of a thrown ball. Variations in wind will cause changes in acceleration, and so the effect on the acceleration is large. However, the effects on velocity and position are proportionally smaller. In the matrices, the acceleration term is in the lower right, and this is the largest value. **A good rule of thumb is to set $\\sigma$ somewhere from $\\frac{1}{2}\\Delta a$ to $\\Delta a$, where $\\Delta a$ is the maximum amount that the acceleration will change between sample periods**. In practice we pick a number, run simulations on data, and choose a value that works well. \n",
"\n",
"The filtered result will not be optimal, but in my opinion the promise of optimal results from Kalman filters is mostly wishful thinking. Consider, for example, tracking a car. In that problem the process noise would include things like potholes, wind gusts, changing drag due to turning, rolling down windows, and many more factors. We cannot realistically model that analytically, and so in practice we work out a simplified model, compute $\\mathbf{Q}$ based on that simplified model, and then add *a bit more* to $\\small\\mathbf{Q}$ in hopes of taking the incalculable 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",
"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 more* to $\\small\\mathbf{Q}$ in hopes of taking the incalculable 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 for you.\n",
"\n",
"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."
]
},
{
"cell_type": "code",
"execution_count": 38,
"execution_count": 39,
"metadata": {
"collapsed": false
},
@@ -2512,7 +2521,7 @@
},
{
"cell_type": "code",
"execution_count": 39,
"execution_count": 40,
"metadata": {
"collapsed": false
},
@@ -2524,7 +2533,7 @@
" [ 0.001175 , 0.0235 ]])"
]
},
"execution_count": 39,
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
@@ -2550,7 +2559,7 @@
},
{
"cell_type": "code",
"execution_count": 40,
"execution_count": 41,
"metadata": {
"collapsed": false
},
@@ -2605,7 +2614,7 @@
},
{
"cell_type": "code",
"execution_count": 41,
"execution_count": 42,
"metadata": {
"collapsed": false
},
@@ -2644,7 +2653,7 @@
},
{
"cell_type": "code",
"execution_count": 42,
"execution_count": 43,
"metadata": {
"collapsed": false
},
@@ -2739,7 +2748,7 @@
},
{
"cell_type": "code",
"execution_count": 43,
"execution_count": 44,
"metadata": {
"collapsed": false
},
@@ -2806,16 +2815,16 @@
},
{
"cell_type": "code",
"execution_count": 44,
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuYAAAEjCAYAAAB+VMTJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd0FcXfx/H33pvee+8kIbQUmtQEEBBQqiJNQBQRFQEV\nQVEfihRRpKkoIEoTBEQQlQ6hdwkdQiABQkgDkpDe7j5/XIjmR0sg9O/rnHtMtszMrnvCJ5PZGUVV\nVRUhhBBCCCHEQ6V52A0QQgghhBBCSDAXQgghhBDikSDBXAghhBBCiEeABHMhhBBCCCEeARLMhRBC\nCCGEeARIMBdCCCGEEOIRIMFcCCHuEx8fH3x9fR92Mx4JN7sXc+bMQaPRMHfu3IfUKiGEeLRIMBdC\nPJU0Gg0azc1/BJ49e5bKlSuj0WgYNGgQ97Lcg6Iod33u48DHx6fkXt7s8/777wP6+3Cre/G/2zUa\njfxCI4R4Khk87AYIIcTDcrOgeOjQIVq3bk1ycjLjx49n2LBhD6Flj5/BgwdjY2Nzw/Z69eoBsGnT\npnKV96T/QiOEEDcjwVwIIa6JjIykQ4cO5OXlMWfOHHr27Pmwm/RYUBSFwYMH4+XldctjpAdcCCHu\nTIayCCEEsGTJElq1aoWqqvz55583hPLCwkK+/fZb2rRpg7e3NyYmJtjZ2dG8eXP+/vvvMtdzfVz1\nqFGj2L9/P61atcLa2ho7Ozs6d+5MQkICANHR0bz00ks4ODhgZmZGs2bNOHLkyA3lnTp1io8++oja\ntWvj6OiIiYkJPj4+vPHGG8THx99w/ObNm9FoNPTp04ezZ8/StWtXHBwcMDU1pU6dOuW6lvIoy3j7\n620D/XCi/w6J6dOnT6ljT58+Td++fUv+Xzg5OdGpUyeioqJuKHfkyJElY9lXrVpFeHg4VlZW2NnZ\nVdwFCiFEBZBgLoR46n3zzTd069YNW1tbIiMjadmy5Q3HXL58mcGDB5Odnc1zzz3HBx98QPv27Tl4\n8CBt27Zl5syZ5apz3759REREYGxszJtvvkn16tVZtmwZzz77LEeOHOGZZ54hLS2N1157jaZNm7J5\n82aaN29OdnZ2qXJ+//13ZsyYgbe3Nz169GDgwIFUrVqVn376iTp16pQE/f917tw5nnnmGc6fP0/v\n3r3p0qULR48epX379mzevLlc1wKUaRz+nYan+Pr6MmLECACsra0ZOXJkyadjx44lx23atImwsDDm\nz59P7dq1GTx4MC1btmTNmjU0aNCAdevW3bT8pUuX0r59e+zt7XnnnXfo0KFDOa5QCCEeAFUIIZ5C\niqKoGo1G/eijj1RFUVR/f3/1zJkztzw+Pz9fTUhIuGF7RkaGWr16ddXOzk7Nzc0ttc/b21v19fUt\nte3nn39WFUVRFUVRf//991L7WrVqpSqKolpbW6uTJk0qta9fv36qoijq1KlTS21PSEhQCwoKbmjX\nunXrVK1Wq/bv37/U9sjIyJL6R48eXWrf2rVrVUVR1DZt2tziLtzI29tbVRRFHTx4sDpixIhSny++\n+KJM92Lu3LmltiuKcsOx16Wnp6v29vaqg4ODeuLEiVL7Tpw4oVpaWqpubm5qfn5+yfYRI0aoiqKo\nWq1WXbt2bZmvTQghHjQZYy6EeGqpqsqECRMwNDRk9erV+Pn53fJYIyMj3NzcbthuZWVFnz59GDJk\nCPv27aNx48ZlqrtJkyaleoEBevTowdq1a3F0dOS9994rte+VV15h1qxZHDp0qNT2m7UJoEWLFlSt\nWvWWvcc+Pj58+umnpba1bNkST09P9u3bV6Zr+K+pU6fesM3GxqbCX56dN28eV65cYdq0aQQFBZXa\nFxQURN++fZkyZQobN26kdevWpfa3b9/+pn8NEUKIR4UEcyHEU61Vq1asWbOG7t27s3btWmxtbW95\n7LFjx/jqq6/YunUrSUlJ5OXlldp/8eLFMtcbFhZ2wzYXFxcAgoODb9jn6uoKwIULF27Yt2DBAubM\nmcOhQ4dIT0+nuLi4ZJ+xsfFN6w8NDb3p0BJPT0/27NlTtou4RlEU4uLibvvyZ0XZsWMHoJ89Z+TI\nkTfsj46OBuDEiRM3BPO6deve9/YJIcS9kGAuhHhqKYrCypUrefnll1mxYgVNmjRhw4YNODo63nDs\n7t27adasGTqdjmeffZYOHTpgZWWFRqMhKiqKP/74g/z8/DLXbW1tfcM2AwODO+4rLCwstf29995j\n6tSpuLm50bp1a9zd3TE1NQXg559/5vz58zet/2ZTG16vR6fTlfk6HrTLly8DMHv27FseoyjKDWPx\n4d9ffIQQ4lElwVwI8VQzMDBg6dKl9O7dm4ULFxIeHs6GDRtwd3cvddyYMWPIy8tj8+bNhIeHl9o3\nfvx4/vjjjwfZbABSUlKYNm0aNWrUYOfOnZibm5fa/8svvzzwNt1v139pOXDgAKGhoeU6V+ZGF0I8\n6mRWFiHEU0+r1TJ//nz69u1LdHQ04eHhnD17ttQxp0+fxt7e/oZQDrBly5YH1NLSYmNjUVWVli1b\n3hDKL1y4QGxs7ENp171SFKXUcJz/atCgAQBbt259kE0SQogHQoK5EEKgD4MzZ85k0KBBxMXF0bhx\nY06dOlWy39fXl8uXL98wl/js2bNv+YLl/XZ9XvBt27aVGn6SlZXFG2+8cctw+6izt7cnNTX1hjH8\nAH369MHW1pbPP/+c3bt337BfVVW2b99+w5AfIYR4HMhQFiGE+I/JkydjZmbG+PHjiYiIYP369VSv\nXp3Bgwezdu1aGjVqxMsvv4yVlRX79+9nx44dvPTSS/z2228PvK3Ozs507dqVX3/9ldDQUFq0aEFG\nRgbr16/HzMyM0NBQDh48WO5y1TLMSX4vx99Jy5YtWbhwIa1ataJx48YYGxsTGhrKCy+8gK2tLcuW\nLaNDhw40aNCAZs2aUbVqVQwNDYmPj2fPnj3Ex8eTnp6OoaFhhbZLCCHutwrtMb++utp/P/87ldfI\nkSNxd3fHzMyMpk2bcvz48YpsghBC3LOxY8cyduxYkpOTadq0KQcOHOC5557jzz//pGrVqixevJif\nf/4ZU1NTNm/ezPPPP3/T8cu32laRY51nz57N8OHDyc3NZfr06axfv5527dqxY8cOrK2ty11XedtX\n1uPLcy+mTJlCz549OXXqFOPHj2fEiBH8/vvvJfubNGnCkSNHGDhwIBcuXODHH39k1qxZHD58mIYN\nG7Jo0SIsLS3v+pqEEOJhUdQK7OoYOXIkS5YsKbVqnFarxd7eHoAJEyYwduxY5s6dS2BgIKNHj2b7\n9u1ER0djYWFRUc0QQgghhBDisVPhY8y1Wi1OTk4ln+uhXFVVpkyZwscff0zHjh2pVq0ac+fOJTMz\nk4ULF1Z0M4QQQgghhHisVHgwj42Nxd3dHT8/P7p160ZcXBwAcXFxJCcnl1p1zcTEhPDwcHbu3FnR\nzRBCCCGEEOKxUqHBvF69esydO5e1a9cya9YskpKSaNCgAVeuXCEpKQnQv6z0X05OTiX7hBBCCCGE\neFpV6KwsrVq1Kvm6evXq1K9fH19fX+bOncszzzxzy/P+96WcjIyMimyWEEIIIYQQD9TNVnG+k/s6\nj7mZmRnVqlXj9OnTuLq6ApCcnFzqmOTkZFkmWQghhBBCPPXuazDPy8vjxIkTuLq64uvri4uLS6mF\nOPLy8ti+fXvJSm5CCCGEEEI8rSp0KMuQIUNo164dnp6epKSk8Pnnn5Obm0vv3r0BGDx4MOPGjSMo\nKIiAgADGjBmDpaUl3bt3v2WZd/NnAPF02L9/PwC1a9d+yC0RjzJ5TkRZyHMi7kSekYfkm29g4ED9\n1599BqNGQTnWJdi6dStHjhzh7bffRlWz+eWXeSxfvpJliYnkRx1nx5f9OWikwaWSDRdSk0i8lIpO\n1d2xXI2iocrJFOrsjqP6lF8wCm8C3Ptw7AoN5gkJCXTr1o1Lly7h6OhI/fr12b17N56engAMHTqU\n3Nxc3nnnHdLS0qhXrx7r1q3D3Ny8IpshhBBCCCEed7///m8onzQJ3nvvjqccPnyYRYsWMW7cWFQ1\nB40mg9mzp9Pr1TAupF7AxCUdn1BrxrZzIzXDF1WNh3w4d/xcmZrk7RJInaAIwgIaYfnF1xD1OYz6\nHDY2uYcL/VeFLjBUUf7724b0mItbkd4LURbynIiykOdE3Ik8Iw9BQQF06qT/vPbaTQ+Jj49n+KBB\nzFv2G6qazcWLZwgJaUp8wmpiLpzh4KkTrF69Ayf/u8+T9tbO1KnchNpB4TjZuv+7Iz0dfHwgIwMi\nI6FJk3vOsBXaYy6EEEIIIUSFMDKCP/8sNXQlNzeXNm3asGHDOhQlF6dDm1mxfDlpX32A5u32nE+P\nodfgFnwy8yuK1WKAcodya3NLPJ1ccHcIpIpPY3xdK98wgyAANjYwZAgcPgxubvd0qddJMBdCCCGE\nEI8kFQhv3Jjly5dhZ2eMsXEOFy+e48iR3wkOrsTlM3sZX9eTWfH7SJitX9QSq2snloGTjT1uDs54\nObvi4ehC1K5TrF2zh1E/jQAc0WjuEOo/+aRcY97vRIK5EEIIIYR4qNSsLJTiYrC2pn379owY8Smh\noYFANqamsG3bAjp0iECnK2bqjMGcTInmj7mruUw6dK95x/IVFOwtbfD39MLF1gkfN3fcHZw5dDCG\nDz+cSmTkYsACbUEAw4bOQFEq3byX/IaCKy6UgwRzIYQQQgjxgBUXF6PVagF4vWdPnt+7l47O9qir\n5uHiYsqWLYupWbMbqqoy4es3SS+4ytw1v3M09hQFRYVlqsPSxJywylUJcPOhmo8fBm3f50JTCxpM\nn0Fc3DYUxZKqVf04fHgQ+fnumJqa4u/vzNGjR8sWyu8DCeZCCCGEEI+rM2egUqUbtLine truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa312fd0>"
"<matplotlib.figure.Figure at 0x8fa5ba8>"
]
},
"metadata": {},
@@ -2825,7 +2834,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa38c080>"
"<matplotlib.figure.Figure at 0xb4aa908>"
]
},
"metadata": {},
@@ -2858,66 +2867,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Compare to Univariate Kalman Filter"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The equations in this chapter look very different from the equations in the last chapter, yet I claimed the last chapter implemented a full 1-D (univariate) Kalman filter. \n",
"## Exercise: Show Effect of Unobserved Variables\n",
"\n",
"Recall that the univariate equations for the update step are:\n",
"In our filter above velocity is the unobserved variable. How would a filter perform if we did not use velocity in the state?\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
"\\mu &=\\frac{\\sigma_1^2 \\mu_2 + \\sigma_2^2 \\mu_1} {\\sigma_1^2 + \\sigma_2^2}, \\\\\n",
"\\sigma^2 &= \\frac{1}{\\frac{1}{\\sigma_1^2} + \\frac{1}{\\sigma_2^2}}\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"and that the 1-D equations for the predict step are:\n",
"\n",
"$$\n",
"\\begin{aligned}\n",
"\\mu &= \\mu_1+\\mu_2, \\\\ \\sigma^2 &= \\sigma_1^2 + \\sigma_2^2\n",
"\\end{aligned}\n",
"$$\n",
"\n",
"Let's implement a simple 1-D kalman filter using the Kalman filter from this chapter, and compare its output to the kalman filter from the previous chapter by plotting it. We will use a simple model of tracking an object that starts at x=0 and moves by 1 at each step. We will assume the arbitrary value 5 for the measurement noise and .02 for the process noise.\n",
"\n",
"First, let's implement the filter from the last chapter:"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"from __future__ import division\n",
"import numpy as np\n",
"from numpy.random import randn\n",
"from filterpy.kalman import KalmanFilter\n",
"\n",
"# 1-D Kalman filter equations\n",
"def predict(pos, variance, movement, movement_variance):\n",
" return (pos + movement, variance + movement_variance)\n",
"\n",
"\n",
"def update (mu1, var1, mu2, var2):\n",
" mean = (var1*mu2 + var2*mu1) / (var1+var2)\n",
" variance = 1 / (1/var1 + 1/var2)\n",
" return (mean, variance)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now, let's implement the same thing using the kalman filter. I will implement it as a function that returns a KalmanFilter object so that you can run the analysis code several times with the KalmanFilter initialized to the same starting conditions each time."
"Write a Kalman filter that uses the state $\\mathbf{x}=\\begin{bmatrix}x & \\dot{x}\\end{bmatrix}^\\mathsf{T}$ and compare it against the filter in the last exercise which used the state $\\mathbf{x}=\\begin{bmatrix}x\\end{bmatrix}$."
]
},
{
@@ -2927,122 +2881,6 @@
"collapsed": false
},
"outputs": [],
"source": [
"from filterpy.kalman import KalmanFilter\n",
"\n",
"def mkf_filter(R, Q):\n",
" f = KalmanFilter(dim_x=1, dim_z=1, dim_u=1)\n",
" f.P = 500.\n",
" f.H = np.array([[1.]])\n",
" f.F = np.array([[1.]])\n",
" f.B = np.array([[1.]])\n",
" f.Q = Q\n",
" f.R = R\n",
" \n",
" return f"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally, let's compare the two. I will plot the data from the 1-D Kalman filter as a blue line, and the output of the filter from this chapter as red dots. I wrote it as a function so you can easily modify the parameters and regenerate the plots."
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuYAAAEjCAYAAAB+VMTJAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl0VfW9///nOZnHk3kiIQRICGEI8xAhDArOVGzVllvH\n20vbn23V3rv81t7egpbi11tr7e21tvq9rdxarbUO1Uo1KmMICGGGhCSQkAGSA5nn6ez9+yMaTckE\nnCQn8HqslXWSvT/7s9+HtVfWi08+5/OxmKZpIiIiIiIiI8o60gWIiIiIiIiCuYiIiIiIS1AwFxER\nERFxAQrmIiIiIiIuQMFcRERERMQFKJiLiIiIiLgABXMRERERERegYC4i4mIMw+B//ud/WLZsGaGh\noXh6ehIREcG0adO47777eO2117rbvvTSS1itVh5//HGn3Pv06dNYrVaWLVvmlP5ERGTw3Ee6ABER\n+ZxhGKxatYrNmzcTFBTELbfcQmxsLB0dHRw/fpw33niDvXv3ctddd/W4zmKxOOX+n/XjrP5ERGTw\nFMxFRFzIn/70JzZv3syMGTPYvn07AQEBPc63t7eTmZl5wXXO2sRZm0GLiIwcTWUREXEhu3btAuC+\n++67IJQDeHp6snz58u42DzzwAACPP/44Vqu1+2vHjh0A1NfX87Of/Yzly5cTGxuLl5cXERERrFq1\nit27d/fo+6WXXmL8+PEAbNu2rUd//zhV5sCBA3z1q18lJiYGLy8vYmJiuOeeezh16pRz/0FERK4i\nGjEXEXEhoaGhAOTl5Q3YdvXq1dTV1fHXv/6VpUuXsnTp0u5z48aNAyAnJ4cf/ehHLFmyhFtvvZXg\n4GCKi4t55513+Pvf/84777zDjTfeCMDMmTN56KGH+OUvf8m4ceO47777uvv7Yt9//OMfue+++/D2\n9mbVqlXExcVRUFDAq6++yrvvvsu2bdtITU297H8LEZGrjcXU3y1FRFzGoUOHmD9/Pp2dnaxZs4bb\nbruNWbNmMW7cuF7nfb/00ks88MADrF+/nh//+McXnK+vr6ezs5OQkJAex8+cOcO8efMIDAwkNze3\n+3hxcTEJCQksXbqULVu2XNDfyZMnmTp1KnFxcezYsYPo6Ojuc9u3b+e6664jNTWV7Ozsy/lnEBG5\nKmkqi4iIC5kxYwYvv/wykZGR/PGPf+SOO+5gwoQJBAcHc8stt/Daa69d1DzwwMDAC0I5wJgxY/jy\nl79MXl4eZWVl3ccH6vv555+nvb2dX/ziFz1COdA9Kn/gwIEeYV9ERAZHU1lERFzMHXfcwerVq9m6\ndSu7du3i4MGDZGZmsnnzZjZv3sxLL73EO++8g4eHx6D627VrF7/85S/ZvXs358+fp729vcf5M2fO\nEBsbO+i+oGt0vLdRcbvdDkBubi6TJ08eVJ8iItJFwVxExAW5u7uzYsUKVqxYAXQto/jGG2/wwAMP\n8MEHH/D888/zve99b8B+3nrrLb7yla/g6+vLihUrmDBhAn5+flitVrZu3cr27dtpa2sbdF1VVVUA\n/PznP++zjcVioampadB9iohIFwVzEZFRwGq1cscdd3D06FE2bNjAli1bBhXM/+M//gNvb2+ys7OZ\nNGlSj3Nnzpxh+/btF1WHzWbDYrFQVVVFUFDQRV0rIiL90xxzEZFRxN/fH/h8LribmxsADoej1/Yn\nT54kJSXlglBuGEav66EP1F9aWhqmaXYvxygiIs6jYC4i4kJeffVVPvroo14/hFlRUcGLL74IQHp6\nOvD58orFxcW99peQkEB+fj7l5eXdx0zTZP369eTm5l6w0ktwcDAApaWlvfb3ne98B09PT/71X/+1\n1yUdOzs72bp160BvU0REeqHlEkVEXMgjjzzCL3/5S6Kioli0aFH3euRFRUW89957tLa2kpaWxscf\nf4yXlxd1dXXExsbS0dHB3XffzdixY7FYLNxzzz2MHTuWF154gW9961tERERw++234+Hhwa5du8jN\nzeW6667rXnf8s6APsGjRIrKysrjllluYOXMmHh4eLFmyhMWLFwNdu5Pef//9dHZ2csMNN5CYmIjD\n4aC0tJRdu3bR0dFBdXX1SPzziYiMbqYTnT171rznnnvM8PBw09vb20xJSTG3b9/eo826devMmJgY\n08fHx1y6dKl5/PhxZ5YgIjKqlZWVmc8//7x5++23m8nJyabNZjM9PDzMqKgoc8WKFeYLL7xgdnZ2\n9rjmww8/NBctWmQGBASYFovFtFqtPX73vvTSS+aMGTNMPz8/Mzw83Lz99tvNY8eOmevXr7+grWma\nZmFhobl69WozLCzMdHNzM61Wq/n444/3aJOTk2N+4xvfMBMSEkwvLy8zODjYTElJMR944AHzvffe\nG7p/IBGRK5jTRsxra2uZNWsW6enpfOc73yE8PJzCwkKio6NJTk4G4KmnnuKnP/0pmzZtIikpiSee\neILMzEzy8vK6502KiIiIiFyNnBbMf/jDH7Jz50527tzZ63nTNImJieF73/sejz32GACtra1ERETw\n9NNPs3btWmeUISIiIiIyKjntw59vv/028+bN46677iIyMpKZM2fy3HPPdZ8vKirCbrezcuXK7mPe\n3t6kp6eTlZXlrDJEREREREYlpwXzwsJCfv3rXzNx4kQyMjJ46KGH+MEPftAdzisqKgCIjIzscV1E\nRET3ORERERGRq5XTNhgyDIN58+bx05/+FIDU1FQKCgp47rnnePDBB/u99h+X66qrq3NWWSIiIiIi\nw85ms130NU4bMY+JiSElJaXHseTkZEpKSgCIiooCwG6392hjt9u7z4mIiIiIXK2cFsyvueYaTpw4\n0eNYfn5+9xq8CQkJREVFkZGR0X2+tbWVzMxM0tLSnFWGiIiIiMio5LSpLI888ghpaWls3LiRO++8\nk4MHD/KrX/2KJ598EuiarvLwww+zceNGkpOTSUxMZMOGDQQEBLBmzZo++72UPwPI1SE7OxuAOXPm\njHAl4sr0nMhg6DmRgegZkcG43OnYTgvmc+bM4e233+aHP/whP/nJT4iPj2fDhg18+9vf7m7z6KOP\n0tLSwoMPPkhNTQ0LFiwgIyMDPz8/Z5UhIiIiIjIqOS2YA9x0003cdNNN/bZZt24d69atc+ZtRURE\nRERGPafNMRcRERERkUunYC4iIiIi4gIUzEVEREREXICCuYiIiIiIC1AwFxERERFxAQrmIiIiIiIu\nQMFcRERERMQFKJiLiIiIiLgABXMRERERERegYC4iIiIi4gIUzEVEREREXICCuYiIiIiIC1AwFxER\nERFxAQrmIiIiIiIuQMFcRERERMQFKJiLiIiIiLgABXMRERERERegYC4iIiIi4gIUzEVEREREXICC\nuYiIiIiIC3Af6QJERERERFyFYRh0lJYC4BEXh9U6fOPYGjEXEREREQGq68+x48/P8vL/vRtzURpt\nGRkYhjFs99eIuYiIiIhclRyGg9PlJzh++gA5p/dztvJ014nkEBbsyGfy/ffTsWcPXvHxw1KPU0fM\n169fj9Vq7fEVExNzQZsxY8bg6+vLsmXLyMnJcWYJIiIiIiJ9qm+q4ZOcj/n95p/xw9/ezS//8u98\nlP3G56H8U8cnRw57bU4fMU9OTmbbtm3dP7u5uXV//9RTT/HMM8+wadMmkpKSeOKJJ1ixYgV5eXn4\n+/s7uxQRERERuYoZhkFbSTGlNSXkt5SRW3yA0nOnBnVtzrRoWv/5/+IdFzfEVX7O6cHczc2NiIiI\nC46bpsmzzz7LY489xurVqwHYtGkTERERvPLKK6xdu9bZpYiIiIjIVai5rZGcogMc3f0u+RU5NPl6\nDOo6i8VKfGQik4InkByZgtfUhcP64U+nB/PCwkLGjBmDl5cX8+fPZ+PGjSQkJFBUVITdbmflypXd\nbb29vUlPTycrK0vBXEREREQuiWma2GvKOF6UzfGibArP5mKYn35oc4BQ7ucTyOT4mUwZN5vksTPw\n8wkchop759RgvmDBAjZt2kRycjJ2u50NGzaQlpbG8ePHqaioACAysud8nYiICM6ePevMMkRERETk\nCtfR2c7JM8e7w3hVvX3Q146NmEjKuNmkJMxmbMQErFa3gS8aBhbTNM2h6ry5uZmEhAR+8IMfMH/+\nfBYtWkRJSQmxsbHdbR544AHKy8v5+9//3n2srq6u+/uCgoKhKk9ERERERgGr1UpIezuN7Q0cayym\ntCqf8toiOo2OQV3v09rJ+JCJBMemEm1LwMdzaD7bmJiY2P29zWa76OuHdLlEX19fpkyZwsmTJ7nt\nttsAsNvtPYK53W4nKipqKMsQERERkVHLpOb4x3x8/ANKowcfqG0+YcSFJpESMI6YgFhqvbyHdU3y\nSzGkwby1tZXc3FyWL19OQkICUVFRZGRkMHv27O7zmZmZPP300332MWfOnKEsUUax7OxsQM+I9E/P\niQyGnhMZiJ6R4dfp6GBv7lYydr9GdXMVDBDK3d08SIydxpSE2UwZN4dQ2/Avd/jFWR+XwqnB/N/+\n7d9YtWoVcXFxnDt3jp/85Ce0tLRw7733AvDwww+zceNGkpOTSUxMZMOGDQQEBLBmzRpnliEiIiIi\no1RHZzu7j3/Ex9lvUtNY2W9bm19IVxBPmEtS3HS8PLyHqcqh4dRgfubMGb72ta9RWVlJeHg4Cxcu\nZM+ePcR9uv7jo48+SktLCw8++CA1NTUsWLCAjIwM/Pz8nFmGiIiIiIwy7R1t7Dr2AR/vf4v6pppe\n21hMk1ifSKbNuJYpCXOJDU/AYrEMc6VDx6nB/NVXXx2wzbp161i3bp0zbysiIiIio1RbewuZR99n\ny/63aWjpfSqIm9WduWPnsSzxOiKTZwzr2uLDaUjnmIuIiIiI9KalrYkdhzez7eA7NLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa3af9b0>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9bbecf8>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"def plot_kf_compare(x0, p0, R, Q, move):\n",
" # storage for filter output\n",
" x1, x2 = [], []\n",
" p1, p2 = [], []\n",
"\n",
" # initialize the filters\n",
" f = mkf_filter(R, Q)\n",
" f.x[0] = 0.\n",
" f.P[0, 0] = p0\n",
" pos = (x0, p0)\n",
" for i in range(50):\n",
" z = i*move + randn()\n",
" pos = update(pos[0], pos[1], z, R)\n",
" f.update(z)\n",
"\n",
" x1.append(pos[0])\n",
" x2.append(f.x[0])\n",
"\n",
" p1.append(pos[1])\n",
" p2.append(f.P[0, 0])\n",
"\n",
" u = move + randn()\n",
" pos = predict(pos[0], pos[1], u, Q)\n",
" f.predict(u=u)\n",
"\n",
" plt.scatter(range(len(x2)), x2, c='r')\n",
" plt.title('State')\n",
" plt.plot(x1)\n",
" plt.xlim([0, 50])\n",
"\n",
" plt.figure()\n",
" plt.plot(p1)\n",
" plt.scatter(range(len(x2)), p2, c='r')\n",
" plt.title('Variance')\n",
" plt.xlim([0, 50])\n",
" plt.show()\n",
" \n",
"plot_kf_compare(x0=0., p0=500., R=5., Q=.2, move=1.)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Discussion\n",
"\n",
"As you can see, both filters produce the same results. Feel free to vary the initial guess, the measurement noise, and the process noise; so long as you make the same changes to both filters the output should be the same. This is a solid demonstration, albeit not a rigorous proof, that both filters in fact implement the same math for the 1-D case. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercise: Compare to a Filter That Incorporates Velocity\n",
"\n",
"The last example did not use one of the fundamental insights of this chapter, unobserved variables. In this example velocity would the the unobserved variable. Write a Kalman filter that uses the state $\\mathbf{x}=\\begin{bmatrix}x & \\dot{x}\\end{bmatrix}^\\mathsf{T}$ and compare it against the filter in the last exercise which used the state $\\mathbf{x}=\\begin{bmatrix}x\\end{bmatrix}$."
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# your code here"
]
@@ -3058,16 +2896,16 @@
},
{
"cell_type": "code",
"execution_count": 49,
"execution_count": 51,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8e5fef0>"
"<matplotlib.figure.Figure at 0xa3cf630>"
]
},
"metadata": {},
@@ -3075,6 +2913,7 @@
}
],
"source": [
"from numpy.random import randn\n",
"def pos_vel_filter(R, Q):\n",
" f = KalmanFilter(dim_x=2, dim_z=1)\n",
" f.R = R\n",
@@ -3085,6 +2924,16 @@
" f.H = np.array([[1, 0]]) # Measurement function\n",
" return f\n",
"\n",
"def mkf_filter(R, Q):\n",
" f = KalmanFilter(dim_x=1, dim_z=1, dim_u=1)\n",
" f.P = 50.\n",
" f.H = np.array([[1.]])\n",
" f.F = np.array([[1.]])\n",
" f.B = np.array([[1.]])\n",
" f.Q = Q\n",
" f.R = R\n",
" \n",
" return f\n",
"def plot_compare_pos_vel(x0, p0, R, Q, move):\n",
" # storage for filter output\n",
" x1, x2 = [], []\n",
@@ -3118,7 +2967,7 @@
" plt.xlim([0,50])\n",
" plt.show()\n",
" \n",
"plot_compare_pos_vel(x0=0., p0=500., R=5., Q=.2, move=1.) "
"plot_compare_pos_vel(x0=0., p0=50., R=5., Q=.2, move=1.) "
]
},
{
@@ -3127,7 +2976,7 @@
"source": [
"### Discussion\n",
"\n",
"The output of the filter that incorporates velocity into the state produces much better output than the filter that only tracks position - the output is much closer to a straight line. We've already discussed why unobserved variables increase the precision of the filter, so I will not repeat that explanation here. But the last exercise and this one is intended to trigger a train of thought:\n",
"The output of the filter that incorporates velocity into the state produces much better output than the filter that only tracks position - the output is much closer to a straight line. We've already discussed why unobserved variables increase the precision of the filter, so I will not repeat that explanation here. But this exercise is intended to trigger a train of thought:\n",
"\n",
"1. The equations in this chapter are mathematically equivalent to the equations in the last chapter when we are only tracking one state variable.\n",
" \n",
@@ -3759,6 +3608,49 @@
"> **sidebar**: when plotting covariance ellipses, make sure to always use *plt.axis('equal')* in your code. If the axis use different scales the ellipses will be drawn distorted. For example, the ellipse may be drawn as being taller than it is wide, but it may actually be wider than tall."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Update Equations\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
@@ -4000,7 +3892,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.4.1"
"version": "3.4.3"
}
},
"nbformat": 4,