Rewrites for orthogonal version of eqns

The changes in the univariate chapter, where I derived the
eqn for K continue to ripple through the chapters.
This commit is contained in:
Roger Labbe committed 2016-01-23 07:18:43 -08:00
1 parent d6becd7428
commit c268a09f5f
7 files changed
+454 -361

No files matched your search

+3 -3
View File
@@ -546,7 +546,7 @@
" \n",
"The equation for Gaussian addition is derived by basic algebra. I assure you it is correct. Therefore it is reasonable to expect that if we are using Gaussians to model physical events, the results must correctly describe those events.\n",
"\n",
"Here is our implementation of the predict function, where `pos` and `movements` are Gaussian tuples:"
"Here is our implementation of the predict function, where `pos` and `movement` are Gaussian tuples:"
]
},
{
@@ -1389,9 +1389,9 @@
"\\hline\n",
"\\text{Equation} & \\text{Implementation}\\\\\n",
"\\hline\n",
" x = L\\bar x & y = z - \\mu_z \\\\\n",
" x = L\\bar x & y = z - \\bar\\mu \\\\\n",
" & K = \\frac {\\bar\\sigma^2} {\\bar\\sigma^2 + \\sigma_z^2} \\\\\n",
" & x = \\bar x + Ky \\\\\n",
" & \\mu = \\bar \\mu + Ky \\\\\n",
" & \\sigma^2 = \\frac {\\bar\\sigma^2 \\sigma_z^2} {\\bar\\sigma^2 + \\sigma_z^2} \\\\\n",
"\\hline\n",
"\\end{array}$\n",
+135 -136
View File
@@ -18,7 +18,7 @@
},
{
"cell_type": "code",
"execution_count": 1,
"execution_count": 102,
"metadata": {
"collapsed": false
},
@@ -295,7 +295,7 @@
"<IPython.core.display.HTML object>"
]
},
"execution_count": 1,
"execution_count": 102,
"metadata": {},
"output_type": "execute_result"
}
@@ -319,21 +319,16 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"The techniques in the last chapter are very powerful, but they only work with one variable or dimension. Gaussians represent a mean and variance that are scalars - real numbers. They provide no way to represent multidimensional data, such as the position of a dog in a field. You may retort that you could use two Kalman filters, one for x coordinate and the other for the y coordinate. That does work, but suppose we want to track position, velocity, acceleration, and attitude. In the last chapter we were forced to assume the dog was traveling at 1 m/s. Position and velocity are related to each other, and as we learned in the g-h chapter we should never throw away information. In this chapter we learn how to describe this relation probabilistically. Through this one key insight we will achieve markedly better filter performance than was possible with the equations from the last chapter."
"The techniques in the last chapter are very powerful, but they only work with one variable or dimension. Gaussians represent a mean and variance that are scalars - real numbers. They provide no way to represent multidimensional data, such as the position and velocity of a dog in a field. In the last chapter we were forced to assume the dog was traveling at 1 m/s. Position and velocity are related to each other, and as we learned in the g-h chapter we should never throw away information. In this chapter we learn how to describe this relation probabilistically. Through this key insight we will achieve markedly better filter performance than was possible with the equations from the last chapter."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Multivariate Normal Distributions"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the last two chapters we used Gaussians for a scalar (one dimensional) variable, expressed as $\\mathcal{N}(\\mu, \\sigma^2)$. A more formal term for this is *univariate normal*, where univariate means 'one variable'. The probability distribution of the Gaussian is known as the *univariate normal distribution*.\n",
"## Multivariate Normal Distributions\n",
"\n",
"In the last two chapters we used Gaussians for a scalar (one dimensional) random variable, expressed as $\\mathcal{N}(\\mu, \\sigma^2)$. A more formal term for this is *univariate normal*, where univariate means 'one variable'. The probability distribution of the Gaussian is known as the *univariate normal distribution*.\n",
"\n",
"What might a *multivariate normal distribution* be? *Multivariate* means multiple variables. Our goal is to be able to represent a normal distribution across multiple dimensions. I don't necessarily mean spatial dimensions - it could be position, velocity, and acceleration. Consider a two dimensional case. This might be the *x* and *y* coordinates of a robot, it might be the position and velocity of a dog on the x-axis, or milk production and feed rate at a dairy. It doesn't really matter. We can see that for $N$ dimensions, we need $N$ means, which we will arrange in a column matrix (vector) like so:\n",
"\n",
@@ -362,16 +357,16 @@
"source": [
"## Correlation and Covariance\n",
"\n",
"The *covariance* describes how much two variables vary together. Covariance is short for *correlated variances*. In other words, *variance* is a measure for how a population vary amongst themselves, and *covariance* is a measure for how much two variables change in relation to each other. Generally speaking as height increases weight also increases. These variables are *correlated*. It is also called *positively correlated* because as one variable gets larger so does the other. As the outdoor temperature decreases home heating bills increase. These are *inversely correlated* because as one variable gets larger the other variable lowers. This is also called *negatively correlated*. The price of tea and the number of tail wags my dog makes have no relation to each other, and we say they are *uncorrelated* - each can change independent of the other.\n",
"*Covariance* describes how much two variables vary together. Covariance is short for *correlated variances*. In other words, *variance* is a measure for how a population vary amongst themselves, and *covariance* is a measure for how much two variables change in relation to each other. For example, as height increases weight also generally increases. These variables are *correlated*. They are *positively correlated* because as one variable gets larger so does the other. As the outdoor temperature decreases home heating bills increase. These are *inversely correlated* or *negatively correlated* because as one variable gets larger the other variable lowers. The price of tea and the number of tail wags my dog makes have no relation to each other, and we say they are *uncorrelated* - each can change independent of the other.\n",
"\n",
"Correlation implies *prediction*. If you are significantly taller than me I can predict that you also weigh more. As winter comes I predict that I will be spending more to heat my house. If my dog wags his tail more I don't conclude that tea prices will be increasing.\n",
"Correlation implies *prediction*. If you are significantly taller than me I can predict that you also weigh more than me. As winter comes I predict that I will be spending more to heat my house. If my dog wags his tail more I don't conclude that tea prices will be increasing.\n",
"\n",
"For example, here is a plot of height and weight of students on the school's track team. If a student is 67 inches tall I can predict they weigh roughly 140 pounds. Since the correlation is not perfect neither is my prediction."
"For example, here is a plot of height and weight of students on the school's track team. If a student is 68 inches tall I can predict they weigh roughly 160 pounds. Since the correlation is not perfect neither is my prediction. "
]
},
{
"cell_type": "code",
"execution_count": 2,
"execution_count": 103,
"metadata": {
"collapsed": false
},
@@ -380,7 +375,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x77c8630>"
"<matplotlib.figure.Figure at 0x9089908>"
]
},
"metadata": {},
@@ -433,7 +428,7 @@
" \\end{bmatrix}\n",
"$$\n",
"\n",
"If you haven't seen this before it is probably a bit confusing. Instead of continuing with the mathematical definitions I will build your intuition with thought experiments. At this point, note that the diagonal contains the variance for each variable, and that all off-diagonal elements (covariances) represent how much the $i$th (horizontal row) and $j$th (vertical column) variables are linearly correlated to each other. So $\\sigma_3^2$ is the variance of the third variable, and $\\sigma_{13}$ is the covariance between the first and third variables.\n",
"If you haven't seen this before it is probably a bit confusing. Let's build your intuition with some thought experiments. At this point, note that the diagonal contains the variance for each variable, and that all off-diagonal elements (covariances) represent how much the $i$th (horizontal row) and $j$th (vertical column) variables are linearly correlated to each other. So $\\sigma_3^2$ is the variance of the third variable, and $\\sigma_{13}$ is the covariance between the first and third variables.\n",
"\n",
"A covariance of 0 indicates no correlation. If the variance for $x$ is 10, the variance for $y$ is 4, and there is no linear correlation between $x$ and $y$, then we would write\n",
"\n",
@@ -449,19 +444,19 @@
"$$\\Sigma = \\begin{bmatrix}10&-9.7\\\\-9.7&4\\end{bmatrix}$$\n",
"\n",
"\n",
"Note that the matrix always symmetric. Logically the covariance between $x$ and $y$ is always equal to the covariance between $y$ and $x$. That is, $\\sigma_{xy}=\\sigma_{yx}$ for any $x$ and $y$."
"Note that the matrix always symmetric. After all, the covariance between $x$ and $y$ is always equal to the covariance between $y$ and $x$. That is, $\\sigma_{xy}=\\sigma_{yx}$ for any $x$ and $y$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's work through a few examples. `numpy.cov` computes the covariance matrix. Lets create data with perfectly correlated data. By this I mean that the data perfectly fits on a line - there is no variance from the line."
"Let's work through a few examples. `numpy.cov` computes the covariance matrix given a list of values for two random variables. Lets create data with perfectly correlated data. By this I mean that the data perfectly fits on a line - there is no variance from the line."
]
},
{
"cell_type": "code",
"execution_count": 3,
"execution_count": 104,
"metadata": {
"collapsed": false
},
@@ -493,7 +488,7 @@
},
{
"cell_type": "code",
"execution_count": 4,
"execution_count": 105,
"metadata": {
"collapsed": false
},
@@ -502,7 +497,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x829e6d8>"
"<matplotlib.figure.Figure at 0x902e240>"
]
},
"metadata": {},
@@ -535,16 +530,16 @@
},
{
"cell_type": "code",
"execution_count": 5,
"execution_count": 106,
"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 0x8540518>"
"<matplotlib.figure.Figure at 0x8fea0f0>"
]
},
"metadata": {},
@@ -554,8 +549,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 7.62 2.93]\n",
" [ 2.93 2.33]]\n"
"[[ 7.68 3.02]\n",
" [ 3.02 2.34]]\n"
]
}
],
@@ -578,16 +573,16 @@
},
{
"cell_type": "code",
"execution_count": 6,
"execution_count": 107,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAN4AAADaCAYAAADJ9vyhAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsfXlcFeX+/3tmzgooiIq4IKmJuLboNzSXyuuSt+zW9abx\nMxO9ahgKopgIsSgimKziQqCIlaKWN7OSXDKv5JZLaqmVG2gqkgvgOWfmzJnl98fjmXPGg7ZcXDvv\n14vXC4aZeZ4z5/nM81nfH0qWZRluuOHGXQV9ryfghht/RbgFzw037gHcgueGG/cAbsFzw417ALfg\nueHGPYBb8Nxw4x7ALXhuuHEPcEcEr7KyEmFhYfDz84PRaESXLl1QVlZ2J4Zyw40HEpr6vmFNTQ16\n9+6Nfv36obS0FE2aNMHp06fh5+dX30O54cYDC6q+M1fi4uJQVlbm3uHccOM2qHdV89NPP0VISAhe\ne+01NGvWDE888QQWLVpU38O44cYDjXoXvNOnT2Px4sVo164dNm/ejClTpiA2NhaLFy+u76HccOOB\nRb2rmnq9Hk899ZRK1YyPj8f69etx9OhR1bk1NTX1ObQbbtwX8Pb2/s1z6n3Ha968OTp27Kg61rFj\nR5w9e7a+h3LDjQcW9S54vXv3xk8//aQ69tNPPyEwMLC+h3LDjQcW9R5OiI6ORu/evTF37lyMGDEC\nBw8eRF5eHtLT02973e/ZnusL+/fvBwD06NHjro15r8b9K33WeznuHzWb6n3H69GjB9avX4+1a9ei\na9euSEhIQGpqKsLDw+t7KDfceGBR7zseAAwZMgRDhgy5E7d2w42HAu5cTTfcuAdwC54bbtwDuAXP\nDTfuAdyC54Yb9wBuwXPDjXsAt+C54cY9gFvw3HDjHsAteG64cQ/gFjw33LgHcAueG27cA7gFzw03\n7gHcgueGG/cAbsFzw417ALfgueHGPYBb8Nxw4x7ALXhuuHEP4BY8N9y4B3ALnhtu3AO4Bc8NN+4B\n7rjgpaWlgaZpREZG3umh3KgHSJKEigorKiqskCTpXk/nocUdFbw9e/agsLAQjz322J0cxo16giRJ\n2LzZip49tejZU4vNm93Cd6dwxwSvpqYGr7/+OpYvXw4fH587NYwb9Yhz52wYM0aPykoalZU0xozR\n49w5272e1kOJO0LvBwATJkzA8OHD8cwzz9ypIdyoB0iS5CRcrrtbPbfWcOMG6r1pCQAUFhaioKAA\ne/fuBU3TeO6559C1a1csWLBAdZ4z++6JEyfqexoPBWiaBs/7AgB0uqv1qvrRNI2Kikfw1ltEI1m8\n+DouXdJg1iwjACAtjUXXrlcgy1V3fW4PGtq3b6/8fk+alvz888+Ij4/HqlWrQNNup+n/ArtgvPJK\na7zySmtUVDyieqY0TUMQmkAQmvzms67rXJ73xVtv+Siq5VtvNcClSxRyc1mEhvKYN0+PigrvOu/9\nW3Nz4zcg1zOKi4tlmqZljUaj/FAUJdM0LWu1WpnneeXc6upq5eduYt++ffK+ffvu6ph1jSuKolxe\nzsnl5ZwsiqLL+WfOsLK/vygDsgzIsr8/Od9+bWmpRfb3F2V/f/J7XffYt2+ffODAAdW5GzaY5IoK\nVj592uJy/+3ba285pjPKy7nbnne/POO7hT+6luv9FfXKK6/g+++/x+HDh5WfHj16IDQ0FIcPH4ZW\nq63vIR9I/JYHUZIknD4t3vL6P+II4Xlf1bkTJhixZImMI0dExMZy8PeX4O8voaiIwyOP3DGz3w0n\n1PtTbtiwITp16qQ65unpCV9fX5e+eX9lOAsOAIwZo8eePTYEBuqV/0dE6BETY0VGBjlWUMAiIMD4\nh8eiKMrlWLt2EmJjDRg8WEBCAodz5yh07kyjVSsdli+3YswYMuby5VYEBOhdrg8I0P6u89yoG3fl\n9VbXF+/Gb6O6msbcuXoMG2aDl5eMxx5jFDvq9y58mqYhikakpbGYOZMIbWwsBy8vCbNnc9i9W4O8\nPB3Cw3nIMjl/0CDyEiDj6G9p4/2e89yoG3dF8LZt23Y3hnkgQJwSVsiyjA8+4DBqlAGAq+DYBSs6\nWgsvLxkvviiiRQu96j4DBmixaRMHAOjUSacsfHuIgKJknD37CCZO9IGPj4T33jOjqopGaakGr70m\nITLSAwAQE2NFfr4Ojz3GISBAAk3TCAjQ4tw5G86dsyEgQHtL4bPv0M7j2v/3e72cztfdaqyHDW6F\n/i7C7gl84QVi5xYVcdi7l4csUy47hl2w3n3XigkTjCgpAT74gMOjjwqgKAotWzLYutWGMWMcgjto\nELl+2zYOGzfS6NRJREKCw2v55pueCA3lMW4cj7FjPRU1NyNDj9BQHhs2aPDIIzxoGjh8WMSECUZl\nngMGaHH8OBGOTp100GjI0rELjSzLKC8XsWEDAwDo3/8RtGhR/pvPxG7rOu/cgwY9/Lvnw/3p7jPc\n7L4fO9YAWaYQGFj3Qjt/nix+ngeGD+dRUyNhyBANevbUYsMGDvv3y+B5gOeBzZsp/PADh/PnrTh6\nFCgp0eHYMcblniYThS1bXB1cAwbYsGsXg9OnRSxZIivjDh1qw5YtNL75hsXgwQYMHmzA+vVWCIKg\nchD16qXD+fNAaakGJSU6nDplgCg2BnD7/M+/araMW/DqEX8mwbimRrztuT4+EhISOKxdq8OkSR4Y\nN84GngciIjzQrZuIDz80o7jYjNJSDQYPNuD4cQHp6QZUVtJYsUKn8lrGxFixbp0WpaUapKayyvGs\nLBY//EBjzhwOERF6BATI8PGREBdnxWefaVFSokNlJQOeByoraUyebMSxY1YXoYmJMaJvXxGVlTTS\n0w2w2Yzu/M9bwC149YTfs8B0uqtYvLhaWfCxsRwmTNBi+3YW5eUcBEFARYUV5eUczp1jUVMjoKCA\nxbx5BmVxZ2QQZ4uPj4SrV2mMHeuJCRM88eabPEaM4HH5MoXQUB7jx1sBAPn5OixbZsaCBRYsXaqF\nTge8844VBQU6hIbyKCw0Y/lyLdq1E6HXA+npLEwmGXPmcMjIcAjV1KlGDBvm2ImsVgk1Na7hjscf\nFzF+vBU+PhIYhv3NHc1uy9qfCbF1H/6Qk9vGqyf8VngAIMLZps1ZbNigxeHDNPLzdQgNFTByJLGl\n8vJYJCSQ8995x4qYGCNSUliXsby8ZMydy6GsTIPhw3l4eMjw8pLRu7cNv/5Ko6REBwBITCTeS5aV\n0bSpjHffZfHddwysVhkhISJEEdi9W4P4eA5VVTSGDyfOltxcFg0bumYSPvWUgLIyBuHhPCwW4I03\ndIiP55CaalCuS0rSo7qaRm6uGXr9NQD+t31uf1Xv6MP/Ce8j0DSN8vLWeOklTyQkGPH227xqV5k8\n2YjBgwVMnszjwAGi2p0+TSMtzaEW5uSw8PWVcP06hZISHdau1cHfX0Zmph5aLXDyJIOhQ4k6mp5u\nQJs2EjiOQWioFyZM8ERwsIyrVylQFBAcLIJlKZSXMzh0yHFdVJQR27drEBNjVe3OmZl6zJhhRXCw\niPBwI6qqyPIJDeWRkkKE7scfNaispBEV5QmO8/ldO5rdO3orW/dhhHvH+5O42QV+c1ytoIBFy5bq\nuBrP+2LiRB9lV9yzR+388PGR0Lu3oLj5k5M5aDQy8vN1SElh0bq1BA8PCU2bUhg50ku5T3q6ASNG\n8Kiudux28+ezKCjQ4fp1CjExRuXcqCiyi167JkMUifCWlADx8Ry++orGkiUsvvuOnDt3rh7p6SyO\nH2cwe7YBV6/SmDmTRlGRGa+9xqNrVwnHjtEQRYDnKVRXq4VGkjxw7pwNAwZo//CO9rCHGB6uT3OX\nUJc9BwADBmixerUFKSksdu2isX07f1tHQmmpBllZZDcLDhaQm8ti926N4sSYO9eAqioKr79uw7Fj\nDL78UouzZxlcuOD6tQUFSZg506jsnvHxRqSmctBoiED7+koYP96K0FAeFAW0aSMhNdVhO6amGjB9\nuhVJSXpYrRT69RMwYwaLpk0llJTocPWqY0yLhUJ+vgERER549FEZmzeTIHx2tmNnzs0149//9kXP\nnlps3UpigfYd7becUH8Fh4x7x/sTuJU9R1EyDh0iHj0A8PfnEBTEo3Vr8rdOdxVLljTExImkDGf6\ndA4tWshYu9aE8nIGo0d7AgDi4qyYO5fslt27izh1ilF2ssBACU88YUNmpgX795Ovr0cPASdOuArj\nF18Qj+SiRRZcuULh+HGyw3p6yvDzc13IRqOEN9/kMW+eASUlOqSlsfj1VxqzZ5NdT6+X8dxzNnz9\ntRY8D1y9SiMnR4fUVA6VlTSKirRYvdqMxo0prFypQd++Itato1X2bl1xuwEDtDh/njhq7IH737KX\nH3S4Ba8eUV0tKa58gKiAzz3HoXVrxzkBASZs2KCFRiPh5EkNXnvNA+HhHPLzHddlZOgxejSPbt1E\nNGoku9zzgw8EXL3qUCsffVTEU08J6NjRgqgooqbGxnKKenjgAAM/P1klvJIELF1qRkyMEdXVNGJj\nOZSVaVFc7FjwM2caMXasFe3bS8q1/v4y1q/XIiGBw4cfajF5Mo+ICI8b82axbx+NRx8FiouJkCQk\ncPj1Vwo1NRLOnpVRXS1hzBiDSqhWrmQVB9Py5VZ06vTwpxi6Vc0/gVs5DBo0cF0wDRpQEAQBR46Y\nYTK1w969jfHSS544cECDyEgjPD0ldO/u6pYfNMiGefP0WLdO5/K/CxdonD5NY+hQGzw9JZw8yeDS\nJQaenpLi6MjPd6iHbdo4Xgj2GJvFQmHcOE+kpHAYO9aK2bMNuHLFdTm0aaNWYdPTDejbV8S8eQYk\nJXGK/WiP4z3xhISJEx3H5s0zgGUpDB5sxCefSCgpoeDjQ9Ree9jh888ZVbhBkvDQhLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x77c8438>"
"<matplotlib.figure.Figure at 0x894c358>"
]
},
"metadata": {},
@@ -597,8 +592,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 1.0 -0.000632]\n",
" [ -0.000632 1.01]]\n"
"[[ 1.01 0.00585]\n",
" [ 0.00585 1.0]]\n"
]
}
],
@@ -639,7 +634,7 @@
},
{
"cell_type": "code",
"execution_count": 7,
"execution_count": 108,
"metadata": {
"collapsed": false
},
@@ -648,7 +643,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8d41d30>"
"<matplotlib.figure.Figure at 0xa313358>"
]
},
"metadata": {},
@@ -670,21 +665,21 @@
"source": [
"This is a plot of multivariate Gaussian with a mean of $\\mu=[\\begin{smallmatrix}2\\\\17\\end{smallmatrix}]$ and a covariance of $\\Sigma=[\\begin{smallmatrix}10&0\\\\0&4\\end{smallmatrix}]$. The three dimensional shape shows the probability density of for any value of ($X, Y$) in the z-axis. I have projected the variance for x and y onto the walls of the chart - you can see that they take on the normal Gaussian bell curve shape. The curve for $X$ is wider than the curve for $Y$, which is explained by $\\sigma_x^2=10$ and $\\sigma_y^2=4$. The highest point of the curve is at the the means for $X$ and $Y$. \n",
"\n",
"All multivariate Gaussians have this shape. If we think of this as a the Gaussian for the position of a dog, the z-value at each point of ($X, Y$) is the probability density of it being at that position. Strictly speaking this is the *joint probability density function*, which I will define soon. So, the dog has the highest probability of being near (2, 17), a modest probability of being near (5, 14), and a very low probability of being near (10, 10). As with the univariate case this is a *probability density*, not a *probability*. Continuous distributions have an infinite range, and so the probability of being exactly at (2, 17), or any point, is 0%. We can compute the probability of being within a given range by computing the area under the curve. "
"All multivariate Gaussians have this shape. If we think of this as a the Gaussian for the position of a dog, the z-value at each point of ($X, Y$) is the probability density of it being at that position. Strictly speaking this is the *joint probability density function*, which I will define soon. So, the dog has the highest probability of being near (2, 17), a modest probability of being near (5, 14), and a very low probability of being near (10, 10). As with the univariate case this is a *probability density*, not a *probability*. Continuous distributions have an infinite range, and so the probability of being exactly at (2, 17), or any other point, is 0%. We can compute the probability of being within a given range by computing the area under the curve. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"FilterPy [2] implements the equation with the function `filterpy.stats.multivariate_gaussian`. SciPy's `stats` module implements the multivariate normal equation with `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. I named my function `multivariate_gaussian()` to ensure it is never confused with the SciPy version. I will say that for a single call, where the frozen variables do not matter, mine consistently runs faster as measured by the `timeit` function.\n",
"FilterPy [2] implements the equation with the function `multivariate_gaussian` in the `filterpy.stats.` module. SciPy's `stats` module implements the multivariate normal equation with `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. I named my function `multivariate_gaussian()` to ensure it is never confused with the SciPy version. I will say that for a single call, where the frozen variables do not matter, mine consistently runs faster as measured by the `timeit` function.\n",
"\n",
"> The <a href=\"http://docs.scipy.org/doc/scipy/reference/tutorial/stats.html\">tutorial</a>[1] for the `scipy.stats` module explains 'freezing' distributions and other very useful features."
]
},
{
"cell_type": "code",
"execution_count": 8,
"execution_count": 109,
"metadata": {
"collapsed": false
},
@@ -706,7 +701,7 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 110,
"metadata": {
"collapsed": false
},
@@ -724,7 +719,7 @@
},
{
"cell_type": "code",
"execution_count": 10,
"execution_count": 111,
"metadata": {
"collapsed": false
},
@@ -737,12 +732,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Finally, we have to define our covariance matrix. In the problem statement we did not mention any correlation between $x$ and $y$, and we will assume there is none. This makes sense; a dog can choose to independently wander in either the $x$ direction or $y$ direction without affecting the other. If there is no correlation between the values place the variances in the diagonal, and set off-diagonal elements to zero. I will use name `P`. Kalman filters use the name $\\textbf{P}$ for the covariance matrix, and we need to become familiar with the conventions."
"Finally, we have to define our covariance matrix. In the problem statement we did not mention any correlation between $x$ and $y$, and we will assume there is none. This makes sense; a dog can choose to independently wander in either the $x$ direction or $y$ direction without affecting the other. If there is no correlation between the values place the variances in the diagonal, and set off-diagonal elements to zero. I will use the variable name `P`. Kalman filters use the name $\\textbf{P}$ for the covariance matrix, and we need to become familiar with the conventions."
]
},
{
"cell_type": "code",
"execution_count": 11,
"execution_count": 112,
"metadata": {
"collapsed": false
},
@@ -761,7 +756,7 @@
},
{
"cell_type": "code",
"execution_count": 12,
"execution_count": 113,
"metadata": {
"collapsed": false
},
@@ -787,7 +782,7 @@
},
{
"cell_type": "code",
"execution_count": 13,
"execution_count": 114,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -797,7 +792,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8d41160>"
"<matplotlib.figure.Figure at 0x8fad550>"
]
},
"metadata": {},
@@ -808,7 +803,7 @@
"import mkf_internal\n",
"import matplotlib.pyplot as plt\n",
"\n",
"ax = mkf_internal.plot_3d_covariance(mu, P)"
"mkf_internal.plot_3d_covariance(mu, P)"
]
},
{
@@ -817,7 +812,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 density quickly drops away in all directions. This plot shows what is known as the *joint probability*. On the sides of the plot I have drawn the *marginal probability* for $X$ and $Y$ (defined below).\n",
"\n",
"It's time to define some terms. The *joint probability*, denoted $P(x,y)$, is the probability of both $x$ and $y$ happening. For example, if you have two die $P(2,5)$ is the probability of the first die rolling a 2 and the second die rolling a 5. Assuming the die are six sided and fair, the probability $P(2,5) = \\frac{1}{6}\\times \\frac{1}{6}=\\frac{1}{36}$. The 3D chart above shows the *joint probability density function*.\n",
"It's time to define some terms. The *joint probability*, denoted $P(x,y)$, is the probability of both $x$ and $y$ happening. For example, if you roll two die $P(2,5)$ is the probability of the first die rolling a 2 and the second die rolling a 5. Assuming the die are six sided and fair, the probability $P(2,5) = \\frac{1}{6}\\times \\frac{1}{6}=\\frac{1}{36}$. The 3D chart above shows the *joint probability density function*.\n",
"\n",
"The *marginal probability* is the probability of an event happening without regard of any other event. In the chart above the Gaussian curve drawn to the left is the marginal for $Y$. This is the probability for the dog being at any position in $Y$ disregarding the value for $X$. In back I've plotted the marginal for $X$, which is the probability of the dog being at any position in $X$ disregarding $Y$."
]
@@ -831,16 +826,16 @@
},
{
"cell_type": "code",
"execution_count": 14,
"execution_count": 115,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAr8AAADBCAYAAADGrth2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXd8FNX6/z+zNb3RQQggJYhIvRh6EQRBRYpyRRRRRFAQ\ng1RpoiL9IkWKSBGxgF65qICi0lF+AYIgGEIoEoqRkl62ZHd+f+x3xtnJ7O7ULcl5v155ZXd298w5\nM2fOfOY5z3keiqZpGgQCgUAgEAgEQiVAF+gKEAgEAoFAIBAI/oKIXwKBQCAQCARCpYGIXwKBQCAQ\nCARCpYGIXwKBQCAQCARCpYGIXwKBQCAQCARCpYGIXwKBQCAQCARCpYGIXwKBQCAQCARCpYGIXwKB\nQCAQCARCpYGIXwKBQCAQCARCpYGIXwKBQCAQCARCpYGIXwKBQCAQCARCpYGIXwKBQCAQCARCpYGI\nXwKBQCAQCARCpYGIXwKBQCAQCARCpYGIXwKBQCAQCARCpYGIXwKBQCAQCARCpYGIXwKBEDQ4nc5A\nV4FAIBAIFRxDoCtAIBAqJzRNw+l0wul0gqZp0DQNm80GmqZBURQAgKKocq+ZP51OB51OV+4zAoFA\nIBC8QcQvgUDQFJqmAcBN6PItvFyBy/8t83tuWfzX/N8JiWFGMHP/879HxDOBQCBUfIj4JRAIqsGI\nVa7I5YpUAIostHwxK6Yu3PdCr8UKZ761mSugxdSHQCAQCMEBEb8EAkEWQm4LgMvCK+S2IAaKosqJ\nZbXQSjh7c9PgbuOKZSKcCQQCIXBQtFZ3GgKBUGEQErrerKdysdvtmonfQOJJPAPuItnpdMLhcABw\nWZZNJhPxcyYQCASVIZZfAoHAwggzh8MBmqZRXFyMsrIy0DSN8PBwGAwGTa2VWlp+A4lYqzNN07Ba\nrQBc4lev1xM/ZwKBQFAZIn4JhEoK1z+X77rA4HA4YLfbAbi7MxD8B/FzJhAIBHUh4pdAqAR4Erl8\nQSQkirhl+KuuRFSpA/FzJhAIhPIQ8UsgVCCkhBXjvxbC3+KXCKLgwVs/EQpJx/3v7TX39ySeM4FA\nCARE/BIIIYrWYcWY33P3RyCIRSurs8ViYd+HhYWxFmXud4ifM4FA8AYRvwRCCCAkctUWukJoLX5p\nmobD4UBZWRn7n5lS92QJ5G/j15MQ+ngSzkx/4aJlIhSA+DkTCBURIn4JhCDDV1gxQBuhK4Sa4pem\n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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAr8AAADBCAYAAADGrth2AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzsnXl8E9X6/z+TpUl3mrIUsLKVpbJpQaVwiyCLsokgLiCy\neL24gLL4ReAicBFQ4eKCC+ByRVEQEUUUraCyCahA2QVKC1gQKQVKl7RJkybz+yO/GSfTSTJrlva8\nX6++mkySM+fMnJn5nOc853komqZpEAgEAoFAIBAIdQBdqCtAIBAIBAKBQCAECyJ+CQQCgUAgEAh1\nBiJ+CQQCgUAgEAh1BiJ+CQQCgUAgEAh1BiJ+CQQCgUAgEAh1BiJ+CQQCgUAgEAh1BiJ+CQQCgUAg\nEAh1BiJ+CQQCgUAgEAh1BiJ+CQQCgUAgEAh1BiJ+CQQCgUAgEAh1BiJ+CQQCgUAgEAh1BiJ+CQQC\ngUAgEAh1BiJ+CQQCgUAgEAh1BiJ+CQQCgUAgEAh1BiJ+CQQCgUAgEAh1BiJ+CQQCgUAgEAh1BiJ+\nCQRC2OB2u0NdBQKBQCDUcgyhrgCBQKib0DQNt9sNt9sNmqZB0zQcDgdomgZFUQAAiqJqvGb+dDod\ndDpdjc8IBAKBQPAHEb8EAkFTaJoGAC+hy7fwcgUu/7fM77ll8V/zfyckhhnBzP3P/x4RzwQCgVD7\nIeKXQCCoBiNWuSKXK1IBKLLQ8sWsmLpw3wu9Fiuc+dZmroAWUx8CgUAghAdE/BIIBFkIuS0AHguv\nkNuCGCiKqiGW1UIr4ezPTYO7jSuWiXAmEAiE0EHRWj1pCARCrUFI6PqznsrF6XRqJn5DiS/xDHiL\nZJqmUV1dzb43mUzEz5lAIBBUhlh+CQQCCyPMXC4XaJpGRUUFqqurQdM0oqOjYTAYNLVWamn5DSVS\nrM5VVVXsa4PBQPycCQQCQWWI+CUQ6ihc/1y+6wKDy+WC0+kE4O3OQAgexM+ZQCAQ1IWIXwKhDuBL\n5PIFkZAo4pYRrLoSUaUOxM+ZQCAQakLEL4FQi5ASVoz/Wohgi18iiMIHf/1EKCQd97+/19zfk3jO\nBAIhFBDxSyBEKFqHFWN+z90fgSAWrazO1dXV7KJAg8GAqKgo4udMIBAkQcQvgRABCIlctYWuEFqL\nX5qm4XK5UF1dzf5nptR9WQL52/j1JEQ+/oQz02cAjw+ylolQmH2QvkYg1C6I+CUQwoxAYcUAbYSu\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x80be5c0>"
"<matplotlib.figure.Figure at 0x8a6b898>"
]
},
"metadata": {},
@@ -862,12 +857,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"As beautiful as these plots are, it is hard to get useful information from them. For example, it is not easy to tell if $X$ and $Y$ both have the same variance. In most of the book I'll display Gaussians using contour plots using helper functions from FilterPy."
"As beautiful as these plots are, it is hard to get useful information from them. For example, it is not easy to tell if $X$ and $Y$ both have the same variance. In most of the book I'll display Gaussians using contour plots using helper functions from FilterPy.\n",
"\n",
"The contour plots display the range of values that the multivariate Gaussian takes for a specific standard deviation. This is like taking a horizontal slice out of the 3D plot. "
]
},
{
"cell_type": "code",
"execution_count": 15,
"execution_count": 116,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -877,7 +874,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAm4AAAERCAYAAADCNCuaAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmUXGWZP/Dv3W/tS++d7qQTIGGRH6ggM8rBhgERBWVQ\nDjCOk4DHkwHFAXVEBTQgi4geF0BFRhHxODjOEEUGESWoqKiDjuMRNTEk6b26u/b17u/vj15I6E7S\nXX2r6lbV8zmnj1hdfeutVD33Pvd5N44xxkAIIYQQQjyPb3QDCCGEEELIylDiRgghhBDSJChxI4QQ\nQghpEpS4EUIIIYQ0CUrcCCGEEEKaBCVuhBBCCCFNghI3QgghhJAm0XaJ244dO8DzPEZHRxvdlCV4\nnsdVV13V6GYQ4mkUw4R4k5dj001DQ0M455xzGvb6bZe4cRwHjuOWPP6HP/wBt9xyC8466ywMDAxA\nURT09/fjbW97G5599tmqXuu5557Dm9/8ZnR0dMDv9+OUU07B5z//eTiOs9a3QUjbohgmxJvqEZuW\nZeHzn/88rrrqKrzyla+EoijgeR5f+cpXVt3eyclJ3HvvvbjwwgtxzDHHwOfzIR6PY3h4GN/4xjeO\n+D4bSWzoq3vI9u3b8Zvf/Aannnoq3vrWtyISieDPf/4zHnvsMezcuRP33nsvrrnmmhUf73vf+x7e\n/va3w+fz4bLLLkM8Hsf3v/99XH/99fjlL3+Jb3/72zV8N4S0H4phQrzJzdgslUq4/vrrwXEcenp6\n0NfXh7Gxsaradc899+Cuu+7Chg0bMDw8jHXr1mFychKPPvootm3bhieeeAKPPPJIVceuKdZmduzY\nwXieZyMjI4c8fs8997A9e/Ysef4zzzzDJEliqqqy6enpFb1GPp9nXV1dTFVV9rvf/W7xcV3X2Wtf\n+1rG8zz79re/veTvOI5jV1555SrfESHthWKYEG+qR2wahsGefPJJlkgkDnnN+++/f9Xt3blzJ/vJ\nT36y5PGpqSk2ODjIeJ5nO3fuXPL7oaEhdvbZZ6/69dzSdl2lh/Pe974Xxx133JLHh4eHcfbZZ8Mw\nDPziF79Y0bG+853vIJlM4oorrsArX/nKxcdlWcZtt90Gxhi+9KUvudZ2QgjFMCFe5WZsSpKE888/\nHz09PWtu18UXX4zXv/71Sx7v7e3F1VdfDcYYnnnmmTW/jtsocVsBSZIAAKK4sp7lZ555BhzH4fzz\nz1/yu7POOgt+vx+//OUvYZqmq+0khCyPYpgQb1ptbNaLV9sFUOJ2VCMjI3j66afh9/tx1llnrehv\ndu/eDQDYvHnzkt8JgoCNGzfCsizs27fP1bYSQpaiGCbEm6qJzXqwbRsPPfQQOI7DG9/4xkY3Zwnv\npZIeomkaLr/8chiGgTvuuAORSGRFf5fL5QDgsM9feDybzbrTUELIsiiGCfGmamOzHj7wgQ/ghRde\nwEUXXYTzzjuv0c1Zgipuh2GaJi699FL85je/wTve8Q5cf/31jW4SIWQVKIYJ8SYvx+add96JL3zh\nCzj55JOPuCRII1HitgzDMHDJJZfgiSeewDvf+U489NBDq/r7hTuHhbv2l1t4PBqNrq2hhJBlUQwT\n4k1rjc1auv3223HjjTfi1FNPxa5duzxVBTwYJW4vU6lUcOGFF+KJJ57Au971Lnz9619f9WJ7W7Zs\nAQDs2bNnye9s28b+/fshiiI2bdrkSpsJIS+hGCbEm9yIzVq56aabcPPNN+P000/Hrl270NHR0egm\nHRYlbgcpFot44xvfiKeffhrvec97qlqJGQDOOeccMMbw5JNPLvndT3/6U5TLZbzuda9bnLVCCHEH\nxTAh3uRWbNbC+9//ftxxxx147Wtfix//+Meer6RT4jYvl8vh3HPPxc9//nN84AMfwBe+8IWqj/X2\nt78dnZ2deOSRR/Db3/528XFd13HTTTeB4zhcffXVbjSbEDKPYpgQb3IzNquRz+exe/fuZXdYuPrq\nq/G5z30Ow8PDeOqppxAKheratmrQrNJ5F198MX7zm99gcHAQgUAAt9xyy5LnDA8PL7tY38uFQiH8\n27/9G97+9rdjeHgYl19+OeLxOB577DHs2bMHl156KS699NJavA1C2hbFMCHe5GZsAsBdd92Fv/zl\nLwCA3//+92CM4etf/zqee+45AMDxxx+PG264YfH5O3fuxJVXXonh4WHs2rVr8fFbbrkF999/PxRF\nwemnn4677757yWsNDQ1h69atq3q/tUaJ27wDBw6A4ziMj4/j1ltvXfY5HMet+Iv1lre8Bc8++yw+\n8YlP4NFHH4WmaTj22GPx2c9+Ftdee62bTSeEgGKYEK9yOzaffPJJ/OxnPzvkb3/961/j17/+NQDg\n9a9//SGJ28JzXj6ebqFdhmHg05/+9LKv9frXv54SN6/av3+/68c844wz8Pjjj7t+XELIUhTDhHiT\n27G52m2otm7dumzy9eCDD+LBBx90q1l1Q2PcCCGEEEKaBCVuhBBCCCFNghI3QgghhJAm0XZj3IaH\nh8FxnCfXadmxYwdOPfXURjeDEE+jGCbEm7wcm266/vrrG/oeOcYYa9irE0IIIYSQFaOuUkIIIYSQ\nJtF2iduOHTvA8zxGR0cb3ZQleJ7HVVdd1ehmEOJpFMOEeJOXY9NNQ0NDOOeccxr2+m2XuC23CN/B\n/vu//xtnn302otEoQqEQ/uZv/gbf+MY3VvUae/fuxac+9Smcd9552LBhAxRFQXd3Ny644AJ8//vf\nX+tbIKSt1SOGAaBUKuFjH/sYTjrpJPh8PkSjUZx99tn47ne/u5bmE9KyDhebuVwOd999N/7xH/8R\nJ510EiRJAs/zeOqpp1b9Gm5eXycnJ3HvvffiwgsvxDHHHAOfz4d4PI7h4eEjnjOOdP6ph7abnHAk\n9913H6699lp0dnbine98J2RZxn/+539i27Zt+OMf/4hPfepTKzrOzTffjP/4j//Ali1bcP7556Or\nqwv79+/Hzp078cMf/hD/+q//irvuuqvG74aQ9uNWDOdyOZx55pl44YUXcMIJJ2D79u3QdR2PP/44\nLrnkEnziE5/AjTfeWON3Q0hrOHDgAG644QZwHIeBgQF0dXVhenq6qmO5eX295557cNddd2HDhg0Y\nHh7GunXrMDk5iUcffRTbtm3DE088gUceeaSqdtYUazM7duxgPM+zkZGRQx4/cOAAU1WVdXZ2stHR\n0cXHs9ksO/bYYxnP8+xXv/rVil7j61//Ovvtb3+75PEXXniBRSIRxvM8+9///d8lv+c4jl155ZWr\nfEeEtJd6xPC//Mu/MI7j2Nve9jZmWdbi4/l8np1yyilMFEWKYUJe5nCxmclk2K5du1gmk2GMMbZt\n2zbG8zz74Q9/uOrXqPb6upydO3eyn/zkJ0sen5qaYoODg4znebZz584lvx8aGmJnn332qtvulrbr\nKj2cr371qzAMA9deey0GBwcXH49EIvjoRz8Kxhi+/OUvr+hYW7duxate9aolj5944om47LLLAKx+\nyw5CyJG5GcM7d+4Ex3G49dZbIQjC4uOhUAg33XQTbNvGfffd5/p7IKQVLQwzcGMJDTevrxdffPGy\n+6P29vbi6quvBmPMk9dqStzmLXw4559//pLfXXDBBQCAXbt2rfl1JEkCAIgi9VIT4iY3YziRSAAA\nNm3atOR3xxxzDADg6aefrqqdhJDacPP66uVrNSVu83bv3g0A2Lx585Lf9fb2IhAIYHx8HJqmVf0a\n+Xwe//Vf/wWe5/GGN7yh6uMQQpZyM4Y7OzsBLL859osvvggAGBkZga7ra2kyIcQlbl5fbdvGQw89\nBI7j8MY3vtGlFrqHErd5uVwOwFy3ynIWHl943moxxrBt2zbMzMzgmmuuwZYtW6prKCFkWW7G8EUX\nXQTGGD72sY/Btu3Fx/P5PG6//fbF/5/NZtfSZEKIC9y+vn7gAx/ACy+8gAsvvBDnnXeeS610j/dq\ngC3q6quvxne/+12cc845+MxnPtPo5hBCjuDWW2/Fj3/8Yzz66KM45ZRTcO655y7OKpVlGZFIBPl8\nHjxP976ENJqb19c777wTX/jCF3DyySdXtYxQPdBZZ97R7saPdjd/JNu3b8dXvvIVnHfeeXj88cc9\n2WdOSLNzM4a7u7vxP//zP7juuuugaRq+/OUvY+fOnXjDG96AX/ziF7BtG6IoIh6Pu/cGCCGr5ub1\n9fbbb8eNN96IU089Fbt27arqel8PlLjNWyit7tmzZ8nvEokESqUSBgYGoKrqio/pOA62bt2KBx54\nAG9605vw/e9/f1V/TwhZObdjOBaL4TOf+Qz27t0LTdOQSCTw1a9+FZVKBcViEa961asOmXFKCKkf\nt6+vN910E26++Wacfvrp2LVrFzo6OlxsrbsocZt3zjnngDGGJ598csnvnnjiCQDA3/3d3634eJZl\n4YorrsDDDz+Mv//7v8d3v/tdyLLsWnsJIYdyO4YP58EHHwTHcXjHO96x5mMRQlbP7evr+9//ftxx\nxx147Wtfix//+MeuLFtSS5S4zbvyyiuhKAruvfdejIyMLD6eyWRwxx13gOM4bN++fUXHMgwDl1xy\nCb7zne/g8ssvx3e+8x3qHiWkxtyMYcYYSqXSksd/8IMf4O6778bxxx+Pd7/73a61nRByqFQqhd27\ndy8uzbPA7evr1Vdfjc997nMYHh7GU089hVAotNam1xxlE/OGhobw6U9/Gu973/tw2mmn4bLLLlvc\nLmdiYgIf/OAHccYZZ6zoWNu3b8fjjz+OaDSKY489Fp/4xCeWPOfUU0/FW9/6VrffBiFty80YLpfL\n6O7uxrnnnotjjz0Woiji+eefxzPPPIOhoSE89thjUBSlxu+IkNbxwQ9+EKlUCgDw8Line truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x80be240>"
"<matplotlib.figure.Figure at 0x8f9f0b8>"
]
},
"metadata": {},
@@ -906,12 +903,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"The contour plots display the range of values that the multivariate Gaussian takes for a specific standard deviation. This is like taking a horizontal slice out of the 3D plot. By default it displays one standard deviation, but you can use either the `variance` or `std` parameter to control what is displayed. For example, `variance=3**2` or `std=3` would display the 3rd standard deviation, and `variance=[1,4,9]` or `std=[1,2,3]` would display the 1st, 2nd, and 3rd standard deviations. "
"By default the function displays one standard deviation, but you can use either the `variance` or `std` parameter to control what is displayed. For example, `variance=3**2` or `std=3` would display the 3rd standard deviation, and `variance=[1,4,9]` or `std=[1,2,3]` would display the 1st, 2nd, and 3rd standard deviations. "
]
},
{
"cell_type": "code",
"execution_count": 16,
"execution_count": 117,
"metadata": {
"collapsed": false
},
@@ -920,7 +917,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtgAAAD+CAYAAAAAuXIHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmUVPWZPvDn7rVXdfUO3WwRMS5Ho6gIGQQjOsS4xC1B\nRkycE5nEDYxmUxEMyjGj49ETl2hyEtQ40SQajVETxgEB0XE0P80ETdAIIks3vVV1bbfqbr8/Clpb\noOt2c6uruvv5nMM5euvWvd8+pywf3n7v+xUcx3FARERERESeECu9ACIiIiKi0YQBm4iIiIjIQwzY\nREREREQeYsAmIiIiIvIQAzYRERERkYcYsImIiIiIPMSATURERETkIQZsIqIqsXz5coiiiO3bt1d6\nKfsRRRGXX355pZdBRDQiMGATEVUJQRAgCMJ+x//yl79gxYoVmD17NlpaWqBpGsaNG4cLLrgAGzZs\nGNK9Xn31VZx11lmora1FIBDAsccei3vuuQe2bR/qj0FENObJlV4AERENbPHixXj99ddx3HHH4dxz\nz0U0GsW7776LZ599Fk8//TR+/OMf41vf+pbr6z3zzDO48MIL4ff78ZWvfAXxeBy///3vsXTpUmza\ntAlPPPFEGX8aIqLRjwGbiKjKLVy4EI888gimTp3a7/i6detwxhln4Nvf/jYuvPBCNDQ0lLxWKpXC\nN77xDciyjJdffhmf+9znAAA//OEPMXfuXPzmN7/Bk08+iYsvvrgsPwsR0VjAFhEioip31VVX7Reu\nAWDOnDmYO3cuCoUCXnnlFVfX+vWvf43Ozk4sWLCgL1wDgKqqWLlyJRzHwQMPPODZ2omIxiIGbCKi\nEUxRFACALLv7heTatWshCALOPPPM/V6bPXs2AoEANm3aBMMwPF0nEdFYwoBNRDRCffjhh3jppZcQ\nCAQwe/ZsV+/5+9//DgA4/PDD93tNkiRMnjwZpmnigw8+8HStRERjCXuwiYhGIF3X8dWvfhWFQgG3\n3347otGoq/clk0kAOOj5+44nEglvFkpENAaxgk1ENMIYhoGLLroIr7/+OhYuXIilS5dWeklERPQJ\nDNhERCNIoVDA+eefj+effx6XXnopVq9ePaj376tQ76tkf9q+47FY7NAWSkQ0hjFgExGNELlcDl/6\n0pfw/PPP41//9V/xi1/84oAb0wxk2rRpAIAtW7bs95plWdi6dStkWcaUKVM8WTMR0VjEgE1ENAKk\n02n88z//M1566SVceeWVeOihh4Z0ndNOOw2O4+DFF1/c77WXX34Z2WwWs2bN6ptOQkREg8eATURU\n5ZLJJE4//XRs3LgR3/72t3HvvfcO+VoXXngh6urq8Ktf/Qpvvvlm3/F8Po+bbroJgiDgm9/8phfL\nJiIaszhFhIioyp133nl4/fXX0draimAwiBUrVux3zpw5c3DqqaeWvFY4HMZPf/pTXHjhhZgzZw6+\n+tWvIh6P49lnn8WWLVtw0UUX4aKLLirHj0FENGYwYBMRVblt27ZBEATs2LEDt9566wHPEQTBVcAG\ngHPOOQcbNmzAD3/4Qzz11FPQdR2HHXYY7r77blx99dVeLp2IaExiwCYiqnJbt271/Jonn3wynnvu\nOc+vS0RE7MEmIiIiIvIUAzYRERERkYcYsImIiIiIPMQebCKiKjFnzhwIglCVuyguX74cxx13XKWX\nQUQ0IgiO4ziVXgQRERER0WjBFhEiIiIiIg8xYBMRVYnly5dDFEVs37690kvZjyiKuPzyyyu9DCKi\nEYEBm4ioSgiCAEEQDvr6H/7wB8ydOxexWAzhcBgzZszAI488Muj7ZDIZLFu2DEcddRT8fj9isRjm\nzp2L3/3ud4eyfCIi2osBm4hoBLjvvvtw9tlnY/Pmzbj00ktxxRVXYPfu3fja176G73znO66vk0wm\nMWPGDKxcuRIAsHjxYixYsADvv/8+zj//fNx2223l+hGIiMYMThEhIqpyH374Ia6//nrU1tbizTff\nRGtrKwBg2bJlmD59Ou666y5ccMEFOPnkk0te65ZbbsHmzZtx/vnn44knnoAkSQCAH/3oR/inf/on\nLF++HGeddRYnhhARHQJWsImIqtzPfvYzFAoFXH311X3hGgCi0Sh+8IMfwHEcPPjgg66u9fTTT0MQ\nBNx666194RoAwuEwbrrpJliWhfvuu8/zn4GIaCxhwCYiqnJr164FAJx55pn7vTZ//nwAwH//93+7\nulZbWxsAYMqUKfu99pnPfAYA8NJLLw1pnUREVMSATURU5f7+978DAA4//PD9XmtqakIwGMSOHTug\n63rJa9XV1QEAtm7dut9r//jHPwAUW1Ly+fyhLJmIaExjwCYiqnLJZBJAsSXkQPYd33feQM4++2w4\njoNly5bBsqy+4729vf0ecEwkEoeyZCKiMY0PORIRjSG33nor/uu//gtPPfUUjj32WJx++unI5/N4\n7rnnoKoqotEoent7IYqsvxARDRW/QYmIqlypCnWpCvcnNTQ04H//93+xZMkS6LqOBx98EE8//TTO\nOOMMvPLKK7AsC7IsIx6Pe/cDEBGNMQzYRERVbtq0aQCALVu27PdaW1sbMpkMWlpa4PP5XF2vpqYG\nd911F95//33ouo62tjb87Gc/Qy6XQzqdxvHHH99vwggREQ0OAzYRUZU77bTT4DgOXnzxxf1ee/75\n5wEAX/jCFw75Pj//+c8hCAIWLlx4yNciIhrLGLCJiKrc17/+dWiahh//+Mf48MMP+4739PTg9ttv\nhyAIWLx4satrOY6DTCaz3/EXXngB//7v/44jjjgC3/jGNzxbOxHRWMSHHImIqtykSZNw55134ppr\nrsH06dPxla98Baqq4je/+Q127tyJ66+/3tUujgCQzWbR0NCA008/HYcddhhkWcYbb7yBtWvXYtKk\nSXj22WehaVqZfyIiotFtUBXsVatW4aSTTkI0GkVDQwPOOeccbN68eb/zli9fjvHjxyMQCGDu3Ll4\n5513PFswEdFYdOWVV+K5557D0UcfjUcffRQPP/wwmpubsXr1atxxxx2ur6NpGhYuXIgtW7bgoYce\nwv3334+Ojg7ccsstePvtt/s2myEioqEbVAV7/fr1uOqqqzB9+nQ4joObb74Zp59+Ot59913EYjEA\nwB133IG7774bq1evxuGHH44VK1Zg3rx52LJlC4LBYFl+CCKisWD+/Pl9OzcOlSzLeOihhzxaERER\nHcigAvYLL7zQ798fffRRRKNRvPLKKzjrrLMAAPfccw++//3v47zzzgMArF69Gg0NDXj88cfZ10dE\nREREo94hPeTY29sL27ZRU1MDoLj1bltbG+bNm9d3js/nw+zZs7Fp06ZDWykRERER0QhwSAH72muv\nxfHHH49TTjkFQHEeqyAIaGxs7HdeY2Mj2traDuVWREREREQjwpCniFx33XXYtGkTXnnlFQiCMKRr\nHGxXMiKisWj69On47ne/C0EQqu778Xvf+x6OOeaYqlsXEVGlHWgX3SEF7KVLl+LJJ5/EunXrMHHi\nxL7jTU1NcBwH7e3taGlp6Tve3t6OpqamodyKiGjM+PznP4/Pf/7zlV7GAX33u9+t9BKIiEaMQbeI\nXHvttXjiiSewdu1aTJ06td9rkydPRlNTE9asWdN3TNd1bNiwAbNmzTr01RIRERERVblBVbCvvPJK\nPPbYY3jmmWcQjUbR3t4OAAiFQn0j+JYsWYJVq1Zh2rRpmDp1KlauXIlwOIwFCxYMeO0DldeJiIiI\niKpNqXY5wXEcx+3FRFE8YL/1LbfcgmXLlvX9+6233oqf/OQn6Onpwcknn4z77rsPRx555ICLY8Am\nIiIiopGgVIYdVMD2GgM2EREREY00pTLsIY3pIyIiIiKi/hiwiYiIiIg8xIBNREREROQhBmwiIiIi\nIg8xYBMREREReYgBm4iIiIjIQwzYREREREQeYsAmIiIiIvIQAzYRERERkYcYsImIiIiIPMSATURE\nRETkIQZsIiIiIiIPMWATEREREXmIAZuIiIiIyEMM2EREREREHmLAJiIiIiLyEAM2EREREZGHGLCJ\niIiIiDzEgE1ERERE5CEGbCIiIiIiDzFgExERERF5iAGbiIiIiMhDcqUXQEREh86ybGR0Axm9gKxu\nwLRsOAAEAJoqI+hTENAUBHwKBEGo9HKJiEY1BmwiohEskyugI5lFZzKDrJFDzsxBN3WYlgnAgSCI\nUCUFftkPn+xH2BdAfSyAumgAiixVevlERKMSAzYR0QiUyxvY3p5EdzqDHr0HST0JVQV8moRwQIIi\nixAA2A5QMPLI5rPoTJsQUgr2pGsQ64yhIRbC+LowJIndgkREXhr0t+qGDRtw7rnnoqWlBaIo4pFH\nHun3+te//nWIotjvz8yZMz1bMBHRWOY4DnZ1pvDXre14r+NDbE38A1DSmDTej0njQmiq9SMaUhHw\nyfD7ZAT9MmoiGsbVB3BYawRN9Qoydhe2dL2HLW07sHlbB5JpvdI/FhHRqDLoCnY6ncYxxxyDyy67\nDIsWLTrgOfPmzcNjjz0Gx3EAAKqqHtoqiYgIhmnh/Z3daO/tRlu6DeGghMMaI5BE9z3VQX8xdOsF\nC22dnejtSiGTb8b42hhaGyLszyYi8sCgA/b8+fMxf/58AMBll112wHM0TUN9ff2hrYyIiPrk8gbe\n39mNHYk29BrdGNcQQNA/9C4/nyphYnMQPb0FbEtsRcEej4JpYUpzDcRBBHYiItpfWRrvNm7ciMbG\nRkybNg1XXHEFOjo6ynEbIqIxIZ0r4G/bO7G1+yNk7QQmjQsdUrjeRxAExKMaWhr92J3egQ872/H3\njzphWrYHqyYiGrs8f8hx/vz5uOCCCzB58mRs27YNN954I77whS/gzTffhKIoXt+OiLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9cadf28>"
"<matplotlib.figure.Figure at 0x8977e10>"
]
},
"metadata": {},
@@ -945,7 +942,7 @@
},
{
"cell_type": "code",
"execution_count": 17,
"execution_count": 118,
"metadata": {
"collapsed": false
},
@@ -954,7 +951,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x93fe0f0>"
"<matplotlib.figure.Figure at 0x8f8cac8>"
]
},
"metadata": {},
@@ -980,7 +977,7 @@
},
{
"cell_type": "code",
"execution_count": 18,
"execution_count": 119,
"metadata": {
"collapsed": false
},
@@ -989,7 +986,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtkAAAD+CAYAAADvexk5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4VPW9P/D3OWf2NZkskwQSSFSUpSoKCII2LkjRG9ui\nlKXXS7RPpQpaUoua0rRyWQQel94q0Ee0yHK9VKsC9UoJVlS4SqUo1wtiUBMSQpisk8msme38/oik\n5scyCUw4mZn363ki5Mw5k/f4x+TNdz7nHEGWZRlERERERBQ3otIBiIiIiIiSDUs2EREREVGcsWQT\nEREREcUZSzYRERERUZyxZBMRERERxRlLNhERERFRnLFkExERERHFGUs2EdEA8sQTT0AURdTV1Skd\n5TSiKOK+++5TOgYRUUJgySYiGkAEQYAgCKdt/+yzz7B48WLceOONGDx4MLRaLfLy8nDXXXdhz549\n5/WzPvroI9xxxx3IyMiAwWDAVVddhf/4j/9ANBq90JdBRJTyVEoHICKi2ObOnYuPP/4YV199Nb7/\n/e/DarXiyJEj2L59O9588008//zzePDBB3v9fNu2bcPdd98NvV6PGTNmwGaz4S9/+QvKysrw4Ycf\n4k9/+lM/vhoiouTHkk1ElAB+/OMfY+PGjbjssst6bH/vvfdw22234ZFHHsHdd9+N7OzsmM/ldrvx\n05/+FCqVCu+//z5Gjx4NAFiyZAluuukm/PnPf8arr76KH/3oR/3yWoiIUgHHRYiIEsD8+fNPK9gA\nUFxcjJtuugnBYBD/8z//06vneu2119DS0oJZs2Z1F2wA0Gg0WLp0KWRZxtq1a+OWnYgoFbFkExEl\nOLVaDQBQqXr34eTu3bshCAKmTJly2mM33ngjDAYDPvzwQ4RCobjmJCJKJSzZREQJrLa2Fn/7299g\nMBhw44039uqYqqoqAMCwYcNOe0ySJBQWFiIcDqO6ujquWYmIUglnsomIElQgEMDMmTMRDAaxfPly\nWK3WXh3ncrkA4Kz7n9re3t4en6BERCmIK9lERAkoFAph+vTp+Pjjj/HjH/8YZWVlSkciIqJvYckm\nIkowwWAQ06ZNw9tvv4177rkHGzZs6NPxp1aqT61o//9ObU9LS7uwoEREKYwlm4gogfj9fvzLv/wL\n3n77bfzkJz/Byy+/fMab15zL5ZdfDgA4evToaY9FIhHU1NRApVKhqKgoLpmJiFIRSzYRUYLweDz4\n3ve+h7/97W+YN28eXnjhhfN6nptvvhmyLOOvf/3raY+9//778Pl8mDhxYvdVS4iIqO9YsomIEoDL\n5cKtt96KvXv34pFHHsHvf//7836uu+++G5mZmdiyZQsOHDjQvb2zsxO//vWvIQgCHnjggXjEJiJK\nWby6CBFRAvjBD36Ajz/+GPn5+TAajVi8ePFp+xQXF+O73/1uzOcym8148cUXcffdd6O4uBgzZ86E\nzWbD9u3bcfToUUyfPh3Tp0/vj5dBRJQyWLKJiBLAsWPHIAgC6uvr8e///u9n3EcQhF6VbAC48847\nsWfPHixZsgRvvPEGAoEALr30Ujz77LN46KGH4hmdiCglsWQTESWAmpqauD/nddddh7feeivuz0tE\nRJzJJiIiIiKKO5ZsIiIiIqI4Y8kmIiIiIoozzmQTEQ0gxcXFEARhQN5t8YknnsDVV1+tdAwiooQg\nyLIsKx2CiIiIiCiZcFyEiIiIiCjOWLKJiAaQJ554AqIooq6uTukopxFFEffdd5/SMYiIEgJLNhHR\nACIIAgRBOOvj//3f/42bbroJaWlpMJvNGD9+PDZu3Ninn/HVV19h1apVmDx5MoYMGQKtVovs7GxM\nnToVf/nLXy70JRAREXjiIxFRwli9ejUeeughZGZm4p577oFGo8Gf//xnlJaW4tChQ1i1alWvnqei\nogKvvvoqLr/8ckyZMgVZWVmoqanBm2++iZ07d2LhwoVYuXJlP78aIqLkxpJNRJQAamtr8ctf/hIZ\nGRk4cOAA8vPzAQC/+c1vMGbMGDz99NO46667cN1118V8ru9973tYuHAhrrnmmh7bP//8c1x//fV4\n6qmnMGvWLF5JhIjoAnBchIgoAbz00ksIBoN46KGHugs2AFitVvzqV7+CLMv4wx/+0KvnmjNnzmkF\nGwBGjBiBGTNmAAB2794dn+BERCmKJZuIKAGcKr1Tpkw57bGpU6cCAN59990L/jlqtRoAoFLxg04i\nogvBkk1ElACqqqoAAMOGDTvtsZycHBiNRtTX1yMQCJz3z+jo6MDrr78OURRx2223nffzEBERSzYR\nUUJwuVwAusZDzuTU9lP79ZUsyygtLUVTUxMefPBBXH755ecXlIiIALBkExERgAceeABbt27FTTfd\nhKefflrpOERECY8lm4goAcRaqY610n0uc+fOxQsvvIDJkyfjrbfe4jw2EVEcsGQTESWAU+MbR48e\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9d46da0>"
"<matplotlib.figure.Figure at 0x8f87f98>"
]
},
"metadata": {},
@@ -1015,7 +1012,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"The second plot is for the mean and covariance\n",
"The mean and covariance of the second plot are\n",
"\n",
"$$\n",
"\\mu =\\begin{bmatrix}2\\\\7\\end{bmatrix}, \\, \\, \\, \n",
@@ -1025,7 +1022,7 @@
},
{
"cell_type": "code",
"execution_count": 19,
"execution_count": 120,
"metadata": {
"collapsed": false
},
@@ -1034,7 +1031,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x80bea58>"
"<matplotlib.figure.Figure at 0xa280e48>"
]
},
"metadata": {},
@@ -1070,7 +1067,7 @@
},
{
"cell_type": "code",
"execution_count": 20,
"execution_count": 121,
"metadata": {
"collapsed": false
},
@@ -1079,7 +1076,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtkAAAD+CAYAAADvexk5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt4VOWBP/DvmftMJjPJJJnJ5J6gyK0KKigXNbUi3tJa\nKsvF7RLapyLCWiKLND9MlXKn3lYUammLXNZSXVFZH1mCghW2ohRluyBGlJAAk5ncJ5O5ZG7n9wc1\na5bA5DLJmcx8P8/DY+blnJPvyPMk37x5z3sEURRFEBERERFR1MikDkBEREREFG9YsomIiIiIoowl\nm4iIiIgoyliyiYiIiIiijCWbiIiIiCjKWLKJiIiIiKKMJZuIiIiIKMpYsomIBslTTz0FmUyG2tpa\nqaMMqIKCAtx+++1SxyAikhRLNhHRIBEEAYIgXDL+t7/9DStWrMCtt96KnJwcqNVqZGVl4Uc/+hEO\nHTrUq88RDAbxr//6r/jJT36CcePGQa1WQyaT4be//W2v89psNrz44ou47777MGzYMGi1WphMJhQX\nF2P79u1XfJ9ERIlOIXUAIqJEN3/+fHzyyScYO3YsfvCDH8BoNOLUqVPYs2cP3nzzTbz44ot45JFH\nenQtt9uNsrIyCIIAi8UCq9WKc+fO9SnXxo0bsX79euTn56O4uBjZ2dmw2WzYvXs3SktL8e6772LX\nrl19ujYRUbxjySYiktiDDz6I7du34+qrr+4y/sEHH+DOO+/EkiVL8MADD8BsNke8lk6nw969ezF2\n7FhYLBasWLECv/rVr/qU66abbsLBgwdx2223dRlfs2YNJkyYgNdffx2zZs3C/fff36frExHFMy4X\nISKS2KJFiy4p2ABQXFyM7373u/D7/fiv//qvHl1LqVRi2rRpsFgs/c51//33X1KwASAzMxMLFiyA\nKIo4ePBgvz8PEVE8YskmIophSqUSAKBQxNYvHmM1FxFRrGDJJiKKUTU1NXj//feh0+lw6623Sh2n\nUygUwrZt2yAIAu666y6p4xARxSROQRARxSCfz4dZs2bB7/djzZo1MBqNUkfqtGTJEpw8eRIlJSWY\nOnWq1HGIiGISZ7KJiGJMIBDAjBkz8Mknn+DBBx9EWVmZ1JE6rV27Fi+88AK+853vXHEbPyKiRMeS\nTUQUQ/x+P6ZPn453330XP/7xj7Ft2zapI3VavXo1li9fjrFjx+LAgQMxNbtORBRrWLKJiGKE1+vF\nfffdh3fffRc//elP8corr8TMg12eeOIJVFRUYPz48Thw4ADS0tKkjkREFNO4JpuIKAa0t7fj3nvv\nxeHDh7Fw4UK88MILUkfq9Nhjj+H555/HpEmTsHfvXiQnJ0sdiYgo5rFkExFJzOl0Ytq0aTh69CiW\nLFmCDRs2DOrnb2trQ11dHXQ6HXJzc7v83YIFC/Dyyy+juLgY77zzDnQ63aBmIyIaqliyiYgkdv/9\n9+OTTz5Bbm4ukpKSsGLFikuOKS4u7vbBMN1Zv349vvjiCwDA8ePHIYoiXnnlFXz00UcAgBEjRmDZ\nsmWdx7/55puYN28eiouLceDAgc7xFStW4OWXX4Zarcb48ePx61//+pLPVVBQgLlz5/bq/RIRJQKW\nbCIiiZ09exaCIOD8+fOXfQS6IAg9Ltn/+Z//iQ8//LDLuR9//DE+/vhjAMBtt93WpWR/c8z/Xf/9\nTS6/34+nn36628912223sWQTEXVDEEVRlDoEEVEiWLFiBX71q1+huroaeXl5UscZMIWFhSgsLOwy\nK05ElGi4uwgRERERUZSxZBMRERERRRlLNhERERFRlPHGRyKiQVJcXAxBEJCSkiJ1lAFVVlYW9++R\niCgS3vhIRERERBRlXC5CRERERBRlLNlERIPkqaeegkwmQ21trdRRBlRBQQFuv/12qWMQEUmKJZuI\naJB098AX4OJj1X/961/jH//xHzF69GgolUrIZDJUVlb2+nN89dVX2LBhA6ZOnYr8/Hyo1WqYzWbc\nfffd+I//+I9eXctms+HFF1/Efffdh2HDhkGr1cJkMqG4uBjbt2+/4vskIkp0vPGRiEhiZ8+exbJl\nyyAIAnJycpCRkQGHw9Gna1VUVOC1117DNddcg2nTpiEjIwPV1dV48803sW/fPixduhTr16/v0bU2\nbtyI9evXIz8/H8XFxcjOzobNZsPu3btRWlqKd999F7t27epTTiKieMeSTUQksfz8fLz//vsYN24c\nUlJSMG/evCvOFF/JXXfdhaVLl+L666/vMv75559j0qRJePrppzF79myMHTs24rVuuukmHDx48JLH\nua9ZswYTJkzA66+/jlmzZuH+++/vU1YionjG5SJERBJLSUnBd7/73ahsezd37txLCjYAjBo1CjNn\nzgQAHDx4sEfXuv/++y8p2ACQmZmJBQsWQBTFHl+LiCjRsGQTESUIpVIJAFAo+v9LzGhei4goHrFk\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa1e84a8>"
"<matplotlib.figure.Figure at 0x9d95048>"
]
},
"metadata": {},
@@ -1105,7 +1102,7 @@
},
{
"cell_type": "code",
"execution_count": 21,
"execution_count": 122,
"metadata": {
"collapsed": false
},
@@ -1117,7 +1114,7 @@
" [ 1.51e+02, 1.21e+03]])"
]
},
"execution_count": 21,
"execution_count": 122,
"metadata": {},
"output_type": "execute_result"
}
@@ -1130,7 +1127,7 @@
},
{
"cell_type": "code",
"execution_count": 22,
"execution_count": 123,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -1140,7 +1137,7 @@
"data": {
"image/png": "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\nQyktLeX2229n5MiRDT6Hs2fP5p133uHSSy9l9OjRrFmzhj/96U/s3LmTNWvWANCjRw/mzp3Lvffe\ni9/vZ+bMmcl/ruVmfiGawRRCnPSGDx9uqqpqrl27tt5tBg4caCqKYp5yyinmN998U2t9eXm5eeDA\ngVrLv/jiCzMrK8scNGhQyvLi4mLT7XabLpfLfP/992vtV1xcnPw6GAyaiqKYffv2NU3TNHVdN2+4\n4QZTURRz/PjxZjweb/S5Hu7OO+80VVU1H3nkkXq3mTZtmqmqqnnfffelLE8kEuaPf/xjU1VV8+WX\nX05Z98UXX9Q6jqZpZkFBgWm1Ws3du3enrLvkkktMRVHMnj17miUlJcnlX3/9telyuUy3223m5OSY\nn376aXJdMBg0u3TpYtpsNnPfvn2NOt958+aZiqKYQ4cONefOnVvnx5QpU0xFUczzzz8/Zd+XXnrJ\nVBTFvPTSS81oNJqybv78+aaiKOatt96asvyMM84wO3funLLs4YcfNhVFMa+44grTMIzk8pKSErNz\n586mqqrmNddck7LPzTffbCqKYno8HvNf//pXyrr//M//NFVVNRctWlTrsVVVNWOxWKN+NjV++MMf\nmlartc6fac+ePU23221WVFSYpmmaK1asMBVFMW+55ZZa2xqGUefvQ1N8/fXXpqIoZo8ePVKWn3vu\nuWb//v1N0zTNv/3tb6aqqua7776bXP/kk0+aiqKY06dPT9nvwQcfNBVFMadNm2bqup6y7pZbbjFV\nVTUfe+yxlOVWq9UcOnRoyrIbb7zRVFXVLCwsTFm+bds20+l0mqqqmnfffXfKupEjR5qKopjdu3c3\nv/rqq+RywzDMiy66yFRV1dy0aVOtx+7evXu9Px8hRNNI0i+EaHTSr6qq+eyzzzb5+DWJWXl5eXLZ\n3LlzTVVVzdmzZx91/8OT/lAoZI4ZM8ZUVdWcOXNmk2M53NGS/mAwaDocDvPss8+uc/3OnTtNRVHM\nyy+/vFGP98Ybb5iKopjPPPNMyvJLLrnEVFXV/OMf/1hrn7Fjx5qqqpp33XVXrXU1idrhCV9DapJ+\nVVWP+nFk0j948GDTYrGYpaWldR67a9euZkZGRsqyupL+s846y1RV1fzkk09qHeORRx4xFUWpM+lX\nVdWcNWtWrX02bdpkKopi3nbbbbUe+1iS/qKiIlNRFHPevHkpy1etWmUqimJee+21yWU1Sf+MGTOa\n9BhNUXMen332mWmapvn999+bqqqad955p2mapllWVmaqqmr+6le/Su7zk5/8xFRV1Vy2bFnKsXJz\nc83s7GxT07Raj1NVVWVaLBZzwIABKcuPTPo1TTO9Xq/p8/nq/Kdm6tSp9Sb99V3jixYtMhVFMYuK\nimo9tiT9QrQcKe8RQjTJoEGD6l23evVqnnjiCT744AO+/fZbEolEcp2iKHz99dekpaUB1a0hobqe\nvbEqKysZPnw4H330EY899li97QxbyubNm4nH49hsNu69995a62s60+zYsSNl+b59+3jooYdYsWIF\ne/fuTam7r/k51KWuTkk1fe7rWldTL19cXNzIM6r261//mvvvv7/Ode+//36tm0J1XeeDDz7A7/fz\n9NNP19rHNE2sVisHDhzgm2++qbc3fzweZ8eOHaSnp3P66afXWj9kyJAG4x4wYECtZd27dwegvLy8\nwX0ba8KECfzyl79k4cKF/OpXv0ouX7hwIYqiMGnSpOSywYMH07NnTx577DG2bt3K2LFjGTx4MAMG\nDMBqbZk/ryNHjmTnzp2sWrWKU089tVatfkZGBuecc06yrt80TdasWYPFYmH48OHJ4+zatYvS0lJ+\n8IMfcN9999V6HNM0cbvdta7lI3322WeEQiF+9KMfEQgEaq0fMmQI//u//1vv/q3xHAoh6iZJvxCi\nSQ7vInK4F154gYkTJ+Lz+Rg1ahS9evXC4/GgKArvvPMO//jHP4jFYsntDxw4AEDXrl0b/djl5eWU\nlJSQlpbGyJEjm3cijVBWVgbA1q1b2bp1a53bKIpCKBRKfl9cXMyAAQMoKytjyJAhjBo1irS0NCwW\nC8XFxfzpT39K+Tkcrq4kqiZ5bGjd4f9cNYbZxI42FRUVaJpGRUVFyo3FR1IUhWAwWO/6qqoqTNNM\nqTM/XH3La9T8w3i4mp9BS7UGzczMZNy4cbz22mt88MEHDBo0iFAoxN/+9je6dOmSct253W42bdrE\nf//3f7N06VJWr16NaZoEAgEmTpzI/fffj8fjaVY8+fn5PPnkk6xatYqbbrqJVatW1bq5dsSIETz+\n+OMcOHCA3bt3s3//fs477zx8Pl9ym5preffu3Ud9Dk3TrLcuv+aG2/b8HAoh6ibde4QQTVJfMvCb\n3/wGv9/P1q1beemll3j44Ye55557mDNnDr169aq1fc0f//pGveuSl5fHq6++SigU4Line truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9cc2470>"
"<matplotlib.figure.Figure at 0xa3b6b38>"
]
},
"metadata": {},
@@ -1164,7 +1161,7 @@
},
{
"cell_type": "code",
"execution_count": 23,
"execution_count": 124,
"metadata": {
"collapsed": false
},
@@ -1173,7 +1170,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8e22080>"
"<matplotlib.figure.Figure at 0x8961320>"
]
},
"metadata": {},
@@ -1200,7 +1197,7 @@
},
{
"cell_type": "code",
"execution_count": 24,
"execution_count": 125,
"metadata": {
"collapsed": false
},
@@ -1209,7 +1206,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAOAAAADaCAYAAAC/zE4qAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHelJREFUeJzt3XtYVXXe9/H33ghyRg0BAQ+ISYBKjqjNwG1SoZKZTmkq\nOIrdk/akaTQzmKPYYVC0O3VSsadspkHnyUM2qZmmFsKYh5IUDEgQT+ABKA8gIKfNev7ghpEsRfba\ne8Hm+7ourq4We/++P4oP67h/X52iKApCCE3otZ6AEO2ZBFAIDUkAhdCQBFAIDUkAhdCQBFAIDUkA\nhdBQswJ44MABxo4di7e3N3q9nvXr19/2mtzcXJ5++mk6d+6Mg4MDwcHB5OTkqD5hISxJswJYVlZG\n//79WbVqFfb29rd9/9y5c4SGhuLr60tKSgpZWVnEx8fj6Oio+oSFsCS6e30SxsnJicTERKZOndq4\nLSoqCr1ez4YNG1SfoBCWzOhzQEVR+PTTTwkICCAiIgI3NzeGDBnCli1b1JifEBbN6AAWFxdTVlbG\nkiVLGDVqFF988QWTJ08mKiqK3bt3qzFHISxWB2MHqKurA2DcuHHMnTsXgAEDBpCWlsaaNWuIiIho\n8vqSkhJjSwrR6ri4uLTofUbvAV1dXenQoQP+/v5Ntvv7+5Ofn2/s8EJYNKMDaG1tzeDBg2+75ZCb\nm0vPnj2NHV4Ii9asQ9Dy8nLy8vJQFIW6ujry8/PJyMigS5cudO/endjYWCZOnEhoaCiPPPIIycnJ\nbN68me3bt99x3JbutlsiLS0NgODgYLPVbG9129PPCuqcTjVrD5iWlsbAgQMZNGgQlZWVvPrqq/zq\nV7/i1VdfBWDs2LG89957vPXWWwwYMIDExEQ2bNjAqFGjjJ6gEJasWXvAhx9+uPFiyy+ZOnVqk3uD\nQoi7k2dBhdCQBFAIDUkAhdCQBFAIDUkAhdCQBFAIDUkAhdCQBFAIDUkAhdCQBFAIDUkAhdCQBFAI\nDUkAhdCQBFAIDUkAhdCQBFAIDUkAhdCQBFAIDUkAhdCQat2RGsycORO9Xs+KFStUm6QQlkqV7kgN\ntm7dytGjR/Hy8lJtgkJYsmYFMCIigvj4eJ566il0Ot3Pvub8+fPExMSwceNGOnQwesV7IdoFVc4B\nDQYDkZGRxMXF4efnp8aQQrQLquyqFi1ahJubGzNmzLin9zWsaGxOWtRsb3Xby896//33Gz2G0QFM\nSUkhKSmJjIwMoycjRHtjdABTU1MpLCzEw8OjcZvBYCA2Npa//vWvd+yQJH0LLKtue/pZQZ3eEEYH\ncNasWUyYMKHJthEjRhAZGclzzz1n7PBCWDRVuiO5uro2eb21tTUeHh6qHCMLYclU6Y70U790q0II\n0ZRq3ZFudebMmRZPSIj2RJ4FFUJDEkAhNCQBFEJDEkAhNCQBFEJDEkAhNCQBFEJDEkAhNCQBFEJD\nEkAhNCQBFEJDEkAhNCQBFEJDEkAhNCQBFEJDEkAhNCQBFEJDEkAhNCQBFEJDRndHqq2tZd68eQQF\nBeHo6IinpydRUVEUFBSYbNKi5RRFofBqGV9nX+Dgd/lk5BVy5tI1iq+VU1FZg6IoWk+xXWnWokwN\n3ZGmTZvG1KlTm3yvoqKC9PR04uLiCAoKoqSkhJdffpmIiAhOnDiBXi87Wa2UV9ay68gp0vMKSc8r\n5LuzxZy9fI2qGsMvvkev19G9qzMjgn0ZOdiXRwf1ppOjrRln3b40K4ARERFEREQAMG3atCbfc3Z2\nZs+ePU22vfvuuwQGBvL9998TGBio0lRFc9ysqmHXkVO8869v+Sq7mKra21ez6+JsR093F2xtOnCj\nopqym//5qqyu5XxRCes+O8a6z45hpdfxUIA3Iwf7Mj1iIN5dnTX4qSyXSfqIlZSUoNPp6Ny5symG\nFz9RXWNgb9ppNu/PYttXJym7Wd34vYcCvHkowIsHfT0I6uNBH68uONrZ/OJYNbUGTpwuYs/R03x+\nNI/DWRc4mFnAwcwCEj78inmTQ/jTxBDsba3N8aNZPJ1yjwf9Tk5OJCYm3nYo2qCmpobhw4fj5ubG\nJ598ctv3b11P/9SpU/c4XXGr6loDHx/O54Mv87hW/p/Q+Xu7MOJBTx4L6oZHJzujapRV1pCWd4Vd\n315kf2YhAG4utsx+/AFGPuiJXt9+F2G+deV3FxeXFo2h6h7QYDAQFRVFaWkpO3fuVHNocQtDncLn\nxy7y7t5cLl+7CUBvd0dGDfQiPKgb3q4OqtVytLVmeD8Phvfz4PiZq6zYkcXJi6Us2pjOloPneG1S\nED27OqpWr71RLYAGg4FJkyaRlZVFampqsw4/pXPPvVEUhc+OnGL+ui/JPFsMQGCvriQ89yhP/Lpv\nk5YApvh5g4Phv8eHk7QnnT+/n0xm/nWef/cou5dFEeznaRH/je9Fq+iOBPW3IiZOnEh2djapqal0\n7dpVjWHFLTLPFvP8ip0czKy/vdPD3YU3ooczJXwAVlbmu9Ks1+uYHjGQp4cFMPGNrXz+TR5hMUl8\nlhCJvdlmYTma9X+uvLycjIwM0tPTm3RHKigowGAwMH78eL755hs2btyIoigUFRVRVFREZWWlqedv\n8RRF4f3PjjH4+XUczCzgPmc7Vs4aSc762Uwb9aBZw3crZ4eO7Fg8iajH+lN2s5oxCzaSc9H4PUJ7\nY3R3pAsXLrBjxw4uXbrEoEGD8PT0bPzasmWLqedv0W5UVDFl8Sc899anVFbXMn3Ug5z5cC4vjX8I\nWxuTXMC+J9YdrEh6ZRzPDA+ktLyKOe8f5fK1Cq2n1aao0h3pXjonieZJzyvkmdc/4tSFqzjYWvNO\nzGh+NyJI62ndxspKz/r547hSWsGXx86ycsf3jAkfpvW02gx5TKWVURSFtduO8tAL73PqwlX693Yj\n7d0ZrTJ8DTradCDplXHYWluxP7OQlPRzWk+pzZAAtiJ1dQqz397FrLd3UVVjYOaYQXy99vc80MP1\n7m/WmFdXZ6aF+QIQk7gHg0GOippDAthK1BrqePbN7azdnkZHays+XPgU//flJ7Dr2HaeOJnycG/c\nO9mSnlfIPz5P13o6bYIEsBWoqTUQ+ZePSdqTgb2tNZ8lRDL50f5aT+ue2dpYMWe0PwB//lsy5bc8\nEid+ngRQYwZDHVMTtvFRajbODh3Z++YUHh3UW+tptVh4UDce7ONB8bVyvjx2VuvptHoSQA3V1SnM\nXLGTTcmZONrZsPfNKYT076H1tIyi0+kYF+oHwJ6jeRrPpvWTAGpo/rov+Nuu49h17MBnCZEMDfDW\nekqqGDm4DwB7jp7WeCatnwRQIzsO5vDmpkN0sNLzyRsTGRbUU+spqWawnyednWw5fekaeRevaj2d\nVk0CqIHzhdeJXrYNgKUzHmXkkD4az0hdVlZ6HvtV/Xnsnm/kMPROJIBmVlNrYHL8x1y7Ucnoh+4n\nZvyvtZ6SSYwcXH9PcL/clL8jCaCZLfxbMoezLuDd1ZmkV8ZZ7AdafbrVfxztxxJ5NvROJIBmtPvr\nU7y56RBWeh0b457mPhfL/QCPk339shdlci/wjiSAZvLD9XKmJtSf9/3l2TBC2/jthrtpWHdGAnhn\nEkAzWfzPA/xYUkHYwF7Mmxyq9XRMriGANySAdyQBNINLVyt4Z0caOh2sfGGkxZ733Ur2gM0jATSD\nd/fkUl1jIPLR/gT18dB6OmZxawBlte1fJgE0sbzLpew+fhHrDnr+8myY1tMxm6ul9au1uTh0bLJY\nlGhKAmhiibtzUBR4fkxw46X59uB8Uf36MD3dO2k8k9ZNAmhCX32Xz1ffF2NnY8XC37WvZRryixsC\n2LIFa9sLo7sjNXjttdfw8vLC3t6esLAwsrOzVZ9sW/P2x18DEDnMB7fO6i2W2xaczP8RAF/P9rPX\nb4lmBbChO9KqVauwt7/95vGyZctYuXIliYmJpKWl4ebmRnh4OOXl5apPuK24UVHFzsO5APx2qGXf\n8/s56Xn1y9g/2E4uOrVUswIYERFBfHw8Tz311M+eUL/99tvMnz+fcePGERAQQFJSEjdu3ODDDz9U\nfcJtxY6DOVRW1zLQpwvuRvZnaIsaAhjkKwG8E6PPAc+ePUthYSHh4eGN22xtbRk2bBiHDh0ydvg2\na9P+LAAeC+qm2Ry+PX1Fk7oXfijl9KVr2Np0aBMLSmnJ6NVdCwsL0el0uLu7N9nu7u7OpUuX7vje\nhjX9zckcNUsqqvn8m1PodfDogG5mqwtQUm7F/2ztwYtP6jhRsIsv/63gYm/eECxf/zkAIQ+4ciLj\nuNnqmvv36dbuSC0lV0FNICWzkFqDQnAfV+5z6mi2uiXlVsxe25e9x7rwu+XdqKwtZdu3/+BQjnk/\nk7c3o/4Pb3iQp1nrtkVG7wE9PDwa+0F4e/9nSYWioiI8PO58/G+p3ZEWbD4JwHNjfw3UmaXu1VKF\n8LmQc6H+36/fcOfyj/706X6I4oo9dPf9L9w7e5l0DmlpaVz4sZzsghIc7Wx4MXKUWRp5tuXuSEbv\nAX18fPDw8GDfvn2N2yorKzlw4AAhISHGDt/mKIrCke/rUzD6IeMPUZqjIXzH6y+6otPBnHHH6dvj\nGwBKK66xeutCiq5dNPlc9p24DMDYED/potsMRndHAnjppZdYtmwZn3zyCZmZmURHR+Pk5MTkyZNN\nOvnW6FzhdUrLq3Dv7EC3+5xMXu/nwrfuFZgSBuGBk7GxtgXMF8J96fWHn5Me6WfSOpbC6O5IALGx\nscTExDB79myGDBlCUVERe/fuxcGhfd18Bsg4XQSY5/L7L4Xv2SfqbxW5u/Tk+bFxZgth7qVSTl2+\nQSdHW0YE+5qkhqVpVgAbuiMZDIYmX3//+98bX7No0SIuXrxIRUUF+/fvJyAgwGSTbLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9d30550>"
"<matplotlib.figure.Figure at 0x9dabd68>"
]
},
"metadata": {},
@@ -1243,6 +1240,8 @@
"source": [
"### Pearson's Correlation Coefficient\n",
"\n",
"We will not be using this coefficient in this book, but you may see it elsewhere. You can safely skip this section if uninterested.\n",
"\n",
"The correlation between two variables can be given a numerical value with *Pearson's Correlation Coefficient*. It is defined as\n",
"\n",
"$$\\rho_{xy} = \\frac{COV(X, Y)}{\\sigma_x \\sigma_y}$$\n",
@@ -1256,7 +1255,7 @@
},
{
"cell_type": "code",
"execution_count": 25,
"execution_count": 126,
"metadata": {
"collapsed": false
},
@@ -1267,7 +1266,7 @@
"0.95397310960801929"
]
},
"execution_count": 25,
"execution_count": 126,
"metadata": {},
"output_type": "execute_result"
}
@@ -1286,7 +1285,7 @@
},
{
"cell_type": "code",
"execution_count": 26,
"execution_count": 127,
"metadata": {
"collapsed": false
},
@@ -1297,7 +1296,7 @@
"-0.91782234535272555"
]
},
"execution_count": 26,
"execution_count": 127,
"metadata": {},
"output_type": "execute_result"
}
@@ -1306,13 +1305,6 @@
"pearsonr(max_temp, lifespan)[0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We will not be using this coefficient much in this book,but you may see it elsewhere."
]
},
{
"cell_type": "markdown",
"metadata": {},
@@ -1324,7 +1316,7 @@
},
{
"cell_type": "code",
"execution_count": 27,
"execution_count": 128,
"metadata": {
"collapsed": false
},
@@ -1333,7 +1325,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x93914e0>"
"<matplotlib.figure.Figure at 0xa2bea58>"
]
},
"metadata": {},
@@ -1356,7 +1348,7 @@
},
{
"cell_type": "code",
"execution_count": 28,
"execution_count": 129,
"metadata": {
"collapsed": false
},
@@ -1365,7 +1357,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8d6db00>"
"<matplotlib.figure.Figure at 0xa3b7a20>"
]
},
"metadata": {},
@@ -1380,7 +1372,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"A circle not mathematically correct, but it gets the idea across. We will tackle the mathematics in the next section. For now recognize that we can predict that $y$ is likely near 12. A value of $y=-10$ is extremely improbable.\n",
"The circle not mathematically correct, but it gets the idea across. We will tackle the mathematics in the next section. For now recognize that we can predict that $y$ is likely near 12. A value of $y=-10$ is extremely improbable.\n",
"\n",
"A word about *correlation* and *independence*. If variables are *independent* they can vary separately. If you walk in an open field, you can move in the $x$ direction (east-west), the $y$ direction(north-south), or any combination thereof. Independent variables are always also *uncorrelated*. Except in special cases, the reverse does not hold true. Variables can be uncorrelated, but dependent. For example, consider $y=x^2$. Correlation is a linear measurement, so $x$ and $y$ are uncorrelated. However, they are obviously dependent on each other. "
]
@@ -1401,7 +1393,7 @@
},
{
"cell_type": "code",
"execution_count": 29,
"execution_count": 130,
"metadata": {
"collapsed": false
},
@@ -1410,7 +1402,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8523da0>"
"<matplotlib.figure.Figure at 0xa392550>"
]
},
"metadata": {},
@@ -1427,21 +1419,28 @@
"source": [
"The combination of measurements 1 and 2 yields more certainty, so the new Gaussian is taller and narrower - the variance became smaller. The same happens in multiple dimensions with multivariate Gaussians.\n",
"\n",
"Here are the equations for multiplying multivariate Gaussians. They are generated by plugging the Gaussians for the prior and the estimate into Bayes Theorem. I gave you the algebra for the univariate case in the last section of the **Univariate Kalman Filter** chapter. You will not need to remember these equations, as they are computed by Kalman filter equations that will be presented shortly. This computation is also available in FilterPy using the `multivariate_multiply()` method, which you can import from `filterpy.stats`. \n",
"Here are the equations for multiplying multivariate Gaussians. The capital sigma ($\\Sigma$) indicates that these are matrices, not scalars. Specifically, they are covariance matrices:\n",
"\n",
"$$\\begin{aligned}\n",
"\\mu &= \\Sigma_2(\\Sigma_1 + \\Sigma_2)^{-1}\\mu_1 + \\Sigma_1(\\Sigma_1 + \\Sigma_2)^{-1}\\mu_2 \\\\\n",
"\\Sigma &= \\Sigma_1(\\Sigma_1+\\Sigma_2)^{-1}\\Sigma_2\n",
"\\end{aligned}$$\n",
"\n",
"\n",
"They are generated by plugging the multivariate Gaussians for the prior and the estimate into Bayes Theorem. I gave you the algebra for the univariate case in the last section of the **Univariate Kalman Filter** chapter. \n",
"\n",
"You will not need to remember these equations, as they are computed by Kalman filter equations that will be presented shortly. This computation is also available in FilterPy using the `multivariate_multiply()` method, which you can import from `filterpy.stats`. \n",
"\n",
"\n",
"\n",
"To give you some intuition about this, recall the equations for multiplying univariate Gaussians:\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}} = \\frac{\\sigma_1^2\\sigma_2^2}{\\sigma_1^2+\\sigma_2^2}\n",
"\\sigma^2 &= \\frac{\\sigma_1^2\\sigma_2^2}{\\sigma_1^2+\\sigma_2^2}\n",
"\\end{aligned}$$\n",
"\n",
"This looks similar to the equations for the multivariate equations. This will be more obvious if you recognize that matrix inversion, denoted by the -1 power, is *like* division since $AA^{-1} =I$. I will rewrite the inversions as divisions - this is not a mathematically correct thing to do but it does help us see what is going on.\n",
"This looks similar to the equations for the multivariate equations. This will be more obvious if you recognize that matrix inversion, denoted by the -1 power, is *like* a reciprocal since $AA^{-1} =I$. I will rewrite the inversions as divisions - this is not a mathematically correct thing to do as division for matrices is not defined, but it does help us see what is going on.\n",
"\n",
"$$\\begin{aligned}\n",
"\\mu &\\approx \\frac{\\Sigma_2\\mu_1 + \\Sigma_1\\mu_2}{\\Sigma_1 + \\Sigma_2} \\\\ \\\\\n",
@@ -1455,7 +1454,7 @@
},
{
"cell_type": "code",
"execution_count": 30,
"execution_count": 131,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -1465,7 +1464,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtUAAADaCAYAAABper6XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlwHPWBL/Bv99yjkUb36BjrsmXJluVDEmB8YrABh2dM\nSOyYsGCTvMDbCpUQ3gupXQKCHA/YegW1FEcMhA2GIiGbhcScxgm2kbGxkQ8ZHZYlWacljUbXaGak\n0Rzd7w9AWcXGlq2We47vp0pleXrU/YXq6vn6p1//WpBlWQYREREREV0yUe0ARERERESRjqWaiIiI\niGiaWKqJiIiIiKaJpZqIiIiIaJpYqomIiIiIpomlmoiIiIhomliqiYiIiIimaUqluqqqChs3boTd\nbocoitixY8ek7Q8//DDmzZsHi8WC5ORkrF27FgcPHpyRwERERERE4WZKpdrj8aC0tBRPP/00zGbz\nWduLi4vx3HPPoba2Fp988gny8/Nx4403wul0Kh6YiIiIiCjcCBf7RMX4+Hg8++yzuPPOO7/2PW63\nG1arFbt27cK6deumHZKIiIiIKJwpPqc6EAhg+/btsFqtWLx4sdK7JyIiIiIKO1qldvTuu+9iy5Yt\nGB0dRVZWFnbv3o20tDSldk9EREREFLYUK9XXXnstampq0N/fjxdffBGbNm3Cp59+CpvNNul9LpdL\nqUMSEREREV12Vqv1rNcUm/5hMplQUFCAK6+8Ei+++CJ0Oh1eeuklpXZPRERERBS2ZmydakmSMD4+\nPlO7JyIiIiIKG1Oa/uH1etHc3AxZliFJEjo6OlBTU4Pk5GQkJibi3/7t37BhwwZkZmbC6XTimWee\nwZkzZ7B58+bz7vdcQ+fhqrq6GgBQUVGhchKKFjynSGk8p2gm8LwipUXqOXWhKcxTGqmurq7GkiVL\nUF5eDp/Ph8rKSpSVlaGyshJarRZ1dXW49dZbMXfuXNx8880YGhpCVVUVFixYoMh/BBERERFROJvS\nSPXq1ashSdLXbn/zzTcVC0REREREFGlmbE41EREREVGsYKkmIiIiIpomlmoiIiIiomliqSYiIiIi\nmiaWaiIiIiKiaWKpJiIiIiKaJpZqIiIiIqJpYqkmIiIiIpomlmoiIiIiomma0hMViYgovMmyDEmS\nIX35pyAAgiCoHYuIKGawVBMRhTGfP4gu5wiG3GNweccx7PHB5fFh2OuDyzMOl9cHfzAESZLhdDoB\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9cc0eb8>"
"<matplotlib.figure.Figure at 0x94f37f0>"
]
},
"metadata": {},
@@ -1481,12 +1480,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Now suppose that there is a radar to the lower left of the aircraft. Further suppose that the radar's bearing measurement is accurate, but the range measurement is inaccurate. The covariance for the error in the measurement might look like this (plotted in blue):"
"Now suppose that there is a radar to the lower left of the aircraft. Further suppose that the radar's bearing measurement is accurate, but the range measurement is inaccurate. The covariance for the error in the measurement might look like this (plotted in green on top of the yellow prior):"
]
},
{
"cell_type": "code",
"execution_count": 31,
"execution_count": 132,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -1494,9 +1493,9 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtUAAADaCAYAAABper6XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XlwXOWdN/rvOb1vau3dklq7tXhfJIyxDcbYBhzGmJBA\nTEgwTG7IvDfUhOG9YSqTEJOZzEsydSvUUBBCYJjBcMkyMyFhjXGwMTI2GHmXLWvfl1ZLarV63865\nfxh74tgY2TpSL/p+qlSWu1vn/GSfevqrR7/zPIIsyzKIiIiIiOiqiYkugIiIiIgo1TFUExERERFN\nE0M1EREREdE0MVQTEREREU0TQzURERER0TQxVBMRERERTRNDNRERERHRNE0pVDc0NGDr1q1wOBwQ\nRRE7d+684Pkf/vCHmD9/PsxmM7Kzs7Fx40YcPHhwRgomIiIiIko2UwrVPp8PixcvxlNPPQWj0XjR\n87W1tfj5z3+OpqYmfPjhhygvL8ett94Kl8uleMFERERERMlGuNIdFS0WC5555hncd999n/kar9cL\nq9WKXbt2YdOmTdMukoiIiIgomSneUx2NRvHcc8/BarVi2bJlSh+eiIiIiCjpqJU60FtvvYVt27Yh\nEAigsLAQu3fvRl5enlKHJyIiIiJKWoqF6ptuugnHjx/H6Ogonn/+edx111346KOPYLPZLnidx+NR\n6pRERERERLPOarVe9Jhi7R8GgwEVFRVYuXIlnn/+eWg0GrzwwgtKHZ6IiIiIKGnN2DrVkiQhHA7P\n1OGJiIiIiJLGlNo//H4/2tvbIcsyJElCb28vjh8/juzsbGRmZuJf/uVfsGXLFhQUFMDlcuHpp5/G\nwMAA7r777sse91JT58mqsbERAFBfX5/gSihd8JoipfGaopnA64qUlqrX1Oe1ME9pprqxsRHLly9H\nXV0dQqEQduzYgRUrVmDHjh1Qq9U4deoU7rzzTlRXV+P222+H2+1GQ0MDFi1apMg3QURERESUzKY0\nU71u3TpIkvSZz//ud79TrCAiIiIiolQzYz3VRERERERzBUM1EREREdE0MVQTEREREU0TQzURERER\n0TQxVBMRERERTRNDNRERERHRNDFUExERERFNE0M1EREREdE0MVQTEREREU3TlHZUJCKi5CbLMiRJ\nhvTpn4IACIKQ6LKIiOYMhmoioiQWisTQ75qE2xuExx/GhC8Ejy+ECX8IHl8YHn8IkVgckiTD5XIB\n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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8ef3828>"
"<matplotlib.figure.Figure at 0x8f7ad68>"
]
},
"metadata": {},
@@ -1506,7 +1505,7 @@
"source": [
"P1 = [[2, 1.9], [1.9, 2]]\n",
"plot_covariance_ellipse((10, 10), P0, fc='y', alpha=0.6)\n",
"plot_covariance_ellipse((10, 10), P1, fc='b', alpha=0.6)"
"plot_covariance_ellipse((10, 10), P1, fc='g', alpha=0.9)"
]
},
{
@@ -1520,7 +1519,7 @@
},
{
"cell_type": "code",
"execution_count": 32,
"execution_count": 133,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -1530,7 +1529,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8e43438>"
"<matplotlib.figure.Figure at 0x8a87c88>"
]
},
"metadata": {},
@@ -1555,12 +1554,12 @@
"\n",
"The posterior retained the same shape and position as the radar measurement, but is smaller. We've seen this with one dimensional Gaussians. Multiplying two Gaussians makes the variance smaller because we are incorporating more information, hence we are less uncertain. Another point to recognize is that the covariance shape reflects the physical layout of the aircraft and the radar system. The importance of this will become clear in the next step.\n",
"\n",
"Now lets say we get a measurement from a second radar, this one to the lower right, which I will plot in green against the yellow covariance of our current belief. "
"Now lets say we get a measurement from a second radar, this one to the lower right. The posterior from the last step becomes our new prior, which I plot in yellow. The new measurement is plotted in green."
]
},
{
"cell_type": "code",
"execution_count": 33,
"execution_count": 134,
"metadata": {
"collapsed": false
},
@@ -1569,7 +1568,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x983cba8>"
"<matplotlib.figure.Figure at 0xa3ec240>"
]
},
"metadata": {},
@@ -1591,7 +1590,7 @@
},
{
"cell_type": "code",
"execution_count": 34,
"execution_count": 135,
"metadata": {
"collapsed": false
},
@@ -1600,7 +1599,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa6dd160>"
"<matplotlib.figure.Figure at 0x9e1feb8>"
]
},
"metadata": {},
@@ -1618,14 +1617,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"The only likely place for the aircraft is where the two ellipses intersect. The shapes reflects the geometry of the problem. This allows us to *triangulate* on the aircraft, resulting in a very accurate estimate. We didn't explicitly write any code to perform triangulation; it was a natural outcome of multiplying the Gaussians of each measurement together.\n",
"The only likely place for the aircraft is where the two ellipses intersect. The intersection, formed by multiplying the prior and measurement, is a new Gaussian. The shapes reflects the geometry of the problem. This allows us to *triangulate* on the aircraft, resulting in a very accurate estimate. We didn't explicitly write any code to perform triangulation; it was a natural outcome of multiplying the Gaussians of each measurement together.\n",
"\n",
"Think back to the **g-h Filter** chapter where we displayed the error bars of two weighings on a scale. The estimate must fall somewhere within the region where the error bars overlap. Here the estimate must fall between 161 to 163 pounds."
]
},
{
"cell_type": "code",
"execution_count": 35,
"execution_count": 136,
"metadata": {
"collapsed": false
},
@@ -1634,7 +1633,7 @@
"data": {
"image/png": "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\nay+v9957r0/ObNvWtdde67NPU1OT5s+fr5SUFCUmJqqgoEBHjhz5K/8YnY4TeaVe/QVzHNi3b59m\nzJihyy+/XAkJCRo/fry+//577/PUqz8n8kq9+msvry15uvhYMH/+fO8+1GtgTuSWmvXXXl5PnTql\n+fPna/DgwerVq5dGjhypl19+2WcfatafE3mlXp0RVNPR0NCgMWPGqKSkRL169Wp1v3fffVfffPON\nBg0a5PecZVkqKipSbW2tampqdPToUa1bty70kXcDweR18uTJ3pzV1NToo48+8nl+wYIF2rRpk8rL\ny/Xll1/q5MmTuvHGG9WTT9VxIq/Uq7/28nrgwAHl5ubqiiuuUEVFhXbv3q1nn31WiYmJ3n2oV39O\n5JV69ddeXlvy1HIM2LJliyzL0syZM737UK+BOZFbatZfe3lduHChPv74Y5WVlWnv3r168skntWTJ\nEpWVlXn3oWb9OZFX6tUhpoMSExNNaWmp3/YDBw6YtLQ0s3fvXjNs2DCzcuVKn+cnTZpk5s+f39G3\n6zEC5fWee+4xN910U6uvqa+vN7Gxsebtt9/2bjt06JCxbdt88sknro21Kwklr8ZQr+0JlNfZs2eb\nO++8s9XXUK/tCyWvxlCv7Wnt360L3X///WbkyJHen6nX4ISSW2Oo2fYEyuvo0aPN8uXLfbbl5eV5\n80jNti+UvBpDvTrFkXM6mpubNXv2bD311FMaMWJEq/tt3LhRKSkpGj16tB5//HE1NDQ48fbd2pdf\nfqn+/ftrxIgRmjt3ro4dO+Z9rrKyUufOndPkyZO929LS0pSZmamvvvoqEsPtMtrKawvqNXjGGG3Z\nskVXX321pk2bpn79+mnixIl65513vPtQrx0XTF5bUK+hO3XqlMrLyzV37lzvNurVGYFy24Ka7Zjc\n3Fxt2bJFhw8fliR99dVXqq6u1rRp0yRRs6FqL68tqNfwRTsR5Omnn1a/fv0CHlRazJkzR0OHDtXA\ngQO1e/duLVmyRN999522bt3qxBC6pWnTpmnGjBkaPny4Dhw4oGXLlik/P1/ffvutYmJiVFNTo6io\nKPXt29fndf3791dNTU2ERt35Bcrr9ddfr8rKSsXExEiiXjuqrq5ODQ0Neu655/Tss8/qhRde0Kef\nfqo5c+aod+/emjZtGvUagmDyKlGv4SorK9PZs2d11113ebdRr84IlFuJmg1FSUmJ5Line truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa68d1d0>"
"<matplotlib.figure.Figure at 0xa2c0c18>"
]
},
"metadata": {},
@@ -1650,7 +1649,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Now suppose the first radar is to the left of the aircraft. I can model the measurement error with\n",
"Let's consider a different layout. Suppose the first radar is directly to the left of the aircraft. I can model the measurement error with\n",
"$$\\Sigma = \\begin{bmatrix}2&0\\\\0&0.2\\end{bmatrix}$$\n",
"\n",
"Here we see the result of multiplying the prior with the measurement."
@@ -1658,7 +1657,7 @@
},
{
"cell_type": "code",
"execution_count": 36,
"execution_count": 137,
"metadata": {
"collapsed": false
},
@@ -1667,7 +1666,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAtUAAADaCAYAAABper6XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XmQXHdh9vtv7+t0z9Yz07NqJI1kjyxASxywwcaxBSjE\n2CEYDCTYkAvU++IKhveGXAJGJkthp27hisuGOBASC16WvAmumOXGOMGAjG1gMJYXyVpHs/dMz9b7\n3uf+MdLYQrIse3p0unueT9Upjbp7Tj+WT51+5je/8zsWwzAMRERERETkVbOaHUBEREREpNapVIuI\niIiIrJBKtYiIiIjICqlUi4iIiIiskEq1iIiIiMgKqVSLiIiIiKyQSrWIiIiIyAqdV6net28f1113\nHd3d3VitVvbu3Xva85/73Oe4+OKL8fv9NDc3c8011/D444+vSmARERERkWpzXqU6mUyydetW7r77\nbrxe7xnPX3TRRXzpS1/i2Wef5ec//zn9/f287W1vIxqNVjywiIiIiEi1sbzSOyo2NDRw77338oEP\nfOAlX5NIJAgGgzz00EPs2rVrxSFFRERERKpZxedUFwoF7rvvPoLBIK973esqvXsRERERkapjr9SO\nfvCDH3DjjTeSTqfp7Ozk4YcfJhQKVWr3IiIiIiJVq2Kl+vd+7/fYv38/s7OzfOUrX+GGG27giSee\noL29/bTXxWKxSr2liIiIiMgFFwwGz3isYtM/PB4P69ev59JLL+UrX/kKDoeDr371q5XavYiIiIhI\n1Vq1darL5TK5XG61di8iIiIiUjXOa/pHKpXi6NGjGIZBuVxmdHSU/fv309zcTGNjI3/3d3/Htdde\nSzgcJhqNcs899zAxMcG73/3uc+73bEPn1WpoaAiAnTt3mpxE6oWOKak0HVOyGnRcSaXV6jH1clOY\nz2ukemhoiG3btrFjxw6y2Sx79uxh+/bt7NmzB7vdznPPPcc73/lONm3axDve8Q4WFhbYt28fl1xy\nSUX+I0REREREqtl5jVRfeeWVlMvll3z+u9/9bsUCiYiIiIjUmlWbUy0iIiIislaoVIuIiIiIrJBK\ntYiIiIjICqlUi4iIiIiskEq1iIiIiMgKqVSLiIiIiKyQSrWIiIiIyAqpVIuIiIiIrJBKtYiIiIjI\nCqlUi4jUCcMwljcREbmwzus25SIiYo5SqUQmkyGfz1MoFM66lctlDMPg4MGDAFgsluXNarXicDjO\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa17c0b8>"
"<matplotlib.figure.Figure at 0x89f55f8>"
]
},
"metadata": {},
@@ -1691,7 +1690,7 @@
},
{
"cell_type": "code",
"execution_count": 37,
"execution_count": 138,
"metadata": {
"collapsed": false
},
@@ -1700,7 +1699,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8da6438>"
"<matplotlib.figure.Figure at 0x7d2ee48>"
]
},
"metadata": {},
@@ -1726,7 +1725,7 @@
},
{
"cell_type": "code",
"execution_count": 38,
"execution_count": 139,
"metadata": {
"collapsed": false
},
@@ -1735,7 +1734,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9d08780>"
"<matplotlib.figure.Figure at 0x9e0b048>"
]
},
"metadata": {},
@@ -1760,14 +1759,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"You can already see why a multivariate Kalman filter can perform better than a univariate one. The last section demonstrated how we can use correlations between variables to significantly improve our estimates. We can take this much further. This section contains the key insight to this chapter, so read carefully.\n",
"You can already see why a multivariate Kalman filter can perform better than a univariate one. The last section demonstrated how we can use correlations between variables to significantly improve our estimates. We can take this much further. **This section contains the key insight to this chapter, so read carefully**.\n",
"\n",
"Let's say we are tracking an aircraft and we get the following data for the $x$ and $y$ coordinates at time $t$=1,2, and 3 seconds. What does your intuition tell you the value of $x$ will be at time $t$=4 seconds?"
"Let's say we are tracking an aircraft and we get the following data for the $x$ and $y$ coordinates at time $t$=1, 2, and 3 seconds. What does your intuition tell you the value of $x$ will be at time $t$=4 seconds?"
]
},
{
"cell_type": "code",
"execution_count": 39,
"execution_count": 140,
"metadata": {
"collapsed": false
},
@@ -1776,7 +1775,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x80ac898>"
"<matplotlib.figure.Figure at 0x898e2b0>"
]
},
"metadata": {},
@@ -1797,7 +1796,7 @@
},
{
"cell_type": "code",
"execution_count": 40,
"execution_count": 141,
"metadata": {
"collapsed": false
},
@@ -1806,7 +1805,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x80acb38>"
"<matplotlib.figure.Figure at 0x898ef98>"
]
},
"metadata": {},
@@ -1833,7 +1832,7 @@
},
{
"cell_type": "code",
"execution_count": 41,
"execution_count": 142,
"metadata": {
"collapsed": false
},
@@ -1842,7 +1841,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa6b0588>"
"<matplotlib.figure.Figure at 0x897f5f8>"
]
},
"metadata": {},
@@ -1862,7 +1861,7 @@
},
{
"cell_type": "code",
"execution_count": 42,
"execution_count": 143,
"metadata": {
"collapsed": false
},
@@ -1871,7 +1870,7 @@
"data": {
"image/png": "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\nAFceh/v//M//VEpKiqZNm6YNGzaooYE3VwDoDKpr61VZXafgIJPCQ8ySmjr3hWXeDfd19U3XsLe6\nSffOewAArjwO91lZWZozZ462bNmiG2+8Ud26ddOCBQu0c+fOjqwPANDB7DeIio8Kl9H4IVZH597L\n4d450NvvUpsUF+l2DwDAlcfhfujQofrrX/+qY8eO6ZNPPtH48eP197//XSNGjNCFF16op556SseO\nHevIWgEAHcA+emMP9JJT597LYznOud1isX2REtfF7R4AgKs2f6DWZDJp3Lhxevvtt5Wfn6+VK1cq\nLS1NixYtUq9evTRmzBitWLFCNTU1HVEvAKCd2bvzcV2cwr2POvcWp+Te0Bjuk+Mj3e4BALj6RVfL\n2b17t7788kvt2rVLVqtVAwYMUElJie6880717dtXW7duba86AQAdxL86967BPSTYrC7hIa3uAQA0\naXO4P3DggJYsWaK+ffvq8ssv13vvvafbbrtN33zzjfbs2aNdu3bp66+/VlxcnObOndsRNQMA2lFJ\nhe03rbFdwhxrcVG2x8VevhTmmbndbDJkNrn+VUW0BwD3gjzduHz5cq1cuVLffPONgoODdcMNN+gv\nf/mLbrjhBgUFuX6bzMxM/fd//7f+4z/+o90LBgC0r9JKW7iPjgjRT8dL9PX+03pswGBJUkV1nRoa\nLDKbvXNbFOsZ0d1kGC53qpXo3ANAazwO9/fdd5+GDx+uF154QdOmTVN8fHyr+4cNG6Y//OEPv7jA\ntlq6dKmWLl3qspaSkqKcnByv1wIAgaC0sXMfGR6iu1/dofLqeoVHxysqIkRllbUqr6pVjFNXvyOd\nmdtNJkMm05nh3iulAEBA8jjc//DDDxowYIDH33jw4MEaPHjwORX1Sw0YMEBffPGFo7tjNpt9UgcA\nBAJ7576wtErl1ba7v37w1T5FR4SqrLJWZV4N93TuAeCX8Pj3rPfdd58+//xzt8e/+OILjRs3rl2K\n+qWCgoKUmJiopKQkJSUlqWvXrr4uCQD8lr1zn19U7ljbd6xAEWHBLse9odnMvdkk85mde69VAwCB\nx+Nw/69//Uu5ubluj+fl5emzzz5rl6J+qezsbHXv3l29e/fWtGnTdOjQIV+XBAB+q6yqVpJUUu4a\n4kOCbL/1tHf2vaGlmfuTxRWue+jcA4BbHo/lnM2JEycUERHRXt/unF166aV66623NLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x9cd57b8>"
"<matplotlib.figure.Figure at 0x8a3c5f8>"
]
},
"metadata": {},
@@ -1891,7 +1890,7 @@
},
{
"cell_type": "code",
"execution_count": 43,
"execution_count": 144,
"metadata": {
"collapsed": false
},
@@ -1900,7 +1899,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0xa716d68>"
"<matplotlib.figure.Figure at 0x8b0a5f8>"
]
},
"metadata": {},
@@ -1915,23 +1914,23 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"It won't be clear until the next chapter how I calculate this covariance. Ignore the calculation, and think about what this implies. We have no easy way to say where the object really is because we are so uncertain about the velocity. Hence the ellipse stretches very far in the x-axis. Our uncertainty in velocity of course means it is also very spread in the y-axis. But as I said in the last paragraph, position and velocity is correlated. *If* the velocity is 5 m/s the next position would be 5, and *if* the velocity is 10 the next position would be 10. They are extremely correlated, so the ellipse must be very narrow. \n",
"It won't be clear until the next chapter how I calculate this covariance. Ignore the calculation, and think about what this implies. We have no easy way to say where the object really is because we are so uncertain about the velocity. Hence the ellipse stretches very far in the x-axis. Our uncertainty in velocity of course means it is also very spread in the y-axis. But as I said in the last paragraph, position and velocity is correlated. If the velocity is 5 m/s the next position would be 5, and if the velocity is 10 the next position would be 10. They are very correlated, so the ellipse must be very narrow. \n",
"\n",
"This superposition of the two covariances is where the magic happens. The only reasonable estimate at time t=1 (where position=5) is roughly the *intersection* between the two covariance matrices! More exactly, we can use the math from the last section and *multiply* the two covariances together. From a Bayesian point of view we multiply the prior with the probability of the evidence (the *likelihood*) to get the posterior. If we multiply the position covariance with the velocity covariance using the Bayesian equations we get the result shown in the next chart."
"This superposition of the two covariances is where the magic happens. The only reasonable estimate at time t=1 (where position=5) is roughly the *intersection* between the two covariance matrices! More exactly, we can use the math from the last section and *multiply* the two covariances together. From a Bayesian point of view we multiply the prior with the probability of the evidence (the *likelihood*) to get the posterior. If we multiply the position covariance with the velocity covariance using the Bayesian equations we get this result:"
]
},
{
"cell_type": "code",
"execution_count": 44,
"execution_count": 145,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAvcAAADxCAYAAABPuZiPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4VPW9P/D3ObNlJvu+EwKGNYAsgoJVUUHRKlYtXpRF\naWvRq4DeWhesyq1K6dPWqii32t5WZdNbex9csEL7AwGDtwYFBCSA7GTfJplMZv/+/vhmJhkSYAKz\nZIb363nyZHLOSeYTzpPJm08+53sUIYQAERERERFFPTXSBRARERERUXAw3BMRERERxQiGeyIiIiKi\nGMFwT0REREQUIxjuiYiIiIhiBMM9EREREVGMYLgnIiIiIooRURXuly5divHjxyM5ORlZWVm49dZb\nsXfv3m7HPffcc8jPz4fJZMLkyZOxb9++CFRLRERERBReURXut2zZgoceegjbt2/Hpk2boNVqcf31\n16O5udl3zLJly/DSSy/htddeQ3l5ObKysjBlyhS0tbVFsHIiIiIiotBTovkOtW1tbUhOTsa6detw\n8803AwDy8vKwYMECPPHEEwAAm82GrKws/Pa3v8VPfvKTSJZLRERERBRSUdW5P11LSws8Hg9SU1MB\nAEeOHEF1dTWmTJniOyYuLg5XXXUVysrKIlUmEREREVFYRHW4X7hwIcaMGYMrrrgCAFBdXQ1FUZCd\nne13XHZ2NqqrqyNRIhERERFR2GgjXcD5evTRR1FWVobPP/8ciqKc19cwm81BroqIiIiIKHySk5P9\nPo7Kzv0jjzyCd999F5s2bUJRUZFve05ODoQQqKmp8Tu+pqYGOTk54S6TiIiIiCisoi7cL1y40Bfs\nS0pK/PYVFxcjJycHGzdu9G2z2WzYunUrJk2aFO5SiYiIiIjCKqrGcv793/8dK1euxLp165CcnOzr\n0CckJCA+Ph4AsGjRIixduhSDBw9GSUkJnn/+eSQmJmLmzJln/dqn/0mD/JWXlwMAxo0bF+FKKBR4\nfmMXz21s4/mNXTy3se1Cz+/ZRsujKtyvWLECiqLguuuu89v+7LPP4plnngEA/PznP4fNZsNDDz2E\npqYmTJgwARs2bPCFfyIiIiKiWBVV4d7j8QR03DPPPOML+0REREREF4uom7knIiIiIqKeMdwTERER\nEcUIhnsiIiIiohjBcE9EREREFCMY7omIiIiIYgTDPRERERFRjGC4JyIiIiKKEQz3REREREQxguGe\n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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x8df2470>"
"<matplotlib.figure.Figure at 0xa39b240>"
]
},
"metadata": {},
@@ -1946,14 +1945,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"We can see that the new covariance (the posterior) lies at the intersection of the position covariance and the velocity covariance. It is slightly tilted, showing that there is some correlation between the position and velocity. Far more importantly, it is much smaller than either the position or velocity covariances. In the previous chapter our variance would get smaller each time we performed an `update()` because the previous estimate was multiplied by the new measurement. The same thing happens here. However, the amount by which the covariance got smaller by is much larger in this chapter. This is because we are using two different kinds of information which are nevertheless correlated. Knowing the velocity approximately and the position approximately allows us to very quickly hone in on the correct answer. "
"The new covariance (the posterior) lies at the intersection of the position covariance and the velocity covariance. It is slightly tilted, showing that there is some correlation between the position and velocity. Far more importantly, it is much smaller than either the position or velocity covariances. In the previous chapter our variance would get smaller each time we performed an `update()` because the previous estimate was multiplied by the new measurement. The same happens here. However, the improvement is much more significant here. This is because we are using two different pieces of information which are nevertheless correlated. Knowing the velocity approximately and their correlation and the position approximately allows us to make a very accurate estimate."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a key point in Kalman filters, so read carefully! Our sensor is only detecting the position of the aircraft (how doesn't matter). This is called an *observed variable*. It does not have a sensor that provides velocity. But based on the position estimates we can compute velocity. We call the velocity a *hidden variable*. Hidden means what it sounds like - there is no sensor that is measuring velocity, thus its value is hidden from us. We are able to use the correlation between position and velocity to infer its value very accurately.\n",
"This is a key point, so read carefully! The radar is only detecting the position of the aircraft. This is called an *observed variable*. Based on the position estimates we can compute velocity. We call the velocity a *hidden variable*. Hidden means what it sounds like - there is no sensor that is measuring velocity, thus its value is hidden from us. We are able to use the correlation between position and velocity to infer its value very accurately.\n",
"\n",
"To round out the terminology there are also *unobserved variables*. For example, the aircraft's state includes things such as as heading, engine RPM, weight, color, the first name of the pilot, and so on. We cannot sense these directly using the position sensor so they are not *observed*. There is no way to *infer* them from the sensor measurements and correlations (red planes don't go faster than white planes), so they are not *hidden*. Instead, they are *unobservable*. If you include an unobserved variable in your filter state the estimate for that variable will be nonsense."
]
File diff suppressed because it is too large. Load diff
+9 -3
View File
@@ -79,7 +79,7 @@ def plot_track_ellipses(N, zs, ps, cov, title):
plt.show()
def show_residual_chart():
def show_residual_chart(show_eq=True, show_H=False):
est_y = ((164.2-158)*.8 + 158)
ax = plt.axes(xticks=[], yticks=[], frameon=False)
@@ -105,10 +105,15 @@ def show_residual_chart():
plt.text (1.0, 164.4, r"measurement ($z$)",ha='center',va='bottom',fontsize=18,color='blue')
plt.text (0, 157.8, r"posterior ($x_{t-1}$)", ha='center', va='top',fontsize=18)
plt.text (1.02, est_y-1.5, "residual($y$)", ha='left', va='center',fontsize=18)
plt.text (1.02, est_y-2.2, r"$y=z-\bar x_t$", ha='left', va='center',fontsize=18)
if show_eq:
if show_H:
plt.text (1.02, est_y-2.2, r"$y=z-H\bar x_t$", ha='left', va='center',fontsize=18)
else:
plt.text (1.02, est_y-2.2, r"$y=z-\bar x_t$", ha='left', va='center',fontsize=18)
plt.text (0.9, est_y, "new estimate ($x_t$)", ha='right', va='center',fontsize=18)
plt.text (0.8, est_y-0.5, "(posterior)", ha='right', va='center',fontsize=18)
plt.text (0.75, est_y-1.2, r"$\bar{x}_t + Ky$", ha='right', va='center',fontsize=18)
if show_eq:
plt.text (0.75, est_y-1.2, r"$\bar{x}_t + Ky$", ha='right', va='center',fontsize=18)
plt.xlabel('time')
ax.yaxis.set_label_position("right")
plt.ylabel('state')
@@ -233,6 +238,7 @@ def show_x_error_chart(count):
stats.plot_covariance_ellipse ((5,5), ellipse=e3, variance=sigma,
edgecolor='r', alpha=0.25)
stats.plot_covariance_ellipse (m4[:,0], ellipse=e4, variance=sigma)
plt.ylim((-9, 16))
#plt.ylim([0,11])
#plt.xticks(np.arange(1,4,1))
+1 -1
View File
@@ -1,7 +1,7 @@
#! /bin/bash
#echo "merging book..."
python merge_book.py
ipython merge_book.py
echo "creating pdf..."
ipython nbconvert --to latex --template book book.ipynb
+1 -1
View File
@@ -1,4 +1,4 @@
python merge_book.py
ipython merge_book.py
ipython nbconvert --to latex --template book book.ipynb
ipython to_pdf.py
-1
View File
@@ -49,6 +49,5 @@ if __name__ == '__main__':
'../14-Adaptive-Filtering.ipynb',
'../Appendix-A-Installation.ipynb',
'../Appendix-B-Symbols-and-Notations.ipynb',
#'../Appendix-C-Walking-Through-KF-Code.ipynb',
'../Appendix-D-HInfinity-Filters.ipynb',
'../Appendix-E-Ensemble-Kalman-Filters.ipynb'])