PEP-8 compliance

This commit is contained in:
Roger Labbe committed 2014-12-01 09:24:51 -08:00
1 parent 43e6d101e9
commit 546eca9a6c
1 file changed
+49 -52
+49 -52
View File
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
"signature": "sha256:26a72ead7479bc0a3d34d1516bcea91514ebd0335f33730b27a5299b7d7a8f0b"
"signature": "sha256:85df0fc94fc4635a6e5ff492b47171d902e6302afab1b362a6d0272e085fd392"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -32,7 +32,7 @@
"from __future__ import division, print_function\n",
"import matplotlib.pyplot as plt\n",
"import sys\n",
"sys.path.insert(0,'../code') # allow us to format the book\n",
"sys.path.insert(0, '../code') # allow us to format the book\n",
"import book_format\n",
"book_format.load_style()"
],
@@ -261,7 +261,7 @@
"output_type": "pyout",
"prompt_number": 1,
"text": [
"<IPython.core.display.HTML at 0x7fb742f517b8>"
"<IPython.core.display.HTML at 0x7f9d3d7a04e0>"
]
}
],
@@ -485,34 +485,33 @@
" that discretizes that equation.\n",
" \n",
" \n",
" Example:\n",
" -------\n",
" **Example**::\n",
" \n",
" Given y'' + y = 2u(t), we create the continuous state model of\n",
" Given y'' + y = 2u(t), we create the continuous state model of\n",
" \n",
" x' = | 0 1| * x + |0|*u(t)\n",
" |-1 0| |2|\n",
" x' = | 0 1| * x + |0|*u(t)\n",
" |-1 0| |2|\n",
" \n",
" and a time step of 0.1:\n",
" and a time step of 0.1:\n",
" \n",
" \n",
" >>> F = np.array([[0,1],[-1,0]], dtype=float)\n",
" >>> G = np.array([[0.],[2.]])\n",
" >>> phi, Q = van_loan_discretization(F, G, 0.1)\n",
" >>> F = np.array([[0,1],[-1,0]], dtype=float)\n",
" >>> G = np.array([[0.],[2.]])\n",
" >>> phi, Q = van_loan_discretization(F, G, 0.1)\n",
" \n",
" >>> phi\n",
" array([[ 0.99500417, 0.09983342],\n",
" [-0.09983342, 0.99500417]])\n",
" >>> phi\n",
" array([[ 0.99500417, 0.09983342],\n",
" [-0.09983342, 0.99500417]])\n",
" \n",
" >>> Q\n",
" array([[ 0.00133067, 0.01993342],\n",
" [ 0.01993342, 0.39866933]])\n",
" >>> Q\n",
" array([[ 0.00133067, 0.01993342],\n",
" [ 0.01993342, 0.39866933]])\n",
" \n",
" (example taken from Brown[2])\n",
" (example taken from Brown[2])\n",
" \n",
" \n",
" References\n",
" ----------\n",
" **References**\n",
" \n",
" [1] C. F. van Loan. \"Computing Integrals Involving the Matrix Exponential.\"\n",
" IEEE Trans. Automomatic Control, AC-23 (3): 395-404 (June 1978)\n",
" \n",
@@ -522,7 +521,7 @@
]
}
],
"prompt_number": 12
"prompt_number": 2
},
{
"cell_type": "heading",
@@ -576,13 +575,13 @@
{
"metadata": {},
"output_type": "display_data",
"png": "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 truncated
"png": "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 truncated
"text": [
"<matplotlib.figure.Figure at 0x7fb742f55dd8>"
"<matplotlib.figure.Figure at 0x7f9d2131da90>"
]
}
],
"prompt_number": 2
"prompt_number": 3
},
{
"cell_type": "markdown",
@@ -770,7 +769,7 @@
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 3,
"prompt_number": 4,
"text": [
"\u23a1 5 4 3\u23a4 \n",
"\u23a2\\Delta{t} \\Delta{t} \\Delta{t} \u23a5 \n",
@@ -789,7 +788,7 @@
]
}
],
"prompt_number": 3
"prompt_number": 4
},
{
"cell_type": "markdown",
@@ -824,13 +823,13 @@
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 4,
"prompt_number": 5,
"text": [
"[\\Delta{t}\u22c5\\Phi_s]"
]
}
],
"prompt_number": 4
"prompt_number": 5
},
{
"cell_type": "code",
@@ -864,7 +863,7 @@
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 13,
"prompt_number": 6,
"text": [
"\u23a1 3 2\u23a4 \n",
"\u23a2\\Delta{t} \\Delta{t} \u23a5 \n",
@@ -878,7 +877,7 @@
]
}
],
"prompt_number": 13
"prompt_number": 6
},
{
"cell_type": "markdown",
@@ -915,13 +914,12 @@
"collapsed": false,
"input": [
"var=symbols('sigma^2_v')\n",
"v = Matrix([[dt**2/2],[dt]])\n",
"\n",
"v = Matrix([[dt**2/2], [dt]])\n",
"\n",
"Q = v * var * v.T\n",
"\n",
"# factor variance out of the matrix to make it more readable\n",
"Q = Q/var\n",
"Q = Q / var\n",
"sympy.MatMul(Q, var)"
],
"language": "python",
@@ -933,7 +931,7 @@
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 5,
"prompt_number": 7,
"text": [
"\u23a1 4 3\u23a4 \n",
"\u23a2\\Delta{t} \\Delta{t} \u23a5 \n",
@@ -947,7 +945,7 @@
]
}
],
"prompt_number": 5
"prompt_number": 7
},
{
"cell_type": "markdown",
@@ -976,13 +974,12 @@
"collapsed": false,
"input": [
"var=symbols('sigma^2_v')\n",
"v = Matrix([[dt**2/2],[dt], [1]])\n",
"\n",
"v = Matrix([[dt**2/2], [dt], [1]])\n",
"\n",
"Q = v * var * v.T\n",
"\n",
"# factor variance out of the matrix to make it more readable\n",
"Q = Q/var\n",
"Q = Q / var\n",
"sympy.MatMul(Q, var)"
],
"language": "python",
@@ -994,7 +991,7 @@
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 6,
"prompt_number": 8,
"text": [
"\u23a1 4 3 2\u23a4 \n",
"\u23a2\\Delta{t} \\Delta{t} \\Delta{t} \u23a5 \n",
@@ -1013,7 +1010,7 @@
]
}
],
"prompt_number": 6
"prompt_number": 8
},
{
"cell_type": "markdown",
@@ -1047,14 +1044,14 @@
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 7,
"prompt_number": 9,
"text": [
"array([[ 0.33333333, 0.5 ],\n",
" [ 0.5 , 1. ]])"
]
}
],
"prompt_number": 7
"prompt_number": 9
},
{
"cell_type": "code",
@@ -1068,7 +1065,7 @@
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 8,
"prompt_number": 10,
"text": [
"array([[ 0.05 , 0.125 , 0.16666667],\n",
" [ 0.125 , 0.33333333, 0.5 ],\n",
@@ -1076,7 +1073,7 @@
]
}
],
"prompt_number": 8
"prompt_number": 10
},
{
"cell_type": "markdown",
@@ -1097,20 +1094,20 @@
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 9,
"prompt_number": 11,
"text": [
"array([[ 0.25, 0.5 ],\n",
" [ 0.5 , 1. ]])"
]
}
],
"prompt_number": 9
"prompt_number": 11
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"common.Q_discrete_white_noise(3,var=1.)"
"common.Q_discrete_white_noise(3, var=1.)"
],
"language": "python",
"metadata": {},
@@ -1118,7 +1115,7 @@
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 10,
"prompt_number": 12,
"text": [
"array([[ 0.25, 0.5 , 0.5 ],\n",
" [ 0.5 , 1. , 1. ],\n",
@@ -1126,7 +1123,7 @@
]
}
],
"prompt_number": 10
"prompt_number": 12
},
{
"cell_type": "markdown",
@@ -1149,7 +1146,7 @@
{
"metadata": {},
"output_type": "pyout",
"prompt_number": 11,
"prompt_number": 13,
"text": [
"array([[ 1.56250000e-08, 7.81250000e-07, 2.08333333e-05],\n",
" [ 7.81250000e-07, 4.16666667e-05, 1.25000000e-03],\n",
@@ -1157,7 +1154,7 @@
]
}
],
"prompt_number": 11
"prompt_number": 13
},
{
"cell_type": "markdown",