Added Ensemble Kalman Filter chapter.
Had to rename and move directories around to allow the new chapter to fit in.
This commit is contained in:
1 parent
3c6abb8899
commit
a27ebac336
6 files changed
+955
-22
No files matched your search
@@ -0,0 +1,415 @@
|
||||
{
|
||||
"metadata": {
|
||||
"name": "",
|
||||
"signature": "sha256:11e1418ff66f54f922969f038a790dfe89ea35dd53a49764ef0cb06a9c32f67b"
|
||||
},
|
||||
"nbformat": 3,
|
||||
"nbformat_minor": 0,
|
||||
"worksheets": [
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"%matplotlib inline\n",
|
||||
"from __future__ import division, print_function\n",
|
||||
"import matplotlib.pyplot as plt\n",
|
||||
"import numpy as np\n",
|
||||
"from numpy.random import randn\n",
|
||||
"from numpy import array, asarray\n",
|
||||
"\n",
|
||||
"import sys\n",
|
||||
"sys.path.insert(0, '../code') # allow us to import book_format\n",
|
||||
"import book_format\n",
|
||||
"book_format.load_style()\n"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"html": [
|
||||
"<style>\n",
|
||||
"@import url('http://fonts.googleapis.com/css?family=Source+Code+Pro');\n",
|
||||
"@import url('http://fonts.googleapis.com/css?family=Vollkorn');\n",
|
||||
"@import url('http://fonts.googleapis.com/css?family=Arimo');\n",
|
||||
"\n",
|
||||
" div.cell{\n",
|
||||
" width: 850px;\n",
|
||||
" margin-left: 0% !important;\n",
|
||||
" margin-right: auto;\n",
|
||||
" }\n",
|
||||
" div.text_cell code {\n",
|
||||
" background: transparent;\n",
|
||||
" color: #000000;\n",
|
||||
" font-weight: 600;\n",
|
||||
" font-size: 11pt;\n",
|
||||
" font-style: bold;\n",
|
||||
" font-family: 'Source Code Pro', Consolas, monocco, monospace;\n",
|
||||
" }\n",
|
||||
" h1 {\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
"\t}\n",
|
||||
"\t\n",
|
||||
" div.input_area {\n",
|
||||
" background: #F6F6F9;\n",
|
||||
" border: 1px solid #586e75;\n",
|
||||
" }\n",
|
||||
"\n",
|
||||
" .text_cell_render h1 {\n",
|
||||
" font-weight: 200;\n",
|
||||
" font-size: 30pt;\n",
|
||||
" line-height: 100%;\n",
|
||||
" color:#c76c0c;\n",
|
||||
" margin-bottom: 0.5em;\n",
|
||||
" margin-top: 1em;\n",
|
||||
" display: block;\n",
|
||||
" white-space: wrap;\n",
|
||||
" } \n",
|
||||
" h2 {\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
" }\n",
|
||||
" .text_cell_render h2 {\n",
|
||||
" font-weight: 200;\n",
|
||||
" font-size: 20pt;\n",
|
||||
" font-style: italic;\n",
|
||||
" line-height: 100%;\n",
|
||||
" color:#c76c0c;\n",
|
||||
" margin-bottom: 0.5em;\n",
|
||||
" margin-top: 1.5em;\n",
|
||||
" display: block;\n",
|
||||
" white-space: nowrap;\n",
|
||||
" } \n",
|
||||
" h3 {\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
" }\n",
|
||||
" .text_cell_render h3 {\n",
|
||||
" font-weight: 300;\n",
|
||||
" font-size: 18pt;\n",
|
||||
" line-height: 100%;\n",
|
||||
" color:#d77c0c;\n",
|
||||
" margin-bottom: 0.5em;\n",
|
||||
" margin-top: 2em;\n",
|
||||
" display: block;\n",
|
||||
" white-space: nowrap;\n",
|
||||
" }\n",
|
||||
" h4 {\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
" }\n",
|
||||
" .text_cell_render h4 {\n",
|
||||
" font-weight: 300;\n",
|
||||
" font-size: 16pt;\n",
|
||||
" color:#d77c0c;\n",
|
||||
" margin-bottom: 0.5em;\n",
|
||||
" margin-top: 0.5em;\n",
|
||||
" display: block;\n",
|
||||
" white-space: nowrap;\n",
|
||||
" }\n",
|
||||
" h5 {\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
" }\n",
|
||||
" .text_cell_render h5 {\n",
|
||||
" font-weight: 300;\n",
|
||||
" font-style: normal;\n",
|
||||
" color: #1d3b84;\n",
|
||||
" font-size: 16pt;\n",
|
||||
" margin-bottom: 0em;\n",
|
||||
" margin-top: 1.5em;\n",
|
||||
" display: block;\n",
|
||||
" white-space: nowrap;\n",
|
||||
" }\n",
|
||||
" div.text_cell_render{\n",
|
||||
" font-family: 'Arimo',verdana,arial,sans-serif;\n",
|
||||
" line-height: 135%;\n",
|
||||
" font-size: 125%;\n",
|
||||
" width:750px;\n",
|
||||
" margin-left:auto;\n",
|
||||
" margin-right:auto;\n",
|
||||
" text-align:justify;\n",
|
||||
" text-justify:inter-word;\n",
|
||||
" }\n",
|
||||
" div.output_subarea.output_text.output_pyout {\n",
|
||||
" overflow-x: auto;\n",
|
||||
" overflow-y: scroll;\n",
|
||||
" max-height: 50000px;\n",
|
||||
" }\n",
|
||||
" div.output_subarea.output_stream.output_stdout.output_text {\n",
|
||||
" overflow-x: auto;\n",
|
||||
" overflow-y: scroll;\n",
|
||||
" max-height: 50000px;\n",
|
||||
" }\n",
|
||||
" code{\n",
|
||||
" font-size: 70%;\n",
|
||||
" }\n",
|
||||
" .rendered_html code{\n",
|
||||
" background-color: transparent;\n",
|
||||
" }\n",
|
||||
" ul{\n",
|
||||
" margin: 2em;\n",
|
||||
" }\n",
|
||||
" ul li{\n",
|
||||
" padding-left: 0.5em; \n",
|
||||
" margin-bottom: 0.5em; \n",
|
||||
" margin-top: 0.5em; \n",
|
||||
" }\n",
|
||||
" ul li li{\n",
|
||||
" padding-left: 0.2em; \n",
|
||||
" margin-bottom: 0.2em; \n",
|
||||
" margin-top: 0.2em; \n",
|
||||
" }\n",
|
||||
" ol{\n",
|
||||
" margin: 2em;\n",
|
||||
" }\n",
|
||||
" ol li{\n",
|
||||
" padding-left: 0.5em; \n",
|
||||
" margin-bottom: 0.5em; \n",
|
||||
" margin-top: 0.5em; \n",
|
||||
" }\n",
|
||||
" ul li{\n",
|
||||
" padding-left: 0.5em; \n",
|
||||
" margin-bottom: 0.5em; \n",
|
||||
" margin-top: 0.2em; \n",
|
||||
" }\n",
|
||||
" a:link{\n",
|
||||
" font-weight: bold;\n",
|
||||
" color:#447adb;\n",
|
||||
" }\n",
|
||||
" a:visited{\n",
|
||||
" font-weight: bold;\n",
|
||||
" color: #1d3b84;\n",
|
||||
" }\n",
|
||||
" a:hover{\n",
|
||||
" font-weight: bold;\n",
|
||||
" color: #1d3b84;\n",
|
||||
" }\n",
|
||||
" a:focus{\n",
|
||||
" font-weight: bold;\n",
|
||||
" color:#447adb;\n",
|
||||
" }\n",
|
||||
" a:active{\n",
|
||||
" font-weight: bold;\n",
|
||||
" color:#447adb;\n",
|
||||
" }\n",
|
||||
" .rendered_html :link {\n",
|
||||
" text-decoration: underline; \n",
|
||||
" }\n",
|
||||
" .rendered_html :hover {\n",
|
||||
" text-decoration: none; \n",
|
||||
" }\n",
|
||||
" .rendered_html :visited {\n",
|
||||
" text-decoration: none;\n",
|
||||
" }\n",
|
||||
" .rendered_html :focus {\n",
|
||||
" text-decoration: none;\n",
|
||||
" }\n",
|
||||
" .rendered_html :active {\n",
|
||||
" text-decoration: none;\n",
|
||||
" }\n",
|
||||
" .warning{\n",
|
||||
" color: rgb( 240, 20, 20 )\n",
|
||||
" } \n",
|
||||
" hr {\n",
|
||||
" color: #f3f3f3;\n",
|
||||
" background-color: #f3f3f3;\n",
|
||||
" height: 1px;\n",
|
||||
" }\n",
|
||||
" blockquote{\n",
|
||||
" display:block;\n",
|
||||
" background: #fcfcfc;\n",
|
||||
" border-left: 5px solid #c76c0c;\n",
|
||||
" font-family: 'Open sans',verdana,arial,sans-serif;\n",
|
||||
" width:680px;\n",
|
||||
" padding: 10px 10px 10px 10px;\n",
|
||||
" text-align:justify;\n",
|
||||
" text-justify:inter-word;\n",
|
||||
" }\n",
|
||||
" blockquote p {\n",
|
||||
" margin-bottom: 0;\n",
|
||||
" line-height: 125%;\n",
|
||||
" font-size: 100%;\n",
|
||||
" }\n",
|
||||
"</style>\n",
|
||||
"<script>\n",
|
||||
" MathJax.Hub.Config({\n",
|
||||
" TeX: {\n",
|
||||
" extensions: [\"AMSmath.js\"]\n",
|
||||
" },\n",
|
||||
" tex2jax: {\n",
|
||||
" inlineMath: [ ['$','$'], [\"\\\\(\",\"\\\\)\"] ],\n",
|
||||
" displayMath: [ ['$$','$$'], [\"\\\\[\",\"\\\\]\"] ]\n",
|
||||
" },\n",
|
||||
" displayAlign: 'center', // Change this to 'center' to center equations.\n",
|
||||
" \"HTML-CSS\": {\n",
|
||||
" styles: {'.MathJax_Display': {\"margin\": 4}}\n",
|
||||
" }\n",
|
||||
" });\n",
|
||||
"</script>\n"
|
||||
],
|
||||
"metadata": {},
|
||||
"output_type": "pyout",
|
||||
"prompt_number": 1,
|
||||
"text": [
|
||||
"<IPython.core.display.HTML at 0x7f7aee4a4978>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 1
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"pos = 1\n",
|
||||
"vel = 1\n",
|
||||
"p_pos = 1\n",
|
||||
"p_move = .5\n",
|
||||
"\n",
|
||||
"data = [(0,pos+randn()*p_pos) for i in range(1000)]\n",
|
||||
"data = np.asarray(data)\n",
|
||||
"\n",
|
||||
"pos += vel\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"plt.scatter(data[:,0], data[:,1], marker=',')\n",
|
||||
"plt.show()\n"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f7aee499b70>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 3
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"from filterpy.kalman import KalmanFilter\n",
|
||||
"from numpy.random import multivariate_normal\n",
|
||||
"import matplotlib.cm as cm\n",
|
||||
"\n",
|
||||
"vel = 20.\n",
|
||||
"kf = KalmanFilter(dim_x=2, dim_z=1)\n",
|
||||
"kf.F = array([[1, 1], [0, 1]], dtype=float)\n",
|
||||
"kf.H = array([[1, 0]])\n",
|
||||
"kf.x = array([[0., vel]]).T\n",
|
||||
"kf.P *= 100\n",
|
||||
"kf.R *= 10\n",
|
||||
"kf.Q *= .0001\n",
|
||||
"\n",
|
||||
"steps = 6\n",
|
||||
"colors = cm.winter(np.linspace(0, .5, steps))\n",
|
||||
"pcolors = cm.Reds(np.linspace(.5, 1, steps))\n",
|
||||
"for i in range(steps):\n",
|
||||
" kf.predict()\n",
|
||||
" x,y = multivariate_normal(mean=kf.x.T[0], cov=kf.P, size=1000).T\n",
|
||||
" plt.scatter(x,y, marker=',', c=pcolors[i])\n",
|
||||
" \n",
|
||||
" z = (i+1)*vel\n",
|
||||
" kf.update(z)\n",
|
||||
" x,y = multivariate_normal(mean=kf.x.T[0], cov=kf.P, size=1000).T\n",
|
||||
" plt.scatter(x,y, marker='.', c=colors[i], alpha=0.7)"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f7ad12f6da0>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 99
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"collapsed": false,
|
||||
"input": [
|
||||
"def update(mu1, var1, mu2, var2):\n",
|
||||
" if var1 == 0.0:\n",
|
||||
" var1=1.e-80\n",
|
||||
" \n",
|
||||
" if var2 == 0:\n",
|
||||
" var2 = 1e-80\n",
|
||||
" \n",
|
||||
" mean = (var1*mu2 + var2*mu1) / (var1+var2)\n",
|
||||
" variance = 1. / (1/var1 + 1/var2)\n",
|
||||
" return (mean, variance)\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"def predict(mu1, var1, mu2, var2):\n",
|
||||
" return (mu1+mu2, var1+var2)\n",
|
||||
"\n",
|
||||
"pos = 0\n",
|
||||
"pos_p = 100.\n",
|
||||
"move = 1\n",
|
||||
"move_p = .1\n",
|
||||
"sense_p = 8\n",
|
||||
"\n",
|
||||
"N = 10\n",
|
||||
"colors = cm.winter(np.linspace(0, .5, N))\n",
|
||||
"pcolors = cm.Reds(np.linspace(.5, 1, N))\n",
|
||||
"for i in range(N):\n",
|
||||
" pos, pos_p = predict(pos, pos_p, move, move_p)\n",
|
||||
" x,y = multivariate_normal(mean=(pos,i), cov=[[0.001, 0],[0, p_pos]], size=1000).T\n",
|
||||
" plt.scatter(x,y, marker=',', c=colors[i]) \n",
|
||||
" print(pos, pos_p)\n",
|
||||
" \n",
|
||||
" pos, pos_p = update(pos, pos_p, i, sense_p)\n",
|
||||
" x,y = multivariate_normal(mean=(i, pos), cov=asarray([[0.001, 0],[0, pos_p]]).T, size=1000).T\n",
|
||||
" plt.scatter(x,y, marker='.', c=pcolors[i], alpha=0.5) \n",
|
||||
" \n"
|
||||
],
|
||||
"language": "python",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
"1 100.1\n",
|
||||
"1.0740055504162813 7.50795559666975\n",
|
||||
"2.0381768183201006 3.9730859395971154\n",
|
||||
"3.02550842348427 2.7546779733418045\n",
|
||||
"4.018974755764885 2.1491012228687625\n",
|
||||
"5.014956796940505"
|
||||
]
|
||||
},
|
||||
{
|
||||
"output_type": "stream",
|
||||
"stream": "stdout",
|
||||
"text": [
|
||||
" 1.7940228898505703\n",
|
||||
"6.012217081465885 1.5654022438192952\n",
|
||||
"7.010217725218009 1.409220211690132\n",
|
||||
"8.008687415099768 1.2981611057964606\n",
|
||||
"9.007474523188765 1.2169185743509554\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"metadata": {},
|
||||
"output_type": "display_data",
|
||||
"png": "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 truncated
|
||||
"text": [
|
||||
"<matplotlib.figure.Figure at 0x7f7ac824d320>"
|
||||
]
|
||||
}
|
||||
],
|
||||
"prompt_number": 100
|
||||
}
|
||||
],
|
||||
"metadata": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in new issue
Block a user