diff --git a/Multidimensional_Kalman_Filters.ipynb b/Multidimensional_Kalman_Filters.ipynb
index 1878554..f027ddb 100644
--- a/Multidimensional_Kalman_Filters.ipynb
+++ b/Multidimensional_Kalman_Filters.ipynb
@@ -1,7 +1,7 @@
{
"metadata": {
"name": "",
- "signature": "sha256:a964e8a27898e4f08894915ab86bf1c7bd1b164e9c1d6930d669b6dd76e5693c"
+ "signature": "sha256:d266a6bd18568c52ceb2c1f00771d3c94273d7895df01a05ed0584255ea356f2"
},
"nbformat": 3,
"nbformat_minor": 0,
@@ -389,16 +389,18 @@
"cell_type": "markdown",
"metadata": {},
"source": [
- "I have programmed the multivarate Gaussian equation and saved it in the file `stats.py` with the function name `multivariate_gaussian`. I am not showing the code here because I have taken advantage of the linear algebra solving apparatus of numpy to efficiently compute a solution - the code does not correspond to the equation in a one to one manner. If you wish to view the code, I urge you to either load it in an editor, or load it into this worksheet by putting `%load -s multivariate_gaussian stats.py` in the next cell and executing it with ctrl-enter. "
+ "I have programmed the multivarate Gaussian equation and saved it in the file `stats.py` with the function name `multivariate_gaussian`. I am not showing the code here because I have taken advantage of the linear algebra solving apparatus of numpy to efficiently compute a solution - the code does not correspond to the equation in a one to one manner. If you wish to view the code, I urge you to either load it in an editor, or load it into this worksheet by putting `%load -s multivariate_gaussian stats.py` in the next cell and executing it with ctrl-enter. \n",
+ "\n",
+ "However, please note that the Kalman filter equations incorporate this computation automatically; you will not be using this function very often in this book, so I would not spend a lot of time mastering this function unless it interests you."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
- ">As of version 0.14 scipy.stats has implemented the multivariate normal equation with the function `multivariate_normal()`. It is superior to my function in several ways. First, it is implemented in Fortran, and is therefore faster than mine. Second, it implements a 'frozen' form where you set the mean and covariance once, and then calculate the probability for any number of values for x over any arbitrary number of calls. This is much more efficient then recomputing everything in each call. So, if you have version 0.14 or later you may want to substitute my function for the built in version. Use `scipy.version.version` to get the version number. I deliberately named my function `multivariate_gaussian()` to ensure it is never confused with the built in version.\n",
+ ">As of version 0.14 scipy.stats has implemented the multivariate normal equation with the function `multivariate_normal()`. It implements a 'frozen' form where you set the mean and covariance once, and then calculate the probability for any number of values for x over any arbitrary number of calls. This is much more efficient then recomputing everything in each call. So, if you have version 0.14 or later you may want to substitute my function for the built in version. Use `scipy.version.version` to get the version number. I deliberately named my function `multivariate_gaussian()` to ensure it is never confused with the built in version. I will say that for a single call, where the frozen variables do not matter, mine consistantly runs faster as measured by the `timeit` function.\n",
"\n",
- "> If you intend to use Python for Kalman filters, you will want to read the tutorial[1] for the `scipy.stats` module, which explains 'freezing' distributions and other very useful features. As of this date, it includes an example of using the multivariate_normal function, which does work a bit differently from my function."
+ "> The tutorial[1] for the `scipy.stats` module explains 'freezing' distributions and other very useful features. As of this date, it includes an example of using the multivariate_normal function, which does work a bit differently from my function."
]
},
{
@@ -410,7 +412,7 @@
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 2
+ "prompt_number": 35
},
{
"cell_type": "markdown",
@@ -418,7 +420,7 @@
"source": [
"Let's use it to compute a few values just to make sure we know how to call and use the function, and then move on to more interesting things.\n",
"\n",
- "First, let's find the probability for our dog being at (2.5, 7.3) if we believe he is at (2,7) with a variance of 8 for $x$ and a variance of 10 for $y$. This function requires us to pass everything in as numpy arrays (we will soon provide a more robust version that works with numpy matrices, numpy arrays, and/or scalars in any combinations. That code contains a lot of boilerplate which obscures the algorithm).\n",
+ "First, let's find the probability for our dog being at (2.5, 7.3) if we believe he is at (2,7) with a variance of 8 for $x$ and a variance of 10 for $y$.\n",
"\n",
"Start by setting $x$ to (2.5,7.3):"
]
@@ -427,13 +429,12 @@
"cell_type": "code",
"collapsed": false,
"input": [
- "import numpy as np\n",
- "x = np.array([2.5, 7.3])"
+ "x = [2.5, 7.3]"
],
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 3
+ "prompt_number": 58
},
{
"cell_type": "markdown",
@@ -446,12 +447,12 @@
"cell_type": "code",
"collapsed": false,
"input": [
- "mu = np.array([2,7])"
+ "mu = [2.0, 7.0]"
],
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 4
+ "prompt_number": 55
},
{
"cell_type": "markdown",
@@ -464,12 +465,13 @@
"cell_type": "code",
"collapsed": false,
"input": [
- "P = np.array([[8.,0],[0,10.]])"
+ "P = [[8., 0.], \n",
+ " [0., 10.]]"
],
"language": "python",
"metadata": {},
"outputs": [],
- "prompt_number": 5
+ "prompt_number": 56
},
{
"cell_type": "markdown",
@@ -495,12 +497,14 @@
]
}
],
- "prompt_number": 6
+ "prompt_number": 57
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
+ "> Note that the function can accept lists, np.array, or np.matrix as arguments, or even scalars. Type `multivariate_gaussian?` in a cell and press ctrl-enter to get the help for this function. \n",
+ "\n",
"Let's check the probability for the dog being at exactly (2,7)"
]
},
@@ -509,9 +513,12 @@
"collapsed": false,
"input": [
"from __future__ import print_function\n",
+ "import numpy as np\n",
"\n",
- "x = np.array([2,7])\n",
- "print(\"Probability dog is at (2,7) is %.2f%%\" % (multivariate_gaussian(x,mu,P) * 100.))"
+ "x = np.array([2,7]) # using array to show we can use lists and arrays\n",
+ "prob = multivariate_gaussian(x,mu,P) * 100.\n",
+ "\n",
+ "print(\"Probability dog is at (2,7) is {:.3}%\".format(prob))"
],
"language": "python",
"metadata": {},
@@ -524,7 +531,7 @@
]
}
],
- "prompt_number": 7
+ "prompt_number": 61
},
{
"cell_type": "markdown",
@@ -560,7 +567,7 @@
"source": [
"The result is clearly a 3D bell shaped curve. We can see that the gaussian is centered around (2,7), and that the probability quickly drops away in all directions. On the sides of the plot I have drawn the Gaussians for $x$ in greens and for $y$ in orange.\n",
"\n",
- "As beautiful as this is, it is perhaps a bit hard to get useful information. For example, it is not easy to tell if $x$ and $y$ both have the same variance or not. So for most of the rest of this book we will display multidimensional Gaussian using contour plots. I will use some helper functions in `gaussian.py` to plot them. If you are interested in linear algebra go ahead and look at the code used to produce these contours, otherwise feel free to ignore it."
+ "As beautiful as this is, it is perhaps a bit hard to get useful information. For example, it is not easy to tell if $x$ and $y$ both have the same variance or not. So for most of the rest of this book we will display multidimensional Gaussian using contour plots. I will use some helper functions in `stats.py` to plot them. If you are interested in linear algebra go ahead and look at the code used to produce these contours, otherwise feel free to ignore it."
]
},
{
@@ -592,11 +599,11 @@
"output_type": "display_data",
"png": "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\nNjJDQiL7JUMAAAAASUVORK5CYII=\n",
"text": [
- ""
+ ""
]
}
],
- "prompt_number": 9
+ "prompt_number": 76
},
{
"cell_type": "markdown",
@@ -608,7 +615,7 @@
"$$\n",
"\\begin{aligned}\n",
"\\mathbf{\\mu} &= \\begin{bmatrix}2\\\\7\\end{bmatrix} \\\\\n",
- "\\mathbf{\\sigma}^2 &= \\begin{bmatrix}2&0\\\\0&2\\end{bmatrix}\n",
+ "\\Sigma &= \\begin{bmatrix}2&0\\\\0&2\\end{bmatrix}\n",
"\\end{aligned}\n",
"$$ \n",
"\n",
@@ -624,7 +631,7 @@
"$$\n",
"\\begin{aligned}\n",
"\\mu &=\\begin{bmatrix}2\\\\7\\end{bmatrix} \\\\\n",
- "\\sigma^2 &= \\begin{bmatrix}2&0\\\\0&9\\end{bmatrix}\n",
+ "\\Sigma &= \\begin{bmatrix}2&0\\\\0&9\\end{bmatrix}\n",
"\\end{aligned}\n",
"$$\n",
"\n",
@@ -639,7 +646,7 @@
"$$\n",
"\\begin{aligned}\n",
"\\mu &=\\begin{bmatrix}2\\\\7\\end{bmatrix} \\\\\n",
- "\\sigma^2 &= \\begin{bmatrix}2&1.2\\\\1.2&2\\end{bmatrix}\n",
+ "\\Sigma &= \\begin{bmatrix}2&1.2\\\\1.2&2\\end{bmatrix}\n",
"\\end{aligned}\n",
"$$\n",
"\n",
@@ -985,7 +992,7 @@
"\n",
"We use $\\mathbf{x}$ instead of $\\mu$, but recognize this is just the mean of the multivariate Gaussian.\n",
"\n",
- "The other half of the Gaussian is the covariance, $\\sigma^2$. The Kalman filter equations use the alternative symbol $\\mathbf{P}$, but it means the same thing. In the one dimensional Kalman filter we specified an initial value for $\\sigma^2$, and then the filter took care of updating it's value as measurements were added to the filter. The same thing happens in the multidimensional Kalman filter.\n",
+ "The other half of the Gaussian is the covariance $\\Sigma$. The Kalman filter equations use the alternative symbol $\\mathbf{P}$, but it means the same thing. In the one dimensional Kalman filter we specified an initial value for $\\sigma^2$, and then the filter took care of updating it's value as measurements were added to the filter. The same thing happens in the multidimensional Kalman filter.\n",
"\n",
"In the last chapter we initialized the dog's position at 0.0, and set the $\\sigma^2=500$ to indicate that we were very unsure about this initial value. We need to do the same thing for the multidimensional Kalman filter. We will set the initial position to 0.0, the initial velocity to 0.0, and then set $\\sigma^2$ to a 500 for both the position and velocity to reflect our uncertainty. \n",
"\n",
@@ -998,7 +1005,7 @@
"\\end{aligned}\n",
"$$\n",
"\n",
- "I am often frustrated when books use the same value for multiple values, as it can be unclear which value in a matrix corresponds to which variable. ensure that there is no confusion let's look at the example of setting the initial position to 1, the initial velocity to 2.3, the $\\sigma^2$ of the position to 500, and the $\\sigma^2$ of the velocity to 400. In that case we would write:\n",
+ "I am often frustrated when books use the same value for multiple variables in an example as it can be unclear which value corresponds to which variable. To ensure that there is no confusion let's look at the example of setting the initial position to 1, the initial velocity to 2.3, the $\\sigma^2$ of the position to 500, and the $\\sigma^2$ of the velocity to 400. In that case we would write:\n",
"\n",
"$$\n",
"\\begin{aligned}\n",