Wording changes.

This commit is contained in:
Roger Labbe committed 2016-11-02 08:38:18 -07:00
1 parent 55d73b21de
commit 83f6795f72
13 files changed
+4176 -553

No files matched your search

+1630 -63
View File
File diff suppressed because it is too large. Load diff
+111 -107
View File
@@ -16,7 +16,7 @@
},
{
"cell_type": "code",
"execution_count": 33,
"execution_count": 1,
"metadata": {
"collapsed": false
},
@@ -289,7 +289,7 @@
"<IPython.core.display.HTML object>"
]
},
"execution_count": 33,
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
@@ -310,7 +310,7 @@
"\n",
"The last chapter ended by discussing some of the drawbacks of the Discrete Bayesian filter. For many tracking and filtering problems our desire is to have a filter that is *unimodal* and *continuous*. That is, we want to model our system using floating point math (continuous) and to have only one belief represented (unimodal). For example, we want to say an aircraft is at (12.34, -95.54, 2389.5) where that is latitude, longitude, and altitude. We do not want our filter to tell us \"it might be at (1.65, -78.01, 2100.45) or it might be at (34.36, -98.23, 2543.79).\" That doesn't match our physical intuition of how the world works, and as we discussed, it can be prohibitively expensive to compute the multimodal case. And, of course, multiple position estimates makes navigating impossible.\n",
"\n",
"We desire a unimodal, continuous way to represent probabilities that models how the real world works, and that is computationally efficient to calculate. As you might guess from the chapter name, Gaussian distributions provide all of these features."
"We desire a unimodal, continuous way to represent probabilities that models how the real world works, and that is computationally efficient to calculate. Gaussian distributions provide all of these features."
]
},
{
@@ -324,7 +324,7 @@
"\n",
"Each time you roll a die the *outcome* will be between 1 and 6. If we rolled a fair die a million times we'd expect to get 1 1/6 of the time. Thus we say the *probability*, or *odds* of the outcome 1 is 1/6. Likewise, if I asked you the chance of 1 being the result of the next roll you'd reply 1/6. \n",
"\n",
"This combination of values and associated probabilities is called a [*random variable*](https://en.wikipedia.org/wiki/Random_variable). *Random* does not mean the process is nondeterministic, only that we lack information. The result of a die toss is deterministic, but we lack enough information to compute the result. We don't know what will happen, except probabilistically.\n",
"This combination of values and associated probabilities is called a [*random variable*](https://en.wikipedia.org/wiki/Random_variable). Here *random* does not mean the process is nondeterministic, only that we lack information. The result of a die toss is deterministic, but we lack enough information to compute the result. We don't know what will happen, except probabilistically.\n",
"\n",
"While we are defining things, the range of values is called the [*sample space*](https://en.wikipedia.org/wiki/Sample_space). For a die the sample space is {1, 2, 3, 4, 5, 6}. For a coin the sample space is {H, T}. *Space* is a mathematical term which means a set with structure. The sample space for the die is a subset of the natural numbers in the range of 1 to 6.\n",
"\n",
@@ -334,7 +334,7 @@
"\n",
"Do not confuse the *measurement* of the random variable with the actual value. If we can only measure the height of a person to 0.1 meters we would only record values from 0.1, 0.2, 0.3...2.7, yielding 27 discrete choices. Nonetheless a person's height can vary between any arbitrary real value between those ranges, and so height is a continuous random variable. \n",
"\n",
"In statistics capital letters are used for random variables, usually from the latter half of the alphabet. So, we might say that $X$ is the random variable representing the die toss, or $Y$ are the heights of the students in the freshmen poetry class. In later chapters we will follow the convention of using lower case for vectors, and upper case for matrices. Unfortunately these conventions clash, and you will have to determine which an author is using from context. "
"In statistics capital letters are used for random variables, usually from the latter half of the alphabet. So, we might say that $X$ is the random variable representing the die toss, or $Y$ are the heights of the students in the freshmen poetry class. Later chapters use linear algebra to solve these problems, and so there we will follow the convention of using lower case for vectors, and upper case for matrices. Unfortunately these conventions clash, and you will have to determine which an author is using from context. "
]
},
{
@@ -376,7 +376,7 @@
"\n",
"for discrete distributions, and as \n",
"\n",
"$$\\int P(X{=}u) \\,du= 1$$\n",
"$$\\int\\limits_u P(X{=}u) \\,du= 1$$\n",
"\n",
"for continuous distributions."
]
@@ -387,7 +387,7 @@
"source": [
"### The Mean, Median, and Mode of a Random Variable\n",
"\n",
"Given a set of data we often want to know a representative or average value for that set. There are many measures for this, and the concept is called a [*measure of central tendency*](https://en.wikipedia.org/wiki/Central_tendency). For example we will want to know the *average* height of the students. We all know how to find the average, but let me belabor the point so I can introduce more formal notation and terminology. Another word for average is the *mean*. We compute the mean by summing the values and dividing by the number of values. If the heights of the students in meters is \n",
"Given a set of data we often want to know a representative or average value for that set. There are many measures for this, and the concept is called a [*measure of central tendency*](https://en.wikipedia.org/wiki/Central_tendency). For example we might want to know the *average* height of the students in a class. We all know how to find the average, but let me belabor the point so I can introduce more formal notation and terminology. Another word for average is the *mean*. We compute the mean by summing the values and dividing by the number of values. If the heights of the students in meters is \n",
"\n",
"$$X = \\{1.8, 2.0, 1.7, 1.9, 1.6\\}$$\n",
"\n",
@@ -406,7 +406,7 @@
},
{
"cell_type": "code",
"execution_count": 34,
"execution_count": 2,
"metadata": {
"collapsed": false
},
@@ -429,7 +429,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"The *mode* of a set of numbers is the number that occurs most often. If only one number occurs most often we say it is a *unimodal* set, and if two or more numbers occur the most with equal frequency than te set is *multimodal*. For example the set {1, 2, 2, 2, 3, 4, 4, 4} has modes 2 and 4, which is multimodal, and the set {5, 7, 7, 13} has the mode 7, and so it is unimodal. We will not be computing the mode in this manner in this book, but we do use the concepts of unimodal and multimodal in a more general sense. For example, in the **Discrete Bayes** chapter we talked about our belief in the dog's position as a *multimodal distribution* because we assigned different probabilities to different positions.\n",
"The *mode* of a set of numbers is the number that occurs most often. If only one number occurs most often we say it is a *unimodal* set, and if two or more numbers occur the most with equal frequency than the set is *multimodal*. For example the set {1, 2, 2, 2, 3, 4, 4, 4} has modes 2 and 4, which is multimodal, and the set {5, 7, 7, 13} has the mode 7, and so it is unimodal. We will not be computing the mode in this manner in this book, but we do use the concepts of unimodal and multimodal in a more general sense. For example, in the **Discrete Bayes** chapter we talked about our belief in the dog's position as a *multimodal distribution* because we assigned different probabilities to different positions.\n",
"\n",
"Finally, the *median* of a set of numbers is the middle point of the set so that half the values are below the median and half are above the median. Here, above and below is in relation to the set being sorted. If the set contains an even number of values then the two middle numbers are averaged together.\n",
"\n",
@@ -438,7 +438,7 @@
},
{
"cell_type": "code",
"execution_count": 35,
"execution_count": 3,
"metadata": {
"collapsed": false
},
@@ -461,7 +461,7 @@
"source": [
"## Expected Value of a Random Variable\n",
"\n",
"The [*expected value*](https://en.wikipedia.org/wiki/Expected_value) of a random variable is the average value it would have if we took an infinite number of samples of it and then averaged those samples together. Let's say we have $x=[1,3,5]$ and each value is equally probable. What would we *expect* $x$ to have, on average?\n",
"The [*expected value*](https://en.wikipedia.org/wiki/Expected_value) of a random variable is the average value it would have if we took an infinite number of samples of it and then averaged those samples together. Let's say we have $x=[1,3,5]$ and each value is equally probable. What value would we *expect* $x$ to have, on average?\n",
"\n",
"It would be the average of 1, 3, and 5, of course, which is 3. That should make sense; we would expect equal numbers of 1, 3, and 5 to occur, so $(1+3+5)/3=3$ is clearly the average of that infinite series of samples. In other words, here the expected value is the *mean* of the sample space.\n",
"\n",
@@ -497,7 +497,7 @@
},
{
"cell_type": "code",
"execution_count": 36,
"execution_count": 4,
"metadata": {
"collapsed": true
},
@@ -517,7 +517,7 @@
},
{
"cell_type": "code",
"execution_count": 37,
"execution_count": 5,
"metadata": {
"collapsed": false
},
@@ -550,7 +550,7 @@
"\n",
"$$\\mathit{VAR}(X) = E[(X - \\mu)^2]$$\n",
"\n",
"Ignoring the squared terms for a moment, you can see that the variance is the *expected value* for how much the sample space ($X$) varies from the mean (squared, of course). We have the formula for the expected value $E[X] = \\sum\\limits_{i=1}^n p_ix_i$, and we will assume that any height is equally probable, so we can substitute that into the equation above to get\n",
"Ignoring the squared terms for a moment, you can see that the variance is the *expected value* for how much the sample space ($X$) varies from the mean. I will explain the purpose of the squared term later. We have the formula for the expected value $E[X] = \\sum\\limits_{i=1}^n p_ix_i$, and we will assume that any height is equally probable, so we can substitute that into the equation above to get\n",
"\n",
"$$\\mathit{VAR}(X) = \\frac{1}{n}\\sum_{i=1}^n (x_i - \\mu)^2$$\n",
" \n",
@@ -570,7 +570,7 @@
},
{
"cell_type": "code",
"execution_count": 38,
"execution_count": 6,
"metadata": {
"collapsed": false
},
@@ -611,7 +611,7 @@
},
{
"cell_type": "code",
"execution_count": 39,
"execution_count": 7,
"metadata": {
"collapsed": false
},
@@ -643,7 +643,7 @@
},
{
"cell_type": "code",
"execution_count": 40,
"execution_count": 8,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -651,9 +651,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAncAAAEtCAYAAABqN0ZuAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt01PWd//HXd4YAIZFsgE24JIFguQeBEAgQ0YgiC3bF\nrQLBPRsCxdaDUoIr3WalYkDExbWsIETrKoKsLaysYHeLhrQBAcEDqVKRi1DuC5OUNIRAi5fk+/vD\nn7OMuTATMvlMvvN8nDPnON95f4d33pPxvPK9WrZt2wIAAIAjuEw3AAAAgKZDuAMAAHAQwh0AAICD\nEO4AAAAchHAHAADgIIQ7AAAAByHcAQAAOIjRcLdkyRINHz5cMTExiouL07333qtPP/30uusdOHBA\nmZmZateunRITE7Vo0aJm6BYAACD0GQ1377//vh599FHt3r1bxcXFatWqle666y5dvHix3nWqqqo0\nduxYdenSRSUlJXrhhRf03HPPadmyZc3YOQAAQGiyQukOFVeuXFFMTIw2b96se+65p86agoIC5eXl\nqaysTK1bt5YkLV68WC+99JLOnDnTnO0CAACEnJA65u7SpUuqqalRbGxsvTV79uzR6NGjvcFOksaN\nG6dz587p1KlTzdEmAABAyAqpcDdnzhylpqZq5MiR9dZ4PB7Fx8f7LIuPj5dt2/J4PMFuEQAAIKS1\nMt3ANx577DF98MEH2rVrlyzLapL3rKysbJL3AQAACAUxMTHXrQmJcDd37lxt2LBB27ZtU/fu3Rus\n7dy5s0pLS32WlZaWyrIsde7cOZhtAgAAhDzju2XnzJmj9evXq7i4WL169bpu/ciRI7Vjxw598cUX\n3mWFhYXq2rXrdYMhAACA0xk9W/aRRx7RunXrtHnzZvXr18+7PDo6WlFRUZKkvLw87d27V0VFRZK+\nPumib9++yszM1BNPPKEjR45o+vTpys/PV25urs/7X7tb1p/NmGga+/btkySlpaUZ7sTZ/D18IYRO\niHckft/NYO5mMHczAs0zRrfcFRQU6PLly7rzzjvVtWtX7+P555/31ng8Hp04ccL7vH379tq6davO\nnTunYcOGafbs2Zo3b16tYAcAABCOjB5zV1NTc92a1atX11o2YMAAbdu2LQgdAQAAtGzGj7kDAABA\n0wmbcGdZvo+nnqq77qmnatdST30o1kv2NY8Fda+gBSHbv1Pqhw1L089/3jVk+gmX+mHD0jRsWFrI\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1d88796c390>"
"<matplotlib.figure.Figure at 0x2100f416390>"
]
},
"metadata": {},
@@ -679,7 +679,7 @@
},
{
"cell_type": "code",
"execution_count": 41,
"execution_count": 9,
"metadata": {
"collapsed": false
},
@@ -688,15 +688,15 @@
"name": "stdout",
"output_type": "stream",
"text": [
"mean = 1.808\n",
"std = 0.142\n"
"mean = 1.782\n",
"std = 0.140\n"
]
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1d88e5a1b00>"
"<matplotlib.figure.Figure at 0x2100fb2c1d0>"
]
},
"metadata": {},
@@ -735,7 +735,7 @@
},
{
"cell_type": "code",
"execution_count": 42,
"execution_count": 10,
"metadata": {
"collapsed": false
},
@@ -770,7 +770,7 @@
},
{
"cell_type": "code",
"execution_count": 43,
"execution_count": 11,
"metadata": {
"collapsed": false
},
@@ -795,7 +795,7 @@
"\n",
"I suggested we might be performing this analysis to order desks for a school district. For each age group there are likely to be two different means - one clustered around the mean height of the females, and a second mean clustered around the mean heights of the males. The mean of the entire class will be somewhere between the two. If we bought desks for the mean of all students we are likely to end up with desks that fit neither the males or females in the school! \n",
"\n",
"It's too early to understand why, but we will not normally be faced with these problems in this book. Consult any standard probability text if you need to learn techniques to deal with these issues."
"We will not normally be faced with these problems in this book. Consult any standard probability text if you need to learn techniques to deal with these issues."
]
},
{
@@ -809,16 +809,16 @@
},
{
"cell_type": "code",
"execution_count": 44,
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nAAAAAElFTkSuQmCC\n",
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAELCAYAAAABYSglAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAADd1JREFUeJzt3WuIVIX7wPFn1ku2JcNuZRdyE2mN7miroEFCabVpF4iC\nCg2CLlRk+i7IJEiKMoJetJXQ3RdZUSGkZeGlUqg1CgqKbrBFasjqtLthlDP/F39aslozO4/O7O/z\ngYUzt/McOB757pkzs6VarVYLAAAK13SoNwAAYLgSWgAASYQWAEASoQUAkERoAQAkEVoAAEmEFgBA\nksJD67HHHouzzz47yuVylMvlmDFjRrzxxhtFjwEAqHulor+wdNWqVTF69Ohob2+ParUazzzzTDz4\n4IPx0UcfxRlnnFHkKACAulZ4aP2do446Kh544IG48cYbs0cBANSNkZkrr1arsXLlyhgYGIgZM2Zk\njgIAqDspofXpp5/G9OnTY/fu3TF27Nh49dVX4/TTT88YBQBQt1LeOvztt9+ip6cnKpVKvPzyy/Hk\nk0/Ghg0b4rTTTtvreZVKpejRAACHTLlc3uv2QblGa/bs2TFhwoRYvnz5XvcLLQBgOPlzaB2U79Gq\nVqvxyy+/HIxRAAB1o/BrtO66666YM2dOjB8/Pvr6+mLFihWxYcOGf/wurT8XII2hVCoNLh+Ek6MU\nrLu7OyIiOjo6DvGWcKAcg43Pcdj49vUOXeGhtW3btpg3b15s27YtyuVynHXWWbFmzZqYNWtW0aMA\nAOpa4aH19NNPF71KAICG5G8dAgAkEVoAAEmEFgBAEqEFAJBEaAEAJBFaAABJhBYAQBKhBQCQRGgB\nACQRWgAASYQWAEASoQUAkERoAQAkEVoAAEmEFgBAEqEFAJBEaAEAJBFaAABJhBYAQBKhBQCQRGgB\nACQRWgAASYQWAEASoQUAkERoAQAkEVoAAEmEFgBAEqEFAJBEaAEAJCk8tO6///6YNm1alMvlGDdu\nXFx22WXx2WefFT0GAKDuFR5aGzdujNtvvz02b94c69ati5EjR8asWbNi165dRY8CAKhrI4te4erV\nq/e6/fzzz0e5XI73338/5syZU/Q4AIC6lX6N1k8//RTVajVaWlqyRwEA1JX00FqwYEFMmTIlpk+f\nnj0KAKCuFP7W4R8tWrQoNm3aFO+//36USqV9Pre7uztzUzgI7MPGZd8ND/ZjY7P/Gld7e/uQj6WF\n1sKFC2PlypWxfv36OOmkk7LGAADUrVKtVqsVvdIFCxbESy+9FOvXr49JkyYN+bxKpTK4XC6Xi94M\nDoI/nqlM+KdEst9/g+7o6DjEW8KBcgw2Psdh49tXzxR+Ruu2226LF154IV5//fUol8uxffv2iIg4\n8sgj44gjjih6HABA3Sr8Yviurq7o7++PCy64IE444YTBn4cffrjoUQAAda3wM1rVarXoVQIANCR/\n6xAAIInQAgBIIrQAAJIILQCAJEILACCJ0AIASCK0AACSCC0AgCRCCwAgidACAEgitAAAkggtAIAk\nQgsAIInQAgBIIrQAAJIILQCAJEILACCJ0AIASCK0AACSCC0AgCRCCwAgidACAEgitAAAkggtAIAk\nQgsAIInQAgBIIrQAAJIILQCAJEILACBJSmi9++67cfnll8eJJ54YTU1N8dxzz2WMAQCoaymh1d/f\nH2eeeWY8+uij0dzcnDECAKDujcxYaWdnZ3R2dkZExPXXX58xAgCg7rlGCwAgScoZrQPR3d19qDeB\n/8g+bFz23fBgPzY2+69xtbe3D/mYM1oAAEnq5oxWR0fHod4E/iP7sPH8/hu0fTc82I+NyXHY+CqV\nypCPOaMFAJAk5YzWwMBAfPXVV1Gr1aJarUZPT0988skn0draGuPHj88YCQBQd1LOaHV3d8fkyZPj\nnHPOid27d8eSJUtiypQpsWTJkoxxAAB1KeWM1syZM6NarWasGgCgYbhGCwAgidACAEgitAAAkggt\nAIAkQgsAIInQAgBIIrQAAJIILQCAJEILACCJ0AIASCK0AACSCC0AgCRCCwAgidACAEgitAAAkggt\nAIAkQgsAIInQAgBIIrQAAJIILQCAJEILACCJ0AIASCK0AACSCC0AgCRCCwAgidACAEgitAAAkggt\nAIAkQgsAIElaaD322GMxceLEOPzww6OjoyPee++9rFEAAHUpJbRefPHFuPPOO+Puu++Ojz/+OGbM\nmBGdnZ3x/fffZ4wDAKhLKaH1yCOPxA033BA33HBDnHLKKfHoo4/G8ccfH11dXRnjAADqUuGh9euv\nv8aWLVti9uzZe91/4YUXxqZNm4oeBwBQt0YWvcIdO3bEnj174thjj93r/mOPPTbeeeedIV9XKhW9\nJRwctcEl+7ARdRzqDeA/cww2Psdho9u1a+jHfOoQACBJ4aF19NFHx4gRI2L79u173b99+/Y47rjj\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1d8915ee5c0>"
"<matplotlib.figure.Figure at 0x2100fe4ef28>"
]
},
"metadata": {},
@@ -845,14 +845,14 @@
"\n",
"This is clearly incorrect, as there is more than 0 variance in the data. \n",
"\n",
"Maybe we can use the absolute value? We can see by inspection that the result is $12/4=3$ which is certainly correct — each value varies by 3 from the mean. But what if we have $Y=[6, -2, -3, 1]$? In this case we get $12/4=3$. $Y$ is clearly more spread out than $X$, but the computation yields the same variance. If we use the correct formula we get a variance of 3.5 for $Y$, which reflects its larger variation.\n",
"Maybe we can use the absolute value? We can see by inspection that the result is $12/4=3$ which is certainly correct — each value varies by 3 from the mean. But what if we have $Y=[6, -2, -3, 1]$? In this case we get $12/4=3$. $Y$ is clearly more spread out than $X$, but the computation yields the same variance. If we use the formula using squares we get a variance of 3.5 for $Y$, which reflects its larger variation.\n",
"\n",
"This is not a proof of correctness. Indeed, Carl Friedrich Gauss, the inventor of the technique, recognized that is is somewhat arbitrary. If there are outliers then squaring the difference gives disproportionate weight to that term. For example, let's see what happens if we have $X = [1,-1,1,-2,3,2,100]$."
]
},
{
"cell_type": "code",
"execution_count": 45,
"execution_count": 13,
"metadata": {
"collapsed": false
},
@@ -874,7 +874,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Is this \"correct\"? You tell me. Without the outlier of 100 we get $\\sigma^2=2.89$, which accurately reflects how $X$ is varying absent the outlier. The one outlier swamps the computation. I will not continue down this path; if you are interested you might want to look at the work that James Berger has done on this problem, in a field called *Bayesian robustness*, or the excellent publications on *robust statistics* by Peter J. Huber [3]."
"Is this \"correct\"? You tell me. Without the outlier of 100 we get $\\sigma^2=2.89$, which accurately reflects how $X$ is varying absent the outlier. The one outlier swamps the computation. Do we want to swamp the computation so we know there is an outlier, or robustly incorporate the outlier and still provide an estimate close to the value absent the outlier? I will not continue down this path; if you are interested you might want to look at the work that James Berger has done on this problem, in a field called *Bayesian robustness*, or the excellent publications on *robust statistics* by Peter J. Huber [3]."
]
},
{
@@ -892,16 +892,16 @@
},
{
"cell_type": "code",
"execution_count": 46,
"execution_count": 14,
"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 0x1d88ffdf3c8>"
"<matplotlib.figure.Figure at 0x2100ff2e978>"
]
},
"metadata": {},
@@ -919,30 +919,30 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"This curve is a [*probability density function*](https://en.wikipedia.org/wiki/Probability_density_function) or *pdf* for short. It shows the relative likelihood for the random variable to take on a value. In the chart above, a student is somewhat more likely to have a height near 1.8 m than 1.7 m, and far more likely to have a height of 1.9 m vs 1.1 m.\n",
"This curve is a [*probability density function*](https://en.wikipedia.org/wiki/Probability_density_function) or *pdf* for short. It shows the relative likelihood for the random variable to take on a value. In the chart above, a student is somewhat more likely to have a height near 1.8 m than 1.7 m, and far more likely to have a height of 1.9 m vs 1.4 m.\n",
"\n",
"> I explain how to plot Gaussians, and much more, in the Notebook *Computing_and_Plotting_PDFs* in the \n",
"Supporting_Notebooks folder. You can read it online [here](https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/Supporting_Notebooks/Computing_and_plotting_PDFs.ipynb) [1].\n",
"\n",
"This may be recognizable to you as a 'bell curve'. This curve is ubiquitous because under real world conditions many observations are distributed in such a manner. In fact, this is the curve for the student heights given earlier. I will not use the term 'bell curve' to refer to a Gaussian because many probability distributions have a similar bell curve shape. Non-mathematical sources might not be as precise, so be judicious in what you conclude when you see the term used without definition.\n",
"This may be recognizable to you as a 'bell curve'. This curve is ubiquitous because under real world conditions many observations are distributed in such a manner. I will not use the term 'bell curve' to refer to a Gaussian because many probability distributions have a similar bell curve shape. Non-mathematical sources might not be as precise, so be judicious in what you conclude when you see the term used without definition.\n",
"\n",
"This curve is not unique to heights — a vast amount of natural phenomena exhibits this sort of distribution, including the sensors that we use in filtering problems. As we will see, it also has all the attributes that we are looking for — it represents a unimodal belief or value as a probability, it is continuous, and it is computationally efficient. We will soon discover that it also has other desirable qualities which we may not realize we desire.\n",
"\n",
"To further motivate you, recall the shapes of the probability distributions in the *Discrete Bayes* chapter. They were not perfect Gaussian curves, but they were similar, as in the plot below. We will be using Gaussians to replace the discrete probabilities used in that chapter!"
"To further motivate you, recall the shapes of the probability distributions in the *Discrete Bayes* chapter:"
]
},
{
"cell_type": "code",
"execution_count": 47,
"execution_count": 15,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlwAAAEWCAYAAACzN0knAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAHGxJREFUeJzt3X1QlXX+//EXdyp4w+qwHlDwBsb1DqMEK8HSdsTGNTfb\nkrQ2Rdo1qlWJHSvKblyk3HKXDQOaLRdNt5Fmm91uVksqvCF0RjCcKDVLyxzPOZurIVomeq7fH/1i\nliQ56vXx4pzv8zHjDH74XNd5vQPt5XUO5wqxLMsSAAAAjAl1OgAAAECwo3ABAAAYRuECAAAwjMIF\nAABgGIULAADAMAoXAACAYRQuAAAAw/wqXFu2bNGNN96o+Ph4hYaG6sUXX+zwmMbGRk2YMEFRUVFK\nSEhQYWHhRYcFAAAIRH4VruPHj2vUqFEqKSlRVFRUh/ubm5uVmZmpuLg41dfX65lnntHTTz+t4uLi\niw4MAAAQaELO953me/bsqdLSUs2aNetH95SXl6ugoED/+c9/1KVLF0lSUVGRnnvuOX3xxRcXlxgA\nACDAGHkN17Zt23TNNde0li1Juv7663Xo0CF9/vnnJh4SAACg0zJSuDwej1wuV5s1l8sly7Lk8XhM\nPCQAAECnFe50gKamJqcjAAAA2CY6OvqsNSNXuGJjY+X1etuseb1ehYSEKDY21sRDAgAAdFpGCtfY\nsWO1ZcsWnTp1qnVtw4YN6tevnwYOHGjiIQEAADotv55SPHHihD755BNZliWfz6cDBw5o586d6tOn\njxISElRQUKDt27fr7bffliTddttt+sMf/qDs7Gw9/PDD2rNnj/74xz9q8eLF53yc9i7BXYy6ujpJ\nUlpamq3n7SyCfT4p+GcM9vmk4J+R+QJfsM/IfJdGRy+R8usKV11dna644gqlpqbq5MmTeuyxxzR6\n9Gg99thjkr57kfz+/ftb9/fq1UtVVVU6dOiQxowZo3nz5mnhwoXKy8u7iFEAAAACk19XuMaPHy+f\nz/ejn6+oqDhrbeTIkdq4ceMFBwMAAAgW3EsRAADAMAoXAACAYRQuAAAAwyhcAAAAhlG4AAAADKNw\nAQAAGEbhAgAAMIzCBQAAYBiFCwAAwDAKFwAAgGEULgAAAMMoXAAAAIZRuAAAAAyjcAEAABhG4QIA\nADCMwgUAAGAYhQsAAMAwChcAAIBhFC4AAADDKFwAAACGUbgAAAAMo3ABAAAYRuECAAAwjMIFAABg\nGIULAADAMAoXAACAYRQuAAAAwyhcAAAAhlG4AAAADKNwAQAAGEbhAgAAMIzCBQAAYBiFCwAAwDAK\nFwAAgGEULgAAAMMoXAAAAIZRuAAAAAzzu3CVlZUpMTFRkZGRSktLU01NzTn3v/XWW0pPT1evXr30\n05/+VNOmTdPevXsvOjAAAECg8atwVVZWKi8vT4sWLVJDQ4PS09M1efJkHTx4sN39n332maZNm6bx\n48eroaFB77zzjk6ePKkpU6bYGh4AACAQ+FW4iouLlZOTo5ycHA0dOlQlJSWKi4tTeXl5u/vr6+t1\n+vRpPfHEE0pMTNRll12mBx98UJ9++qmOHDli6wAAAACdXYeFq6WlRfX19crMzGyzPmnSJNXW1rZ7\nzJgxYxQREaEXXnhBPp9Pzc3NWrlypa688kr16dPHnuQAAAABosPCdfjwYZ05c0Yul6vNusvlksfj\nafeYAQMGaMOGDXr00UfVtWtX/eQnP9GHH36o119/3Z7UAAAAASTEsizrXBvcbrf69++vzZs3a9y4\nca3rhYWFeumll7Rr166zjvF6vbr22mt10003aebMmWpubtajjz4qy7JUXV3dZm9TU1Prx7yoHgAA\nBKIhQ4a0fhwdHX3W58M7OkFMTIzCwsLk9XrbrHu9XsXGxrZ7TGlpqXr06KGlS5e2rq1evVoJCQmq\nra1Venq63wMAAAAEug4LV0REhFJTU1VVVaWbb765db2qqkrTp09v95ivv/5aYWFhbdZCQ7979tLn\n8/3oY6WlpfkV2l91dXVGzttZBPt8UvDPGOzzScE/I/MFvmCfkfkujf99xq49fv2UYn5+vlauXKkV\nK1Zo9+7dWrBggdxut3JzcyVJBQUFmjhxYuv+KVOmaMeOHSosLNQnn3yiHTt2aM6cORowYIBSU1Mv\nYhwAAIDA0+EVLknKysrSkSNHVFRUJLfbreTkZK1fv17x8fGSJI/Ho/3797fuv+666/TSSy/pqaee\n0tNPP62oqChdffXVevPNNxUZGWlmEgAAgE7Kr8IlSbm5ua1XtH6ooqLirLWsrCxlZWVdeDIAAIAg\nwb0UAQAADKNwAQAAGEbhAgAAMIzCBQAAYBiFCwAAwDAKFwAAgGEULgAAAMMoXAAAAIZRuAAAAAyj\ncAEAABhG4QIAADCMwgUAAGAYhQsAAMAwChcAAIBhFC4AAADDKFwAAACGUbgAAAAMo3ABAAAYRuEC\nAAAwjMIFAABgGIULAADAMAoXAACAYRQuAAAAwyhcAAAAhlG4AAAADKNwAQAAGEbhAgAAMIzCBQAA\nYBiFCwAAwDAKFwAAgGEULgAAAMMoXAAAAIZRuAAAAAyjcAEAABhG4QIAADCMwgUAAGAYhQsAAMAw\nvwtXWVmZEhMTFRkZqbS0NNXU1HR4zF/+8hcNHz5c3bp1U//+/fXQQw9dVFgAAIBAFO7PpsrKSuXl\n5em5555TRkaGSktLNXnyZO3atUvx8fHtHpOfn69169Zp2bJlSk5OVlNTk9xut63hAQAAAoFfhau4\nuFg5OTnKycmRJJWUlOjNN99UeXm5ioqKztq/Z88ePfvss2psbNTPfvaz1vWUlBSbYgMAAASODp9S\nbGlpUX19vTIzM9usT5o0SbW1te0e89prrykpKUnr1q1TUlKSBg8erOzsbH355Zf2pAYAAAggIZZl\nWefa4Ha71b9/f23evFnjxo1rXS8sLNRLL72kXbt2nXXM3XffrZUrV+ryyy/XsmXLJEm///3vFRIS\noq1bt7bZ29TU1Prx3r17L2oYAAAAJwwZMqT14+jo6LM+79dTiufL5/Pp1KlTWrNmjZKSkiRJq1ev\n1tChQ7V9+3aNGTPGxMMCAAB0Sh0WrpiYGIWFhcnr9bZZ93q9io2NbfeYuLg4hYeHt5Yt6bvmFxYW\npgMHDvxo4UpLSzuf7B2qq6szct7OItjnk4J/xmCfTwr+GZkv8AX7jMx3afzvM3bt6fA1XBEREUpN\nTVVVVVWb9aqqKmVkZLR7TEZGhk6fPq39+/e3rn366ac6c+aMBg4c6E9uAACAoOHX+3Dl5+dr5cqV\nWrFihXbv3q0FCxbI7XYrNzdXklRQUKCJEye27p84caJGjx6tnJwcNTQ06P3339edd96psWPHOt5A\nAQAALjW/XsOVlZWlI0eOqKioSG63W8nJyVq/fn3re3B5PJ42V7NCQkL0xhtvaP78+Ro/frwiIyM1\nadIk/elPfzIzBQAAQCfm94vmc3NzW69o/VBFRcVZay6XS5WVlReeDAAAIEhwL0UAAADDKFwAAACG\nUbgAAAAMo3ABAAAYRuECAAAwjMIFAABgGIULAADAMAoXAACAYRQuAAAAwyhcAAAAhlG4AAAADKNw\nAQAAGEbhAgAAMIzCBQAAYBiFCwAAwDAKFwAAgGEULgAAAMMoXAAAAIaFOx0AAC6FTw83y33itO3n\nbe7WV5JU8/lR288d1z1cSTE9bT8vgEuPwgXg/wT3idOat/mwwUf41vYzLr82Rkkxtp8WgAN4ShEA\nAMAwChcAAIBhFC4AAADDKFwAAACGUbgAAAAMo3ABAAAYRuECAAAwjMIFAABgGIULAADAMAoXAACA\nYRQuAAAAwyhcAAAAhlG4AAAADKNwAQAAGEbhAgAAMIzCBQAAYBiFCwAAwDC/C1dZWZkSExMVGRmp\ntLQ01dTU+HXc3r171bNnT/Xq1euCQwIAAAQyvwpXZWWl8vLytGjRIjU0NCg9PV2TJ0/WwYMHz3lc\nS0uLZs6cqQkTJtiRFQAAICD5VbiKi4uVk5OjnJwcDR06VCUlJYqLi1N5efk5j7v//vuVkpKiW265\nxZawAAAAgajDwtXS0qL6+nplZma2WZ80aZJqa2t/9Lh///vfWrdunZYvX37xKQEAAAJYeEcbDh8+\nrDNnzsjlcrVZd7lceuedd9o95tChQ5o7d65effVVRUVF+R2mrq7O773nw9R5O4tgn08K/hmDfT7J\n+Rmbu/V19PEvRHNzs+rqPnU6hiTnv36XQrDPyHxmDRky5JyfN/JTinfccYfuuecepaWlSZIsyzLx\nMAAAAAGhwytcMTExCgsLk9frbbPu9XoVGxvb7jHV1dXasmWLHn/8cUnfFS6fz6cuXbqorKxMv/nN\nb9o97vuCZpfv267d5+0sgn0+KfhnDPb5pM4zY83nRyV962iG89WzZ0+lJQ9wNENn+fqZFOwzMt+l\n0dTUdM7Pd1i4IiIilJqaqqqqKt18882t61VVVZo+fXq7xzQ2Nrb5/b/+9S898cQT2r59u/r16+dP\nbgAAgKDRYeGSpPz8fM2aNUtjxoxRRkaGysvL5Xa7lZubK0kqKCjQ9u3b9fbbb0uSRowY0eb47du3\nKzQ0VMOHD7c5PgAAQOfnV+HKysrSkSNHVFRUJLfbreTkZK1fv17x8fGSJI/Ho/379xsNCgAAEKj8\nKlySlJub23pF64cqKirOeezs2bM1e/bs80sGAAAQJLiXIgAAgGEULgAAAMMoXAAAAIZRuAAAAAyj\ncAEAABhG4QIAADCMwgUAAGAYhQsAAMAwChcAAIBhFC4AAADDKFwAAACGUbgAAAAMo3ABAAAYRuEC\nAAAwjMIFAABgGIULAADAMAoXAACAYRQuAAAAwyhcAAAAhlG4AAAADKNwAQAAGEbhALine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1d8916cecf8>"
"<matplotlib.figure.Figure at 0x2100ff885f8>"
]
},
"metadata": {},
@@ -955,6 +955,13 @@
"book_plots.bar_plot(belief)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"They were not perfect Gaussian curves, but they were similar. We will be using Gaussians to replace the discrete probabilities used in that chapter!"
]
},
{
"cell_type": "markdown",
"metadata": {},
@@ -966,16 +973,16 @@
},
{
"cell_type": "code",
"execution_count": 48,
"execution_count": 16,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAm4AAAEtCAYAAACxjOxMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYVFf+BvB3ZigCCqJIRxBFRLAgoCBgB8TeNRhLTLKa\nuEbUNdEkvy3JuokxiSWJmqJrS+wlGkXBXhAVFBQURZpSBkEUEJEyM78/MNfMBgUVuczM+3kenyfn\nzLl33uEG/c4t50hUKpUKRERERNToScUOQERERER1w8KNiIiISEOwcCMiIiLSECzciIiIiDQECzci\nIiIiDcHCjYiIiEhDsHAjIiIi0hB1LtxWrlwJZ2dnGBkZwdvbG6dPn37m+MTERPTp0wfGxsZwcHDA\np59+qvb67t27ERISAktLS5iamsLX1xf79u1TG7N+/XpIpVLIZDJIpVLhvysqKp7jIxIRERFphzoV\nblu3bkV4eDg+/vhjxMfHo2fPnggNDUVWVlaN40tKShAUFAQbGxvExcVh+fLlWLJkCZYuXSqMOXHi\nBPr3748DBw4gPj4egwYNwsiRI3HmzBm1fZmYmEAulwt/cnNzYWBg8BIfmYiIiEgzSeqycoKvry+6\ndu2K1atXC33t27fH2LFjsWjRoj+NX7VqFRYuXIg7d+4IRdaiRYuwevVq3L59+6nv06NHD/Tq1QtL\nliwBUH3GbdasWSguLn7uD0ZERESkbWo941ZZWYm4uDgEBQWp9QcHByM6OrrGbWJiYhAYGKh2Ziwk\nJAQ5OTnIzMx86nuVlJTA3Nxcra+srAxOTk5wcHDA0KFDER8fX1tkIiIiIq1Ua+FWUFAAhUIBKysr\ntX4rKyvI5fIat5HL5TWOV6lUT93mu+++Q3Z2NiZNmiT0ubq6Yu3atdi7dy+2bNmCJk2awN/fH6mp\nqbV+MCIiIiJtoyd2AADYuXMnPvjgA2zbtg0ODg5Cv6+vL3x9fYW2n58fPD098c0332DZsmVq+ygq\nKmqwvERERESvmpmZ2Z/6aj3jZmFhAZlMhry8PLX+vLw8WFtb17iNtbV1jeMlEsmfttmxYwcmT56M\njRs3YtCgQc/MIpVK4eXlhZSUlNpiExEREWmdWgs3fX19eHl5ISoqSq0/KioK/v7+NW7j5+eHU6dO\nqU3bERkZCVtbWzg6Ogp927Ztw5QpU7BhwwaMHDmyToETEhJgY2NTp7FERERE2qROl0rnzp2LyZMn\nw8fHB/7+/li1ahVyc3MxY8YMAMDChQtx4cIFHD58GAAQFhaGTz75BFOnTsVHH32E69evY/HixfjX\nv/4l7HPLli2YPHkyvvrqKwQEBAhn6AwMDIQHFD755BP4+vrCxcUFxcXFWL58ORITE/HDDz88M29N\npxZ1SWxsLADA29tb5CRUFzxemoPHSnPwWGkWHq8narv1q06F27hx41BYWIhFixYhNzcXHh4eiIiI\ngL29PYDqhxHS09OF8aampoiKisLMmTPh4+MDc3NzzJ8/H+Hh4cKY77//HgqFAuHh4Wr9vXv3xtGj\nRwEA9+/fx/Tp0yGXy2FmZgZPT0+cOnUKXl5edf8JEBEREWmJOs3jpgn+WKHyjBu/uWgSHi/NwWOl\nOXisNAuP1xO11TNcq5SIiIhIQ7BwIyIiItIQLNyIiIiINAQLNyIiIiINwcKNiIiISEOwcCMiIiLS\nECzciIiIiDREo1hknoioMVOpVKhSVOJR5UNIJVJUVJVDT6oHqVQmdjQi0jEs3IiIUF2c3X9QgFt5\nqbh9JxV37mejsOgOCkvyUVZeCoWyShi75RwggQRNjUxh2rQFzJtawLpla9i0bA0HS2dYmdtDIpGI\n+GmISFuxcCMinfWw/AGSM+ORnHkJ127Fo+jB3Tpvq4IKJWVFKCkrQnZ+OhLTLwivNTMyQzt7D7i2\n7opOzt3RzFi3V3MhovrDwo2IdEplVQUS02MRd/0kkjJioVBU1b4RAJlUDzKJHlRQAVChUlHx1LEl\nZUW4lHIGl1LOYOvRVWhn5w4v117wah8AQwOjevokRKSLWLgRkU64V5KP05cPIjopCqVlxTWOMTQw\ngoNlWzhatYNNS0e0NLVEC1MrNDUyhZ5MH3FxcQCq11NUKKpQ/PA+ikvvoaBIjty7mcguyEB67nU8\nfFQi7FOlUiIl6wpSsq5g98k18HLthd5dh8CmZesG+dxEpF1YuBGRVsu/n4tD57chNvkElCrln163\nt3SGh5MP3Jw80drKBbI6PnAgk+nBvJkFzJtZwNHaBUAgAECpUiK34Bau347H5ZvnkJ6b/PgsHVBe\n+QjRiZGIToxE57Y9EOQ95vG2RER1w8KNiLTS3aI8HDy/DReuHftTwWberBV6uPWDV4desDK3q9f3\nlUqksGvlBLtWTujXbQSKSgtx8fppRCdGIu9eljDucuo5XE49hw6tu2J4wFTYtXKq1xxEpJ1YuBGR\nVimvKEPkhR04eunXP92/1s7OHb27DoWHs0+dz6y9LDOTFujbbRj6eA5FWs5VHL34K66knRdeT74V\nj+u/zEEP9/4Y7BcGM5MWDZKLiDQTCzci0goqlQoXb5zGntPr/vR0aHuHzhjk+xqcbd1ESgdIJBK0\ntXNHWzt35BRk4nDsLsTdOAWVSgkVVIhJOoyLN05jsG8YencdzDniiKhGLNyISOPdf3AXW46sxNWM\nOLV+R+v2GB4wBe3s3EVKVjNbC0dMHjgHQT6j8eupdbiaeREAUFH5CLtPrcXFG6fw2oCZsLVwEjco\nETU6LNyISGOpVCpcSD6OnSd+Qll5qdDfzMgMwwImw8etL6SSxruyn03L1pgx4u+4lnkJu0+uhbzw\nNgAgMy8FX2yeh5Du4xDsM6bBLusSUePHwo2INNLDRw/wy+FvcTk1RuiTQILALoMw2C8MRoYmIqZ7\nPm6OnnAJ+xpRsbsQeX47FMoqKJUKRMRsxvVb8ZgcMhctTFuJHZOIGoHG+1WUiOgpMuU38MUvc9SK\ntpZmVpg15t8Y0+dtjSrafqcn00doj/F4P2wp2th0EPrTcq5h8S/hiE+JFjEdETUWLNyISGOoVCoc\nu7QXy7Z/iMKSfKE/oHMoFkxc3ujuZXsRNi0dMHvMIgz2CxMu85aVl2LtgS+w++RaKJQKkRMSkZh4\nqZSINEJlVQW2HFmJC8nHhT4jA2OEBb2HLu18xQv2CkilMoR0HwcX+87YcPAroUg9dmkvsgsyMDX0\nb2hqZCpySiISA8+4EVGjV1x6H9/s+j+1oq21lQveD1uqdUXbHznbdsD7E5eik3N3oe/G7cv4cvM8\nZOeni5iMiMTCwo2IGrXs/HR8teVvyMi9LvT5uQdh9pj/oKWZlYjJGoaxYVO8OWQBQntMEPoKS/Kx\nbPtCXMu8JGIyIhIDCzciarSuZV7C0u0Lce9BAQBAIpFiZK9pmND/Xejr6YucruFIJVKE+k7A20M/\nhKGBEYDqdU+/3/tvnLt6VOR0RNSQWLgRUaN08cZp/LB3ESoqHwEADA2MMH3YR+jrOQwSiUTkdOLo\n5Nwdc8Z+juZNWwIAlEoFfo5agUPnt0GlUomcjogaAgs3Imp0TiUcwPqIr6BQVq81at7UAnPHLUZH\nJy+Rk4nP1sIRc8d/obaqwv6zv2D78R+gVCnFC0ZEDYKFGxE1GiqVChHntmL78R+gQvUZJKsW9ggf\n9zlsWrYWOV3j0bxpS8weswjtHToLfacvR2Dz4e+g5HQhRFqNhRsRNQoqlQq/RW9CRMxmoc/Ruj3C\nx/wH5s0sREzWOBkZmmDG8P+DV/tAoe/c1SPYcGgZFIoqEZMR0avEedyISHQqlQr7ojfhcOxOoa9D\n6654c/AHws349Gd6Mn1MCgmHvp4BYq4eAQBcvHEKVYpKTBk4T6ce4CDSFTzjRkSiUqlU2Hdmo1rR\n5tHGB28P/YhFWx1IpTJMGDATAZ1Dhb7LqTH4b8QSnnkj0kIs3IhINELRFrdL6PNw7o5pg9/n2aLn\nIJVIMbbPX9Cv23ChLzHtPNYf+ppLZBFpGRZuRCSayAvb1Yq2Ts7dMW3QfOjJWLQ9L4lEguEBU9Hf\na6TQF58Sjc2Hv+XTpkRahIUbEYniZMIB7D/7i9Du5Nwdb7BoeykSiQTD/CejV5fBQt/5a8ew/ej3\nnOeNSEuwcCOiBnch+QR2HP9BaHdo3RVTQ1m01QeJRIJRvd+En3uQ0Hcm8RD2nlkvYioiqi8s3Iio\nQSWmXcDPkcuFtpO1K94csoD3tNUjqUSK8f1mwLtDb6HvSNweHLu0V8RURFQfWLgRUYNJzU7Cfw8s\nEe65smnZGtOHfwxD/SYiJ9M+UqkME4PeQyfn7kLf7pNrcfHGaRFTEdHLqnPhtnLlSjg7O8PIyAje\n3t44ffrZv/yJiYno06cPjI2N4eDggE8//VTt9d27dyMkJASWlpYwNTWFr68v9u3b96f97Ny5E+7u\n7mjSpAk8PDywZ8+eukYmokYkrzALP+77DJWKCgBASzMrvDvynzBp0kzkZNpLJpVhSug8tLHpIPRt\njFyGG7cvi5iKiF5GnQq3rVu3Ijw8HB9//DHi4+PRs2dPhIaGIisrq8bxJSUlCAoKgo2NDeLi4rB8\n+XIsWbIES5cuFcacOHEC/fv3x4EDBxAfH49BgwZh5MiROHPmjDDm7NmzmDBhAiZNmoSEhASEhYVh\n7NixuHDhwkt+bCJqSCUP72P1r5/iYfkDAICpsTlmjvwXzExaiJxM+xnoGeIvwz6Clbk9AEChqMKP\nv32G7Px0kZMR0YuQqOrwqJGvry+6du2K1atXC33t27fH2LFjsWjRoj+NX7VqFRYuXIg7d+7AwMAA\nALBo0SKsXr0at2/ffur79OjRA7169cKSJUsAABMmTMC9e/dw6NAhYUxQUBAsLS3x8Line truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1d88ff8a9e8>"
"<matplotlib.figure.Figure at 0x21010185240>"
]
},
"metadata": {},
@@ -994,7 +1001,7 @@
"\n",
"You may object that human heights or automobile speeds cannot be less than zero, let alone $-\\infty$ or $\\infty$. This is true, but this is a common limitation of mathematical modeling. “The map is not the territory” is a common expression, and it is true for Bayesian filtering and statistics. The Gaussian distribution above models the distribution of the measured automobile speeds, but being a model it is necessarily imperfect. The difference between model and reality will come up again and again in these filters. Gaussians are used in many branches of mathematics, not because they perfectly model reality, but because they are easier to use than any other relatively accurate choice. However, even in this book Gaussians will fail to model reality, forcing us to use computationally expensive alternatives. \n",
"\n",
"You will see these distributions called *Gaussian distributions* or *normal distributions*. *Gaussian* and *normal* both mean the same thing in this context, and are used interchangeably. I will use both throughout this book as different sources will use either term, and I want you to be used to seeing both. Finally, as in this paragraph, it is typical to shorten the name and talk about a *Gaussian* or *normal* — these are both typical shortcut names for the *Gaussian distribution*. "
"You will hear these distributions called *Gaussian distributions* or *normal distributions*. *Gaussian* and *normal* both mean the same thing in this context, and are used interchangeably. I will use both throughout this book as different sources will use either term, and I want you to be used to seeing both. Finally, as in this paragraph, it is typical to shorten the name and talk about a *Gaussian* or *normal* — these are both typical shortcut names for the *Gaussian distribution*. "
]
},
{
@@ -1032,7 +1039,7 @@
},
{
"cell_type": "code",
"execution_count": 49,
"execution_count": 17,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -1040,9 +1047,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmUAAAEtCAYAAABJbBe7AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd8FVX+//HXzU0hhYSEhBRCLwHpEGoAqQlFEUVAdEVF\nRSx8Rf2isuv3t8V1m651KbbFhgKCKCIgoTcjNfReAoEkJIT0fnN/fwQHIoEETDIp7+fjwePhOXdm\n7vvO3k0+mTlzjsVut9sREREREVM5mB1ARERERFSUiYiIiFQJKspEREREqgAVZSIiIiJVgIoyERER\nkSpARZmIiIhIFaCiTERERKQKKHNRNmvWLJo3b46rqyuhoaFs3rz5uttu2LCB0aNHExQUhLu7O506\ndWLu3LklbhcaGoqrqystW7bk/fffv7VPISIiIlLNlakoW7BgAdOmTeOVV14hOjqaPn36MHz4cGJj\nY0vcfuvWrXTs2JHFixdz4MABnnzySSZPnsz8+fONbU6fPs3IkSPp27cv0dHRvPzyy0ydOpUlS5aU\nzycTERERqUYsZZnRv1evXnTu3Jk5c+YYfa1bt2bs2LG89tprZXqj8ePHU1hYyNdffw3ASy+9xLff\nfsuRI0eMbR5//HEOHjzIli1bbvZziIiIiFRrpV4py8/PZ+fOnQwdOrRYf3h4OFu3bi3zG6WlpeHt\n7W20o6KiCA8PL7ZNREQEO3bswGazlfm4IiIiIjVBqUVZUlISNpsNf3//Yv3+/v7Ex8eX6U2WLVvG\n2rVreeKJJ4y++Pj4Eo9ZUFBAUlJSmY4rIiIiUlM4VvQbbNmyhQceeID33nuPbt263dIxUlNTyzmV\niIiIiHm8vLyu6Sv1Spmvry9Wq5WEhIRi/QkJCQQEBNxw382bNzNixAj++te/Mnny5GKvBQQElHhM\nR0dHfH19S4slIiIiUqOUWpQ5OTnRrVs3IiMji/VHRkYSFhZ23f02btzIiBEj+Mtf/sLUqVOveb13\n797XHHPVqlWEhoZitVrLml9ERESkRijT7cvnn3+eiRMn0r17d8LCwpg9ezZxcXFMmTIFgBkzZrB9\n+3ZWr14NwPr167njjjt4+umnue+++4wrYlar1bgKNmXKFGbOnMlzzz3HE088webNm/nss8+KTZtR\nkpIu9wHs2LEDgNDQ0LJ8JPkNdK4rj8512djtdg6fiWb97u85FLOrxG0cLA409GtGY/9WNGrQAr96\ngfh4+lHPvT5WqyMWy5VtCwvtZOWkk5yeyMXUBM4lneZswnFOJxwjKye9xON71/Wjf6eR9G4/BDcX\nj4r4mDWGvteVS+e78pR2rksbjlWmomzcuHEkJyfz2muvERcXR/v27VmxYgXBwcFA0aD9U6dOGdt/\n+umnZGdn88Ybb/DGG28Y/U2aNOHkyZMANG3alOXLl/Pcc88xZ84cgoKCeO+99xg9enRZIomIYLfb\n2XfyZ5ZHzed80ulrXndz8aBjy160a9qNVo06lLlYslgsuLt64u7qSaMGLejcqg8AhYU2zl44yaGY\nXew5EcW5xCs/9y6lJ/Ld5k9Y8fN8BnS+g4Fd78K9Tt1y+ZwiUjuUaZ4ys11dWepKmfl0riuPzvX1\nHTmzh++3fM6ZC8eL9Vuw0K5ZKD1vG8xtTbvh5OhUpuNdfaWsrD8VzyfFsP3weqIOriEzO63Ya3Wc\n3RjU9S4GdR2Ns5NL2Q5YS+h7Xbl0vivPzVwpK6meqfCnL0VEytOl9ESWbJxL9PHi8yQ6O9Whd7sh\n9O80Er96gZWSJci3CXf1fYjhve5j55FNrN+9lLiLZwDIyctiedRXRB1YzT23P0qH5j2xXF35iYj8\niooyEakWbLYC1u76jh+3LSSvINfod7I606/TcAZ3u4e6biVfSa9ozo4u9G43hJ63DSL62FaWR33F\nhUvnAEhOT+SjZf+gbZOujB04GV+vGz+1LiK1l4oyEany4pPP8sWP71xzqzK0ze2MCptIPY/6JiUr\nzsHiQNfWfenUsjdRB1azbOsXZF5+MOBQzC7+MW8ad/d7hD7tw3XVTESuoaJMRKqsQnshG6KXsWzL\nF+Tb8oz+IN+mjB3wOC0atjMx3fVZHayEdYigc6s+/LB1Hlv2/YgdO3n5OSxYO5u9J37m/iHP4OXh\nY3ZUEalCSp2nTETEDBnZabz/3V9ZsvG/RkFmtToyKmwi0yf8u8oWZFdzr1OXcYOm8MJ9r+PvE2z0\nF101e5ZDMbtNTCciVY2KMhGpcmLij/L6Vy8Um3OsoV8zpt/3BkNC78HqUL0mmG7s35LpE/7NwC6j\nsFB02zIzJ5053/6FFVHzKbQXmpxQRKoC3b4UkSpl896VLN7wEbbCAqNvSLd7GNF7Ao7Wsk1vURU5\nO7pwd/9JtG/enc9WvkVqZjJ27Kz4eT6n4o/w0LDnNa+ZSC2nK2UiUiXYCm0sWv8BC9fNMQoyVxd3\nHr/z94zqO7FaF2RXaxXcgekT3qR1cAej73DMbt5c8BIXLp03MZmImE1FmYiYLicvmw+//xsb9yw3\n+oIbNGf6hH/ToXkPE5NVDE/3ejx1958I736v0ZeYcp43F77E8XMHTEwmImZSUSYipkrJuMjbX8/g\n4OmdRl/nVn2YNvbvNXpOLwcHK3f0+R2PjHgRJ6szAFk56cz85o9sP7ze3HAiYgqNKRMR0ySmxDFz\nyR9JTrtg9IV3H8uI3hNwsNSOvxm7tOqDT11fPvj+b6RnpWArLODzH98mMzudAV3uNDueiFSi2vFT\nT0SqnHOJp3n76xlGQebgYOWBoVO5o88DtaYg+0WTgNa8MP5fBNZvbPR9s/Fjlkd9RTVYnlhEyknt\n+sknIlXCqbgjvLv4D6RnpQDg5OjM5Dt/T8/bBpuczDw+ng149t6/0SywjdG38ucFLN7wkabMEKkl\nVJSJSKU6FrufmUv+SHZuJgB1nN14avQfua1pN5OTmc+tjgdP3f0n2jTpYvRt3PMDi9Z9oCtmIrWA\nijIRqTQnzx/i/aV/JS8/BwB3V0+mjnm1WszOX1lcnOow+c7f06VVmNG3ed9KFq3/UIWZSA2ngf4i\nUilOxx9l9nd/MQoyT3dvpt7zarHlh6SIo9WJh4Y9j4ODlZ1HNgKwae9yHBwcuKf/o1rMXKSG0pUy\nEalwZxKOM3vJn8jNywagrqsXz9zzFxVkN+DgYOV34c/StXU/o29D9DKWbJqrK2YiNZSKMhGpUOeT\nYpi15E9k52UBRYt0P33PXwjwaWRysqrP6mDlwYhpdG7Vx+hbv3spK7ctNDGViFQUFWUiUmGS0y4w\n+9s/k5WbAYCbiwdP3/NngnybmJys+rA6WHko4nk6text9K2I+opNe1eYmEpEKoKKMhGpEBnZacz6\n9s+kZiYD4OLsylN3/4lgv+YmJ6t+rFZHHhr2PG0adzb6Fq37gN3HtpiYSkTKm4oyESl3ufk5vL/0\nr1y4dA4oKioev2MGjf1bmpys+nK0OvHoyJdo4t8KADt2Plv5FkfO7DE5mYiUFxVlIlKubLYC5v7w\nL2LijwJgwcKD4dNo3aijycmqPxdnV5646/9o4N0QAFthAR8t+zvnEk+ZnExEyoOKMhEpN3a7nUXr\nP+RgzC6jb8yAx+jauq+JqWoWD1dPnhr9J7w86gNXrkr+cptYRKovFWUiUm42RC9jy/4fjXZ497H0\n7zTSxEQ1k4+nH0+N/iN1nN0ASMm4yAdLXyP38hxwIlI9qSgTkXJx4NQOlmyaa7S7te7HyN73m5io\nZgus35hHRkw3Fm8/e+EEn//4ttbJFKnGVJSJyG92Puk0n6x4A/vlgqBpYAj3D52qmecrWNsmXRgz\n4HGjvfdEFN9v+dzERCLyW6goE5HfJC0zpditM++6fjw2cgZOjs4mJ6sd+nUczoAuo4z2mp1L+OnA\nahMTicitUlEmIreswJbPxz/8g+T0RKBoMe0nRv0BT/d6JierXUb3fYj2zbob7YXr5nD68tOvIlJ9\nqCgTkVv2zcb/ciruMAAWiwMPD/9fgnybmhuqFnJwsPLQsOeNc2+zFfDxD/8kLfOSucFE5KaoKBOR\nW/LzwTVsvmqpn1FhD9KuWaiJiWo3F2dXHrvjZdxcPABIzbjIf5f/iwJbvsnJRKSsVJSJyE07k3Cc\nBWvnGO0urcIY1HW0iYkEwNcrgIeGv4Dl8hOZJ88f4turnogVkapNRZmI3JT0rFQ+/uGfxhWYwPqN\nuX/IM3rSsopo26QLd/T5ndHeuGc5Px9cY2IiESkrFWUiUma2Qhufrvw3ly4P7Hd1duPRkS/j4uxq\ncjK52pBud9O5ZR+jvWDtHM5eOGliIhEpCxVlIlJmK6Lmc/TsXqP9YMRzNPAOMjGRlMRisfDA0KkE\n1m8MFD0l+8ny18nOzTI5mYjciIoyESmTwzHRRG5fZLSH9RxP++bdb7CHmMnF2ZVHR76Ei1MdABJT\n45i/ZiZ2u93kZCJyPSrKRKRUqRnJfPbjW9gp+oUe0qgTw3qMMzmVlKaBd0PuG/yU0d59bEuxJ2ZF\npGpRUSYiN1RYaOPTH98kIzsVAE83bx6MeA4HB6vJyaQsuoX0J6x9hNH+ZtN/OXvhhImJROR6VJSJ\nyA2t/Hkhx2P3A0UTxE4c9rxm7K9m7rn9URpeNbHsf5f/i+zcTHNDicg1VJSJyHUdObOHH7ctNNrD\neoyjdaMOJiaSW+Hk6MwjI140npK9mJrAl6v/o/FlIlWMijIRKVFa5qVi48haB3cgosdYk1PJrWrg\nHcSEwU8b7T3Hf2Lr/lUmJhKRX1NRJiLXsNvtzIt8j/SsFADqutVj4rDnNY6smuvaui99Ow432t9s\n/JiE5FgTE4nI1VSUicg1Nu75gUMxuwCwYGFixHN4unubnErKw+h+Dxvzl+UX5PHpyLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1d89170b550>"
"<matplotlib.figure.Figure at 0x21011868a20>"
]
},
"metadata": {},
@@ -1076,7 +1083,7 @@
},
{
"cell_type": "code",
"execution_count": 50,
"execution_count": 18,
"metadata": {
"collapsed": false
},
@@ -1123,7 +1130,7 @@
},
{
"cell_type": "code",
"execution_count": 51,
"execution_count": 19,
"metadata": {
"collapsed": false
},
@@ -1151,7 +1158,7 @@
},
{
"cell_type": "code",
"execution_count": 52,
"execution_count": 20,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -1159,19 +1166,9 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmUAAAEWCAYAAAAn0eDVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XtcVHX+P/DXzMgdvCACIhcvmVooKaipJeJ6WdRNXZM0\nS8vM3NQy2yzaUvuatRabrvdtK1OrX3QvXTXR0FSswNRExSuKJuAF5SaXgZnfH5/OXOAMDMwV5vV8\nPM6Dc858zjmf+TAc3vP5fM7no9BqtVoQERERkUMpHZ0BIiIiImJQRkREROQUGJQREREROQEGZURE\nREROgEEZERERkRNgUEZERETkBBiUERERETkBs4Kyffv2YezYsQgNDYVSqcSmTZvqPeb777/HwIED\n0bJlS7Rr1w7jxo3DmTNnLM4wERERUXNkVlBWUlKCnj17YuXKlfD29q43/YULFzBu3DjExsbiyJEj\n2L17N8rLyzF69GiLM0xERETUHCkaOqK/n58f1qxZg6lTp5pM8+WXX2LSpEmorKyEQqEAAOzZswd/\n+tOfcO3aNfj7+1uWayIiIqJmxiZ9yvr27Qs3Nze899570Gg0KC4uxocffoh+/foxICMiIiKSYZOg\nLDw8HDt37sTChQvh4eGB1q1b4/jx49iyZYstLkdERETU5LWwxUnz8/PxxBNPYNq0aZg8eTKKi4ux\ncOFCTJw4EampqUZpCwsLbZEFIiIiIodo1apVo46zSVC2Zs0a+Pr64p///Kdu3+bNmxEWFoa0tDQM\nHDjQFpclIiIiarJs0nx5+/ZtqFQq4wspxaU0Go0tLklERETUpJlVU1ZaWoqzZ89Cq9VCo9EgJycH\nR48ehb+/P8LCwpCYmIj09HTs2rULADB69GisWLECS5YsweTJk1FUVISXX34Z4eHhiI6ONnmdxlb3\nNVcZGRkAgJiYGAfnxLmwXExj2chzlnL59VfA8Bb45ZfAX//quPwAzlM2zoblYhrLRp41umOZVVOW\nkZGB3r17Izo6GuXl5Vi0aBH69OmDRYsWAQDy8vKQnZ2tSx8XF4dPPvkE3377Lfr06YNRo0bB09MT\nO3bsgJeXl8WZJiJqimo+68Rnn4jIkFk1ZbGxsXU2O27YsKHWvoSEBCQkJDQ+Z0REzUzNIOx//wOq\nq4EavT2IyEVx7ksiIju4cgU4dMh437VrwC+/OCY/ROR8GJQREdnB1q3y+9mESUQSBmVERHbwx3NQ\nAIC4OP16Sor980JEzskm45QREZGxCxf0608/DUjjaBvuJ+em0WhQWVnp6Gw4XEREBACgvLzcwTmx\nH6VSCTc3N9183rbCoIyIyA5+/12/3ru36NxfXQ1cvw5UVAAeHo7LG9VPq9WioqICnp6eNv/H7Ow8\nPT0dnQW7koYDKy8vt/nvn82XREQ2VlUF5OXpt8PCgOBg/faVK/bPEzVMZWUl3N3dXT4gc0UKhQIq\nlQru7u5Qq9U2vRaDMiIiG8vPB6RRhdq1A9zdgQ4d9K8b1qKRc9JqtbVmqiHXolQqbT4rEYMyIiIb\nMwy6pGCMQRlR02KPWlIGZURENsagjIjMwaCMiMjGLl/WrzMoIyJT+PQlEZGNsaaMmouNGzdCrVZj\n9+7dSEhIwPjx4x2dpWaFNWVERDbGoIyag59//hnt27fHjBkzsGLFCjzyyCO4ceOGVc5dWVmJl156\nCaGhofD29kb//v2xc+dOqx+/d+9eKJXKWotKpcIvTjDnGWvKiIhsjEEZNQenT5/G559/jhEjRiAo\nKAje3t64fPky2rZta/G5p02bhq+++grz5s1D165dsXHjRowePRo//PAD7r//fqsfP2fOHNx7771G\n++644w6L34elGJQREdmYYdAVGip+GgZlV64AWi3AIbDImT366KMYNWoUAODEiRPw9fVFZGSkxef9\n5ZdfkJycjLfeegt///vfddeKjIzECy+8gJ9++snqx993331ISEiwOO/WxuZLIiIb0mrla8p8fYGW\nLcV6RQVgpVYgIptq27YttFotXn31VXz66adWGbvtiy++gEqlwpNPPqnb5+HhgSeeeALp6enIycmx\nyfGlpaWorq62OP/WxKCMiMiGioqA0lKx7uUFtG6tf41NmNQULVu2DImJiejfv7/R/qqqKty4ccOs\npaqqSnfckSNH0KVLF7Rq1crofP369YNWq8Xhw4frzE9jjn/yySfh5+cHT09PxMXFIT09vaHFYBNm\nBWX79u3D2LFjERoaCqVSiU2bNpl18hUrVqBHjx7w9PREhw4d8PLLL1uUWSKipqZmLZlhEyWDMnIm\nRUVFmDVrFtq0aVOrE/zq1asBAMnJyRgzZgxiYmJw+PBhZGVl6Y4/cOAA2rVrV+8SGBiItLQ03XG5\nublo3759rfxI+67UMw9ZQ453d3fHgw8+iH//+9/47rvvsHTpUhw/fhyxsbE4dOhQA0rLNszqU1ZS\n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 truncated
"text/plain": [
"<matplotlib.legend.Legend at 0x1d88fd6bda0>"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1d8915bdf60>"
"<matplotlib.figure.Figure at 0x21011ae16d8>"
]
},
"metadata": {},
@@ -1186,7 +1183,7 @@
"plt.plot(xs, gaussian(xs, 23, 0.05), label='$\\sigma^2$=0.05', c='b')\n",
"plt.plot(xs, gaussian(xs, 23, 1), label='$\\sigma^2$=1', ls=':', c='b')\n",
"plt.plot(xs, gaussian(xs, 23, 5), label='$\\sigma^2$=5', ls='--', c='b')\n",
"plt.legend()"
"plt.legend();"
]
},
{
@@ -1217,16 +1214,16 @@
},
{
"cell_type": "code",
"execution_count": 53,
"execution_count": 21,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkIAAAEQCAYAAABcCRthAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xd4VGXi9vHvZFJIJwQICYTQQ6T3pigdBKSogJ1VVkGR\nte1a9lVX3f3p7qqrgoqKHZUu0nvvndBbKCGEEFJJT2bm/WPwCALSkpxM5v5cF1fynCm5J46Te+ac\n8zwWh8PhQERERMQNeZgdQERERMQsKkIiIiLitlSERERExG2pCImIiIjbUhESERERt+V5pQsyMjJK\nM4eIiIhIiQoODr5kmz4REhEREbelIiQiIiJu64q7xi50uY+SRERERMq6qx3qo0+ERERExG2pCImI\niIjbUhESERERt6UiJCIiIm5LRUhERETcloqQiIiIuC0VIREREXFbKkIiIiLitlSERERExG2pCImI\niIjbUhESERERt6UiJCIiIm5LRUhERETcloqQiIiIuC0VIREREXFbKkIiIiLitlSERERExG2pCImI\niIjbUhESERERt6UiJCIiIm5LRUhERETcloqQiIiIuC0VIREREXFbnmYHEBH3kZOfxdn006RnpZBf\nmEdBYR52hx0frwr4ePkS5F+RysHVCPANxmKxmB1XRNyAipCIlIgiWyFxp/YTd2ovcaf2EX/mCNl5\n567ptj7evtSoXJvaETHUjYihXvVG+Hj7lnBiEXFHFofD4bjcBRkZGcb3wcHBpRZIRFyXzVbEnmNb\n2Xl4PbvjNpFbkPOH1984f5jxfbs+k654PS+rNzG1WtC0bnua1euAj1eFYsssIuXb1fqMipCI3LT0\nrBTW7V7Eut2LyMxOu+L1vKzeVK5YjZDAKvh6+zH8zueNyz775V+kZ6WQnJFIfkHuFe/D19uPtrd0\n5damfQgLqV6sj0NEyh8VIREpMamZySzePI0Ne5disxddcnmlwCrERLWkTvUYaoc3pFJQVTwsv52j\nceFhQL++EjkcDjKz0ziauJ+4xP0cOLGDxJQTl/35zep1oE+7oURUrlWcD0tEyhEVIREpdtm5mczb\nMIl1uxddUoAC/SrSLqYrzet3JLJq3T886PlyRehyzqQlsOPQOjbuXUZyRuIll7eo34m7Oj1MaHDY\ndT8WESnfVIREpNjY7TbW7V7MnPU/kPO7A59rhUdzR/P+NK3bDk+r1zXd37UWIePnO+wcOLGTVTvn\n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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1d88ffb76d8>"
"<matplotlib.figure.Figure at 0x21011c181d0>"
]
},
"metadata": {},
@@ -1249,16 +1246,16 @@
},
{
"cell_type": "code",
"execution_count": 54,
"execution_count": 36,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmAAAADaCAYAAAABpf7qAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3XdYVFf+P/D3zNCrCNKbICCCIk1pig2MLTGxp6gxiWsS\nE8uu7pqyu65rYtqamCj+vtmoa1wVE9eYIip2EVSKqCAiShMZRgUDSB1m7u8PzMSJBYwwl/J+PQ8P\nw5lzmc/cB/HNueeeIxEEQQARERER6YxU7AKIiIiIuhsGMCIiIiIdYwAjIiIi0jEGMCIiIiIdYwAj\nIiIi0jEGMCIiIiIdYwAjIiIi0rFWBbDjx4/jqaeegrOzM6RSKTZv3tziMVlZWRg2bBhMTEzg4uKC\nFStWPHaxRERERF1BqwLY7du30b9/f6xZswYmJiYt9q+urkZMTAwcHByQnp6Ozz77DB999BFWr179\n2AUTERERdXaSR10J39zcHGvXrsXMmTMf2CcuLg7Lli3D9evXYWBgAABYuXIl1q9fj6tXrz5exURE\nRESdXLvMATt58iSGDBmiCV8AMHr0aJSWlqKoqKg9XpKIiIio02iXAFZWVgY7OzutNjs7OwiCgLKy\nsvZ4SSIiIqJOQ0/sAiorK8UugYiIiKjNWFpattinXUbA7O3toVAotNoUCgUkEgns7e3b4yWJiIiI\nOo12CWDh4eE4fvw4GhsbNW379++Ho6Mj3Nzc2uMliYiIiDqNVl2CrKmpweXLlyEIAtRqNYqLi3H2\n7Fn07NkTLi4uWLZsGVJTU3HgwAEAwLPPPot//OMfmD17Nt5++23k5ubigw8+wPLlyx/6Oq0ZsqO2\nkZaWBgAICQkRuZLuheddHDzv4uB5FwfPuzgedUpVq0bA0tLSEBgYiODgYNTX1+Nvf/sbgoKC8Le/\n/Q1A86T7goICTX8LCwskJiaitLQUoaGheOONN7BkyRIsXLjwkYojIiIi6opaNQIWHR0NtVr9wOc3\nbtx4T5ufnx+OHDnyuwsjIiIi6qq4FyQRERGRjjGAEREREekYAxgRERGRjjGAEREREekYAxgRERGR\njjGAEREREekYAxgRERGRjjGAEREREekYAxgRERGRjjGAEREREekYAxgRERGRjjGAEREREekYAxgR\nERGRjjGAEREREekYAxgRERGRjjGAEREREekYAxgRERGRjjGAEREREekYAxgRERGRjjGAEREREekY\nAxgRERGRjjGAEREREekYAxgRERGRjjGAEREREekYAxgRERGRjrU6gK1btw4eHh4wNjZGSEgIkpKS\nHtp/3759iIiIgIWFBXr16oWJEyciLy/vsQsmIiIi6uxaFcDi4+OxcOFCvPPOO8jMzERERATGjBmD\nkpKS+/YvLCzExIkTER0djczMTBw8eBD19fUYN25cmxZPRERE1Bm1KoCtXr0ac+bMwZw5c+Dj44M1\na9bAwcEBcXFx9+2fnp6OpqYmvPfee/Dw8MCAAQPwl7/8BVeuXEFFRUWbvgEiIiKizqbFAKZUKpGe\nno6YmBit9tjYWCQnJ9/3mNDQUOjr6+Pf//431Go1qqursWnTJgwaNAg9e/Zsm8qJiIiIOimJIAjC\nwzrI5XI4OTnh2LFjiIqK0rSvWLECW7duRU5Ozn2PS0pKwpQpU3Dz5k2o1WoEBQUhISEBNjY2Wv0q\nKys1jzlHjIiIiDojLy8vzWNLS8sW+7fLXZAKhQIvvfQSZs2ahbS0NBw9ehTm5uaYMmVKe7wcERER\nUaei11IHGxsbyGQyKBQKrXaFQgF7e/v7HrN27VqYmZlh1apVmravv/4aLi4uSE5ORkRExH2PCwkJ\neZTa6TGkpaUB4DnXNZ53cfC8i4PnXRw87+K4+4pea7Q4Aqavr4/g4GAkJiZqtScmJiIyMvK+x9TW\n1kImk2m/kLT5pdRq9SMVSERERNTVtOoS5OLFi7Fp0yZ89dVXuHjxIhYsWAC5XI558+YBAJYtW4ZR\no0Zp+o8bNw4ZGRlYsWIFLl++jIyMDLz44otwdXVFcHBw+7wTIiIiok6ixUuQADB16lRUVFRg5cqV\nkMvl8Pf3R0JCApydnQEAZWVlKCgo0PQfPnw4tm7dig8//BAfffQRTExMEBYWhr1798LY2Lh93gkR\nERFRJ9GqAAYA8+bN04x4/dbGjRvvaZs6dSqmTp36+ysjIiIi6qK4FyQRERGRjjGAEREREekYAxgR\nERGRjjGAEREREekYAxgRERGRjjGAEREREekYAxgRERGRjjGAEREREekYAxgRERGRjjGAEREREekY\nAxgRERGRjjGAEREREekYAxgRERGRjjGAEREREekYAxgRERGRjjGAEREREekYAxgRERGRjjGAERER\nEekYAxgRERGRjjGAEREREekYAxgRERGRjjGAEREREekYAxgRERGRjjGAEREREekYAxgRERGRjrU6\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1d891764940>"
"<matplotlib.figure.Figure at 0x2100fb7b630>"
]
},
"metadata": {},
@@ -1297,9 +1294,22 @@
"\n",
"A remarkable property of Gaussians is that the product of two independent Gaussians is another Gaussian! The sum is not Gaussian, but proportional to a Gaussian.\n",
"\n",
"The discrete Bayes filter works by multiplying and adding probabilities. I'm getting ahead of myself, but the Kalman filter uses Gaussians instead of probabilities, but the rest of the algorithm remains the same. This means we will need to multiply and add Gaussians. \n",
"The discrete Bayes filter works by multiplying and adding arbitrary probability distributions. The Kalman filter uses Gaussians instead of arbitrary distributions, but the rest of the algorithm remains the same. This means we will need to multiply and add Gaussians. \n",
"\n",
"The Gaussian is a nonlinear function, and typically if you multiply a nonlinear equation with itself you end up with a different equation. For example, the shape of `sin(x)sin(x)` is very different from `sin(x)`. But the result of multiplying two Gaussians is yet another Gaussian. This is a fundamental property, and a key reason why Kalman filters are computationally feasible. Said another way, Kalman filters use Gaussians *because* they are computationally nice. \n",
"The Gaussian is a nonlinear function. Typically, if you multiply a nonlinear equation with itself you end up with a different type of equation. For example, the shape of `sin(x)sin(x)` is very different from `sin(x)`. But the result of multiplying two Gaussians is yet another Gaussian. This is a key reason why Kalman filters are computationally feasible. Said another way, Kalman filters use Gaussians *because* they are computationally nice. \n",
"\n",
"\n",
"The product of two independent Gaussians is given by:\n",
"\n",
"$$\\begin{aligned}\\mu &=\\frac{\\sigma_1^2\\mu_2 + \\sigma_2^2\\mu_1}{\\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",
"The sum of two Gaussians is given by\n",
"\n",
"$$\\begin{gathered}\\mu = \\mu_1 + \\mu_2 \\\\\n",
"\\sigma^2 = \\sigma^2_1 + \\sigma^2_2\n",
"\\end{gathered}$$\n",
"\n",
"The remainder of this section is optional. I will derive the equations for the sum and product of two Gaussians. You will not need to understand this material to understand the rest of the book, so long as you accept the results. "
]
@@ -1310,12 +1320,6 @@
"source": [
"### Product of Gaussians\n",
"\n",
"The product of two independent Gaussians is given by:\n",
"\n",
"$$\\begin{aligned}\\mu &=\\frac{\\sigma_1^2\\mu_2 + \\sigma_2^2\\mu_1}{\\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",
"You can find this result by multiplying the equation for two Gaussians together and combining terms. The algebra gets messy. I will derive it using Bayes theorem. We can state the problem as: let the prior be $N(\\bar\\mu, \\bar\\sigma^2)$, and measurement be $z \\propto N(z, \\sigma_z^2)$. What is the posterior x given the measurement z?\n",
"\n",
"Write the posterior as $P(x \\mid z)$. Now we can use Bayes Theorem to state\n",
@@ -1437,7 +1441,7 @@
},
{
"cell_type": "code",
"execution_count": 55,
"execution_count": 23,
"metadata": {
"collapsed": false,
"scrolled": true
@@ -1468,7 +1472,7 @@
},
{
"cell_type": "code",
"execution_count": 56,
"execution_count": 24,
"metadata": {
"collapsed": false
},
@@ -1499,7 +1503,7 @@
},
{
"cell_type": "code",
"execution_count": 57,
"execution_count": 25,
"metadata": {
"collapsed": false
},
@@ -1508,9 +1512,9 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[-0.308 1.55 4.163 0.148 -2.413 3.39 6.311\n",
" 3.682 1.681 3.063 1.402 0.148 -0.208 5.415\n",
" -4.221]\n"
"[ 1.441 -1.375 1.349 0.612 3.477 4.749 1.203\n",
" -2.042 7.189 -0.289 0.525 4.164 -0.256 -0.485\n",
" -0.805]\n"
]
}
],
@@ -1528,7 +1532,7 @@
},
{
"cell_type": "code",
"execution_count": 58,
"execution_count": 26,
"metadata": {
"collapsed": false
},
@@ -1555,7 +1559,7 @@
},
{
"cell_type": "code",
"execution_count": 59,
"execution_count": 27,
"metadata": {
"collapsed": false
},
@@ -1586,23 +1590,23 @@
"\n",
"However, a key part of the proof is “under certain conditions”. These conditions often do not hold for the physical world. The resulting distributions are called *fat tailed*. Tails is a colloquial term for the far left and right side parts of the curve where the probability density is close to zero.\n",
"\n",
"Let's consider a trivial example. We think of things like test scores as being normally distributed. If you have ever had a professor “grade on a curve” you have been subject to this assumption. But of course test scores cannot follow a normal distribution. This is because the distribution assigns a nonzero probability distribution for *any* value, no matter how far from the mean. So, for example, say your mean is 90 and the standard deviation is 13. The normal distribution assumes that there is a large chance of somebody getting a 90, and a small chance of somebody getting a 40. However, it also implies that there is a tiny chance of somebody getting a grade of -10, or 150. It assigns an infinitesimal chance of getting a score of $-10^{300}$ or $10^{32986}$. The *tails* of a Gaussian distribution are infinitely long.\n",
"Let's consider a trivial example. We think of things like test scores as being normally distributed. If you have ever had a professor “grade on a curve” you have been subject to this assumption. But of course test scores cannot follow a normal distribution. This is because the distribution assigns a nonzero probability distribution for *any* value, no matter how far from the mean. So, for example, say your mean is 90 and the standard deviation is 13. The normal distribution assumes that there is a large chance of somebody getting a 90, and a small chance of somebody getting a 40. However, it also implies that there is a tiny chance of somebody getting a grade of -10, or 150. It assigns an infinitesimal chance of getting a score of $-10^{300}$ or $10^{32986}$. The tails of a Gaussian distribution are infinitely long.\n",
"\n",
"But for a test we know this is not true. Ignoring extra credit, you cannot get less than 0, or more than 100. Let's plot this range of values using a normal distribution."
]
},
{
"cell_type": "code",
"execution_count": 60,
"execution_count": 28,
"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 0x1d891725dd8>"
"<matplotlib.figure.Figure at 0x2100ff4eef0>"
]
},
"metadata": {},
@@ -1621,16 +1625,16 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"The area under the curve cannot equal 1, so it is not a probability distribution. What actually happens is that more students than predicted by a normal distribution get scores nearer the upper end of the range (for example), and that tail becomes “fat”. Also, the test is probably not able to perfectly distinguish incredibly minute differences in skill in the students, so the distribution to the left of the mean is also probably a bit bunched up in places. The resulting distribution is called a [*fat tail distribution*](https://en.wikipedia.org/wiki/Fat-tailed_distribution). \n",
"The area under the curve cannot equal 1, so it is not a probability distribution. What actually happens is that more students than predicted by a normal distribution get scores nearer the upper end of the range (for example), and that tail becomes “fat”. Also, the test is probably not able to perfectly distinguish minute differences in skill in the students, so the distribution to the left of the mean is also probably a bit bunched up in places. The resulting distribution is called a [*fat tail distribution*](https://en.wikipedia.org/wiki/Fat-tailed_distribution). \n",
"\n",
"Kalman filters use sensors to measure the world. The errors in a sensor's measurements are rarely truly Gaussian. It is far too early to be talking about the difficulties that this presents to the Kalman filter designer. It is worth keeping in the back of your mind the fact that the Kalman filter math is based on an idealized model of the world. For now I will present a bit of code that I will be using later in the book to form fat tail distributions to simulate various processes and sensors. This distribution is called the [*Student's $t$-distribution*](https://en.wikipedia.org/wiki/Student%27s_t-distribution). \n",
"Sensors measure the world. The errors in a sensor's measurements are rarely truly Gaussian. It is far too early to be talking about the difficulties that this presents to the Kalman filter designer. It is worth keeping in the back of your mind the fact that the Kalman filter math is based on an idealized model of the world. For now I will present a bit of code that I will be using later in the book to form fat tail distributions to simulate various processes and sensors. This distribution is called the [*Student's $t$-distribution*](https://en.wikipedia.org/wiki/Student%27s_t-distribution). \n",
"\n",
"Let's say I want to model a sensor that has some white noise in the output. For simplicity, let's say the signal is a constant 10, and the standard deviation of the noise is 2. We can use the function `numpy.random.randn()` to get a random number with a mean of 0 and a standard deviation of 1. I can simulate this with:"
]
},
{
"cell_type": "code",
"execution_count": 61,
"execution_count": 29,
"metadata": {
"collapsed": false
},
@@ -1650,7 +1654,7 @@
},
{
"cell_type": "code",
"execution_count": 62,
"execution_count": 30,
"metadata": {
"collapsed": false
},
@@ -1658,18 +1662,18 @@
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1d88fdb49e8>]"
"[<matplotlib.lines.Line2D at 0x21011bbddd8>]"
]
},
"execution_count": 62,
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1d88fdd4518>"
"<matplotlib.figure.Figure at 0x2100fd8fbe0>"
]
},
"metadata": {},
@@ -1692,7 +1696,7 @@
},
{
"cell_type": "code",
"execution_count": 63,
"execution_count": 31,
"metadata": {
"collapsed": false
},
@@ -1713,7 +1717,7 @@
},
{
"cell_type": "code",
"execution_count": 64,
"execution_count": 32,
"metadata": {
"collapsed": false
},
@@ -1721,18 +1725,18 @@
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1d88feeffd0>]"
"[<matplotlib.lines.Line2D at 0x21011b11eb8>]"
]
},
"execution_count": 64,
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x1d88fd64f98>"
"<matplotlib.figure.Figure at 0x210118d1f98>"
]
},
"metadata": {},
@@ -1812,7 +1816,7 @@
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [default]",
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
@@ -1826,7 +1830,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
"version": "3.5.2"
}
},
"nbformat": 4,
+111 -88
View File
@@ -340,21 +340,11 @@
"collapsed": false
},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x21cb2638c50>"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb1e63748>"
"<matplotlib.figure.Figure at 0x2151389ca90>"
]
},
"metadata": {},
@@ -367,7 +357,7 @@
"\n",
"import filterpy.stats as stats\n",
"stats.plot_gaussian_pdf(mean=10, variance=1, \n",
" xlim=(4, 16), ylim=(0, .5))"
" xlim=(4, 16), ylim=(0, .5));"
]
},
{
@@ -390,14 +380,14 @@
"name": "stdout",
"output_type": "stream",
"text": [
"Mean of readings is 9.982\n"
"Mean of readings is 10.043\n"
]
},
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb2810a58>"
"<matplotlib.figure.Figure at 0x215143909b0>"
]
},
"metadata": {},
@@ -437,7 +427,7 @@
"\\mathbf x &= \\mathcal L \\cdot \\bar{\\mathbf x}\\, \\, &\\text{Update}\n",
"\\end{aligned}$$\n",
"\n",
"to compute the new probability distributions. Recall that $\\bar{\\mathbf x}$ is the *prior*, $\\mathcal L$ is the *likelihood* of a measurement given the prior $\\bar{\\mathbf x}$, and $f_{\\mathbf x}(\\bullet)$ is the *process model*, and $\\ast$ denotes *convolution*. $\\mathbf x$ is bold to denote that it is a histogram of numbers, or a vector.\n",
"to compute the new probability distributions. Recall that $\\bar{\\mathbf x}$ is the *prior*, $\\mathcal L$ is the *likelihood* of a measurement given the prior $\\bar{\\mathbf x}$, $f_{\\mathbf x}(\\bullet)$ is the *process model*, and $\\ast$ denotes *convolution*. $\\mathbf x$ is bold to denote that it is a histogram of numbers, or a vector.\n",
"\n",
"This method works, but led to histograms that implied the dog could be in multiple places at once. Also, the computations are very slow for large problems.\n",
"\n",
@@ -456,7 +446,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmUAAAEWCAYAAAAn0eDVAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt8TVf+//FXEglxqVvIBWVca1CjjlHCTFtN1G1KFWlN\ntTKGaEclpjEU8+tl0stDWkqJln7VpSpVSrWRCupeSkZML0G1KG2SNrSRuuXi/P7YceRIJEck2eec\nvJ+Px3mw1tl7r8+24+Rz1l57LQ+r1WpFREREREzlaXYAIiIiIqKkTERERMQpKCkTERERcQJKykRE\nREScgJIyERERESegpExERETECSgpExEREXECDidl8+fPp2XLlvj6+mKxWNi5c6dD+33zzTfUqVOH\nW265pch727Ztw2Kx4OvrS+vWrXnjjTccj1xERETEjTiUlMXHxxMZGcn06dNJSUmhZ8+e9OvXj1On\nTpW4X25uLg899BB33XVXkfeOHz/OgAED6NWrFykpKUyZMoUJEybwwQcflOlERERERFyZhyMz+t95\n55384Q9/YMGCBba6tm3bMmzYMGJiYq67X1RUFGfPnuVPf/oTEyZM4OzZs7b3/vWvf7F27VoOHz5s\nq/v73//O119/za5du8p6PiIiIiIuqdSestzcXJKTkwkJCbGrDw0NZffu3dfd7+OPPyYhIYG5c+cW\n+/6ePXsIDQ21q+vbty/79+8nPz/fkdhFRERE3EapSVlmZib5+fn4+/vb1fv7+5Oenl7sPj/++CNj\nx47lnXfeoWbNmsVuk56eXuwx8/LyyMzMdDR+EREREbdQrSIO+sgjj/D4449jsVgAuNk1z7Oyssoj\nLBERERGnULdu3SJ1pfaU+fn54eXlRUZGhl19RkYGAQEBxe7z6aef8uyzz+Lt7Y23tzdjxozht99+\nw8fHh0WLFgEQEBBQ7DGrVauGn5+fwyclIiIi4g5K7Snz9vama9euJCUlMXToUFt9UlISw4YNK3af\nL7/80q68du1aXnjhBfbt20dQUBAAPXr0YO3atXbbbdy4EYvFgpeX1w2fiIiIiIgrc+j25aRJkxg1\nahTdunUjODiYuLg40tLSiIiIAGDq1Kns27ePTZs2AfD73//ebv99+/bh6elJ+/btbXURERHMmzeP\nqKgoxo0bx86dO1m6dCkrV64sMZbiuvvcwf79+wFst3zFtej6uT5dQ9ena+j63P0aljYcy6GkbPjw\n4Zw5c4aYmBjS0tLo2LEjGzZsoGnTpoAxaP/YsWM3FFiLFi1ISEggKiqKBQsWEBQUxNy5cxk8ePAN\nHUdERETEHTg0T5nZCmeW6ikTZ6Tr5/p0DV2frqHrc/drWFo+o7UvRURERJyAkjIRERERJ6CkTERE\nRMQJKCkTERERcQJKykREREScgJIyERERESegpExERETECSgpExEREXECSspEREREnICSMhEREREn\noKRMRERExAkoKRMRERFxAkrKRERERJyAkjIRERERJ6CkTERERMQJKCkTERERcQJKykREREScgJIy\nERERESegpExERETECVRzdMP58+cTGxtLWloaHTp0YPbs2fTq1avYbVNTU3niiSf4+uuvycrKIigo\niLCwMJ555hm8vb0B2LZtG3fffbfdfh4eHqSmptK2bdubOCURkcqVmpbKiawTldZe87rNaR/YvtLa\nE5HK4VBSFh8fT2RkJAsWLCA4OJh58+bRr18/UlNTadq0aZHtfXx8eOyxx+jSpQv16tXj4MGDjBkz\nhvz8fF566SXbdh4eHnz99dfUr1/fVteoUaNyOC0RkcpzIusE/eL7VVp7G0ZsUFIm4oYcSspmzZpF\neHg44eHhAMyZM4fExETi4uKIiYkpsn2rVq1o1aqVrdysWTNGjhzJjh07imzbqFEjGjRoUNb4RURE\nRNxCqWPKcnNzSU5OJiQkxK4+NDSU3bt3O9TI0aNHSUxM5K677rKrt1qtWCwWgoKCuPfee9m6davD\ngYuIiIi4k1KTsszMTPLz8/H397er9/f3Jz09vcR9g4OD8fX1pV27dvTu3duuVy0wMJAFCxawevVq\nPvjgA9q1a0efPn3YtWtXGU9FRERExHU5PNC/LN577z2ys7M5ePAgTz31FC+99BJTpkwBoG3btnYD\n+rt3787x48eZOXMmwcHB1z3m/v37KzJk07n7+bk7XT/XV5ZrmG3NroBISmgvO1s/ayXQv43rc9dr\n2KZNmxLfLzUp8/Pzw8vLi4yMDLv6jIwMAgICSty3SZMmANx2223k5eUxZswYJk+ejKdn8R103bt3\nJz4+vrSQRERERNxOqUmZt7c3Xbt2JSkpiaFDh9rqk5KSGDZsmMMN5efn217XS8oOHDhAYGBgicex\nWCwOt+lKrnwrcNfzc3e6fq7vZq5h5qHM8g6nRHXq1MFym37WrqX/h67P3a9hVlZWie87dPty0qRJ\njBo1im7duhEcHExcXBxpaWlEREQAMHXqVPbt28emTZsAWL58OTVq1KBTp074+Piwb98+nn76aYYN\nG2abp+y1116jRYsWdOjQgZycHJYtW8aHH37ImjVrbuZ8RURERFySQ0nZ8OHDOXPmDDExMaSlpdGx\nY0c2bNhgm6MsPT2dY8eOXT1otWq8+OKLHD16FKvVSvPmzZkwYQKRkZG2bXJycpg8eTKnTp3C19eX\nDh06kJCQQN++fcv5FEVEREScn8MD/SMiImw9Y9davHixXTksLIywsLASjxcdHU10dLSjzYuIiIi4\nNa19KSIiIuIElJSJiIiIOAElZSIiIiJOQEmZiIiIiBNQUiYiIiLiBJSUiYiIiDgBJWUiIiIiTkBJ\nmYiIiIgTUFImIiIi4gSUlImIiIg4ASVlIiIiIk5ASZmIiIiIE1BSJiIiIuIElJSJiIiIOAElZSIi\nIiJOQEmZiIiIiBNQUiYiIiLiBJSUiYiIiDgBJWUiIiIiTsDhpGz+/Pm0bNkSX19fLBYLO3fuvO62\nqamp3HPPPQQEBODr60urVq2YNm0aubm5dttt27YNi8WCr68vrVu35o033ij7mYiIiIi4MIeSsvj4\neCIjI5k+fTopKSn07NmTfv36cerUqWK39/Hx4bHHHiMpKYkjR47w2muv8dZbbzFjxgzbNsePH2fA\ngAH06tWLlJQUpkyZwoQJE/jggw/K58xEREREXEg1RzaaNWsW4eHhhIeHAzBnzhwSExOJi4sjJiam\nyPatWrWiVatWtnKzZs0YOXIkO3bssNXFxcXRpEkTZs+eDUC7du3Yu3cvsbGxDBky5KZOSkRERMTV\nlNpTlpubS3JyMiEhIXb1oaGh7N6926FGjh49SmJiInfddZetbs+ePYSGhtpt17dvX/bv309+fr5D\nxxURERFxF6UmZZmZmeTn5+Pv729X7+/vT3p6eon7BgcH4+vrS7t27ejdu7ddr1p6enqxx8zLyyMz\nM/NGzkFERETE5Tl0+7Ks3nvvPbKzszl48CBPPfUUL730ElOmTLmpY+7fv7+conNO7n5+7k7Xz/WV\n5RpmW7MrIJIS2svO1s9aCfRv4/rc9Rq2adOmxPdLTcr8/Pzw8vIiIyPDrj4jI4OAgIAS923SpAkA\nt912G3l5eYwZM4bJkyfj6elJQEBAscesVq0afn5+pYUlIiIi4lZKTcq8vb3p2rUrSUlJDB061Faf\nlJTEsGHDHG4oPz/f9vL09KRHjx6sXbvWbpuNGzdisVjw8vK67nEsFovDbbqSK98K3PX83J2un+u7\nmWuYeahyh1zUqVMHy236WbuW/h+6Pne/hllZWSW+79Dty0mTJjFq1Ci6detGcHAwcXFxpKWlERER\nAcDUqVPZt28fmzZtAmD58uXUqFGDTp064ePjw759+3j66acZNmwY3t7eAERERDBv3jyioqIYN24c\nO3fuZOnSpaxcufJmzldERETEJTmUlA0fPpwzZ84QExNDWloaHTt2ZMOGDTRt2hQwBu0fO3bs6kGr\nVePFF1/k6NGjWK1WmjdvzoQJE4iMjLRt06JFCxISEoiKimLBggUEBQUxd+5cBg8eXM6nKCIiIuL8\nHB7oHxERYesZu9bixYvtymFhYYSFhZV6zN69e7vtYD4RERGRG6G1L0VEREScgJIyERERESegpExE\nRETECVTo5LEiIs4sLy+PM2fOcPr0aQ4cOEBubi5eXl40bNiQhg0bUrNmTTw8PMwOU0SqCCVlIuL2\nLl26xIEDB/jss8/47LPPSElJ4aeffip1zqDq1avTsGFDWrduTY8ePWyvxo0bV1LkIlKVKCkTkQqX\nmpbKiawTldZe87rNyf05l3fffZft27eTnJzMpUuXbvg4ly5d4scff+THH39k+/bttvpWrVrRo0cP\n7r//fgYOHFieoYtIFaakTEQq3ImsE/SL71fxDWUDX0LLEy357tB3pW7u4eFB/fr1adiwITVq1MDb\n25vc3FxOnz7N6dOnr5vIffvtt3z77bcsX76cevXq0bNvT6gFNAN0t1NEykhJmYi4NitwGEgGjhrl\n7yiakLVs2dJ2+/HOO++kRYsW1KtXz7as27XLu1itVs6fP09GRobdrc9re91+/fVXEuITjEIDoDPQ\nDahZUScsIu5KSZmIuCYrcAT4FEgv+naNGjUYPHgww4cPJzg4+IbHgXl4eFCrVi1atmxJy5YtbWv/\nXrp0iZSUFBISEli6dCnHjx+/utOZgnh2AT2AOwHfMpybiFRJmhJDRFyLFfgGWAi8S9GErDlEPh9J\neno67777LkOGDCnXgfnVq1ene/fuPPvss3z77bds376d+x68D6oX2igH2AbMLvjzYrk1LyJuTD1l\nIuI6TgKfAKeuqa+Gccvwj0B96PtgX+rWrVvh4Xh6etK7d28mNppIYrtE+BrYAWQWbLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21caffe1fd0>"
"<matplotlib.figure.Figure at 0x21511977ac8>"
]
},
"metadata": {},
@@ -474,7 +464,7 @@
"source": [
"I hope you see the power of this. We can replace hundreds to thousands of numbers with a single pair of numbers: $x = \\mathcal N(\\mu, \\sigma^2)$. \n",
"\n",
"The tails of the Gaussian extend to infinity on both sides, so it incorporates arbitrarily many bars in the histogram. If this represents our belief in the position of the dog in the hallway, this one Gaussian covers the entire hallway (and the entire universe in one direction). We think that it is likely the dog is at 10, but he could be at 8, 14, or, with infinitesimally small probability, at 10$^{80}$. \n",
"The tails of the Gaussian extend to infinity on both sides, so it incorporates arbitrarily many bars in the histogram. If this represents our belief in the position of the dog in the hallway, this one Gaussian covers the entire hallway (and the entire universe on that axis). We think that it is likely the dog is at 10, but he could be at 8, 14, or, with infinitesimally small probability, at 10$^{80}$. \n",
"\n",
"In this chapter we replace histograms with Gaussians:\n",
"\n",
@@ -550,7 +540,7 @@
"\n",
"It makes sense that the predicted position is the previous position plus the movement. What about the variance? It is harder to form an intuition about this. However, recall that with the `predict()` function for the discrete Bayes filter we always lost information. We don't really know where the dog is moving, so the confidence should get smaller (variance gets larger). $\\mu_{f_x}^2$ is the amount of uncertainty added to the system due to the imperfect prediction about the movement, and so we would add that to the existing uncertainty. \n",
"\n",
"Here is our implementation of the predict function, where `pos` and `movement` are Gaussian tuples:"
"Here is our implementation of the predict function, where `pos` and `movement` are Gaussian tuples in the form ($\\mu$, $\\sigma^2$):"
]
},
{
@@ -615,7 +605,7 @@
"\n",
"```python\n",
"def update(likelihood, prior):\n",
" posterior = prior * likelihood\n",
" posterior = likelihood * prior\n",
" return normalize(posterior)\n",
"```\n",
"\n",
@@ -715,7 +705,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb2aab860>"
"<matplotlib.figure.Figure at 0x21514a2d668>"
]
},
"metadata": {},
@@ -746,7 +736,7 @@
"source": [
"The result of the multiplication is taller and narrow than the original Gaussian but the mean is unchanged. Does this match your intuition?\n",
"\n",
"Think of the Gaussians as two measurements. If I measure twice and get 10 meters each time, I should conclude that the length is close to 10 meters. Thus the mean should be 10. I am more confident with two measurements than with one, so the variance of the result should be smaller. \n",
"Think of the Gaussians as two measurements. If I measure twice and get 10 meters each time, I should conclude that the length is close to 10 meters. Thus the mean should be 10. It would make no sense to conclude the length is actually 11, or 9.5. Aslo, I am more confident with two measurements than with one, so the variance of the result should be smaller. \n",
"\n",
"\"Measure twice, cut once\" is a well known saying. Gaussian multiplication is a mathematical model of this physical fact. \n",
"\n",
@@ -764,7 +754,7 @@
"data": {
"image/png": "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\nzz9neTw6Opry5cvrysHBwbmeTubixYtcu3ZNr9vQzs6OqlWr5th1CqBWq3F2diYhIUG3r2rVqrq6\nTcXR0RFHR0dOnjxpsjrzSpIyIUSh89FHH7Fy5UqqV6/OJ598kqflTxQKBVOmTNGVd+zYwenTp00Z\nphAFVnJyMsOGDeP06dOcOnVK79iVK1dwc3PTlS9fvkyZMmWwtLTM1T0uXryIQqGgVKlSevtLlSrF\ntWvXcrzezs6OK1euMG/ePL1YAL34TKFly5b4+fmZtM68kHnKhBCFjkKhoGvXrnTu3NmoBaRbtGhB\n+/btCQwMRKPRsGTJEr777jsTRiqKsl2HN7H7yJZ8qbtL8wF0azEoX+p+9OgRFSpUoEuXLpQsWZKN\nGzcyd+5c3fHdu3fTpUsXXfnmzZu4uLjk+j5p477s7e319tvb2+f5bemffvqJcuXK4e3tnafrs9Ow\nYUM2bNhg0jrzQlrKhBCFljEJWZrJkydjZWXFwIEDmTNnjgmiEqJgO3jwIJ06dcLa2po+ffqwadMm\nvePh4eF4enrqyvfu3cvU2mWItH+f//53mpKSoht+kBvXr19n1apV+Pr66r1wYApOTk66VjhzkqRM\nCFGs1a5dm+DgYObNm5en1gAhCpugoCDdXGPDhw/n6tWr7N69G9CO4/r3cAC1Wo1Smft0oWzZsgCk\npqbq7Y+Pj8fBwSFXdSUnJ/POO+/w7bff0rVr11zHkhMnJ6cCMTWOdF8KIYq9tP88hMiNbi0G5VsX\nY36KjY3F2toaAC8vL9zd3fn666/p0qULR48e1WslA3B2ds5Td2P16tWBzC8NxMTEUKNGjVzVNWHC\nBCZNmsQbb7wBwKVLl0w6rkytVmNlZWWy+vJKWsqEEIXCnDlz8PX1JSYmxtyhCFFoHTp0CC8vL719\no0ePZvfu3URERLB///5MM/a7urrm6d9dtWrVcHNz05sf7N69e9y+fZsOHToYXM+yZcvo3r27LiFL\nSUnRmxLHFB4+fFggvpxJUiaEKPDu3r2Lr68vs2fPpmXLlty/f9/cIQlRqKRNK7F582b69eund2zE\niBGULVuWyZMnc/bsWdzd3fWO16lTh6ioqEzdkGnUanW29x02bBg//vijrrx27VpatmxJ69atAfjm\nm2+oVq0a0dHRWV6/Y8cOfv/9d06cOMGCBQtYsGABEydO1LXCrVmzhipVquSYNL4oRtAmixUqVHjh\nOS+DdF8KIQq87du36/5DaNy4Mc7Ozvl6vwsXLhAbG5upG0eIwmjnzp2MHTuW1q1bU7t27UxvQ9ra\n2jJ9+nTGjBnDoEGZu2MVCgXNmjUjMjKSJk2a6Pbv2rWLtWvXEhwcDICHhwf16tVj5cqVlCxZEtC+\nSDN16lQ++OADypQpw7lz5/Rmz9doNCQmJmaZ8MXExDBkyBASEhL466+/9I4NHTpU7/rDhw/TrVu3\nTHUYEiNAWFgYTZs2ffGDfAkkKRNCFGgajUZvgst/f8s3pYsXLzJp0iQiIiKoX78+v//+e77dS4iX\nxcHBAUtLS65evcqaNWuyPMfHx4fo6GjeeeedLI97e3uzbds2vaSsW7duWSZCGalUKhYsWJDtcR8f\nH3x8fLI85uTkxJMnT15Y/4gRIxgwYAD79u3L8rghMQKEhITw/fff53hefpPuSyFEgXbs2DHdq+ol\nSpTIlzev0pQrV043gezJkydlMllRJLRr145Lly5x6NAhbG1tszxHqVQya9YsqlWrluXxLl26cOLE\nCb3Z9QuKoKCgXK82kNH169dxcnLK9csH+UGSMiFEgZZxOZYePXpgZ2eXb/cqVaqU3qSZ2S1BI0Rx\nNHPmTGbNmmXuMPQkJydz/PhxKleunOc6li1bxrRp00wYVd4ZnJStXLmSGjVqYGtri6enp65/NivX\nrl1DqVTq/VGpVOzdu9ckQQshio+PPvqIbdu2MWDAAAYMGJDv98vYPbpz504SExPz/Z5CFAYeHh54\nenoWqP/Lb9y4wahRo/J8fWhoKBYWFjRq1MiEUeWdQWPKtmzZwvjx41m9ejVeXl6sWLGCrl27cubM\nGSpVqpTlNQqFgj179ugW/AVt/7AQQuSGQqGgSZMmemNZ8lPLli2pWLEit27d4tGjRwQEBNC9e/eX\ncm8hCrq+ffuaOwQ9xnY5BgYGMn/+fBNFYzyDWsqWLFmCt7c33t7euLu7s3z5clxdXVm1alW212g0\nGpycnChXrpzuj4WFvFcghCjYlEolffv2pUKFCowbN47GjRubOyQhRD755JNPMq1gYE45JmXJycmE\nh4fTqVMnvf2dO3fm0KFDL7y2d+/euLi40Lp1a7Zt22ZcpEII8ZL4+Phw8OBBxo8fXyDmLhJCFA85\nJmX3799HrVZnWhPOxcWFO3fuZHlNiRIl+PLLL9m6dSt+fn506NCBAQMGsHHjRtNELLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb4237c50>"
"<matplotlib.figure.Figure at 0x215149340b8>"
]
},
"metadata": {},
@@ -804,7 +794,7 @@
"\n",
"This becomes counter-intuitive in more complicated situations, so let's consider it further. Perhaps a more reasonable assumption would be that one person made a mistake, and the true distance is either 10.2 or 9.7, but certainly not 9.95. Surely that is possible. But we know we have noisy measurements, so we have no reason to think one of the measurements has no noise, or that one person made a gross error that allows us to discard their measurement. Given all available information, the best estimate must be 9.95.\n",
"\n",
"In the update step we are combining two measurements, but one measurement and the prior, our estimate before incorporating the measurement. We went through this logic for the g-h filter. It doesn't matter if we are incorporating information from two measurements, or a measurement and a prediction, the math is the same. \n",
"In the update step of the Kalman filter we are not combining two measurements, but one measurement and the prior, our estimate before incorporating the measurement. We went through this logic for the g-h filter. It doesn't matter if we are incorporating information from two measurements, or a measurement and a prediction, the math is the same. \n",
"\n",
"Let's look at that. I'll create a fairly inaccurate prior of $\\mathcal N(8.5, 1.5)$ and a more accurate measurement of $\\mathcal N(10.2, 0.5).$ By \"accurate\" I mean the sensor variance is smaller than the prior's variance, not that I somehow know that the dog is closer to 10.2 than 8.5. Next I'll plot the reverse relationship: an accurate prior of $\\mathcal N(8.5, 0.5)$ and a inaccurate measurement of $\\mathcal N(10.2, 1.5)$."
]
@@ -820,7 +810,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb4181c18>"
"<matplotlib.figure.Figure at 0x21515cfa2e8>"
]
},
"metadata": {},
@@ -830,7 +820,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb4181eb8>"
"<matplotlib.figure.Figure at 0x21515cfafd0>"
]
},
"metadata": {},
@@ -874,7 +864,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb41e50f0>"
"<matplotlib.figure.Figure at 0x21514b8a898>"
]
},
"metadata": {},
@@ -937,14 +927,19 @@
"process_var = 1. # variance in the dog's movement\n",
"sensor_var = 2. # variance in the sensor\n",
"\n",
"x = (0., 400.) # dog's position, N(0, 400)\n",
"x = (0., 400.) # dog's position, N(0, 20**2)\n",
"velocity = 1\n",
"dt = 1. # time step in seconds\n",
"process_model = (velocity*dt, process_var) \n",
" \n",
"# simulate dog and get measurements\n",
"dog = DogSimulation(x[0], process_model[0], \n",
" sensor_var, process_model[1])\n",
"dog = DogSimulation(\n",
" x0=x[0], \n",
" velocity=process_model[0], \n",
" measurement_var=sensor_var, \n",
" process_var=process_model[1])\n",
"\n",
"# create list of measurements\n",
"zs = [dog.move_and_sense() for _ in range(10)]\n",
"\n",
"print('PREDICT\\t\\t\\tUPDATE')\n",
@@ -953,8 +948,8 @@
"# run the filter\n",
"xs, predictions = [], []\n",
"for z in zs:\n",
" # perform Kalman filter on measurement z\n",
" prior = predict(x, process_model)\n",
" #print(prior)\n",
" likelihood = (z, sensor_var)\n",
" x = update(prior, likelihood)\n",
"\n",
@@ -962,6 +957,7 @@
" predictions.append(prior[0])\n",
" xs.append(x[0])\n",
" kf_internal.print_gh(prior, x, z)\n",
"\n",
"print()\n",
"print('final estimate: {:10.3f}'.format(x[0]))\n",
"print('actual final position: {:10.3f}'.format(dog.x))"
@@ -985,7 +981,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb42dc940>"
"<matplotlib.figure.Figure at 0x215149c1e80>"
]
},
"metadata": {},
@@ -1045,7 +1041,7 @@
"source": [
"## Kalman Gain\n",
"\n",
"We see that the filter works. Now let's go back to the math to understand what is happening. The posterior $x$ is computed as the likelihood times the prior ($\\mathcal L\\cdot \\bar x$), where both are Gaussians.\n",
"We see that the filter works. Now let's go back to the math to understand what is happening. The posterior $x$ is computed as the likelihood times the prior ($\\mathcal L \\bar x$), where both are Gaussians.\n",
"\n",
"Therefore the mean of the posterior is given by:\n",
"\n",
@@ -1053,7 +1049,7 @@
"\\mu=\\frac{\\bar\\sigma^2\\, \\mu_z + \\sigma_z^2 \\, \\bar\\mu} {\\bar\\sigma^2 + \\sigma_z^2}\n",
"$$\n",
"\n",
"I use the subsript $z$ to denote the measurement. We can rewrite this as:\n",
"I use the subscript $z$ to denote the measurement. We can rewrite this as:\n",
"\n",
"$$\\mu = \\left( \\frac{\\bar\\sigma^2}{\\bar\\sigma^2 + \\sigma_z^2}\\right) \\mu_z + \\left(\\frac{\\sigma_z^2}{\\bar\\sigma^2 + \\sigma_z^2}\\right)\\bar\\mu$$\n",
"\n",
@@ -1073,8 +1069,6 @@
"\n",
"$$K = \\frac {\\bar\\sigma^2}{\\bar\\sigma^2 + \\sigma_z^2}$$\n",
"\n",
"\n",
"\n",
"$K$ is the *Kalman gain*. It's the crux of the Kalman filter. It is a scaling term that chooses a value partway between $\\mu_z$ and $\\bar\\mu$.\n",
"\n",
"Let's work a few examples. If the measurement is nine times more accurate than the prior, then $\\bar\\sigma^2 = 9\\sigma_z^2$, and\n",
@@ -1096,6 +1090,14 @@
"\n",
"which is the average of the two means. It makes intuitive sense to take the average of two equally accurate values.\n",
"\n",
"We can also express the variance in terms of the Kalman gain:\n",
"\n",
"$$\\begin{aligned}\n",
"\\sigma^2 &= \\frac{\\bar\\sigma^2 \\sigma_z^2 } {\\bar\\sigma^2 + \\sigma_z^2} \\\\\n",
"&= K\\sigma_z^2 \\\\\n",
"&= (1-K)\\bar\\sigma^2 \n",
"\\end{aligned}$$\n",
"\n",
"We can understand this by looking at this chart:"
]
},
@@ -1110,7 +1112,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb4259eb8>"
"<matplotlib.figure.Figure at 0x215148ab7f0>"
]
},
"metadata": {},
@@ -1126,7 +1128,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"The Kalman gain $K$ is a scale factor that chooses a value along the residual. This leads to an alternative but equivalent implementation for `update`:"
"The Kalman gain $K$ is a scale factor that chooses a value along the residual. This leads to an alternative but equivalent implementation for `update()` and `predict()`:"
]
},
{
@@ -1144,8 +1146,15 @@
" y = z - x # residual\n",
" K = P / (P + R) # Kalman gain\n",
"\n",
" x = x + K*y # posterior\n",
" P = (P * R) / (P + R) # posterior variance\n",
" x = x + K*y # posterior\n",
" P = (1 - K) * P # posterior variance\n",
" return x, P\n",
"\n",
"def predict(posterior, movement):\n",
" x, P = posterior # mean and variance of posterior\n",
" dx, Q = movement # mean and variance of movement\n",
" x = x + dx\n",
" P = P + Q\n",
" return x, P"
]
},
@@ -1153,9 +1162,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"Why have I written it in this form, and why have I chosen these terrible variable names? A few related reasons. A majority of books and papers present the Kalman filter in this form. My derivation of the filter from Bayesian principles is not unknown, but it is not used nearly as often. Also, the equations for the multivariate Kalman filter look almost exactly like these equations. So, you need to learn and understand them. \n",
"Why have I written it in this form, and why have I chosen these terrible variable names? A few related reasons. A majority of books and papers present the Kalman filter in this form. My derivation of the filter from Bayesian principles is not unknown, but it is not used nearly as often. Alternative derivations naturally lead to this form of the equations. Also, the equations for the multivariate Kalman filter look almost exactly like these equations. So, you need to learn and understand them. \n",
"\n",
"Where do the names `P` and `R` come from? You will see them used in the rest of this book. $R$ is nearly universally used for the measurement noise, and $P$ for the variance of the process. Almost every book and paper you read will use these variable names.\n",
"Where do the names `P`, `Q`, and `R` come from? You will see them used in the rest of this book. In the literature $R$ is nearly universally used for the measurement noise, $Q$ for the process noise and $P$ for the variance of the state. Almost every book and paper you read will use these variable names. Get used to them.\n",
"\n",
"This is also a powerful way to think about filtering. This is the way we reasoned about the g-h filter. It emphasizes taking the residual $y = \\mu_z - \\bar\\mu$, finding the Kalman gain as a ratio of our uncertainty in the prior and measurement $K = P/(P+R)$, and computing the posterior by adding $Ky$ to the prior. \n",
"\n",
@@ -1175,10 +1184,10 @@
"sensor_var = 2.\n",
"```\n",
" \n",
"These are the variances for the process model and sensor. The meaning of sensor variance should be clear - it is how much variance there is in each measurement. The process variance is how much error there is in the process model. We are predicting that at each time step the dog moves forward one meter. Dogs rarely do what we expect, and of course things like hills or the whiff of a squirrel will change his progress. If this was a robot responding to digital commands the performance would be much better, and perhaps the variance would be $\\sigma^2=.05$. These are not 'magic' numbers; the square root of the variance is the distance error in meters. It is easy to get a Kalman filter working by just plugging in numbers, but if the numbers do not reflect reality the performance of the filter will be poor.\n",
"These are the variances for the process model and sensor. The meaning of sensor variance should be clear - it is how much variance there is in each measurement. The process variance is how much error there is in the process model. We are predicting that at each time step the dog moves forward one meter. Dogs rarely do what we expect, and things like hills or the whiff of a squirrel will change his progress. If this was a robot responding to digital commands the performance would be much better, and perhaps the variance would be $\\sigma^2=.05$. These are not 'magic' numbers; the square root of the variance is the distance error in meters. It is easy to get a Kalman filter working by just plugging in numbers, but if the numbers do not reflect reality the performance of the filter will be poor.\n",
"\n",
"```python\n",
"x = (0., 400.) # Gaussian N(0, 400)\n",
"x = (0., 400.) # Gaussian N(0, 20**2)\n",
"```\n",
"\n",
"This is the dog's initial position expressed as a Gaussian. The position is 0 meters, and the variance to 400 m$^2$, which is a standard deviation of 20 meters. You can think of this as saying \"I believe with 99.7% accuracy the position is 0 plus or minus 60 meters\". This is because with Gaussians ~99.7% of values fall within $\\pm3\\sigma$ of the mean.\n",
@@ -1220,7 +1229,7 @@
"\n",
"Now look at the plot. The noisy measurements are plotted with black circles, and the filter results are drawn with a solid blue line. Both are quite noisy, but notice how much noisier the measurements are. I plotted the prediction (prior) with red triangles. The estimate always lies between the prior and the measurement. This is your first Kalman filter and it seems to work!\n",
"\n",
"The filtering is implemented in only a few lines of code. Most of the code is either initialization, storing of data, simulating the dog movement, and printing results. The code that performs the filtering is the very succinct. \n",
"The filtering is implemented in only a few lines of code. Most of the code is either initialization, storing of data, simulating the dog movement, and printing results. The code that performs the filtering is very succinct:\n",
"\n",
"```python\n",
"prior = predict(x, process_model)\n",
@@ -1269,7 +1278,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb302dd30>"
"<matplotlib.figure.Figure at 0x215149b23c8>"
]
},
"metadata": {},
@@ -1394,12 +1403,12 @@
"\n",
"<u>Predict</u>\n",
"\n",
"$\\begin{array}{|l|l|}\n",
"$\\begin{array}{|l|l|l|}\n",
"\\hline\n",
"\\text{Equation} & \\text{Implementation}\\\\\n",
"\\text{Equation} & \\text{Implementation} & \\text{Kalman Form}\\\\\n",
"\\hline\n",
" \\bar x = x + f_x & \\bar\\mu = \\mu + \\mu_{f_x}\\\\\n",
"& \\bar\\sigma^2 = \\sigma^2 + \\sigma_{f_x}^2 \\\\\n",
" \\bar x = x + f_x & \\bar\\mu = \\mu + \\mu_{f_x} & \\bar x = x + dx\\\\\n",
"& \\bar\\sigma^2 = \\sigma^2 + \\sigma_{f_x}^2 & \\bar P = P + Q\\\\\n",
"\\hline\n",
"\\end{array}$\n",
"\n",
@@ -1409,12 +1418,12 @@
"\n",
"$\\begin{array}{|l|l|}\n",
"\\hline\n",
"\\text{Equation} & \\text{Implementation}\\\\\n",
"\\text{Equation} & \\text{Implementation}& \\text{Kalman Form}\\\\\n",
"\\hline\n",
" x = \\| \\mathcal L\\bar x\\| & y = z - \\bar\\mu \\\\\n",
" & K = \\frac {\\bar\\sigma^2} {\\bar\\sigma^2 + \\sigma_z^2} \\\\\n",
" & \\mu = \\bar \\mu + Ky \\\\\n",
" & \\sigma^2 = \\frac {\\bar\\sigma^2 \\sigma_z^2} {\\bar\\sigma^2 + \\sigma_z^2} \\\\\n",
" x = \\| \\mathcal L\\bar x\\| & y = z - \\bar\\mu & y = z - \\bar x\\\\\n",
" & K = \\frac {\\bar\\sigma^2} {\\bar\\sigma^2 + \\sigma_z^2} & K = \\frac {\\bar P}{\\bar P+R}\\\\\n",
" & \\mu = \\bar \\mu + Ky & x = \\bar x + Ky\\\\\n",
" & \\sigma^2 = \\frac {\\bar\\sigma^2 \\sigma_z^2} {\\bar\\sigma^2 + \\sigma_z^2} & P = (1-K)\\bar P\\\\\n",
"\\hline\n",
"\\end{array}$\n",
"\n",
@@ -1441,7 +1450,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb2fd3ba8>"
"<matplotlib.figure.Figure at 0x21514a046a0>"
]
},
"metadata": {},
@@ -1475,7 +1484,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb2a7ec18>"
"<matplotlib.figure.Figure at 0x21515ce4e48>"
]
},
"metadata": {},
@@ -1524,9 +1533,9 @@
},
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAnIAAAEWCAYAAADio3pEAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt8zvX/x/HHtaM5H8Y25yYkcsiUc2KbY30dIiGHdSDS\nFgnRAQlfQmQoCqEoUg6TIQrpy2pzyKkSYRsLM4edr98f+/XRMjYz+1zXtef9dut26/2+Pp/P9fzw\nsb2uz/X+vN8Wq9VqRURERETsjpPZAUREREQkd1TIiYiIiNgpFXIiIiIidkqFnIiIiIidUiEnIiIi\nYqdUyImIiIjYKRVyIiIiInYqx4VcaGgovr6+eHh44Ofnx44dO266bVJSEgMGDKBevXq4ubnRunXr\nWx57x44duLq6Urdu3ZwnFxERESngclTIrVixgpCQEMaOHUtkZCRNmzalffv2nDp1Ksvt09LS8PDw\nYOjQoXTq1OmWx7548SL9+vXD39//9tOLiIiIFGCWnKzs0LhxY+rXr8+8efOMvho1atC9e3cmTpx4\ny32HDh3KwYMH2bp1a5avd+vWjfr165Oens6qVavYt2/fbZ6CiIiISMGU7R25lJQUIiIiCAgIyNQf\nGBjIrl277ujNQ0NDOXv2LGPHjr2j44iIiIgURNkWcnFxcaSlpeHl5ZWp38vLi5iYmFy/8f79+5kw\nYQLLli3DYrHk+jgiIiIiBZWLGW+anJxMz549mTZtGpUrVwbgVt/wxsfH51c0ERERkbuuRIkSeXKc\nbAs5T09PnJ2diY2NzdQfGxuLt7d3rt40OjqaQ4cOMWDAAPr37w9Aeno6VqsVNzc3NmzYoIcfRERE\nRLKR7Verrq6uNGzYkPDw8Ez94eHhNGvWLFdvWqFCBQ4cOEBkZCRRUVFERUUxaNAgqlevTlRUFE2b\nNs3VcUVEREQKkhx9tTps2DD69u1Lo0aNaNasGXPnziU6OppBgwYBMHr0aPbs2cPmzZuNfQ4dOkRS\nUhJxcXFcvnyZqKgoAOrVq4eLiwv3339/pvcoV64c7u7u1KpV65ZZ8upWpDi2vXv3AuDn52dyErEX\numbkdumakdt1N4aK5aiQ69GjB+fPn2fixIlER0dTp04dwsLCqFixIgAxMTEcP3480z4dOnTg5MmT\nRrtBgwZYLBbS0tLyML6IiIhIwZWjeeTM9s8KVnfkJCf0SVlul64ZuV26ZuR23Y16RmutioiIiNgp\nFXIiIiIidkqFnIiIiIidUiEnIiIiYqdUyImIiIjYKVOW6BIRMcvFxIv8HP0zv57/ld8v/M6phFNc\nTr7MmbgzpKWn4X3UmyJuRfD08MS3lC/VSlejdtna3Fv6Xq0LLSI2R4WciDi0qylXCf8tnPXH1rPz\nz50cOncIK7eYdel81t2ehT1pXLEx/vf485/7/kPVklXvSl4RkduhQk5EHE5aehobf93IR5EfEXYs\njGup1+74mHFX41h3dB3rjq4j5JsQ6nnVo/cDvelfvz9li5TNg9QiIrdPhZyIOIwL1y4wZ88cPoj4\ngD8v/ZnlNs4WZ+p61aV2udr4lvSlasmqlChUgtN/nMbZ4kzFeypyOfkyMZdj+O38bxw7f4y9Z/Zy\nIfFCpuNExUYRFRvFmK1j6FqrK8OaDOOhCg/lx2mKiBhUyImI3Tt35RzTf5jOnD1zSEhOuOH1Wp61\n6HxfZwKrBdKofCOKuBW5YZu9V/5/lv6aN87Sn25N5+hfR9n+x3a+Pvo1m3/fTHJaMgAp6SmsOLiC\nFQdXEOAbwNiWY2lZpWUen6GISNZUyImI3UpMTWTm7pm88/07NxRwZQuXZUD9AQxoMID7PO+7o/dx\nsjhxn+d93Od5HwP9BpKQlMCqQ6v4IOIDfjj1g7Fd+O/hhP8eTqcanZgWMI2anjXv6H1FRLKj6UdE\nxC59eehLas2pxegtozMVcfeXvZ9PunzCqWGnmBIw5Y6LuKwUcy9G//r92fXMLqIGRdH7gd44Wa7/\nOF13dB115tYhZGMICUk33iEUEckrKuRExK7EXI7hiZVP0HVlV/64+IfRX8uzFqt6rGL/C/vpU7cP\nbs5u+ZKnrlddlnZdypEXj9CvXj8sZExRkpqeyns/vkft0NqEHQvLlywiUvCokBMRu7HiwArun3M/\nqw6tMvrKeJRhToc57HthH11rdc10Zyw/3Vv6XhZ1XsTe5/dmGiP356U/6bC8A/3X9NfdORHJcyrk\nRMTmXUm+wjNfPUPPVT0zPT0aVD+IY0OPMbjRYFycbGPI74M+D7Kt3zaWdV2GZ2FPo39x1GIazG/A\n3jN7TUwnIo5GhZyI2LSDZw/i96EfH0V+ZPRVLVmV8KfDWfifhZTyKGViuqxZLBZ6PdCLXwb/Qs86\nPY3+3y78RtOFTZm5eyZW6y0mJRYRySEVciJis9YcXkPjhY05HHfY6Ov1QC+iBkXh7+tvYrKcKVuk\nLJ92+5TlXZdTzK0YkDFdycvfvEzfNX25lnLnExWLSMGmQk5EbE66NZ23tr1FlxVduJx8GYDCroX5\n+D8fs7TLUoq7Fzc54e156oGn+HngzzQq38joW7pvKS0+bsGf8VlPXCwikhMq5ETEpiSlJvH0l08z\nbvs4o8+3lC+7n9lN//r97Xbh+mqlq/H9gO95tsGzRl9EdASNFzYmKibKxGQiYs9UyImIzbiYeJH2\ny9qzfP9yo8/f1589z+3hAa8HTEyWN9xd3PngsQ+Y02GO8XDGmYQztPi4BVt+32JyOhGxRyrkRMQm\nRCdE0/Ljlnz7x7dG36CGgwjrHUZpj9ImJstbFouFwY0Gs6nPJuMr4oTkBNota8en+z81OZ2I2BsV\nciJiupPxJ2m5qCX7z+43+ia1mURox1CbmVYkrz16z6PsGLCDCsUqABkTCPde3ZuPfv4omz1FRK5T\nIScipvr1/K+0+LgFv57/FQBnizNLOi9hVPNRdjseLqce8HqA3c/upnbZ2gBYsfLM188w+8fZJicT\nEXuR40IuNDQUX19fPDw88PPzY8eOHTfdNikpiQEDBlCvXj3c3Nxo3br1Ddt8+eWXtG3blnLlylG8\neHEaN27M2rVrc3cWImKXfj3/K48seoST8ScBcHN2Y1WPVTxd72mTk+WfisUrsq3/Nh70edDoe2nj\nS8z4YYaJqUTEXuSokFuxYgUhISGMHTuWyMhImjZtSvv27Tl16lSW26elpeHh4cHQoUPp1KlTltts\n376dNm3asGHDBiIjI+nQoQNdunRh586duT8bEbEbxy8cp/Xi1pxJOANAIZdCfN3za/5z339MTpb/\nPAt7sqXvFppUbGL0Dds0jDn/m2NiKhGxBxZrDqYXb9y4MfXr12fevHlGX40aNejevTsTJ0685b5D\nhw7l4MGDbN26NdswDz/8MC1btmTq1KmZ+uPj443/L1GiRLbHEdm7N2MZJD8/P5OTSFZOxp/kkUWP\nGIvee7h4sL7Xeh6951HTMtnCNXM5+TIdlnXg+5PfG33zO83n+YbPm5ZJbs4WrhmxL3ejnsn2jlxK\nSgoREREEBARk6g8MDGTXrl15EuJvCQkJlCple8vtiEjeOXvlLP5L/I0izt3Zna+f+trUIs5WFHUr\nyvpe62lcsbHRN3DdwEzTsYiI/FO2hVxcXBxpaWl4eXll6vfy8iImJibPgsyZM4fTp0/z9NMFZ2yM\nSEFzKekS7Ze159j5YwC4Ormy+snVdrHcVn4p5l6MsN5hNPRpaPT1W9OPjb9uNDGViNgqm3iuf9Wq\nVYwcOZKVK1dSqVKlW277961skZzQ9WI7ktOSCd4TzE9//QSAE068Xf9tysWXs6m/J1vJMqXOFJ5L\neI7jl4+Tmp5Kl8+6MPfhudQpVcfsaPIvtnLNiO2rXr16nh8z2ztynp6eODs7Exsbm6k/NjYWb2/v\nOw7wxRdf0LdvXz755BM6dOhwx8cTEdtjtVoZt28ce/+6/gtv1AOjaO1z4xPtkqGEWwlmPzQbb4+M\nn7OJaYmE7Anhzytam1VErsv2jpyrqysNGzYkPDycbt26Gf3h4eF07979jt585cqVDBgwgCVLltCl\nS5cc7aNBpZITGoRsW97a9habzmwy2u+0fofRLUabmOhGtnrNbL9/O80+akbc1TjiU+IZvX80Pzzz\nA6U8NJ7YbLZ6zYjt+ufDDnklR9OPDBs2jEWLFrFw4UIOHz5McHAw0dHRDBo0CIDRo0fj7595jMuh\nQ4eIjIwkLi6Oy5cvExUVRVTU9YWhP/vsM/r06cPkyZNp3rw5sbGxxMbGcuHChTw8PREx2/L9yxm3\nfZzRHuw3mFHNR5mYyL7UKFOD9b3WU8ilEABH/jpC98+7k5KWYnIyEbEFORoj16NHD86fP8/EiROJ\njo6mTp06hIWFUbFiRQBiYmI4fvx4pn06dOjAyZMnjXaDBg2wWCykpaUBMH/+fNLS0ggJCSEkJMTY\n7pFHHsnRVCUiYvt2/bmLoK+CjHZgtUDea/+ew6/YkNceqvAQizsv5skvngRgy/EtvLjhReZ1mqc/\nS5ECLkfzyJlN88jJ7dJXHub74+IfPPThQ5y7eg6A+8vez66gXZQoZJv/hu3hmnn7u7d5/dvXjfb0\nwOm83ORlExMVbPZwzYhtMWUeORGR23Up6RKdlncyijjPwp6sfWqtzRZx9mJMizH0fqC30R6+aThr\nj2hpQ5GCTIWciOSp1PRUen7Rk4PnDgIZ66eueXINvqV8TU5m/ywWCwseX0DTSk0BsGLlqVVPERUT\nlc2eIuKoVMiJSJ56fevrhP0aZrQXPr6QZpWbmZjIsRRyKcSXT35J1ZJVAbiScoXOKzpz4ZoeFBMp\niFTIiUie+frI10zeOdloj2kxhj51+5iYyDGVK1KOdU+to5hbMSBjPGLfNX1Jt6abnLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb42a2128>"
"<matplotlib.figure.Figure at 0x21515c3ccf8>"
]
},
"metadata": {},
@@ -1602,9 +1611,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAzwAAAEtCAYAAADN42X5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYFFfbBvB7dulIEEREsaCIigWDgiX2iiUKsVdAX3vX\nGBNN1KiIsSUaRaNGDWJDo9FgxUKi8saCXywRC2CkCIKIoDQpe74/CPtmQ5G+uLl/18WlO3vmzDM7\nsDvPniYJIQSIiIiIiIg0kEzdARAREREREZUXJjxERERERKSxmPAQEREREZHGYsJDREREREQaiwkP\nERERERFpLCY8RERERESksZjwEBERERGRxlJ7wnP58mU4Ozujdu3akMlk2LNnj8rzMpkMcrkcMplM\n5WfmzJmF1vvrr7/CwcEB+vr6aNiwIbZt21aep0FERERERJWQ2hOe5ORktGjRAt9++y0MDAzyPP/s\n2TPExMTg2bNnePbsGfz8/CBJEoYPH15gnU+ePEH//v3RsWNH3Lp1C5999hlmzpyJn376qTxPhYiI\niIiIKhlJCCHUHUQuIyMjeHl5wdXVtcAyEydOxJUrV3D//v0Cy3z66ac4duwYHj58qLJfcHAwAgMD\nyzRmIiIiIiKqvNTewlMcKSkp8PX1xaRJkwotd/XqVfTu3Vtlm5OTE4KCgpCdnV2eIRIRERERUSXy\nTiU8+/btQ2ZmZqEtQEBON7gaNWqobKtRowaysrIQHx9fniESEREREVEloqXuAIrj+++/h4uLC6pV\nq1ZmdSYlJZVZXURERETqZmxsrO4QiCqVd6aF59atWwgKCsLEiRPfWtbCwgKxsbEq22JjY6GlpQUz\nM7PyCpGIiIiIiCqZdybh2b59Oxo0aIDu3bu/tWz79u1x7tw5lW3+/v5wcHCAXC4vrxCJiIiIiKiS\nUXuXtpSUFISGhkIIAYVCgYiICNy+fRumpqaoU6cOACAtLQ379+/HZ599lm8drq6ukCQJ3t7eAIAp\nU6bAy8sLc+fOxeTJk3HlyhXs2bMHBw8eLDSW8mwCDgoKAgA4ODiU2zGodHiNKjden8qP16hy4/Wp\n/EpzjdhFn6hgam/hCQoKgr29PVq3bo309HQsXboUrVq1wtKlS5VlfH19kZqaCnd393zriIyMRFRU\nlPKxlZUVTp06hcuXL8Pe3h6rVq3Cpk2b4OLiUt6nQ0RERERElYjaW3i6dOkChUJRaBl3d/cCkx0A\nCAgIyLOtU6dOym9KiIiIiIjo30ntLTxERERERETlhQkPERERERFpLCY8RERERESksZjwEBERERGR\nxmLCQ0REREREGosJDxERERERaSwmPEREREREpLGY8BARERERkcZiwkNERERERBqLCQ8REREREWks\nJjxERERERKSxmPAQEREREZHGYsJDREREREQaiwkPERERERFpLCY8RERERESksZjwEBERERGRxmLC\nQ0REREREGosJDxERERERaSwmPEREREREpLGY8BARERERkcZiwkNERERERBqLCQ8REREREWksJjxE\nRERERKSxmPAQEREREZHGYsJDREREREQaiwkPERERERFpLCY8RERERESksZjwEBERERGRxmLCQ0RE\nREREGosJDxERERERaSwmPEREREREpLGY8BARERERkcZiwkNERERERBqLCQ8REREREWksJjxERERE\nRKSxmPAQEREREZHGYsJDREREREQaS+0Jz+XLl+Hs7IzatWtDJpNhz549eco8evQIgwcPhomJCQwN\nDeHg4ICHDx8WWu/+/fthb28PQ0ND1KxZE2PHjkVsbGx5nQYREREREVVCak94kpOT0aJFC3z77bcw\nMDDI8/yTJ0/QsWNHWFtb45dffsG9e/fg4eGBKlWqFFhnYGAgXF1dMW7cOAQHB+P48eO4f/8+xowZ\nU56nQkRERERElYyWugPo27cv+vbtCwBwc3PL8/znn38OJycnrFmzRrnNysqq0DqvXr2KOnXqYNas\nWQCAevXqYcaMGcrHRERERET076D2Fp7CCCHg5+eHpk2bom/fvjA3N0ebNm1w6NChQvfr0KEDYmJi\ncOLECQBAfHw8Dh48iP79+1dE2EREREREVElU6oQnLi4OycnJ8PT0RJ8+fXD+/HmMHDkSo0ePxunT\npwvcr127djhw4ABGjx4NHR0dmJubAwB++OGHCoqciIiIiIgqA0kIIdQdRC4jIyN4eXnB1dUVABAT\nEwNLS0uMHj0aPj4+ynKjR49GYmIiTp48mW89wcHB6N27N+bNm4fevXsjJiYG8+fPx/vvvw9vb2+V\nsklJScr/h4SElMNZEREREZUvGxsb5f+NjY3VGAlR5VOpW3jMzMygpaUFW1tble22traIiIgocL+v\nvvoKbdu2xbx589C8eXP06tULW7ZsgY+PD6Kjo8s7bCIiIiIiqiTUPmlBYbS1teHo6JhnCupHjx6h\nXr16Be6XmpoKuVyusk0mk0GSJCgUigL3c3BwKF3AhQgKCir3Y1Dp8BpVbrw+lR+vUeXG61P5leYa\n/b3HChGpUnvCk5KSgtDQUAghoFAoEBERgdu3b8PU1BR16tTBggULMHz4cHTs2BHdu3fHxYsX4evr\ni+PHjyvrcHV1hSRJyu5qAwYMwKRJk/Ddd9/ByckJ0dHRmDt3Llq3bo3atWur61SJiIiIiKiCqb1L\nW1BQEOzt7dG6dWukp6dj6dKlaNWqFZYuXQoAcHZ2xvbt27Fu3TrY2dnBy8sLPj4+6NOnj7KOyMhI\nREVFKR+7ubnh66+/hpeXF1q0aIHhw4ejSZMmOHbsWIWfHxERERERqY/aW3i6dOlSaDczIKcFJ3ci\ng/wEBATk2TZ9+nRMnz691PEREREREdG7S+0tPEREREREROWFCQ8REREREWksJjxERERERKSxmPAQ\nEREREZHGYsJDREREREQaiwkPERERERFpLCY8RERERESksZjwEBERERGRxmLCQ0REREREGosJDxER\nERERaSwmPEREREREpLGY8BARERERkcZiwkNERERERBqLCQ8REREREWksJjxERERERKSxmPAQERER\nEZHGYsJDREREREQaiwkPERERERFpLCY8RERERESksZjwEBERERGRxmLCQ0REREREGosJDxERERER\naSwmPEREREREpLGY8BARERERkcZiwkNERERERBqLCQ8REREREWksJjxERERERKSxmPAQEREREZHG\nYsJDREREREQaiwkPERERERFpLCY8RERERESksZjwEBERERGRxmLCQ0REREREGosJDxERERERaSwm\nPEREREREpLGY8BARERERkcZiwkNERERERBpLS90BXL58GevWrcPNmzcRHR2NH374Aa6uriplHj16\nhIULF+LixYvIyMiAra0t9u3bh8aNGxdYb2ZmJlasWIG9e/ciOjoaFhYWmD9/PmbMmFHep0RERERU\nKQkhkJmZCYVCoe5QiMqMTCaDtrY2JEnK93m1JzzJyclo0aIF3Nzc8iQ6APDkyRN07NgR7u7uWLJk\nCYyNjfHgwQNUqVKl0HqHDx+O6OhofP/992jYsCFiY2ORlpZWXqdBREREVKkJIZCeng4dHZ1Cbw6J\n3iVCCCgUCqSnp0NPTy/f32u1Jzx9+/ZF3759AQBubm55nv/888/h5OSENWvWKLdZWVkVWqe/vz8C\nAgIQFhYGU1NTAEDdunXLLmgiIiKid0xmZiZ0dHQgl8vVHQpRmZEkCXK5HDo6Osrf8X+q1GN4hBDw\n8/ND06ZN0bdvX5ibm6NNmzY4dOhQofsdP34cjo6OWL9+PerUqYNGjRph9uzZSElJqaDIiYiIiCoX\nhUIBmaxS3/oRlZhMJiuwq6baW3gKExcXh+TkZHh6esLDwwOrV6/GhQsXMHr0aBgZGSlbhv7p8ePH\nuHz5MnR1dXH06FEkJiZixowZiImJKTRZCgoKKq9TqdBjUOnwGlVuvD6VH69R5cbrU/mV5BrZ2NgU\nqRy7sZGmKux3u1InPLlZmouLC2bPng0AsLOzQ1BQEDZv3lxgwpP7DcaBAweUY302b96MPn364Pnz\n56hevXrFnAAREREREalVpU54zMzMoKWlBVtbW5Xttra28PX1LXC/mjVrwtLSUmViA1tbWwghEBER\nUWDC4+DgUDaB5yP325ryPAaVDq9R5cbrU/nxGlVuvD6VX2muUVJSUlmHQ6QxKnVHTm1tbTg6OuLh\nw4cq2x89eoR69eoVuF+HDh0QHR2N1NRU5baHDx9CkqRC9yMiIiIiIs2i9oQnJSUFt2/fxq1bt6BQ\nKBAREYHbt28jMjISALBgwQL4+vpix44dCAsLw44dO+Dr66uyno6rq6vKDG+jRo1CtWrVMG7cOAQH\nByMwMBBz5szB0KFDYWZmVuHnSERERETqV7t2bUyaNEn5OCwsDDKZDPv371djVFTe1J7wBAUFwd7e\nHq1bt0Z6ejqWLl2KVq1aYenSpQAAZ2dnbN++HevWrYOdnR28vLzg4+ODPn36KOuIjIxEVFSU8rGh\noSHOnz+PpKQktGnTBiNGjEC3bt2wc+fOCj8/IiIiIip/3t7ekMlk+f7MmjULQM5MXm+buCEwMBDL\nli1DcnJyRYRNFUDtY3i6dOny1tV+XV1d812UNFdAQECebTY2Njhz5kyp4yMiIiKid4MkSVi2bBka\nNGigsr1x48YAclp03rYO0ZUrV7B8+XJMnDjxrQvd07tB7QkPEREREVFZ6d27N9q0aZPvc9ra2m/d\nXwhR1iEBAFJTU2FgYFAudVPhyqRL22+//YbTp09zYU8iIiIiqrT+OYbnnxYvXoxFixYpy8pkMsjl\ncvz3v/9Vljl9+jS6dOmCKlWq4L333kO/fv1w9+5dlXrGjBkDIyMj/Pnnn/jwww9hbLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb4421c50>"
"<matplotlib.figure.Figure at 0x21515e044a8>"
]
},
"metadata": {},
@@ -1621,7 +1630,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAncAAAEjCAYAAABQPSceAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3X1clGW+BvBrZmBgRhBJbHgNxRcksCLABNTYEshtbV1N\nKypT1i0235COq5imHmM9ZkfEjqKZiq5rWq5ZbVpMrppkmtDCCqGZqAUyU4AC8s7Mc/4gn5gYZFRy\nmGeu7+fjx5n7+d333OOddvG8ygRBEEBEREREkiC39gSIiIiIqPsw3BERERFJCMMdERERkYQw3BER\nERFJCMMdERERkYQw3BERERFJCMMdEdFPnnnmGcjlcly6dMnaUyEiumkMd0RkVdcC1f/93/91WTtp\n0iTI5XJs3rz5V5mLTCaDXM5/FonItsl4E2MisqajR4/iwQcfxD333IP8/PxO63788Uf4+vpCrVaj\nrKwMarW62+ei1+tRXV2NQYMGMeQRkc3iv15EZFWjRo3C0KFDcerUKZw8ebLTuqysLLS0tOCpp576\nVYIdAGg0GgwZMoTBjohsGv8FIyKre/755yEIAjZt2tRpzVtvvQWZTIY//elPAIDq6mq89tpreOih\nh+Dr6wsnJydoNBqMHz8ex48f79DfYDBALpdjyJAhqK6uxuzZs+Hv7w9HR0esX78eQOfn3G3ZsgUT\nJ07EwIEDoVar0adPH4wcORJ///vfzc515MiRkMvlKCsrw/r16zFs2DCoVCp4eXnhz3/+M2pra832\nKysrw+zZsxEYGAi1Wo2+ffsiIiICy5Ytg9FoNKktLy/HnDlzMGTIEKhUKtxxxx0YO3YsDh8+3Omf\nIRHZBx6WJSKru3z5Mry9veHo6Ijy8nL06tXLZPtnn32GmJgYhIeH48svvwQAfP7553j44Yfx4IMP\nYuDAgejTpw8uXryIDz74AE1NTfjoo48QGxsrjmEwGODo6AhfX1/07dsX9fX1GDNmDJydnTFq1CiM\nHz8ezz77LHbu3Invv/8e3t7eYl+lUonQ0FCEhITA09MTFRUV2L9/P8rKyvDKK69g6dKlJvMdNWoU\njh07hscffxyffvopfve73+HOO+/EwYMHkZ+fj9jYWHzyyScmfU6cOIGxY8eiuroao0ePxogRI9DQ\n0IDi4mIcOnQIV65cEfdY5ufnIy4uDlVVVXjkkUdw9913o6KiAvv27UNNTQ2ysrLwzDPPdOcSEZEt\nEYiIeoBnnnlGkMvlwqZNmzpsS0hI6LCturpaqKqq6lD73XffCZ6ensKwYcNM2ltbWwWZTCbI5XLh\nt7/9rdDY2NjpHMrKykzaS0pKOtQ2NzcLMTExgpOTk6DT6Uy2jRw5UpDJZEJAQIBw6dIlkzlERUUJ\ncrlc+Pe//y22NzU1CX5+foJcLhd27drV4bN0Op1gNBrFMQYNGiSo1Wrh2LFjJnWXLl0SvL29BRcX\nF6GysrLDOERkH3hYloh6hBdeeMHsodnLly9j7969cHFxwVNPPSW29+7dG+7u7h3G8fPzw4QJE1BU\nVASdTmf2s/73f/8XTk5OFs9twIABHdocHR3x4osvoqWlBYcOHeqwXSaTYenSpfDy8hLbFAoFpk2b\nBgDiHkgA2LdvH0pLS/H73/8eTzzxRIexNBoNZDIZAOCDDz7AuXPnMGvWLERGRprUeXl54b/+679Q\nX1+PvXv3Wvz9iEhaHKw9ASIioO08taCgIOTm5uLUqVMYNmwYAGD79u1oamrCc8891+Fw7dGjR7F2\n7VqcOHECP/zwA5qbm8VtMpkMZWVl8PT0NOnTq1cvDB069IbmdvHiRaxcuRL/+te/8P3336OhoaHD\n55gTFhbWoc3Pzw+CIODy5cti2/HjxyGTyfDII490OZdjx44BAM6fP49ly5Z12H7mzBkIgoDi4uIu\nxyIiaWK4I6Ie4/nnn8fcuXOxadMmrF27FgCwadMmkwsprnn33XfFK2djY2MREBCAXr16QS6X4+DB\ng8jJyUFTU1OHz9BoNDc0p3PnziEiIgK1tbUYPXo0HnnkEbi5uUGhUKCkpAR/+9vfzH4OAPTp06dD\nm4ND2z+7BoNBbLty5QoAwMfHp8v5VFZWAgD27NnTaY1MJkNdXV2XYxGRNDHcEVGPMWXKFKSmpuLv\nf/87Vq1aha+++gpff/017r///g57wRYvXgyVSoWvvvoKgwYNMtn23XffIScnx+xnXDu8aalVq1ah\nuroaO3bsMDksDAA7duzA9u3bb2g8c66FwM72ALbn5uYGmUyGDz74AI8++ugtfzYRSQ/PuSOiHsPd\n3R2PP/44rly5gnfeeUe8/cnzzz/fobakpAQhISEdgp3RaOw02N2Mc+fOAQAmTJjQYdvhw4dvOCya\nM2LECAiCgAMHDnRZGxkZCUEQ8Nlnn93y5xKRNDHcEVGPcu2edxkZGdi9ezd69eqFhISEDnX+/v44\nc+YM9Hq9SfvixYvxzTffdNt8+vfvDwAd7h+3f/9+ZGVldctnjB8/Hn5+fvjggw+wa9euDtv1ej2E\nn+5a9Yc//AEDBgzAunXrsH//frPjffXVV6iuru6WuRGR7eFhWSLqUa5dWPHVV19BJpPhj3/8I1xc\nXDrUzZ07F7NmzcJ9992HiRMnwsHBAUePHsXZs2cxbtw4/POf/+yW+cyYMQPbt2/H+PHjMWnSJHh6\neqKwsBDZ2dmYPHmy2TB2o5RKJd59912MHTsWCQkJ2LhxIx544AE0NTXh9OnT+Ne//oXLly9DrVbD\n0dER+/btwyOPPILf/e53iIyMRGhoKNRqNUpLS/HVV1/h7NmzOHXqFNzc3LrhT4CIbI3Fe+7Wr1+P\ngIAAqFQqhIeHd3nYo7CwEDExMVCr1fDz88Py5ctNtut0Ojz99NMICgqCg4MDEhMTzY6TkZGBoKAg\ncZyZM2fyRGEiiXvhhRcgk8nMXkhxzYsvvojNmzfD09MTWVlZ2LlzJwICAnDixAncc889nY7d1WHU\nX26/7777cOjQIURFReGjjz7Cm2++ibq6Orz//vv44x//KM7zRj7HXJ/hw4cjPz8fL774Ir777jtk\nZGRgx44dqKysxCuvvAKVSiXWDhs2DP/5z3+wcOFCXL16Fdu2bUNmZiZOnjyJoKAgbNmypcPhaiKy\nHxY9oWL37t149tlnsWHDBkRHR2PdunXYunUriouL4evr26G+trYWQ4YMQUxMDF555RUUFxdj6tSp\nWLZsGebOnQug7dYC6enpuP/++/Hmm29iyJAh2LJli8k4O3fuRGJiIrZs2YKRI0eipKQEiYmJePjh\nh6/7mCIiIiIie2VRuBsxYgTuu+8+bNiwQWwbMmQIJk2ahLS0tA71mZmZSE1NxQ8//AClUgkASEtL\nw4YNG/D99993qB83bhz69evXIdzNmjULhYWFJjcIXbp0Kfbu3Yv//Oc/ln9LIiIiIjvR5WHZlpYW\n5OXlmTyjEQDi4uLEm2n+0vHjxzFq1Cgx2AFAfHw8Ll26hIsXL1o8uZEjRyI/Px8nTpwA0HZ7g/ff\nf5+X/xMRERF1ossLKioqKmAwGDrc+FOj0eDgwYNm++h0Ovj5+XWoFwQBOp0O/v7+Fk3uiSeeQGVl\nJUaPHg1BENDa2oopU6ZgxYoVFvUnIiIisjc9+mrZI0eOYPny5diwYQOGDx+Ob7/9FrNnz8aSJUs6\nPHaHl/0TERGRlNzsFe9dhjsPDw8oFIoO95LS6/Udntl4jaenp9l6mUzWaR9zFi9ejISEBPFB28HB\nwbh69Sr+9Kc/YcmSJZDLeZs+IiIiova6TEeOjo4ICwuDVqs1addqtYiOjjbbJzIyEkePHjV5iHd2\ndja8vb0tPiQLAPX19VAoFKYTlsthwTUgRERERHbJosOyKSkpmDJlCiIiIhAdHY3MzEyUl5cjKSkJ\nAJCamoqTJ0/i008/BQAkJCTgv//7vzF16lS8/PLLOHPmDFauXNnhUGpBQQEEQUBNTQ0UCgUKCgqg\nVCoRFBQEoO0q2vT0dISFheGBBx7A2bNn8corr2DcuHHX3WvHG3faptzcXABAeHi4lWdCN4traNu4\nfraPa2j7uuM0M4vC3eTJk1FVVYW0tDSUl5cjJCQEBw4cEO9xp9PpcP78ebG+d+/e0Gq1mDFjBiIi\nIuDu7o558+YhOTnZZNzQ0FCTG3l++OGH8Pf3R0lJCYC2w7JyuRyLFy9GWVkZ+vXrh3HjxuHVV1+9\n5S9OREREJEUW3efOFrRPutxzZ5v4E6ft4xraNq6f7eMa2r7uyDO8IoGIiIhIQhjuiIiIiCSE4Y6I\niIhIQhjuiIiIiCSE4Y6IiIhIQhjuiIiIiCSE4Y6IiIhIQhjuiIiIiCSE4Y6IiIhIQhjuiIiIiCSE\n4Y6IiIhIQhjuiIiIiCSE4Y6IiIhIQhjuiIiIiCSE4Y6IiIhIQhjuiIiIiCSE4Y6IiIhIQiQZ7ppb\nmqw9BSIiIiKrkGS4u9pQbe0pEBEREVmFRMNdjbWnQERERGQVkgx3tfVXrD0FIiIiIquQZLjjnjsi\nIiKyVxINdzznjoiIiOyTxeFu/fr1CAgIgEqlQnh4OHJycq5bX1hYiJiYGKjVavj5+WH58uUm23U6\nHZ5++mkEBQXBwcEBiYmJZsepra3F7Nmz4ePjA2dnZwwZMgR79uy57mcz3BEREZG9crCkaPfu3UhO\nTsaGDRsQHR2NdevWYezYsSguLoavr2+H+traWsTGxiImJgZ5eXkoLi7G1KlT4eLigrlz5wIAmpqa\n0K9fP6SmpuLNN980+7mtra0YM2YMPDw8sGfPHvj4+KC0tBROTk7XnW9tPcMdERER2SeLwl16ejoS\nExPFvWtr167Fxx9/jMzMTKSlpXWo37FjBxoaGrBt2zYolUoEBQWhuLgYq1evFsOdvLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb3190e48>"
"<matplotlib.figure.Figure at 0x21515ee7e10>"
]
},
"metadata": {},
@@ -1654,6 +1663,7 @@
"bp.plot_measurements(zs)\n",
"bp.plot_filter(estimates, var=np.array(ps))\n",
"bp.show_legend()\n",
"plt.ylim(16, 17)\n",
"bp.set_labels(x='step', y='volts')\n",
"plt.show()\n",
" \n",
@@ -1681,11 +1691,7 @@
"source": [
"### Animation\n",
"\n",
"For those reading this in a browser here is an animation showing the filter working. If you are not using a browser you can see this plot at https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/animations/05_volt_animate.gif.\n",
"\n",
"The top plot in the animation draws a green line for the predicted next voltage, then a red '+' for the actual measurement, draws a light red line to show the residual, and then draws a blue line to the filter's output. You can see that when the filter starts the corrections made are quite large, but after only a few updates the filter only adjusts its output by a small amount even when the measurement is far from it. \n",
"\n",
"The lower plot shows the Gaussian belief as the filter innovates. When the filter starts the Gaussian curve is centered over 25, our initial guess for the voltage, and is very wide and short due to our initial uncertainty. But as the filter innovates, the Gaussian quickly moves to about 16.0 and becomes taller, reflecting the growing confidence that the filter has in it's estimate for the voltage. You will also note that the Gaussian's height bounces up and down a little bit. If you watch closely you will see that the Gaussian becomes a bit shorter and more spread out during the prediction step, and becomes taller and narrower as the filter incorporates another measurement."
"For those reading this in a browser here is an animation showing the filter working. If you are not using a browser you can see this plot at https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/animations/05_volt_animate.gif."
]
},
{
@@ -1699,6 +1705,10 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"The top plot in the animation draws a green line for the predicted next voltage, then a red '+' for the actual measurement, draws a light red line to show the residual, and then draws a blue line to the filter's output. You can see that when the filter starts the corrections made are quite large, but after only a few updates the filter only adjusts its output by a small amount even when the measurement is far from it. \n",
"\n",
"The lower plot shows the Gaussian belief as the filter innovates. When the filter starts the Gaussian curve is centered over 25, our initial guess for the voltage, and is very wide and short due to our initial uncertainty. But as the filter innovates, the Gaussian quickly moves to about 16.0 and becomes taller, reflecting the growing confidence that the filter has in it's estimate for the voltage. You will also note that the Gaussian's height bounces up and down a little bit. If you watch closely you will see that the Gaussian becomes a bit shorter and more spread out during the prediction step, and becomes taller and narrower as the filter incorporates another measurement.\n",
"\n",
"Think of this animation in terms of the g-h filter. At each step the g-h filter makes a prediction, takes a measurement, computes the residual (the difference between the prediction and the measurement), and then selects a point on the residual line based on the scaling factor $g$. The Kalman filter is doing exactly the same thing, except that the scaling factor $g$ varies with time. As the filter becomes more confident in its state the scaling factor favors the filter's prediction over the measurement. "
]
},
@@ -1722,7 +1732,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb302d828>"
"<matplotlib.figure.Figure at 0x215149b2a58>"
]
},
"metadata": {},
@@ -1780,7 +1790,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb4451a58>"
"<matplotlib.figure.Figure at 0x21515fcbbe0>"
]
},
"metadata": {},
@@ -1837,7 +1847,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb44510b8>"
"<matplotlib.figure.Figure at 0x21515fda4e0>"
]
},
"metadata": {},
@@ -1891,7 +1901,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb2824dd8>"
"<matplotlib.figure.Figure at 0x21514b7ca58>"
]
},
"metadata": {},
@@ -1939,7 +1949,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb2f83208>"
"<matplotlib.figure.Figure at 0x21514c49748>"
]
},
"metadata": {},
@@ -1994,7 +2004,7 @@
{
"data": {
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb3033438>"
"<matplotlib.figure.Figure at 0x21515f59898>"
]
},
"metadata": {},
@@ -2040,7 +2050,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAmAAAAEWCAYAAADB+CuRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4k1WiP/Bv0i1NW9KWtmnTFkgXutGKUMsqslVERwUX\nlLEjyoh6hTsyOKMj3EixKuiMMnpVdK5yRYFRwPHiT4GxIktZCpR9K3RJQRqS7vuevL8/SgOhO83a\nfj/P08fmvCfve1pew5dzznuOSBAEAURERERkNWJbN4CIiIhooGEAIyIiIrIyBjAiIiIiK2MAIyIi\nIrIyBjAiIiIiK2MAIyIiIrIyBjAiIiIiK+s2gK1cuRJJSUmQyWQICAjAAw88gLNnz5rUefrppyEW\ni02+xo8fb7FGExERETmybgPY3r17sWjRIhw8eBC7du2Cs7Mzpk+fjoqKCpN6ycnJ0Ol00Gq10Gq1\n2LZtm8UaTUREROTInLursH37dpPXX331FWQyGfbv34/77rvPWO7m5gZ/f3/zt5CIiIion+n1HLCq\nqioYDAb4+PiYlO/btw9yuRxRUVF49tlnUVxcbLZGEhEREfUnot7uBTlnzhzk5+fjyJEjEIlEAIBN\nmzZBKpVCqVSioKAAy5Ytg8FgwNGjR+Hi4mKRhhMRERE5ql4FsCVLlmDTpk3Yv38/hg4d2mm9q1ev\nYujQodi0aRNmzZplcqyysvLWW0tERERkZ2QyWa/f0+0csDZ//OMfsWnTJuzevbvL8AUAQUFBCAkJ\nQU5OTq8bRERERNTf9SiAvfjii9i8eTN2796NyMjIbusXFxejsLAQQUFBfW4gERERUX/TbQBbuHAh\n1q9fj61bt0Imk0Gn0wEAPD094eHhgdraWqSmpuLhhx9GUFAQ1Go1li5disDAQMyePbvLc99Klx0N\nPFlZWQCAxMREG7eEHAXvGeot3jPUW32dUtXtU5Br1qxBTU0Npk2bBoVCYfx69913AQBOTk44ffo0\nZs2ahaioKDz99NOIiYnBgQMH4OHh0afGEREREfVH3faAGQyGLo9LJBLs2LHDbA0iIiIi6u+4FyQR\nERGRlTGAEREREVkZAxgRERGRlTGAEREREVkZAxgRERGRlTGAEREREVkZAxgRERGRlTGAEREREVkZ\nAxgRERGRlTGAEREREVkZAxgRERGRlTGAEREREVkZAxgRERGRlTGAEREREVkZAxgRERGRlTGAERER\nEVkZAxgRERGRlTGAEREREVkZAxgRERGRlTGAEREREVkZAxgRERGRlTGAEREREVkZAxgRERGRlTGA\nEREREVkZAxgRERGRlTGAEREREVkZAxgRERGRlTGAEREREVkZAxgRERGRlTGAEREREVkZAxgRERGR\nlTGAEREREVkZAxgRERGRlTGAEREREVkZAxgRERGRlTGAEREREVkZAxgRERGRlXUbwFauXImkpCTI\nZDIEBATggQcewNmzZ9vVS01NRXBwMKRSKaZMmYJz585ZpMFEREREN1Kr1UhJScGUKVOQkpICtVpt\n6yZ1q9sAtnfvXixatAgHDx7Erl274OzsjOnTp6OiosJY5+2338bq1avx0UcfISsrCwEBAUhOTkZt\nba1FG09EREQDm1qtRnJyMjZs2IDdu3djw4YNSE5OtvsQ1m0A2759O5588knExsYiLi4OX331FYqL\ni7F//35jnffffx+vvvoqZs2ahdjYWKxbtw7V1dXYuHGjRRtPREREA5tKpUJeXp5JWV5eHlQqlY1a\n1DO9ngNWVVUFg8EAHx8fAK3JU6vVIjk52VhHIpFg0qRJOHDggPlaSkRERHSTwsLCDss1Go2VW9I7\nvQ5gL774IkaNGoVx48YBALRaLUQiEeRyuUk9uVwOrVZrnlYSERERdSA4OLjDcoVCYeWW9I5zbyov\nWbIEBw4cwP79+yESifp88aysrD6fgwYO3i/UW7xnqLd4zzieRx99FHv27MGVK1eMZSEhIXj00Uct\n+ucZGRnZp/f3OID98Y9/xKZNm7B7924MHTrUWB4YGAhBEKDT6RASEmIs1+l0CAwM7FPjiIiIiLoS\nHByMDz/8EJ988gmKi4vh7++P559/vtOeMXvRowD24osvYvPmzdi9e3e7xKdUKhEYGIj09HSMHj0a\nANDQ0ICMjAy8++67XZ43MTHxFptNA0nbv2B4v1BP8Z6h3uI949gSExPx4IMPWvWalZWVfXp/twFs\n4cKFWL9+PbZu3QqZTAadTgcA8PT0hIeHBwBg8eLFWLlyJaKiohAZGYk33ngDXl5emDt3bp8aR0RE\nRNQfdRvA1qxZA5FIhGnTppmUL1++HK+99hoA4OWXX0ZDQwMWLVqE8vJyjBkzBj/99JMxoBERERHR\ndd0GMIPB0KMTvfbaa8ZARkRERESd416QRERERFbGAEZERERkZQxgRERERFbGAEZERNSPqdVqpKSk\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb2f831d0>"
"<matplotlib.figure.Figure at 0x215149eaa20>"
]
},
"metadata": {},
@@ -2099,7 +2109,7 @@
"\n",
"```python\n",
"for i in range(100):\n",
" Z = math.sin(i/3.) * 2\n",
" z = math.sin(i/3.) * 2\n",
"```\n",
" \n",
"Adjust the variance and initial positions to see the effect. What is, for example, the result of a very bad initial guess?"
@@ -2135,7 +2145,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x21cb426ee80>"
"<matplotlib.figure.Figure at 0x21515cb03c8>"
]
},
"metadata": {},
@@ -2185,9 +2195,22 @@
"source": [
"## Fixed Gain Filters\n",
"\n",
"Embedded computers usually have extremely limited processors. Many do not have floating point circuitry. These simple equations can impose a heavy burden on the chip. This is less true as technology advances, but do not underestimate the value of spending 10 cents less on a processor when millions will be used.\n",
"Embedded computers usually have extremely limited processors. Many do not have floating point circuitry. These simple equations can impose a heavy burden on the chip. This is less true as technology advances, but do not underestimate the value of spending one dollar less on a processor when you will be buying millions of them.\n",
"\n",
"In the example above the variance of the filter converged to a fixed value. This will always happen if the variance of the measurement and process is a constant. You can take advantage of this fact by running simulations to determine what the variance converges to. Then you can hard code this value into your filter. So long as you initialize the filter to a good starting guess (I recommend using the first measurement as your initial value) the filter will perform very well. "
"In the example above the variance of the filter converged to a fixed value. This will always happen if the variance of the measurement and process is a constant. You can take advantage of this fact by running simulations to determine what the variance converges to. Then you can hard code this value into your filter. So long as you initialize the filter to a good starting guess (I recommend using the first measurement as your initial value) the filter will perform very well. For example, the dog tracking filter can be reduced to this:\n",
"\n",
"```python\n",
"def update(x, z):\n",
" K = .13232 # experimentally derived Kalman gain\n",
" y = z - x # residual\n",
" x = x + K*y # posterior\n",
" return x\n",
" \n",
"def predict(x):\n",
" return x + vel*dt\n",
"```\n",
"\n",
"I used the Kalman gain form of the update function to emphasize that we do not need to consider the variances at all. If the variances converge to a single value so does the Kalman gain. "
]
},
{
@@ -2196,19 +2219,19 @@
"source": [
"## FilterPy's Implementation\n",
"\n",
"FilterPy implements `predict` and `update`. They work not only for the univariate case, but the more general multivariate case that we learn in subsequent chapters. Because of this their interface is slightly different. They do not take Gaussians as tuples, but as two separately named variables.\n",
"FilterPy implements `predict()` and `update()`. They work not only for the univariate case developed in this chapter, but the more general multivariate case that we learn in subsequent chapters. Because of this their interface is slightly different. They do not take Gaussians as tuples, but as two separately named variables.\n",
"\n",
"Predict takes several arguments, but we will only need to use these four:\n",
"`predict()` takes several arguments, but we will only need to use these four:\n",
"\n",
"```python\n",
"predict(x, P, u, Q)\n",
"```\n",
"\n",
"`x` is the state of the system. `P` is the variance of the system. `u` is the movement due to the process, and `Q` is the noise in the process. You will need to used named arguments when you call `predict` because most of the arguments to `predict` are optional. The third argument to `predict` is **not** `u`.\n",
"`x` is the state of the system. `P` is the variance of the system. `u` is the movement due to the process, and `Q` is the noise in the process. You will need to used named arguments when you call `predict()` because most of the arguments are optional. The third argument to `predict()` is **not** `u`.\n",
"\n",
"These may strike you as terrible names. They are, but as I already mentioned they come from a long history of control theory, and every paper or book you read will use these names. So, we just have to get used to it. Refusing to memorize these means you will never be able to read the literature.\n",
"These may strike you as terrible names. They are! As I already mentioned they come from a long history of control theory, and every paper or book you read will use these names. So, we just have to get used to it. Refusing to memorize them means you will never be able to read the literature.\n",
"\n",
"Let's try it for the state $\\mathcal N(10, 3)$ and the movement $\\mathcal N(1, 4)$. We'd expect a final position of 11 with a variance of 7."
"Let's try it for the state $\\mathcal N(10, 3)$ and the movement $\\mathcal N(1, 4)$. We'd expect a final position of 11 (10+1) with a variance of 7 (3+4)."
]
},
{
@@ -2257,7 +2280,7 @@
{
"data": {
"text/plain": [
"(11.350, 4.550)"
"(11.364, 4.455)"
]
},
"execution_count": 32,
@@ -2266,8 +2289,8 @@
}
],
"source": [
"x, P = kf.predict(x=10, P=3., u=1, Q=4)\n",
"x, P = kf.update(x=x, P=P, z=12, R=13)\n",
"x, P = kf.predict(x=10, P=3., u=1, Q=2**2)\n",
"x, P = kf.update(x=x, P=P, z=12, R=3.5**2)\n",
"x, P"
]
},
@@ -2296,7 +2319,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python [default]",
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
@@ -2310,7 +2333,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
"version": "3.5.2"
}
},
"nbformat": 4,
+63 -60
View File
@@ -1,7 +1,7 @@
{
"cells": [
{
"cell_type": "raw",
"cell_type": "markdown",
"metadata": {},
"source": [
"[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)"
@@ -326,7 +326,7 @@
"\n",
"We've been using Gaussians for a scalar 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 with multiple dimensions. I don't necessarily mean spatial dimensions - it could be position, velocity, and acceleration. Consider a two dimensional case. It 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",
"What might a *multivariate normal distribution* be? *Multivariate* means multiple variables. Our goal is to be able to represent a normal distribution with multiple dimensions. I don't necessarily mean spatial dimensions - if we track the position, velocity, and acceleration of an aircraft in (x, y, z) that gives us a nine dimensional problem. Consider a two dimensional case. It 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",
"$$\n",
"\\mu = \\begin{bmatrix}\\mu_1\\\\\\mu_2\\\\ \\vdots \\\\\\mu_n\\end{bmatrix}\n",
@@ -357,7 +357,7 @@
"\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* or *independent*- each can change independent of the other.\n",
"\n",
"Correlation allows 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",
"Correlation allows 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 changing.\n",
"\n",
"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. "
]
@@ -373,7 +373,7 @@
"data": {
"image/png": "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\n1SOnfUqlEjExMXBxcTFBldTYGACJiIhswI0bN5CSkgKVSoVff/1Vb71FixaIjY1FfHw8p302gAGQ\niIjISgmCgIMHD4rTvvv37+tt06dPHyiVSkyePJnTPhvCAEhERGRlrl+/Lk77zp07p7feokULTJs2\nDfHx8Xj++edNUCGZGgMgERGRFRAEAQcOHIBKpcLXX39tcNrXt29fKBQKTvuIAZCIiMiS3bp1C9u3\nb0dsbKzBaZ+rq6s47QsKCjJBhWSOGACJiIgsjCAI2L9/vzjtU6vVetv069dPnPY5OzuboEoyZwyA\nREREFuLatWvisX3nz5/XW6+d9ikUCvTs2dMEFZKlYAAkIiIyY4IgYN++fVCpVPjmm28MTvu6deuG\n1157DZMmTeK0j+qFAZCIiMgMXb16VZz25efn6627urpi+vTpCAkJQadOndC7d28TVEmWigGQiIjI\nTGi1WnHal56ebnDa179/fyiVSkycOBHOzs7Iy8szQaVk6RgAiYiITOzq1avYsGED1qxZY3Da5+bm\nhunTpyM+Ph49evQwQYVkbRgAiYiITKB22peUlISMjAyD074BAwaI0z4nJycTVEnWys7UBRw6dAjR\n0dHw8fGBnZ0dPvvsM531yspKzJs3D+3atYOTkxO6dOmCjz/+WGeb+/fvY968efD09ISLiwuio6Nx\n5cqVpmyDiIioXkpLS/H++++jU6dOiIiIwFdffaUT/tzc3DBv3jycOHECOTk5iIuLY/gjozP5BPDO\nnTvo3r074uLiMGPGDL31BQsWYO/evfjiiy/QoUMHHDx4EHPmzIGnpydiY2MBAPPnz0dmZibS0tLg\n4eGBBQsWYNSoUTh27BgkEklTt0RERKRDq9Vi7969UKlUdU77QkJCoFAoOO2jJmHyABgVFYWoqCgA\nQFxcnN56bm4upk+fjvDwcADAtGnTsHbtWvzwww+IjY1FRUUFkpOTkZKSgiFDhgAAUlNT4evri+zs\nbERGRjZdM0RERA8pLS3F+vXrsWbNGhQUFOitP/PMM5gxYwbi4+PRrVs3E1RItsrkXwE/TlhYGDIz\nM1FUVAQAyMnJwfHjx8XQePToUdTU1OgEPR8fHwQEBCAnJ8ckNRMRke3SarXIysrCxIkT4ePjg8WL\nF+uFv9DQUKSkpODKlStITExk+KMmZ/IJ4ON88sknUCqVaN++PaRSKSQSCf7973+LALine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x2298f4a3a58>"
"<matplotlib.figure.Figure at 0x1df2ea2eeb8>"
]
},
"metadata": {},
@@ -401,9 +401,9 @@
"\n",
"Where $\\mathbb E[X]$ is the *expected value* of X, defined as\n",
"\n",
"$$\\mathbb E[X] = \\begin{cases} \\sum_{i=1}^n p_ix_i & \\mbox{discrete}\\\\ \\int_{-\\infty}^\\infty x\\, f(x) & \\mbox{continuous}\\end{cases}$$\n",
"$$\\mathbb E[X] = \\begin{cases} \\sum_{i=1}^n p_ix_i & \\mbox{discrete}\\\\ \\int_{-\\infty}^\\infty f(x)\\, x & \\mbox{continuous}\\end{cases}$$\n",
"\n",
"We assume each data point is equally likely, so the probability of each is $\\frac{1}{N}$, yielding:\n",
"We assume each data point is equally likely, so the probability of each is $\\frac{1}{N}$, giving\n",
"\n",
"$$\\mathbb E[X] = \\frac{1}{N}\\sum_{i=1}^n x_i$$\n",
"\n",
@@ -411,7 +411,10 @@
"\n",
"Compare the covariance equation to the equation for the variance. As you can see they are very similar:\n",
"\n",
"$$VAR(X) = \\sigma_x^2 = \\mathbb E[(X - \\mu)^2]$$"
"$$\\begin{aligned}VAR(X) = \\sigma_x^2 &= \\mathbb E[(X - \\mu)^2]\\\\\n",
"COV(X, Y) = \\sigma_{xy} &= \\mathbb E\\big[(X-\\mu_x)(Y-\\mu_y)\\big]\\end{aligned}$$\n",
"\n",
"In particular, if you compute $COV(X, X)$ you get the equation for $VAR(X)$, which supports my statement that the variance computes how a random variable varies amongst itself."
]
},
{
@@ -428,7 +431,7 @@
" \\end{bmatrix}\n",
"$$\n",
"\n",
"The diagonal contains the variance for each variable, and that all off-diagonal elements contain the covariance between the $i^{th}$ and $j^{th}$ variables. So $\\sigma_3^2$ is the variance of the third variable, and $\\sigma_{13}$ is the covariance between the first and third variables.\n",
"The diagonal contains the variance for each variable, and the off-diagonal elements contain the covariance between the $i^{th}$ and $j^{th}$ variables. 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",
@@ -525,7 +528,7 @@
"\n",
"This is a bit beyond the scope of this book. Briefly, suppose the actual class size is 200 students, and we took a sample of 5 students to perform this computation because we couldn't afford to measure and weigh all 200 students. It is nearly certain that there will be some error in our estimator because the sample is unlikely to perfectly represent the class. As our sample size approaches 200 the error will approach 0. We say there is no *bias* in the latter, and that we have an *unbiased estimator*. In contrast, when we take a small sample there is bias (error is nonzero), and we have a *biased estimator*.\n",
"\n",
"If the error is zero it makes sense to divide by $N$. I will not prove why, but for biased estimators we use $\\frac{1}{N-1}$ to correct for the small sample size. NumPy does this by default because in practice we are almost always working from data samples. If you want the unbiased estimator, which we computed above, use `bias=1` in the call to `np.cov'."
"If the error is zero it makes sense to divide by $N$. I will not prove why, but for biased estimators we use $\\frac{1}{N-1}$ to correct for the small sample size. NumPy does this by default because in practice we are almost always working from data samples from a larger collection. If you want the unbiased estimator, which we computed above, use `bias=1` in the call to `np.cov'."
]
},
{
@@ -604,7 +607,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22990565320>"
"<matplotlib.figure.Figure at 0x1df2ea2ec50>"
]
},
"metadata": {},
@@ -644,9 +647,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x229905c01d0>"
"<matplotlib.figure.Figure at 0x1df2faa4dd8>"
]
},
"metadata": {},
@@ -656,8 +659,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 10.3599 2.9076]\n",
" [ 2.9076 2.4082]]\n"
"[[ 10.9154 2.9862]\n",
" [ 2.9862 2.3052]]\n"
]
}
],
@@ -687,9 +690,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x2298f4a3908>"
"<matplotlib.figure.Figure at 0x1df2ea2eac8>"
]
},
"metadata": {},
@@ -699,8 +702,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
"[[ 1.0005 -0.008 ]\n",
" [-0.008 0.9965]]\n"
"[[ 1.003 -0.0008]\n",
" [-0.0008 1.0014]]\n"
]
}
],
@@ -736,7 +739,7 @@
"f(x, \\mu, \\sigma) = \\frac{1}{\\sqrt{2\\pi\\sigma^2}} \\exp \\Big [{-\\frac{1}{2}}{(x-\\mu)^2}/\\sigma^2 \\Big ]\n",
"$$\n",
"\n",
"The multivariate version merely replaces the scalars of the univariate equations with matrices. If you are reasonably well-versed in linear algebra this equation should look quite manageable; if not, don't worry, we have code to compute it for us! Let's plot it and see what it looks like. This plot is interactive: use your mouse to spin the plot and view it from different angles."
"The multivariate version merely replaces the scalars of the univariate equations with matrices. If you are reasonably well-versed in linear algebra this equation should look quite manageable; if not, don't worry, we have code to compute it for us! Let's plot it and see what it looks like."
]
},
{
@@ -748,9 +751,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22990660208>"
"<matplotlib.figure.Figure at 0x1df30e7f908>"
]
},
"metadata": {},
@@ -773,7 +776,7 @@
"cell_type": "markdown",
"metadata": {},
"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 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 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 3D surface is at the the means for $X$ and $Y$. \n",
"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 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 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 3D surface is at the the means for $X$ and $Y$. \n",
"\n",
"All multivariate Gaussians have this shape. If we think of this as the Gaussian for the position of a dog, the z-value at each point of ($X, Y$) is the probability density of the dog 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 with an integral."
]
@@ -782,7 +785,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"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. I named my function `multivariate_gaussian()` to ensure it is never confused with the SciPy version.\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. I named my function `multivariate_gaussian()` to ensure it is never confused with the SciPy version.\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."
]
@@ -892,7 +895,7 @@
"source": [
"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$. Earlier I wrote \"I have projected the variance for x and y onto the walls of the chart\"; these are the marginal probabilities for $x$ and $y$. "
"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$. Earlier I wrote \"I have projected the variance for x and y onto the walls of the chart\"; these are the marginal probabilities for $x$ and $y$. Another computational benefit of Gaussians is that the marginal of a multivariate Gaussian is another Gaussian!"
]
},
{
@@ -912,9 +915,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x229900469b0>"
"<matplotlib.figure.Figure at 0x1df31226f60>"
]
},
"metadata": {},
@@ -937,9 +940,9 @@
"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 as contour plots.\n",
"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, and how much they are correlated. In most of the book I'll display Gaussians as contour plots.\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. "
"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. These plots show the shape of the slice for 3 standard deviations."
]
},
{
@@ -952,9 +955,9 @@
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkMAAAERCAYAAAB4l6P6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmUXFd94PHv22rfelWrJdmSF5yYeLCT4TCHYbDkxAES\njAmBg4EE2WQyPoaBM4bMkDPgsYFgYpYsNj6EbAZzcmJCgjOY8SEM2HhMIBD2YINtYUndrV5re/X2\nff4otbBQS+7uetVd3X0/5yg41aVXt7r0q/t79/7uvVKSJAmCIAiCIAg7lLzZDRAEQRAEQdhMIhkS\nBEEQBGFHE8mQIAiCIAg7mkiGBEEQBEHY0UQyJAiCIAjCjiaSIUEQBEEQdjSRDAmCIAiCsKOJZOgs\nbrvtNmRZZmpqarObcgZZlnnTm9602c0QhHMSMSQIKxvk2EjT/v37ueqqqza7GasikqGzkCQJSZLO\nePwHP/gB73nPe3jxi1/M3r17yWazTE5O8pu/+Zs8+uij63qtr3/96/z6r/86IyMjFAoFnve85/Gn\nf/qnxHHc69sQhE0jYkgQVrYRsRGGIX/6p3/Km970Jq644gqy2SyyLPPnf/7na27v7OwsH/3oR3n5\ny1/OhRdeSD6fZ3h4mIMHD3Lvvfee831uFepmN2CrufHGG/nmN7/J5ZdfzrXXXku1WuVHP/oRn/vc\n57j//vv56Ec/ypvf/OZVX+9//+//zatf/Wry+Tyvfe1rGR4e5oEHHuDmm2/ma1/7Gp/+9Kf7+G4E\nYeOJGBKElaUZG5ZlcfPNNyNJErt27WL37t1MT0+vq1133XUXd9xxB+effz4HDx5kz549zM7O8tnP\nfpbrr7+eBx98kPvuu29d1x4YibCi2267LZFlOTl+/Phpj991113Jk08+ecbzH3744UTTtCSXyyUL\nCwureo1Op5OMjY0luVwu+c53vnPqcc/zkhe+8IWJLMvJpz/96TP+niRJyQ033LDGdyQIG0vEkCCs\nbCNiw/f95Atf+EIyPz9/2mt+/OMfX3N777///uQrX/nKGY/Pzc0l+/btS2RZTu6///4zfr5///7k\n0KFDa369zSCmydbov/7X/8rFF198xuMHDx7k0KFD+L7PP//zP6/qWp/5zGeo1+u87nWv44orrjj1\neCaT4Q/+4A9IkoSPfexjqbVdEAaBiCFBWFmasaFpGi95yUvYtWtXz+165StfyZVXXnnG4xMTE9x0\n000kScLDDz/c8+tsJpEMpUjTNABUdXWzjw8//DCSJPGSl7zkjJ+9+MUvplAo8LWvfY0gCFJtpyAM\nKhFDgrCytcbGRhnUdq2VSIZScvz4cb785S9TKBR48YtfvKq/88QTTwDwnOc854yfKYrCgQMHCMOQ\np59+OtW2CsIgEjEkCCtbT2xshCiK+OQnP4kkSbz0pS/d7Ob0ZGuncgPCdV2uu+46fN/n9ttvp1qt\nrurv6boOcNbnLz/ebrfTaaggDCgRQ4KwsvXGxkZ4xzvewWOPPcY111zD1VdfvdnN6YkYGepREAS8\n5jWv4Zvf/CZveMMbuPnmmze7SYKwpYgYEoSVDXJsfOADH+DOO+/ksssuO+fy+q1CJEM98H2fV73q\nVTz44IP89m//Np/85CfX9PeXM/zlu9uftfx4rVbrraGCMKBEDAnCynqNjX56//vfz7ve9S4uv/xy\nHnrooYEarVovkQytk+M4vPzlL+fBBx/kd37nd/jEJz6x5g2mLrnkEgCefPLJM34WRRFHjx5FVVUu\nuOCCVNosCINExJAgrCyN2OiXd7/73dxyyy08//nP56GHHmJkZGSzm5QKkQytg2mavPSlL+XLX/4y\nb3nLW9a1oyfAVVddRZIkfOELXzjjZ4888gi2bfMf/+N/PFWtLwjbhYghQVhZWrHRD29/+9u5/fbb\neeELX8iXvvSlbTXiKpKhNdJ1nV/5lV/hq1/9Ku94xzu48847132tV7/61YyOjnLffffx7W9/+9Tj\nnufx7ne/G0mSuOmmm9JotiAMDBFDgrCyNGNjPTqdDk888cSKO1XfdNNN/Mmf/AkHDx7ki1/8IuVy\neUPb1m9iNdkavfKVr+Sb3/wm+/bto1gs8p73vOeM5xw8eHDFDap+Vrlc5i//8i959atfzcGDB7nu\nuusYHh7mc5/7HE8++SSvec1reM1rXtOPtyEIm0bEkCCsLM3YALjjjjv48Y9/DMD3vvc9kiThE5/4\nBF//+tcB+Lmf+zne+c53nnr+/fffzw033MDBgwd56KGHTj3+nve8h49//ONks1me//zn86EPfeiM\n19q/fz+HDx9e0/sdJCIZWqNjx44hSRIzMzO8973vXfE5kiSt+h/rK17xCh599FHe97738dnPfhbX\ndbnooov44z/+Y9761rem2XRBGAgihgRhZWnHxhe+8AX+3//7f6f93W984xt84xvfAODKK688LRla\nfs7P1ictt8v3fT784Q+v+FpXXnmlSIZ2kqNHj6Z+zRe84AV8/vOfT/26gjCIRAwJwsrSjo21HpFx\n+PDhFROae+65h3vuuSetZg0kUTMkCIIgCMKOJpIhQRAEQRB2NJEMCYIgCIKwo4maobM4ePAgkiQN\n5D4Kt912G5dffvlmN0MQzknEkCCsbJBjI00333zzlnmPUpIkyWY3QhAEQRAEYbOIaTJBEARBEHY0\nkQydxW233YYsy0xNTW12U84gyzJvetObNrsZgnBOIoYEYWWDHBtp2r9/P1ddddVmN2NVRDJ0Fitt\nPPVM/+f//B8OHTpErVajXC7zH/7Df+Dee+9d02scOXKED37wg1x99dWcf/75ZLNZxsfHednLXsYD\nDzzQ61sQhE21ETG0LI5j/vIv/5Irr7yS4eFhCoUCF154Iddddx1HjhxZ71sQhL44W2zous6HPvQh\nfuu3fovnPve5aJqGLMt88YtfXPNrpNm/zM7O8tGPfpSXv/zlXHjhheTzeYaHhzl48OA5Y3ZQDpdd\nDVFAvQ533303b33rWxkdHeW3f/u3yWQy/P3f/z3XX389P/zhD/ngBz+4quvccsst/N3f/R2XXHIJ\nL3nJSxgbG+Po0aPcf//9/NM//RP//b//d+64444+vxtB2HhpxRCAZVm84hWv4OGHH+aKK67g+uuv\nJ5fLceLECR599FGefPJJLrrooj6+G0FIx7Fjx3jnO9+JJEns3buXsbExFhYW1nWtNPuXu+66izvu\nuIPzzz+fgwcPsmfPHmZnZ/nsZz/L9ddfz4MPPsh99923rnYOjERY0W233ZbIspwcP378tMePHTuW\n5HK5ZHR0NJmamjr1eLvdTi666KJEluXkX/7lX1b1Gp/4xCeSb3/722c8/thjjyXVajWRZTn57ne/\ne8bPJUlKbrjhhjW+I0HYWBsRQ0mSJK9//esTWZaTv/iLv1jx52EYnvGYiCFhM50tNlqtVvLQQw8l\nrVYrSZIkuf766xNZlpN/+qd/WvNrrLd/Wcn999+ffOUrXznj8bm5uWTfvn2JLMvJ/ffff8bP9+/f\nnxw6dGjNbd8MYppsjf7qr/4K3/d561vfyr59+049Xq1W+Z//83+SJAl/9md/tqprHT58mF/8xV88\n4/FLL72U1772tcDat1MXhEGXZgx997vf5W//9m+57rrr+M//+T+v+BxFUVJptyD0W61WOzV13Ks0\n+5dXvvKVK56HNjExwU033USSJFu+rxLTZGu0/IG/5CUvOeNnL3vZywBOO+13vTRNA0BVxUckbC9p\nxtDf/M3fIEkS1113Hbqu88ADDzAzM8PIyAhXXXUVF154YXoNF4RtIs3+Zbv0VVu79ZvgiSeeAOA5\nz3nOGT+bmJigWCwyMzOD67rkcrl1vUan0+Ef/uEfkGWZX/3VX+2pvYIwaNKMoW9961tAt9bihhtu\noNVqnfbzm266ibvuumtLFXIKQj+l2b9EUcQnP/lJJEnipS99aUot3BximmyNdF0HukP6K1l+fPl5\na5UkCddffz2Li4u8+c1v5pJLLllfQwVhQKUZQ4uLiyRJwtvf/nZ++Zd/mR//+McYhsGXvvQlLrro\nIj72sY/xvve9L73GC8IWlnb/8o53vIPHHnuMl7/85Vx99dUptXJziGRowNx000384z/+I4cOHeIj\nH/nIZjdHEAZaHMcA/PzP/zz33XcfF198MYVCgUOHDvGZz3wGSZL4oz/6I8Iw3OSWCsLmS7N/+cAH\nPsCdd97JZZddtu4tMQaJSIbW6NnuWp/trvdcbrzxRv78z/+cq6++ms9//vNbfg5WEFaSZgzVajUk\nSeKaa645Yyrs3/27f8eBAwcwDIMf/ehHPbZaELa2NPuX97///bzrXe/i8ssv56GHHlpXfzdoRDK0\nRsvDik8++eQZP5ufn8eyLPbu3bumeqE4jjl8+DB/8Rd/wa/92q/xwAMPrLveSBAGXZoxtHyts62+\nGRoaAsBxnPU2VxC2tLT7l3e/+93ccsstPP/5z+ehhx5iZGQkxdZuHpEMrdFVV11FkiR84QtfOONn\nDz74IAC//Mu/vOrrhWHI6173Oj71qU/xG7/xG/zjP/4jmUwmtfYKwqBJM4Z+5Vd+hSRJ+OEPf3jG\nz3zf56mnngK6xwIIwk6Tdv/y9re/ndtvv50XvvCFfOlLX9oyJ9KvhkiG1uiGG24gm83y0Y9+lOPH\nj596vNVqcfvttyNJEjfeeOOqruX7Pq961av4zGc+w3XXXcdnPvMZMTUmbHtpxtBv/uZvMjk5yac/\n/Wn+9V//9bSfvfe970XXda666irGx8dTfQ+CMCgajQZPPPEE8/Pzpz2edv9y00038Sd/8iccPHiQ\nL37xi5TL5V6bPlBEz7tG+/fv58Mf/jBve9vb+Pf//t/z2te+9tRRAidOnOD3fu/3eLine truncated
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAkMAAAERCAYAAAB4l6P6AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmcW2W9P/DP2ZKTPZPJZPZ2pguVpRdwgyv+oFVBURGv\nglZR2srVCigK4nLFyqKCuKFAcQFku75EUVHgcgWRxYIisoiXxZbS2dfs+8nZnt8f0ynUmbYzycnk\nJPm+Xy+uvSfJyZPJ+Z7nm2flGGMMhBBCCCFNiq91AQghhBBCaomSIUIIIYQ0NUqGCCGEENLUKBki\nhBBCSFOjZIgQQgghTY2SIUIIIYQ0NUqGCCGEENLUKBnaj0suuQQ8z2N4eLjWRZmD53l87GMfq3Ux\nCDkgiiHSjOx83dvVunXrsGLFipqWgZKh/eA4DhzHzTn+j3/8A5deeimOP/549PT0wOl0oqurC+9/\n//uxffv2st7rL3/5C971rnehtbUVbrcbRx55JH7wgx/ANM1KPwYhNUMxRJpRPV73N954Iz75yU/i\n2GOPhcfjAc/z+PKXv7zo8iQSCdx444047bTTsGbNGng8HgQCARx77LG4+uqroev6vK+b7++11MRa\nF6DebNmyBU888QSOOuoonHrqqQgEAnjxxRdx11134c4778S1116Lc845Z8Hn+93vfofTTjsNLpcL\nH/zgBxEKhXD33Xfj/PPPx5///Gf84he/qOKnIWTpUQyRZmTn6/7CCy9EJpNBS0sLuru78fLLL5fz\nEXHHHXfg7LPPRnt7O9avX4/TTjsNsVgMd911Fz772c/i17/+NR544AFIklTW+auKkXldcskljOd5\nNjQ0tM/xa665hu3cuXPO8x966CEmSRKTZZlNTU0t6D0ymQxra2tjsiyzp59+eu/xUqnE3vSmNzGe\n59kvfvGLOa/jOI5t3rx5kZ+IkKVFMUSakZ2v+/2577772PDwMGOMsZtvvplxHMf+67/+a8Gvn/XQ\nQw+xu+66i5mmuc/xbDbLjj76aMbzPLvqqqvmvG7dunWsv79/0e9nJeomW6RPfepTWL169Zzj69at\nw/r166GqKh577LEFneuOO+5ALBbDhz70IRx99NF7jzscDnz9618HYww//OEPLSs7IXZAMUSakZ2v\n+5NOOgm9vb0Lfv7+rFu3Dqeccsqcbi+v14vPf/7zYIzhoYceqvh9qoGSIQvNNv2J4sJ6Hx966CFw\nHIe3v/3tcx47/vjj4Xa78ec//xmapllaTkLsimKINKNmuO4X+xmXGiVDFhkaGsIf//hHuN1uHH/8\n8Qt6zY4dOwAAhxxyyJzHBEFAf38/dF3H7t27LS0rIXZEMUSaUbNc9zfccAM4jsPJJ59c66LMy54p\nWp1RFAUbNmyAqqq4/PLLEQgEFvS6dDoNAPt9/uzxVCplTUEJsSmKIdKMmuW6//73v4/7778fr3vd\n67B58+ZaF2de1DJUIU3TcPrpp+OJJ57AGWecgfPPP7/WRSKkrlAMkWbULNf9z372M1x44YXo6enB\nb37zGwiCUOsizYuSoQqoqor3ve99uPfee/HRj34Ut9xyy6JeP5u9z2b5/2r2eDAYrKyghNgUxRBp\nRs1y3d96663YuHEjent78cgjj1gySLtaKBkqU7FYxLvf/W7ce++9OOuss3DzzTcveuGoNWvWAAB2\n7tw55zHDMDAwMABRFGu+Mich1UAxRJpRs1z3P/nJT7B582b09/fjT3/6E/r7+2tWloWgZKgMuVwO\n73jHO/DHP/4R5557Ln7yk5+UdZ63vOUtYIzh97///ZzHHnnkERQKBRx33HH2XKCKkApQDJFm1CzX\n/Q9+8AN88pOfxCGHHII//elPtm4RmkXJ0CKl02m87W1vw6OPPorPfe5zuPrqq8s+12mnnYZwOIzb\nb78dTz311N7jpVIJX/nKV8BxHM4++2wrik2IbVAMkWZUznUfj8exY8cOTE5O7nO81td9sVjEjh07\n5p2tdsUVV+D888/HEUccgUceeQSdnZ1VK4eVaDbZIr33ve/FE088gd7eXng8Hlx66aVznrNu3Tqc\ncMIJBz2Xz+fDDTfcgNNOOw3r1q3Dhg0bEAqFcNddd2Hnzp04/fTTcfrpp1fjYxBSMxRDpBmVc91f\nc801uOyyy7Bp0yb89Kc/3Xvc6uv+xhtvxKOPPgoA2LVrFwDgnnvuwcTEBAAgHA7j29/+9t7nP/HE\nE1i/fj36+vr2SYhuueUWXHTRReB5HieccMK8Cz8Gg0F85jOfWXDZlgolQ4s0ODgIjuMwOjqKyy67\nbN7ncBy3oBs5ALznPe/B9u3b8bWvfQ2/+c1voCgKVq1ahauuugqf/vSnrSw6IbZAMUSaUTnX/eym\nr/ONKbLyun/00Udx66237vO+zz//PJ5//nkAQF9f3z7J0KvLNt9nZIzhuuuum/e9li9fTslQIxgY\nGLD8nMcccwzuuecey89LiB1RDJFmVM51f/HFF+Piiy/e7+NWXfc33XQTbrrppgU//4QTToBhGHOO\nH6y8dkZjhgghhBDS1CgZIoQQQkhTo2SIEEIIIU2Nxgztx7p168BxXM1X8JzPJZdcgqOOOqrWxSDk\ngCiGSDOy83VvV5s3b675PmocY4zVtASEEEIIITVE3WSEEEIIaWqUDO3HJZdcAp7nMTw8XOuizMHz\nPD72sY/VuhiEHBDFEGlGdr7u7WrdunU13z+QkqH92N9CV7P+53/+B+vXr0cwGITP58Oxxx67z6JV\nC7Fr1y5861vfwoknnojly5fD6XQiEong5JNPxt13313pRyCkppYihmaZpokbbrgBJ5xwAkKhENxu\nN1auXIkNGzbsXVGXkKWwv+s+nU7j29/+Nj7ykY/g8MMPhyRJ4Hke999//6Lfw8q6Y3x8HNdeey3e\n/e53Y+XKlXC5XAiFQli3bl3Z8Tg2NoazzjoL3d3dkGUZ/f39OP/88/c7LmixG9VWAw2gLsO2bdvw\n6U9/GuFwGB/96EfhcDjwq1/9Cps2bcJzzz2Hb33rWws6z9atW/HLX/4Sa9aswdvf/na0tbVhYGAA\nd955J+677z58/vOfx5VXXlnlT0PI0rMqhgAgn8/jPe95Dx566CEcffTR2LRpE2RZxtjYGLZv346d\nO3di1apVVfw0hBzc4OAgvvjFL4LjOPT09KCtrQ1TU1NlncvKuuOaa67BlVdeieXLl2PdunXo7u7G\n+Pg4fvOb32DTpk249957cfvtty+4bAMDA/j3f/93RKNRvPe978WaNWvwxBNP4Ac/+AHuu+8+PPbY\nY2hpaSnrc1cVI/O65JJLGM/zbGhoaJ/jg4ODTJZlFg6H2fDw8N7jqVSKrVq1ivE8zx5//PEFvcfN\nN9/MnnrqqTnHn3/+eRYIBBjP8+yZZ56Z8zjHcWzz5s2L/ESELK2liCHGGPvwhz/MeJ5n119//byP\n67o+5xjFEKmW/V33yWSSPfjggyyZTDLGGNu0aRPjeZ7dd999i36PcuuO+dx5553s4YcfnnN8YmKC\n9fb2Mp7n2Z133rngsp100kmM53m2bdu2fY5fcMEFjOM4dvbZZ895zbp161h/f/+C36MaqJtskW68\n8UaoqopPf/rT6O3t3Xs8EAjgy1/+Mhhj+NGPfrSgc23cuBGvfe1r5xw/7LDD8MEPfhAA8NBDD1lT\ncEJswsoYeuaZZ/Dzn/8cGzZswH/+53/O+xxBECwpNyGVCAaDe7uFK2Vl3fHe97533n0AOzo6cPbZ\nZ4MxtuBz7d69G3/4wx/Q19eHc845Z5/HLr30Ung8Htx2220oFosLOt9SomRokWYvire//e1zHjv5\n5JMBAA8++GDF7yNJEgBAFKknkzQWK2PoZz/7GTiOw4YNG5BOp/Hf//3f+OY3v4nrr78eL7/8snWF\nJqROWFl3LPZcs7F90kknzXnM6/XiuOOOQ6FQwOOPP15x2axGNe0i7dixAwBwyCGHzHmso6MDHo8H\no6OjUBQFsiyX9R6ZTAa//vWvwfP8vBcVIfXMyhh68sknAcyMx9i8eTOSyeQ+j5999tm45pprbDFA\nk5Bqs7LuMAwDt9xyCziOwzve8Y4FvWbHjh3gOG7e2AaA1atX4w9/+AN27tyJ9evXV1Q+q1HL0CKl\n02kAM03685k9Pvu8xWKMYdOmTZiensY555yDNWvWlFdQQmzKyhianp4GYwwXXHAB3vrWt+Kf//wn\nstksHnjgAaxatQo//OEP8bWvfc26whNiU1bXHZ/73Ofw/PPP493vfjdOPPHEBb1mobFd69Wm50PJ\nkM2cffbZ+O1vf4v169fju9/9bq2LQ4itmaYJADj00ENx++23Y/Xq1XC73Vi/fj3uuOMOcByH733v\ne9B1vcYlJaS6rKw7rrjiClx99dVYu3Zt2dPr6w0lQ4t0sF+tB8uMD2TLli34yU9+ghNPPBH33HMP\njRciDcnKGAoGg+A4DqeccsqcrrB/+7d/Q39/P7LZLF588cUKS02IfVlZd3zjG9/ARRddhKOOOgoP\nPvjgouqyhca2Hfdto2RokWabHnfu3DnnscnJSeTzefT09CxqvJBpmti4cSOuv/56vPOd78Tdd99d\n9ngjQuzOyhiaPdf+bq6z65nYcfYKIZWyuu74yle+gq1bt+INb3gDHnzwQbS2ti7q9WvWrAFjbN7Y\nBoCXXnoJwPzjBWuNkqFFestb3gLGGH7/+9/Peezee+8FALz1rW9d8Pl0XceHPvQh3HbbbfiP//gP\n/Pa3v4XD4bCsvITYjZUx9La3vQ2MMTz33HNzHlNVde/Nt6+vr/wCE2JDVtcdF1xwAS6//HK86U1v\nwgMPPFBW683soOj5VtXO5XJ47LHH4Ha7ceyxx5ZdzmqhZGiRNm/eDKfTiWuvvRZDQLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22990670f28>"
"<matplotlib.figure.Figure at 0x1df30dc9f98>"
]
},
"metadata": {},
@@ -981,7 +984,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"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. "
"This code uses the function `plot_covariance_ellipse()` from `filterpy.stats`. 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. "
]
},
{
@@ -995,7 +998,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAloAAAE5CAYAAABI046DAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XmUZGV9PvDn7kutXb1MT88MzAAjASSIIiYHfmziMjGA\nERCUKGiiRMEF9aCRjKAiiMflqCA5YqJgEkE9SRBjPEbAySgqgopRkZFl9umlumu/dff7+6OmR3CG\nYWbqvV1V3c/nHI5jVfd7355z+s5T7/u931dKkiQBEREREQkn93oCRERERIsVgxYRERFRShi0iIiI\niFLCoEVERESUEgYtIiIiopQwaBERERGlhEGLiIiIKCUMWkTUV6677jrIsoytW7f2eip7kWUZb37z\nm3s9DSIaIAxaRNRXJEmCJEl7vf6rX/0KH/7wh3Haaadh5cqVMAwDExMTOP/887Fx48ZDutaPf/xj\nvOpVr8Lw8DBs28YJJ5yAz372s4jjuNsfg4gIAKD2egJERAfi8ssvx4MPPogXvOAFOO+881AoFPDo\no4/iW9/6Fv7jP/4DN998M97+9rcf8Hh33303LrjgAliWhYsuugilUgn33HMPrrrqKjzwwAO46667\nUvxpiGipYNAiooFwySWX4I477sDatWuf8foPfvADvPzlL8d73/teXHDBBRgbG3vOsRqNBt7ylrdA\nVVVs2LABJ554IgDgox/9KM4880x885vfxNe//nW89rWvTeVnIaKlg1uHRDQQrrzyyr1CFgCcccYZ\nOPPMM+H7Pn70ox8d0Fjf+MY3UC6X8brXvW5PyAIAXddx/fXXI0kS3HrrrcLmTkRLF4MWEQ08TdMA\nAKp6YIv0999/PyRJwite8Yq93jvttNNg2zYeeOABBEEgdJ5EtPQwaBHRQNuyZQvuvfde2LaN0047\n7YC+57HHHgMAPO95z9vrPUVRsGbNGoRhiCeffFLoXIlo6WGNFhENLNd1cfHFF8P3fdxwww0oFAoH\n9H21Wg0AnvXr51+vVqtiJkpESxZXtIhoIAVBgAsvvBAPPvggLrnkElx11VW9nhIR0V4YtIho4Pi+\nj9e85jX4zne+gze84Q24/fbbD+r751es5le2/tj868VisbuJEtGSx6BFRAOl3W7jL//yL/Gd73wH\nf/M3f4OvfOUr+2xwuj9HH300AGDTpk17vRdFEZ566imoqoojjjhCyJyJaOli0CKigdFsNvHKV74S\n9957L6644gp88YtfPKRxzjrrLCRJgu9+97t7vbdhwwY4joNTTjllz9OMRESHikGLiAZCrVbD2Wef\njR/+8Id473vfi8997nOHPNYFF1yAkZER3HnnnXj44Yf3vO55Hv7hH/4BkiThbW97m4hpE9ESx6cO\niWggvPrVr8aDDz6IVatWIZPJ4MMf/vBeX3PGGWfg9NNPf86xcrkcvvSlL+GCCy7AGWecgYsvvhil\nUgnf+ta3sGnTJlx44YW48MIL0/gxiGiJYdAiooGwefNmSJKE7du34yMf+cg+v0aSpAMKWgBw7rnn\nYuPGjfjoRz+Kf//3f4frujjqqKPwmc98Bu94xztETp2IljAGLSIaCE899ZTwMV/ykpfg29/+tvBx\niYjmsUaLiIiIKCUMWkREREQpYdAiIiIiSglrtIior5xxxhmQJKkvu7Jfd911eMELXtDraRDRAJGS\nJEl6PQkiIiKixYhbh0REREQpYdAior5y3XXXQZZlbN26tddT2Yssy3jzm9/c62kQ0QBh0CKiviJJ\n0n4Pif6v//ovnHnmmSgWi8jlcvizP/sz3HHHHYd0rTiO8aUvfQmnn346SqUSbNvGkUceiYsvvhiP\nP/74of4IRER7sBieiAbGLbfcgne84x0YGRnBG97wBui6jm9+85u47LLL8Otf/xqf+MQnDnisVquF\nc889F/fffz9OPPFEXHbZZTBNEzt27MDGjRuxadMmHHXUUSn+NES0FDBoEdFA2LJlC973vvdheHgY\nDz/8MFatWgUA+NCHPoSTTjoJn/rUp3D++efjJS95yQGN99a3vhU/+MEP8MUvfhF/+7d/u9f7URQJ\nnT8RLU3cOiSigfBP//RP8H0f73jHO/aELAAoFAr44Ac/iCRJ8I//+I8HNNYvfvELfO1rX8PFF1+8\nz5AFAIqiCJk3ES1tXNEiooFw//33AwBe8YpX7PXeunXrAAD33XffAY31r//6r5AkCRdffDFqtRru\nuecebN++HcPDwzjrrLNw5JFHips4ES1pDFpENBAee+wxAMDznve8vd4bHx9HJpPB9u3b4bouTNPc\n71gPPfQQAGDz5s1405vehEql8oz33/a2t+Hzn//8fovyiYgOBLcOiWgg1Go1AJ2twn2Zf33+6/Zn\nenoaSZLgPe95D1760pfid7/7HRqNBr7//e/jqKOOwq233oqPfvSj4iZPREsWgxYRLTlxHAMAjjnm\nGNx5551Yu3YtbNvGmWeeiW984xuQJAmf/vSnEYZhj2dKRIOOQYuIBsJzrVg914rX0xWLRUiShHPO\nOWev7cE//dM/xZo1a9BoNPDoo492OWsiWuoYtIhoIBx99NEAgE2bNu313uTkJFqtFlauXPmc9VlP\nH+vZDq4eGhoCALTb7UOdLhERAAYtIhoQZ511FpIkwXe/+9293vvOd74DAHjpS196QGOdffbZSJIE\nv/71r/d6z/d9/P73vwcArF69+tAnTEQEBi0iGhBvetObYBgGbr75ZmzZsmXP65VKBTfccAMkScLl\nl19+QGOdf/75mJiYwF133YWf/exnz3jvIx/5CGq1Gs466yyMjY0J/RmIaOlhewciGgirV6/GJz/5\nSbzzne/ESSedhIsuumjPETw7duzA+973vgPuCm/bNr7yla/gnHPOwf/7f/8Pr3nNa7BixQr89Kc/\nxQ9/+EOMj48fcPNTIqL9OegVrY0bN+K8887DypUrIcvyPg9z3bRpE84//3wMDQ0hk8ngpJNO2tMD\nh4joUF1xxRX49re/jec///n46le/ittuuw3Lly/H7bffjptuuumgxjr77LPx4IMP4txzz8W9996L\nz3/+89i6dSve/va34+c//zmblhKREAe9otVsNnH88cfj0ksvxRvf+Ma93t+8eTNOPfVUXHbZZfjQ\nhz6EQqGA3/3ud8hms0ImTERL27p16/Z0gu/W8ccfj69//etCxiIi2peDDlpPv8ldeumle71/zTXX\n4BWveAU+8YlP7HmNBaVERES0FAkthk+SBPfccw+OPfZYrFu3DmNjYzj55JP5iZGIiIiWJKHF8NPT\n02g2m7jhhhtw/fXX46abbsK9996LSy65BLlcbq/l/gM5KoOIlhbXdQEA9Xq9L+8Rvu/35byIqD/8\ncdNkoUFr/liLV7/61XjXu94FoNNl+aGHHsLNN98srK6CiBavU089FZIkHVCH94X2gQ98AMcff3yv\np0FEA0Ro0BoZGYGqqjjmmGOe8foxxxyDu+66S+SliGiROvXUU3Hqqaf2ehr79P73v7/XUyCiASM0\naGmahhe/+MV7tXLYtGkTDj/88P1+bz9+eiUiIiJ6LvsrJzjooNVqtfD4448jSRLEcYytW7fikUce\nQalUwqpVq3D11VfjoosuwqmnnoqzzjoL9913H+666y7cfffdXf0QRERERINGSpIkOZhv2LBhA848\n88y9Try/9NJL8c///M8AgDvuuAMf+9jHsH37dqxduxYf/OAH8drXvnavsZ6eALmiRURERINof3nm\noIOWSAxaRERENOj2l2d4qDQRERFRShi0iIiIiFLCoEVERESUEgYtIiIiopQwaBERERGlhEGLiIiI\nKCUMWkREREQpYdAiIiIiSgmDFhEREVFKGLSIiIiIUsKgRURERJQSBi0iIiKilDBoEREREaWEQYuI\niIgoJWqvJ0BEJFKSJHD9EGEUI0k6/x8AZFmCLEkwdBWqws+YRLQwDjpobdy4EZ/85Cfx8MMPY+fO\nnfjKV76CN77xjfv82ssvvxy33XYbPvnJT+I973lP15MlInq6KIrRaPtoewHaXoi2F8D1Q3iRjzAO\nkSABdgctSZIhSxJ0xYCpabAMFaauwjI0ZEwNlqH1+KchosXooINWs9nE8ccfj0svvfRZAxYAfPOb\n38TPfvYzrFixoqsJEhE9XRwnqDZdVBptVJpttPwW3MiDF3rwIg9+6EFVJaiKDFkGJEhIkCBJOt/r\nBTFUSYWuGDBUA4ZiIKPbyFs2hnImSjkLhs7FfiIS46DvJuvWrcO6desAAJdeeuk+v2bLli246qqr\n8P3vfx+vfOUru5shERGAesvDbN1BpdFGw2+h7tXR8BowdAmWoSBjKRjWNeiaAVmW9juWH0Twgxiu\n30LLb2C6GkKvm8jX8sjrORQyNko5C8N5Cwq3GYmoC8I/tkVRhNe//vVYv349jj76aNHDE9ES02z7\n2DFTR7nRQNWtoO41oOtAPqNhbDQDVT34IKRrCnRNQdbubBcmSYJWO0StOYeZ6jSsho1CtYBhu4jx\nUhajxcxzhjcion0RHrQ+9KEPYWxsDG9961tFD01ES4jjBtg528BMrYFyu4ymX0cpr2P1iAVdU4Re\nS5IkZG0NWVtDHCdotgPM1aZQdsqotEcxVSliYiSH4bwFSWLgIqIDJzRo/eAHP8Dtt9+ORx55ROSw\nRLSEBGGE7TN1TFcbKDtl1PwaSnkdRy7LQVmAVSVZlpDP6MhndDSdADOVXZh1ZlFpj2I4U8Cq0TwK\nWTP1eRDR4iC0+GDDhg2YnJzE+Pg4NE2DpmnYsmULrr76ahx22GEiL0VEi1Ct6eK3m2ewaWo7nqg8\nAUl3cOTKLEaHzAUJWX8sa2tYsyKHUknClLMDv595Co9um8LWqRriOFnw+RDR4BG6oLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22994fe3828>"
"<matplotlib.figure.Figure at 0x1df30dfccc0>"
]
},
"metadata": {},
@@ -1031,7 +1034,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAP0AAAD9CAYAAAB3NXH8AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztncuSIzmuRJmq6vX8/2fOolcznXkXc9mNQrkDDj5CoRTd\nTBYkyHhRcQiQDGV+fH19fbWjo6O30ePZF3B0dHStDvRHR2+mA/3R0ZvpQH909GY60B8dvZl+soJ/\n//vfV17H0dHRBv3rX//6zXY8/dHRm+lAf3T0ZqLhvRUKEY6OFD3r3S/1vKuv7w7vuv35559h+fH0\nR0dvJsnTH72P7u6Zn3HOldd2h0jgQH/0iz4+Pi5/MK8837uCbnWgP3qqrgDiatDvBrnXgf7oKdoJ\nRuXYd/f8Hx8fy87bdaA/+kV391JWo9d6Jeizx4j2H+0QDvRHl2sEhJ3wzJ7n1SY/D/RHl6r6oM4A\ntRr0V4qCIh3ojy7TbrjuMpbf1TmsGt8f6I+2aweMO4+983pnZM810wEc6I9uo2dC+Wohfr+OEfgP\n9G+iO79jvhK4Z0G+szOIwB4574H+TbTyTbsrj3NlndXHWqVVYX3Xgf6opKvWrrM6s+VXH8dqBtwV\nHcCB/kjSK8B+RWei1lm1/+rQvrUD/dvomRNQK7zljjK1zuwxnu3ZvQ70R6l2r1WPQLsT9FUhv1pf\nhfks2R1dometm1fLdnrr0X1HYFb3n+kADvRHVLuWq0YBrcA+e+2zkURWTwFVBbva/gf6o9+06420\nUY+5EvbVQ4moThXUXZ7d60B/NKwrXnDZ3QlUj6ceE9XLYB3x7OeNvG+kZ8223+VlGAXE1WP7HXMF\nFsrK2F3tMM4bed9Id/xbdc9YZ78S/pHjoHpV0BXAe53zRt7RMu16KWYXfCugXQ2+Ur9DG4Eehe8r\nxvYH+jfXrjXtFbPiI/DPjvdXQI+UwZ5FCsz7nzH9N9KzxvReV3jKKsgj4FeubSX4I7Aj0Bn8I+Af\n6N9Yu9fLZ6OAHfDPzgeo8DPYe5kCuwp/tUM60L+pdgJ/Jew7OoLoWpV6bBKWefcMduTNR0P71g70\nb6krgV91rDt0BKqUUL7bLeAR7MzDnzH9UaiVDzKyReBF5x8F+M7gd0Ve3wPPYI9AP2P6o2mNhr8V\n4BSbevxVnULFpgoBjzx3BzfqBPy+M+Af6C/WCu+x43ijYfhq+BW4ZzuHK7w8Ax6N5xnwWbg/Opl3\noL9Yd/pbddH+OwBdcYxdnUJkW6ER4DPYz5j+zTT6cGb7Vb3gbm88W67cUyXK8RqBTgV+NexdB/oX\n0wjsVdCZneVXe+XINtoJZGXMlsmH4Ehslt6XV8C35z8TeTfXrvBx5DyzsLP0LOzZdtV5Ud4LAcrq\nVeBTQI/An/H8B/oX0gzISnk1DFag3AH9qvN5Vdp35F34bFzPQGfH9uCrOtC/iHYBrwCgePoqiCr0\nI8DPhPiqRsLqLjXE9+dhHUJVB/oX0MpQvWpXAFoFZgb7DvBRPlJ1fVwN331de/zIy490AAf6G0t9\nGCtgj8Du8zOheVYns1WPp9xDRVnYXYEwgtyXr/LyrR3oX16zwGe2kdB+ZqvCPtLJZPeTadUbcdE7\n95Gnz7aqDvSJRj3CFedcBXaWH/Hyq4HfCb0KDAKyogz2nh49vqoDfaKVb9BlUs4T1VG82AjsVe8+\nU5bl1Wuo3qsCmOKV1f3sOaPIYdSbRzrQ30QZ8BXYkU315DavQp+BWS1H+Z3AdynLbRUYFc9uz6t4\n+xXwH+hvoCrQUfkO2Bn8CthqOgN9BHx0j8zWhYDywK5YqkPr61fBf6BPlEG38/hXefeKJ4/KqmD7\nMmZTrwVtszazitbPe7ofRw252Qs5Nu+vb9Vbf0wH+ieKPYR3gb1vs7IVnrsKv7Jl7RXJQsXG8NXX\nYBXQvd2WrZ7QO9A/SVXgVXsVeGYb8eojILO6SkehbJkYUB56m/bg9+OwjgIdF0US6Lp8GetkRrz/\ngf4JugJ4VqZ6977NoFfhnS1fATyzI9AjL2+PN7JsF10POt7IeSId6G+iyoOa2TLgM/BHvPsMyNV9\no3tSPb0Vg97aPPgzE3rovEwe+BUdwIH+YqkQV+oy4KOOwNqqkPv8lR923WhbkYfde/wK5Jk3H7mu\nfqwzkTeh2S9j1fFGwEa2SnrEu48C//n5uRX86L4URbCjV10fj4d8bHu8O+ltoV/5pt0q4BXYo3wF\ndtXLz35U6NV66H6YLRIL6VEobz3s5+dnGf67gf+20K/SCPCzcPt89vCrHt2mV4BdtSv1KvfbGn/Z\nxqfRWD0au0ffuzojX1V2L6oO9IO6A+w2rwCB4JkB3kM5m1fOwe6RtW9rfBmu59kn0ufnJ/T20Zp8\nv8Zne/63hX4E2tXnGfXmrEzZrgbd22bS6kdpj2i93aYrHw85grvbWB5dX0UrvP3bQj8jpcNYBbvP\nj8LetwpMGdjelgGt2irQK+0WLcWhEP7xeISge+/OrsWv8ffymTX9lTrQF3Ul8JU0AxzZRjw6yytg\nV+pWoFfaO4O9tfY37F9fX3+nO9x+4g61PXuRp9cZAR+9L+DLRnWgL2gG+OxhnYFfAb21VgIrgl6F\nGm2VDqAKPWtDPymHbB52X9fDbr29b2u/xOdt/lqfNbY/0AtSYI/qrQA+Aj+Df9TDq168CnkEvgK/\nqgh0m+4Qe+gfj8ffkEewsy1a5x/x/Ku9/YF+kVYAz+DPvHvfjkCvjNWrHnw0rVyf2sbR0huape/e\nvrV/YLfpx+MRtn0GeEUq5KPgfzvoK55g1fEysJlNgZ89aD2dge7zlbH6KORZnh1/p5dn6/Dey3d1\nyFn7Mq+NQGfwV0EeLfP6dtD7ddIZZcdRPc9K2BUPz6BXJtBmga6AvmISrzUOT/Zprf3i0dk5s0k5\nm85ArkzQ2eus1Mn07aBfpSuBj8BXoc9Aqc6yK1BnZSrsEfT+Hq0iICLY0dKc0o4zY/HMS2f3ktWv\n6EDvpEQJI8CrHh3ZojCz8lHH5hWolU8EOwPe3x9qX+Q1UVjvIbfldvze7VFkoQIfaQToascQ6dtB\nr0C74/grgI+8fBV6BFNlTM4+f/311xT40Va53y60vOa3HeoOql+Ws2ml45n18CgSifZTw/uqvh30\nM8o6jCuAZ14+y0eQ27w6LvdwM9jVTiDqdJhHR+B3eWj91obtFn677XW6p+/pzNvb71DpCDKP7OHO\nvH9WP9OB/v91d+AV7+4h8mk1jLcgK2kG/19//UU9e+Tlo21rtfX3Drjdz6+/R2P6qM1XzLRXPPkK\nL9/agb619hrAZw8ggh1Bn3njDm+2zcC3aQZ+BH2URoAzL29n5e3LNfYdeuvx+362rVdImdVnecXL\nv/WYvqKZLzQL+6J0FL6OQK8AVRmjI9ArnQA6ptIxoXZF7RyBjmbk/a/jPDQd9sjjjzwrqtdWPPiq\nSbzW3hx6RejLHrE9C3jkxTP4PeQor0YDVeizNm1NW4OPAO7j+Qx29N1V4a+G75Wx+7cP71eFWZVj\nrYAb2SLQbVr5sHFyNH7PwnIEPOsEFPj9taK0+h2pwPvwHbVb9EJO1cP786MyVNfaovpZ2bcM7+1Y\na1TK/qyO0gFE3tzWQYD7sgxyBr0KfAatAr9yvOiaI+iR7AOe/fZ9B8QZvNGQA9Vn+0T3vkIvA/2s\nsi87Kmdwo3wGPoMe2SJYlPE6Al4JzVVvzyIFm0b3gToyq2hM6yfpLPA9XI88ePZdq+dXQI7qZbCz\nY6BrPGN6oArQUbkCfwX6zMNnobEyVo/CdnX8noX30ZBBiVZsO2YPtoXcgt/L7Bt2PqxH34eXAp+1\nozoq8ErYH13fGdMP7Held+/b6scDjrYqgBnUKuzqGn3m4T2M3qMx6JXfvyue3nc4XszjK+G84uFR\nObOv8vKtvRD0I2JfaLUjULy9CrxNV2FnNnVSTYG+0glEcwb2erPIptvQQ47A7vux379HsKvOozp2\nj+plHQM7j7+WCPYK/N8W+irwij1LZ6BbmxL2sok5X5aBHgH+3//+d8jjZ57eQ+/v3bdPVwaUhd0q\n++GM/75G4Lf5LFyf7QD8uRH47BozfUvo7wh8Bj8bszPQo/CdhfIecJavjuejTxZW27asQIRkvXyf\n1Ivg94qiDBaFKGNzVO7PGw0Psuus6ltCj1QBnoXwLF0BXgnlI8BRaF8J2S3oLF0d00edEgOcQZ8B\nb1+lzQCOoip2Xeg4/vqsPfPcDGilE/PXMAq517eDXoG4UvduwCMvr3462Nm2Gt5H8EfA+7QCCBoO\n2HQGuKoI9pEQPtpX6RSybUXboK828q5zrrIxyL2NgW7zo5N0UUivjNct3Bn4FeijoUjUidq8f9DZ\nyzf92H2fHsZX4c5g9Ome99eKrj3y+PY4K1U55jboUa+8S6s8eVZH2bLw0Xv3aHKupy1caNa8p9Wx\nerQdmdDLrl+F8Ovr6zfQW/t1ec62YyRlvOxf6rH/4EKtg/ZRgV/t5audyMuH9yuBn4G9b5VPNhb+\n+tJ+4qqO11Xv7veJgI+iEwR99GDa0N2+bIP+3rzvTLNjZsD7NOsEVn7Q9UX3oWwremnoVwGvlDHA\nbXoEejYujmbNVeC9bceYng1ZbBjehULlnrbhu/Xu7O/N+++MheH2+Aj+zNNnNtSBoHN6mxfrHNj9\noP1VveyY/lnAj3h3C0IHOoM/GqvbchXkqpdXPD67P59XvJX19Ej+79AjMVAqwGfef4eXzzqC7H6r\n3v4lPf0o8CPwR57dpjPQo2WtDPoIyGxybhZ6Brz39Oy+uyKPFz30KKSP4Ffgyjx4BDgbHkSAR9eC\nrj3y5KOgW70c9LuBZ55+FHifjmbivU1ZU2eAz4KvhPdKdNNabf296+Mjn5lX4M/AzLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22991a736a0>"
"<matplotlib.figure.Figure at 0x1df30dfc128>"
]
},
"metadata": {},
@@ -1066,7 +1069,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x2299055a0f0>"
"<matplotlib.figure.Figure at 0x1df30d92f28>"
]
},
"metadata": {},
@@ -1111,7 +1114,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22994fe2be0>"
"<matplotlib.figure.Figure at 0x1df30ecf630>"
]
},
"metadata": {},
@@ -1156,7 +1159,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlwAAAE5CAYAAABFzf7EAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt0VOW9PvBnz/2WmczkMpM7hEINUBUFvICaukSkyqm1\nUoEeIbbr1CocS+RQ5SC1lItCPdTjpdTaNiVyrK1LFOuSAlaoegoqVk5/QESUEJJMJte5Ze4ze//+\nQKKRwOQ2zO35rMVy5p29J9/tZoYn7/vudwuSJEkgIiIiooSRJbsAIiIiokzHwEVERESUYAxcRERE\nRAnGwEVERESUYAxcRERERAnGwEVERESUYAxcRERERAnGwEVEF9RPf/pTyGQynDp1KtmlJNSYMWNw\n/fXXJ7sMIkoRDFxEdEEJggBBEM5q/+c//4k1a9bg2muvRWlpKdRqNYqLi/Htb38bb7/99pB+RjQa\nxX//93/je9/7HqZMmQK1Wg2ZTIZf//rXQ67Xbrfjqaeewi233IJx48ZBq9XCYrGguroa9fX15z1O\nIqIzFMkugIgIAO6++2689957uPTSS/HNb34TJpMJDQ0NePXVV/Hyyy/jqaeewr333juo9/L5fKit\nrYUgCLBarSgqKkJzc/Ow6nryySexceNGVFRUoLq6GiUlJbDb7di+fTtqamrw+uuv44UXXhjWexNR\n9mDgIqKU8N3vfhf19fUYP358v/Z9+/bhxhtvxPLly3H77bejsLAw7nvpdDrs3LkTl156KaxWK9as\nWYOf/exnw6rriiuuwN69e3Hdddf1a9+wYQOmT5+OF198EfPnz8ett946rPcnouzAIUUiSglLly49\nK2wBQHV1Nb7+9a8jHA7jf//3fwf1XkqlErNnz4bVah1xXbfeeutZYQsAbDYb7rnnHkiShL179474\n5xBRZmPgIqKUp1QqAQAKRWp1yqdqXUSUehi4iCilNTU14a9//St0Oh2uvfbaZJfTJxaLYevWrRAE\nATfddFOyyyGiFMdfy4goZQWDQcyfPx/hcBgbNmyAyWRKdkl9li9fjiNHjmDu3LmYNWtWssshohTH\nHi4iSkmRSATz5s3De++9h+9+97uora1Ndkl9HnnkETzxxBP42te+dt6lIYiIzmDgIqKUEw6Hcdtt\nt+H111/HnXfeia1btya7pD7r16/HqlWrcOmll+LNN99MqV43IkpdDFxElFICgQBuueUWvP766/j+\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22990675fd0>"
"<matplotlib.figure.Figure at 0x1df30f09c88>"
]
},
"metadata": {},
@@ -1216,7 +1219,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22991a8d470>"
"<matplotlib.figure.Figure at 0x1df30fff080>"
]
},
"metadata": {},
@@ -1249,7 +1252,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAn8AAAE6CAYAAABnMzS5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt0VNXZP/DvOWfmXOc+k0kCCYRwt4KiiGBRsYpCFaWK\n2NsSxNr2Z9XqKm1BXQp4KbTVt9a22noF+tZXXxVr9VXsRRBURFQUBQQSIOQ29/slyczs3x/DjIQk\nkECSmZDns1YW5JwzM3vOzCTf7H32sznGGAMhhBBCCBkU+EI3gBBCCCGE9B8Kf4QQQgghgwiFP0II\nIYSQQYTCHyGEEELIIELhjxBCCCFkEKHwRwghhBAyiFD4I6SXzZgxAzxPHy1C+sLkyZNhNBo7bG9p\nacGdd96J0aNHQ5Zl8DyPl19+uQAtJKT40W8oMmDxPH/ML0EQ8M477/R7uziOK5rwt3r16uOep6PP\nGTk5DocDJpOp0M0YUBwOBwRBgN/vP+6xXX2+7rvvPqxcuRJOpxOLFy/GsmXLcNppp/VFcwkZ8HSF\nbgAhJ4PjOCxbtgxd1Sqvqqrq3wYBWLt2LeLxeL8/bmfOPPNMLFu2rN22YDCI3/3ud7BYLLjjjjva\nnTuO4/q5haceOoc915Nz9vLLL6OlpaXD9tdffx08z+Ott96Cpmm92TxCTjkcrfBBBiqe58FxHNLp\ndKGbMqAcPHgQI0aMQFVVFWprawvdnFNOSUkJWlpaEA6HC92UAaOkpAR+vx8ejwc2m+2E7qO0tBSJ\nRILOOyHdUBxjU4T0g9wQ6IoVK/Dpp5/i8ssvh9VqhaZpmDFjBt5///1Ob9fc3IwbbrgBpaWlUFUV\nkyZNwpo1a7Bx48b8/R2ps2v+cscuWrQIBw8exLe//W2UlJRAURScc845eP3117ts90svvYRLLrkE\ndrsdsixjzJgxWLp0KSKRyMmflOP44IMPMG/ePJSXl0OSJFRUVODGG29EXV1dh2PnzZsHnufx8ccf\n49lnn8WkSZOgqioqKytx1113IZPJAADeeOMNXHDBBTAajbDb7bjxxhs7/YWdGz5NJBJYvHgxhg8f\nDkVRMHbsWPzmN7/J39/Rdu/ejQULFmDYsGGQZRmlpaW47rrr8Pnnn3c4dvHixflrw9atW4fp06fD\nZDJh2LBh+WP+8pe/YO7cuaiuroaqqrBYLLjwwgvxwgsvtLuvL774AjzPw+/3IxqNthtOv/LKKwEA\nsVis3fddtefjjz/Ob8vdZuLEifD7/bj55psxbNgw6PV6PP300/njEokEfvWrX+Gss86CwWCAwWDA\n1KlT8eyzz3b6WEdjjGHYsGHQNK3L99bKlSvB8zwefvjh/LZt27Zh/vz5GDFiBGRZhtPpxKRJk3Db\nbbchmUx267F74uhr/q699lrwPA+v19vuvE+cOLHd7XryXm5qasLtt9+OcePGwWAwwGKxYNy4cbj+\n+uuxZ8+e/HG51/zKK6/EwYMHMX/+fJSUlEBVVUydOhV///vfO9x3MpnEI488glmzZmH48OGQZRkO\nhwOzZs3Cv/71r06fc+6z0NbWhmXLlmHkyJGQZRlVVVW455576A9g0mM07EsGFY7j8OGHH2LVqlU4\n77zzcNNNN6Gurg4vvvgiLrnkEmzfvh2jR4/OH+/xeDB16lQcOnQI559/Pr7+9a+jubkZP/nJTzBz\n5sxOh6s4jutyGOvAgQOYMmUKRo4cieuvvx5+vx/PP/885s6di3/961+48MIL2x1/88034/HHH0dl\nZSWuvvpqWK1WbNmyBatWrcIbb7yBd999t8+GuJ544gncfPPN0DQNc+bMwdChQ/Hll1/i2WefxT/+\n8Q9s3rwZY8aM6fC8H3zwQbz99tu48sorcdFFF+GVV17Br371K0SjUZxzzjn40Y9+hLlz5+Lcc8/F\n+vXr8cwzzyAajeL5559v9/gcx4ExhiuvvBL79u3DvHnzAGSH/X75y19ix44dWLNmTbvbvP7665g/\nfz4ymQzmzJmD6upq1NXVYd26dXjttdewfv16TJ8+vUObn3nmGbz11luYM2cOLrjgAgQCAQBAOp3G\nj3/8Y5x77rn4xje+gdLSUng8Hrz22mv49re/jdraWixZsgQA4HQ6sWzZMqxatQrpdBp33XVXfkj9\nyPN0LMd678TjcVxwwQVIp9O46qqroNPpUFZWBgAIBAK46KKLsGPHDkyZMgU/+MEPkEql8MYbb2DR\nokX4+OOP8fvf//64j71gwQI8+OCDeP755/GDH/ygwzGrV6+GXq/H97//fQDA1q1bcf7550OSJMyZ\nMwdVVVUIh8Oora3Fk08+ibvvvhuyLHfruXfX0efouuuuw4QJEzqcd6fTmT+mJ+/lSCSCKVOmoKmp\nCZdeeimuuuoqZDIZ1NXV4c0338QVV1zR4fV0uVw477zzUFlZiZtuugkejwcvvPACvvWtb+GJJ57A\njTfemD+2oaEBixcvxvTp0zFr1iw4HA40NDTg1VdfxWWXXYa1a9fiu9/9bofnzBjD1VdfjU8//RSz\nZs2Cpmn4xz/+gfvvvx+hUAiPPPJIr55ncopjhAxQHMcxnufZsmXLuvw60rPPPpu/zZo1a9rt+/Of\n/8w4jmM/+clP2m1ftGgR43me/fznP2+3/bPPPmOSJDGe59ny5cvb7ZsxYwbjeb7dtg0bNuQf+777\n7mu3b/369YzjOHb55Ze327527VrGcRybN28ea2lpabfvgQceYBzHscWLFx/nLHV04MABxnEcGzFi\nRJfH7Nixg+n1ejZhwgTm9Xrb7XvjjTcYz/NsxowZ7bbPmzePcRzHysvL2aFDh/LbvV4vM5vNTBRF\n5nQ62WeffZbfl0gk2MiRI5kgCGzfvn3t7s/hcDCe59kZZ5zB4vF4fns0GmUTJ05kPM+z1157Lb/d\n7XYzo9HIhg4dympra9vd1/bt25miKGzUqFEsk8nkty9evJhxHMf0ej3bvHlzp+di//79HbYlk0l2\n3nnnMUVRmM/n69Buo9HY6X1Fo1HGcRybM2dOp/sXL17MeJ5nH330UYfb8DzP5s6dy1pbWzvc7rrr\nrmM8z7PHHnusQzsvuugixvM827BhQ6ePeaR9+/YxjuPY9OnTO+zbunUr4ziOXXnllfltP/rRjxjP\n8+w///lPh+PD4TBLpVLHfUzGvnqtjz6XnZk8eXKn57er897T9/Jzzz3HOI5j99xzT4f7SqVSLBwO\n57///PPP86/ND37wg3bH7t69m6mqyjRNY263O789kUiw5ubmDvft9/vZqFGj2JAhQ1g6ne7w3Hie\nZ9OnT2eRSCS/PRKJsIqKCibLMguFQh3uk5CuUPgjA1buh25XX4IgtDs+F/4uuOCCDvfV1tbG9Ho9\nO+ecc/LbWltbmaqqzGw2t/uBn3PTTTf1OPyNGDGiXfjIGT58OCspKWm37ayzzmJ6vZ4FAoEOx6fT\naVZSUsLKyso6OTPH1p3w98Mf/pDxPM/efvvtTvdfeumljOf5diFv3rx5jOd59vDDD3c4PhdObrvt\ntg77fvGLXzCe59nLL7/cbnvuF97f//73Drd5+eWXGcdx7Oqrr85ve/DBBxnP8+yZZ5455nPatGlT\nflsu/C1YsKDT2xzLmjVrGM/zbN26dR3a3Vfhr7Mg2tDQwHieZxdeeGGn9/nee+8xjuPYjTfe2K3n\ndf755zOe5zuE8f/3//5fh9cpF/7ee++9bt13V/oy/PX0vZwLfw8++OBx25ILf7IsM5fL1WH/bbfd\nxnieZ7///e+Pe1+MMbZixQrG8zz75JNP2m3PnZ+tW7d2uM3PfvYzxvM827hxY7cegxDGGKNhXzLg\n9fR6l7PPPrvDNp1Oh9LS0vxwHwB8+eWXSCQSmDRpUqd1xaZPn44nn3yyR4995plndjqsV1lZiS1b\ntuS/TyQS2L59O+x2e6fDOYwxiKKIpqYmBAIBWK3WHrXjeN577z0AwD//+U9s3Lixw/7cedq1axcq\nKira7TvzzDM7HF9eXt7lviFDhgAA6uvrO23LBRdc0GFbbnj8k08+6dDmDz/8EAcPHuxwm/379+fb\nfPTQ7znnnNPpYwNAbW0tVq1ahQ0bNqC+vh6JRKLdbRsaGrq8bW+y2Wydzl5///33wRhDKpXC8uXL\nO+yPRqMAss+7OxYuXIjNmzdj9erV+etZW1tb8fzzz8Nms2HOnDn5Y7/zne/giSeewMyZMzFv3jxc\nfPHFmDZtGkaNGnUCz7Bv9PS9PHPmTJSUlOCee+7B5s2bMXv2bEybNg2TJk3qsoTT2LFj2w0z51x4\n4YV49NFH271PAWD79u347W9/i/feew9NTU3tZi/n3lNHf1Z4nu/081NZWdnueRDSHRT+yKBjsVg6\n3a7T6doFyVAoBCA7i7AzXW0/0cc+cgJDIBAAYww+n6/DhJIjcRyHaDTa6+HP5/MByF7gf7zHPprZ\nbO6wTafTHXMfYwxtbW2d7uvsnNlsNuh0uvxrlGszYwyPP/54l20G0Gmbc9fOHW3Xrl2YNm0a4vE4\nZsyYgW9+85swmUwQBAF79uzBc88912nZkb7QVRtzr9X777/f5aQljuMQi8W69Tjz58/HbbfdhrVr\n1+bfe6+++ioCgQBuvfXW/GsJZMPNxo0bsWrVKrz44otYu3YtGGMYNWoU7rrrLixYsKAnT7FP9PS9\nbLfb8eGHH2L58uV47bXX8Oabb4IxBrvdjptuugnLli2DKIrtbn+8nxFHvk/ffvttzJ49GzzP45JL\nLsG3vvUtGI1G8DyPDz74AG+++Wan7ylFUaDX6ztsz70eNOmD9ASFP0K6kCvU63K5Ot3f1fbekAtJ\nEyZMwPbt2/vscY71+C6XCy0tLe1+2fe3VCqFYDDYIQD6/X6kUql2YdJsNoPjOOzZsLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22991689eb8>"
"<matplotlib.figure.Figure at 0x1df31127940>"
]
},
"metadata": {},
@@ -1286,7 +1289,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22991664550>"
"<matplotlib.figure.Figure at 0x1df311536d8>"
]
},
"metadata": {},
@@ -1410,7 +1413,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22991729ac8>"
"<matplotlib.figure.Figure at 0x1df3107add8>"
]
},
"metadata": {},
@@ -1443,7 +1446,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x229916d75f8>"
"<matplotlib.figure.Figure at 0x1df30e1feb8>"
]
},
"metadata": {},
@@ -1488,7 +1491,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x229918a66a0>"
"<matplotlib.figure.Figure at 0x1df31150d68>"
]
},
"metadata": {},
@@ -1548,7 +1551,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlcAAAEWCAYAAABL17LQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xt0VOWhPv5n77lkbskkE5LJZciVJJAQwiXgBeSmqKiI\ntSIoVnCdVr+/6mmt/VVPvx6kZy1b9ay2rmNBa+1pD9hjradHq1ZRUC5GBSUgAXIPkDu5J5PMTOa6\n9/cPhBoBCWSHPZN5PmtlJcxM9jzslZk8ed937y3IsiyDiIiIiBQhqh2AiIiIaCJhuSIiIiJSEMsV\nERERkYJYroiIiIgUxHJFREREpCCWKyIiIiIFsVwRERERKWhU5aqsrAwrV66Ew+GAKIrYunXriPuf\neOIJTJs2DRaLBTabDddddx327t07LoGJiIiIwtmoypXL5UJxcTGee+45mEyms+6fOnUqnn/+eRw9\nehSffPIJsrOzceONN6K7u1vxwEREREThTLjYM7THxsZi8+bNuPfee8/7mKGhIVitVrz//vtYtmzZ\nmEMSERERRQrF11wFAgG8+OKLsFqtmDlzptKbJyIiIgprWqU29M4772DNmjXweDxIS0vDjh07kJSU\npNTmiYiIiCKCYuVq6dKlqKioQE9PD1566SWsWrUK+/btg91uH/E4p9Op1FMSERERqc5qtY74t2LT\ngkajETk5OZg3bx5eeukl6HQ6/P73v1dq80REREQRYdzOcyVJEnw+33htnoiIiCgsjWpa0O12o6Gh\nAbIsQ5IkNDc3o6KiAjabDfHx8fj3f/93rFixAqmpqeju7samTZvQ1taGO++88xu3+/VhtHBTXl4O\nACgtLVU5SeThvhsb7r+x4f4bG+6/S8d9NzaRtP++aZnTqEauysvLMWvWLMyZMwderxcbN27E7Nmz\nsXHjRmi1WlRWVuL2229Hfn4+br31VvT396OsrAzTp09X7D9BREREFAlGNXK1aNEiSJJ03vtff/11\nxQIRERERRTJeW5CIiIhIQSxXRERERApiuSIiIiJSEMsVERERkYJYroiIiIgUxHJFREREpCCWKyIi\nIiIFsVwRERERKYjlioiIiEhBLFdERERECmK5IiIiIlIQyxURERGRgliuiIiIiBTEckVERESkIJYr\nIiIiIgVp1Q5ARHQpZFmGa9iPAZcXXn8QkiQjJMmQZBl17YMQABhPdEEUBWhEERpRgMWoh9ViQIxO\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x2299182f860>"
"<matplotlib.figure.Figure at 0x1df3108aac8>"
]
},
"metadata": {},
@@ -1579,7 +1582,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22991745208>"
"<matplotlib.figure.Figure at 0x1df3104d390>"
]
},
"metadata": {},
@@ -1613,7 +1616,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x229916675c0>"
"<matplotlib.figure.Figure at 0x1df312e9b00>"
]
},
"metadata": {},
@@ -1652,7 +1655,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x229916710b8>"
"<matplotlib.figure.Figure at 0x1df30de36a0>"
]
},
"metadata": {},
@@ -1683,7 +1686,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x229919a1518>"
"<matplotlib.figure.Figure at 0x1df30f096a0>"
]
},
"metadata": {},
@@ -1717,7 +1720,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x229917331d0>"
"<matplotlib.figure.Figure at 0x1df3102d2e8>"
]
},
"metadata": {},
@@ -1750,7 +1753,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlcAAAEWCAYAAABL17LQAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xt0XHdh7v3vnpvmftGMNLrblm+xExOcmKRtQlLapOBC\nCKUnEAglOW/PIWe1HF76sl5SDssx6y0UOKeHrKZJKM05nEXaUsrpgbfJ4Q1JKARcSACHxLnY8U2W\ndZdmpLlobprbfv+Q7MSxkyjxyHtGej5r7SVZI+95tG2NHv32b/+2YZqmiYiIiIg0hM3qACIiIiKr\nicqViIiISAOpXImIiIg0kMqViIiISAOpXImIiIg0kMqViIiISAOpXImIiIg00LLK1b59+7jxxhvp\n6+vDZrPxwAMPnPH4nXfeybZt2/D7/bS3t3PdddfxxBNPrEhgERERkWa2rHKVy+XYsWMHd999N16v\n96zHL7roIu677z6ef/55fvrTn7Jhwwbe9a53kUgkGh5YREREpJkZb3SF9kAgwL333stHP/rRV/2c\n+fl5QqEQjzzyCNdff/15hxQRERFpFQ2fc1WpVPja175GKBTirW99a6N3LyIiItLUHI3a0fe+9z1u\nvvlmCoUCPT09PPbYY3R0dDRq9yIiIiItoWHl6rd+67c4cOAAyWSS+++/n5tuuoknn3ySeDx+xudl\nMplGPaWIiIiI5UKh0Bl/bthpQY/Hw+DgIFdccQX3338/TqeT//bf/lujdi8iIiLSElZsnat6vc7C\nwsJK7V5ERESkKS3rtGA+n+fYsWOYpkm9XmdkZIQDBw7Q3t5OOBzmP//n/8wNN9xAd3c3iUSCe+65\nh/HxcT7wgQ+85n5fOYzWbPbv3w/Arl27LE7SenTszo+O3/nR8Ts/On5vno7d+Wml4/da05yWNXK1\nf/9+du7cyeWXX06pVGLv3r1cdtll7N27F4fDwQsvvMD73/9+tmzZwnvf+15SqRT79u3jkksuadgX\nISIiItIKljVyde2111Kv11/18e985zsNCyQiIiLSynRvQREREZEGUrkSERERaSCVKxEREZEGUrkS\nERERaSCVKxEREZEGUrkSERERaSCVKxEREZEGUrkSERERaSCVKxEREZEGUrkSERERaSCVKxEREZEG\nUrkSERERaSCVKxEREZEGUrkSERERaSCVKxEREZEGclgdQETkzapWq5TLZer1OqZpnt7m5+cxDINs\nNguAYRgYhoHD4cDpdGK32y1OLiKrmcqViDSlcrlMsVikUqmctZXLZarVKrVaBdOsYpp1wFzaYHT0\nCAAej7G0NwPDsGEYdgzDgd2+WLJObS6X64z3PR6PCpiIvGkqVyJiuXK5TKFQoFAokM/nKRQKlMsl\n6vXSUnk69+Zw2HA6HTgcNhYL1GKZ8nrnAXC55jDNxdJlmosjXZVKlXodbDYnhuEAHBiGA5tt8a1h\nuLDZ2vB4vHi9Z24qXCKyHCpXInJB1et15ufnyefzZxWpxa1IvV7Cbjdxu9twuZw4nQ6cThcOh/f0\nnx0OOzbbuaeNlss5ADZtGjjn47VajUqleno7VbrK5SLlcoVicYFSyUU67cZud2MYi29fXriCwSAe\nj2fFjpOItC6VKxFZcdVqlUwmQzqdJpPJUKnkqdcLZxQpj8eN1+vG4wnh83XhcjlXLI/dbsdut+N2\nt53zcdM0KRYXKBZLFAolCoXMWYXLbvfjdvsJh8OEQiECgcDpkTMRWdtUrkRkRZRKpdNlan4+Q62W\np1rNUa/n8HichMO+C1Kk3gzDMPB6F8teNLr4sZcXrny+SDY7SyZjI5cLMDHhp60tQDAYJBwOEwwG\ncTj08iqyVum7X0QaZmFhgWQySSqVoljMUavlqNXmqdcL+P1eOjsDBIMdTVemluPMwhUGWCpZOTKZ\nKebnx8jn/SQSARwOP4FAkPb2dtrb21/19KWIrE4qVyJyXkzTJJvNMjMzQzo9R62WoVrNYrNVCAb9\nBINhgsHeVTkZ3Ofz4PN56O7uYGGhvFS0UuRyE5RKXlKpMKOjIWKxGB0dHbjdbqsji8gFoHIlIm9K\ntVolmUySSCQoFjNUKilMM0c47CcajePzedbUHKS2NhcdHe10dLRTq9XIZHLMzs6Sy01TKs0wNRUm\nFIrQ0dFBOBxeU8dGZK1RuRKRNySXy5FIJJibm6VSyVCtpnA6a3R1RWhv79RcIxYnzLe3h2hvD1Es\nlkgm08zNHSeR8JFKTeHxhE+PZjmdrXeKVERem14FRWRZ5ufnGR8fJ5udo1pNUa1mCIV8xGIdBIN+\nq+M1LY/HTX9/Fz09HaRSWRKJKbLZaQqFGSYnQ8RinXR3d+NyuayOKiINonIlIq+pUCgwPj5OOp2k\nXJ7BMApEo2FiscGWnJhuFbvdTiwWIRaLMD+fJ5lMkckkmJiYI5lMEI930dXVpZE/kVVA38Uick4L\nCwuMj48zO5ugUklimlni8XY6Onp09dt5CgR8BAI+FhbKTEzMkMkcY2wsTSKRoLu7m87OTh1jkRam\nciUiZ6hUKkxOTpJITFMuJ6lWU3R0hInHBzWq0mBtbS42bOijUCgxMTFDLjfLyZNpZmZm6O7uJhaL\naeK7SAta1q9G+/bt48Ybb6Svrw+bzcYDDzxw+rFqtcodd9zBpZdeit/vp6enh1tuuYXR0dEVCy0i\njVev1xkfH+e5555lYuJFCoVjBIM1tm8fpLc3rmK1grxeN5s2DbBxYzd2+yzZ7BGGhg7ywgsvkE6n\nrY4nIm/QsspVLpdjx44d3H333Xi93jMeKxQKPPPMM+zZs4enn36aBx98kNHRUXbv3k29Xl+R0CLS\nWLlcjoMHDzI2dph8/hgeT5GLLlrHwEC35lVdQIGAj61bNzAwEMUwpslkjnDkyEGGhoaoVqtWxxOR\nZVrWr6K7d+9m9+7dANx6661nPBYMBnnkkUfO+NjXvvY1Lr74Yg4dOsTFF1/coKgi0minRqumpiYo\nl6dwucps3tyLz6cbElspEgkSDgeYnU0zPj7M9PQ82WyWdevWEYlErI4nIq9jRcb5M5kMhmHoRUCk\nieVyOYaHh8nnZyiXp4nHI3R19WqOT5MwDINYLEIw6OfkyQlyueMcPVogFutiYGBAp2lFmljDvzsr\nlQqf+tSneO9730tPT0+jdy8i5+lco1Vbtgzg9erWLM3I5XKyefM6ksmURrFEWoRhmqb5Rv5CIBDg\n3nvv5aMf/ehZj9VqNT70oQ9x6NAhfvKTn5zzGz+TyZx+/+jRo28isoi8WYVCgYmJCcrlFKY5SzQa\nJBbTrVhaRaVSZXIyQaFgYhgxgsGo1sYSscjmzZtPvx8Khc54rGHfkbVajZtvvpkXXniBH//4x/qN\nSqTJJJNJZmamMM1Z2toqdHd34Xa3WR1L3gCn08HAQDepVJaZmUkymQLFYpG+vj48Hs2TE2kWDSlX\n1WqVD37wgxw8eJAf//jHdHR0LOvv7dq1qxFPv2L2798PNH/OZqRjd34aefzq9TonT56kXl/A50vT\n2bmd7u6OVT1adfDgQQC2b99ucZKVUy5XOHlynGLRjtvtZv36DUSj0YbsW9+/b56O3flppeP38jNx\nr7SscpXP5zl27BimaVKv1xkZGeHAgQO0t7fT09PDv/k3/4annnqKhx56CNM0mZ6eBhaHydxuzeMQ\nsUqlUuHYsWNks5NUKtOsX99NOBywOpY0gMvlZNOmdYyNTTM3d4KhoSrFYj+9vbooQcRqy1rnav/+\n/ezcuZPLL7+cUqnE3r17ueyyy9i7dy9jY2M8+OCDTExMcPnll9PT03N6+/a3v73S+UXkVeTzeQ4d\nOkQ6PQwk2LJlQMVqlTEMg/7+Lnp721lYOMn4+BDHjh2jVqtZHU1kTVvWyNW11177mguCarFQkeYy\nOzvL8PAQpdI4Hk+dDRvWa9LzKhaLRWhrczE8PMHs7ALlcpmNGzfqzIGIRXRnUJFVxDRNxsbGGBo6\nQrF4gkjEyaZNWhNpLVhc3X09dnuaTOYEhw4dIpvNWh1LZE1SuRJZJUzTZGhoiPHx45RKw/T1Renv\n79L8mzXE5XKyZct6fL4ahcIQhw8fIplMWh1LZM3Rr7Miq0C9Xuf48ePMzY1RrU6xaVMffr/39f+i\nrDo2m43BwT4mJxNMTw9z4oSJaZrLvopbRM6fypVIi6vX6xw7doxUaoxabYbNmwfweDTXZq3r7u7A\nbrcxMXGS4eHFK73j8bjVsUTWBJUrkRZWq9VOFyvTTLB584AWBpXTOjuj2Gw2xsZGGBlZPHXc1dVl\ndSyRVU/lSqRFvXzECpJs3ryOtjaX1bGkycRiEQzDYHT0JCMjJoZhaARLZIWpXIm0oFNzrNLpUyNW\nKlby6qLRMACjo6OMjBjYbDbNwRJZQSpXIi3m1FWBc3Nj1GqLpwJVrOT1RKPhpaU6RhgeNjAMg1gs\nZnUskVVJ5UqkxZw8eZLZ2TFqtWk2berXHCtZtlgsQr1eZ2LiJCdOGDidTkKhkNWxRFYdrXMl0kKm\np6eZmRmnUplk48Z+XRUob1hnZ5SurjALC2MMDQ1RKpWsjiSy6qhcibSIbDbLyMgwCwtjDAx04fWq\nWMmb09UVIxh0UCiMcezYMarVqtWRRFYVlSuRFlAqlTh+/Djl8hjxeIhIJGh1JGlx69b10Na2QC43\nwYkTJzBN0+pIIquGypVIk6vVahw/fpxicRy/30F3t67ykvNns9nYsKGPen2OubkJxsbGrI4ksmqo\nXIk0sVNXBs7PT+B0Flm/vsfqSLKKuFxONmzopVyeYHJyVPchFGkQlSuRJjY+Ps7c3AT1+iyDg/3Y\nbPqWlcby+73093dSLo9x8uQJcrmc1ZFEWp6WYhBpUplMBtOsUKlMMjjYg8vltDqSrLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x2299064e860>"
"<matplotlib.figure.Figure at 0x1df30da9860>"
]
},
"metadata": {},
@@ -1783,7 +1786,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x2299501cda0>"
"<matplotlib.figure.Figure at 0x1df30fe3978>"
]
},
"metadata": {},
@@ -1818,7 +1821,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22991b1a080>"
"<matplotlib.figure.Figure at 0x1df31902f98>"
]
},
"metadata": {},
@@ -1859,7 +1862,7 @@
"data": {
"image/png": "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\njWrVg8+fPz9qamri/PPPj5NOOunAvzlz5rTqcQCOZMH0S2JU7vDrZQ82Ktc/5k+7+DhNBHR2Rz2V\nOWzYsHjkkUfi9NNPb5ODNzY2tsnrAjRHj24F8cK9ZYfd+T/is9OXo3MDYv60i935HzhujhpmL774\n4vGaAyATPboVxKKffy9q6hriV08sjz3V9XHusBJ/KxPIhD9iDhCfXXP2+X3KfPoSyErb/YVyAABa\nRJgBACRCmAEAJEKYAQAkQpgBHdr48ePj5ptvPuafX7p0aVxwwQXRr1+/6NWrV4waNSqWLVvWihMC\n/B9hBnAU5eXlcf7558dzzz0Xr7/+elx00UVx5ZVXRkVFRdajAR2Q22UAHdbkyZOjvLw8Vq5cGXPn\nzo28vLzYsmVLnHzyyc1+jQceeOCQ72+//fZYvnx5/OlPf4rzzjuvtUcGOjlhBnRYDz74YGzatClK\nSkrirrvuioiIvn37Rs+ePSMvLy+ampoOWf/5XyMZN25cLF++/P993U8++SR69+7ddoMDnZYwAzqs\nXr16RUFBQXTv3j369et34PGqqqojrl+/fn1ERIwcOfL/fc158+bFjh074pprrmndYQFCmAGd0ODB\ng4/4+N69eyMi4sQTTzzi83/84x/j1ltvjcWLF8fAgQPbbD6g8xJmQKdzLKcylyxZEpMmTYonn3wy\nLrroouM2K9C5CDOgQysoKIj9+/cf8lhLT2UuXrw4Jk+eHAsXLowrr7yybQYFCGEGdHCnnHJKrF27\nNrZu3RqFhYXRp0+fFp3KfOqpp6KsrCzmzJkT3/72t2P37t0R8Vnw+QAA0Nrcxwzo0GbMmBEFBQWR\ny+WiX79+sX379hb9/COPPBL79++Pn/70p3HSSScd+Pf973+/jSYGOjM7ZkCHVlxc/KVuBvvSSy+1\n4jQAR2fHDAAgEcIMACARwgwAIBHCDAAgEcIMACARwgwAIBHCDAAgEcIMACARwgwAIBHCDAAgEcIM\nACARwgwAIBHCDAAgEcIMACARwgwAIBHCDAAgEcIMACARwgwAIBHCDAAgEcIMACARwgwAIBHCDAAg\nEcIMACARwgwAIBHCDAAgEcIMACARwgwAIBHCDAAgEcIMACARwgwAIBHCDAAgEZmH2apVq+Lyyy+P\nAQMGRJcuXWLhwoVZj0QHUFPXEMsqt8dvX9gcj//l9aipa8h6JAD4QvlZD1BTUxNDhLine truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x2299181a860>"
"<matplotlib.figure.Figure at 0x1df30d7b240>"
]
},
"metadata": {},
@@ -1886,9 +1889,9 @@
"outputs": [
{
"data": {
"image/png": "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 truncated
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x229919bf160>"
"<matplotlib.figure.Figure at 0x1df31921128>"
]
},
"metadata": {},
@@ -1924,7 +1927,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22991a42f98>"
"<matplotlib.figure.Figure at 0x1df313bfda0>"
]
},
"metadata": {},
@@ -1953,7 +1956,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22994fd5630>"
"<matplotlib.figure.Figure at 0x1df30ed4dd8>"
]
},
"metadata": {},
@@ -1982,7 +1985,7 @@
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAEtCAYAAACYp9GOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xd4VGXexvHvzKT3hJIAQQgS6aKCoKIgKgKCgoqyFAVd\nXbGBuvYGLjbcVxGEdRUbiIAsFkQQRAQbFoIKAoJAaAIJJb0nM/P+8cxJoRlCkkm5P9fFNTPnnBme\nnGXHO7+n2dxutxsRERERqTfs3m6AiIiIiFQvBUARERGRekYBUERERKSeUQAUERERqWcUAEVERETq\nGQVAERERkXpGAVBERESknqlVAfC5556jW7duhIeH07hxY6666io2btx41HUTJkygWbNmBAUF0bt3\nbzZt2uSF1oqIiIjUTLUqAH799dfcddddfP/996xcuRIfHx8uu+wy0tLSiq+ZNGkSkydPZvr06SQk\nJNC4cWP69OlDdna2F1suIiIiUnPYavNOINnZ2YSHh7Nw4UIGDBgAQNOmTRk7diwPP/wwAHl5eTRu\n3JgXX3yRW2+91ZvNFREREakRalUF8EgZGRm4XC4iIyMB2LFjB0lJSfTp06f4moCAAHr27Mnq1au9\n1UwRERGRGqVWB8Bx48ZxzjnncP755wOQlJSEzWYjOjq6zHXR0dEkJSV5o4kiIiIiNY6PtxtQUffd\ndx+rV6/mu+++w2azVegz0tPTK7lVIiIiIt4RHh5e7mtrZQXw3nvv5f3332flypW0aNGi+HhMTAxu\nt5vk5OQy1ycnJxMTE1PdzRQRERGpkWpdABw3blxx+IuPjy9zLi4ujpiYGJYvX158LC8vj2+++YYe\nPXpUd1NFREREaqRa1QV85513Mnv2bBYuXEh4eHhxpS8kJITg4GAA7rnnHp577jnatGlDfHw8Tz/9\nNKGhoQwbNuyEn71161YAunbtWrU/RB2UkJAA6N5VlO7fqdH9qzjdu1Oj+3dqdP8qrvS9q+hwtloV\nAF999VVsNhuXXnppmePjx4/nySefBODBBx8kLy+Pu+66i9TUVLp3787nn39eHBBFRERE6rtaFQBd\nLle5rnvyySeLA6GIiIiIlFXrxgCKiIiIyKlRABQRERGpZxQARUREROoZBUARERGRekYBUERERKSe\nUQAUERERqWcUAEVERETqGQVAERERkXpGAVBERESknlEAFBEREalnFABFRERE6hkFQBEREZF6RgFQ\nREREpJ5RABQRERGpZxQARUREROoZBUARERGRekYBUERERKSeUQAUERERqWcUAEVERETqGQVAERER\nkXpGAVBERESknlEAFBEREalnFABFRERE6hkFQBEREZF6RgFQREREpJ5RABQRERGpZxQARUREROoZ\nBUARERGRekYBUERERKSeqXUB8JtvvmHQoEHExsZit9uZNWtWmfM33XQTdru9zJ8LLrjAS60VERER\nqXlqXQDMysqiU6dOTJ06laCgoGNe06dPH5KTk0lKSiIpKYklS5ZUcytFRKTSHDwIr7wCL74IhYXe\nbo1IneDj7QacrP79+9O/f38ARo0adcxr/P39adSoUXU2S0REKpvTCdOmwaOPQk6OOdakCQwf7t12\nidQBta4CWB7ffvst0dHRtGnThn/84x8cPHjQ200SEZGT8fvv0LMn3HNPSfgDaNHCe20SqUPqXADs\n378/s2bN4ssvv+Sll17ip59+4tJLL6VQ3QYiIrXDrFlw9tmwerWp+LVubY6feSZoTLdIpbC53W63\ntxtRUaGhoUyfPp0bb7zxuNfs37+fFi1aMH/+fAYPHlzmXHp6evHzrVu3Vlk7RUSkHIqKiH3lFWLm\nzAHg0IABpPTrR/y4cQD8/tZb5HTo4M0WitQ48fHxxc/Dw8PL/b5aNwbwZDVp0oTY2FgFPBGRGsyR\nkUGrxx4j/IcfcDkc7H7wQVL696fd6NHYXC6SRo5U+BOpRHU+AB48eJC9e/fSpEmTcl3ftWvXKm5R\n3ZOQkADo3lWU7t+p0f2ruBpz737/3Uzs2LoVGjbE/sEHtLzoIloOHQqJiXDGGcS89hoxx1n5wVtq\nzP2rpXT/Kq70vSvdm3kyal0AzM7OZtu2bbjdblwuF7t372bdunVERUURFRXFhAkTuPbaa2nSpAk7\nduzg0UcfJSYmhquvvtrbTRcRkSMtXmzCX0YGdO4MCxeaiR7PPAP/+x+EhsLHH0MNC38itV2tmwSS\nkJDA2WefTZcuXcjLy2P8+PGcc845jB8/HofDwW+//cbgwYNp06YNN910E+3atWP16tUEBwd7u+ki\nImJxu2HSJLjyShP+rrsOvvvOhL9PPoHHHwebDebMgXbtvN1akTqn1lUAe/XqhcvlOu75pUuXVmNr\nRETkpOXkwC23wNy55vXEifDYYybwbdwII0aY4888AwMHeq+dInVYrQuAIiJSi/35JwweDGvXQkgI\n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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x22991a73c18>"
"<matplotlib.figure.Figure at 0x1df2fb57160>"
]
},
"metadata": {},
@@ -2013,7 +2016,7 @@
"data": {
"image/png": "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 truncated
"text/plain": [
"<matplotlib.figure.Figure at 0x229919b8470>"
"<matplotlib.figure.Figure at 0x1df30e7f668>"
]
},
"metadata": {},
@@ -2078,7 +2081,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python [default]",
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
@@ -2092,7 +2095,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
"version": "3.5.2"
}
},
"nbformat": 4,
File diff suppressed because it is too large. Load diff
+9 -7
View File
@@ -785,15 +785,17 @@
"\n",
"$$\\mathbf Q = \\int_0^{\\Delta t} \\mathbf F(t)\\mathbf{Q_c}\\mathbf F^\\mathsf{T}(t) dt$$\n",
"\n",
"where $\\mathbf{Q_c}$ is the continuous noise. This gives us\n",
"where $\\mathbf{Q_c}$ is the continuous noise. The general reasoning should be clear. $\\mathbf F(t)\\mathbf{Q_c}\\mathbf F^\\mathsf{T}(t)$ is a projection of the continuous noise based on our process model $\\mathbf F(t)$ at the instant $t$. We want to know how much noise is added to the system over a discrete intervat $\\Delta t$, so we integrate this expression over the interval $[0, \\Delta t]$. \n",
"\n",
"$$\\Phi = \\begin{bmatrix}1 & \\Delta t & {\\Delta t}^2/2 \\\\ 0 & 1 & \\Delta t\\\\ 0& 0& 1\\end{bmatrix}$$\n",
"We know the fundamental matrix for Newtonian systems is\n",
"\n",
"for the fundamental matrix, and\n",
"$$F = \\begin{bmatrix}1 & \\Delta t & {\\Delta t}^2/2 \\\\ 0 & 1 & \\Delta t\\\\ 0& 0& 1\\end{bmatrix}$$\n",
"\n",
"We define the continuous noise as \n",
"\n",
"$$\\mathbf{Q_c} = \\begin{bmatrix}0&0&0\\\\0&0&0\\\\0&0&1\\end{bmatrix} \\Phi_s$$\n",
"\n",
"for the continuous process noise matrix, where $\\Phi_s$ is the spectral density of the white noise.\n",
"where $\\Phi_s$ is the spectral density of the white noise. This can be derived, but is beyond the scope of this book. See any standard text on stoochastic processes for the details. In practice we often do not know the spectral density of the noise, and so this turns into an \"engineering\" factor - a number we experimentally tune until our filter performs as we expect. You can see that the matrix that $\\Phi_s$ is multiplied by effectively assigns the power spectral density to the acceleration term. This makes sense; we assume that the system has constant acceleration except for the variations caused by noise. The noise alters the acceleration.\n",
"\n",
"We could carry out these computations ourselves, but I prefer using SymPy to solve the equation.\n",
"\n",
@@ -1250,7 +1252,7 @@
"\n",
"$$\\mathbf Q=\\begin{bmatrix}0&0&0\\\\0&0&0\\\\0&0&\\sigma^2\\end{bmatrix}$$\n",
"\n",
"while not correct, is often a useful approximation. If you do this you will have to perform quite a few studies to guarantee that your filter works in a variety of situations. \n",
"while not correct, is often a useful approximation. If you do this for an important application you will have to perform quite a few studies to guarantee that your filter works in a variety of situations. \n",
"\n",
"If you do this, 'lower right term' means the most rapidly changing term for each variable. If the state is $x=\\begin{bmatrix}x & \\dot x & \\ddot{x} & y & \\dot{y} & \\ddot{y}\\end{bmatrix}^\\mathsf{T}$ Then Q will be 6x6; the elements for both $\\ddot{x}$ and $\\ddot{y}$ will have to be set to non-zero in $\\mathbf Q$."
]
@@ -1756,7 +1758,7 @@
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [default]",
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
@@ -1770,7 +1772,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
"version": "3.5.2"
}
},
"nbformat": 4,
+2 -2
View File
@@ -3451,7 +3451,7 @@
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [default]",
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
@@ -3465,7 +3465,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
"version": "3.5.2"
}
},
"nbformat": 4,
+2 -2
View File
@@ -1869,7 +1869,7 @@
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [default]",
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
@@ -1883,7 +1883,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
"version": "3.5.2"
}
},
"nbformat": 4,
+2 -2
View File
@@ -767,7 +767,7 @@
"metadata": {
"anaconda-cloud": {},
"kernelspec": {
"display_name": "Python [default]",
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
@@ -781,7 +781,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.5.1"
"version": "3.5.2"
}
},
"nbformat": 4,
+12 -11
View File
@@ -374,7 +374,7 @@ def plot_3_covariances():
plt.gca().grid(b=False)
plt.gca().set_xticks([0,1,2,3,4])
plot_covariance_ellipse((2, 7), cov=P, facecolor='g', alpha=0.2,
title='|2 0|\n|0 2|', std=[1,2,3], axis_equal=False)
title='|2 0|\n|0 2|', std=[3], axis_equal=False)
plt.ylim((0, 15))
plt.gca().set_aspect('equal', adjustable='box')
@@ -385,7 +385,7 @@ def plot_3_covariances():
plt.ylim((0, 15))
plt.gca().set_aspect('equal', adjustable='box')
plot_covariance_ellipse((2, 7), P, facecolor='g', alpha=0.2,
std=[1,2,3],axis_equal=False, title='|2 0|\n|0 6|')
std=[3],axis_equal=False, title='|2 0|\n|0 6|')
plt.subplot(133)
plt.gca().grid(b=False)
@@ -394,8 +394,8 @@ def plot_3_covariances():
plt.ylim((0, 15))
plt.gca().set_aspect('equal', adjustable='box')
plot_covariance_ellipse((2, 7), P, facecolor='g', alpha=0.2,
axis_equal=False,std=[1,2,3],
title='|2 1.2|\n|1.2 2|')
axis_equal=False,std=[3],
title='|2.0 1.2|\n|1.2 2.0|')
plt.tight_layout()
plt.show()
@@ -450,15 +450,16 @@ def plot_track(ps, actual, zs, cov, std_scale=1,
plt.xlim((0,count))
plt.title(title)
plt.show()
if plot_P:
with interactive_plot():
ax = plt.subplot(121)
ax.set_title("$\sigma^2_x$ (pos variance)")
plot_covariance(cov, (0, 0))
ax = plt.subplot(122)
ax.set_title("$\sigma^2_\dot{x}$ (vel variance)")
plot_covariance(cov, (1, 1))
ax = plt.subplot(121)
ax.set_title("$\sigma^2_x$ (pos variance)")
plot_covariance(cov, (0, 0))
ax = plt.subplot(122)
ax.set_title("$\sigma^2_\dot{x}$ (vel variance)")
plot_covariance(cov, (1, 1))
plt.show()
def plot_covariance(P, index=(0, 0)):
+179
View File
@@ -0,0 +1,179 @@
# -*- coding: utf-8 -*-
"""
Created on Mon Oct 3 07:59:40 2016
@author: rlabbe
"""
from filterpy.kalman import UnscentedKalmanFilter as UKF, MerweScaledSigmaPoints
from math import tan, sin, cos, sqrt, atan2
import numpy as np
from numpy.random import randn
import matplotlib.pyplot as plt
from filterpy.stats import plot_covariance_ellipse
def move(x, u, dt, wheelbase):
hdg = x[2]
vel = u[0]
steering_angle = u[1]
dist = vel * dt
if abs(steering_angle) > 0.001: # is robot turning?
beta = (dist / wheelbase) * tan(steering_angle)
r = wheelbase / tan(steering_angle) # radius
sinh, sinhb = sin(hdg), sin(hdg + beta)
cosh, coshb = cos(hdg), cos(hdg + beta)
return x + np.array([-r*sinh + r*sinhb,
r*cosh - r*coshb, beta])
else: # moving in straight line
return x + np.array([dist*cos(hdg), dist*sin(hdg), 0])
def fx(x, dt, u):
return move(x, u, dt, wheelbase)
def normalize_angle(x):
x = x % (2 * np.pi) # force in range [0, 2 pi)
if x > np.pi: # move to [-pi, pi)
x -= 2 * np.pi
return x
def residual_h(a, b):
y = a - b
# data in format [dist_1, bearing_1, dist_2, bearing_2,...]
for i in range(0, len(y), 2):
y[i + 1] = normalize_angle(y[i + 1])
return y
def residual_x(a, b):
y = a - b
y[2] = normalize_angle(y[2])
return y
def aa(x, y):
if y is not None:
return x % y
else:
return x
def bb(x,y):
try:
return x % y
except:
return x
def Hx(x, landmarks):
""" takes a state variable and returns the measurement
that would correspond to that state. """
hx = []
for lmark in landmarks:
px, py = lmark
dist = sqrt((px - x[0])**2 + (py - x[1])**2)
angle = atan2(py - x[1], px - x[0])
hx.extend([dist, normalize_angle(angle - x[2])])
return np.array(hx)
def state_mean(sigmas, Wm):
x = np.zeros(3)
sum_sin = np.sum(np.dot(np.sin(sigmas[:, 2]), Wm))
sum_cos = np.sum(np.dot(np.cos(sigmas[:, 2]), Wm))
x[0] = np.sum(np.dot(sigmas[:, 0], Wm))
x[1] = np.sum(np.dot(sigmas[:, 1], Wm))
x[2] = atan2(sum_sin, sum_cos)
return x
def z_mean(sigmas, Wm):
z_count = sigmas.shape[1]
x = np.zeros(z_count)
for z in range(0, z_count, 2):
sum_sin = np.sum(np.dot(np.sin(sigmas[:, z+1]), Wm))
sum_cos = np.sum(np.dot(np.cos(sigmas[:, z+1]), Wm))
x[z] = np.sum(np.dot(sigmas[:,z], Wm))
x[z+1] = atan2(sum_sin, sum_cos)
return x
dt = 1.0
wheelbase = 0.5
def run_localization(
cmds, landmarks, sigma_vel, sigma_steer, sigma_range,
sigma_bearing, ellipse_step=1, step=10):
plt.figure()
points = MerweScaledSigmaPoints(n=3, alpha=.00001, beta=2, kappa=0,
subtract=residual_x)
ukf = UKF(dim_x=3, dim_z=2*len(landmarks), fx=fx, hx=Hx,
dt=dt, points=points, x_mean_fn=state_mean,
z_mean_fn=z_mean, residual_x=residual_x,
residual_z=residual_h)
ukf.x = np.array([2, 6, .3])
ukf.P = np.diag([.1, .1, .05])
ukf.R = np.diag([sigma_range**2,
sigma_bearing**2]*len(landmarks))
ukf.Q = np.eye(3)*0.0001
sim_pos = ukf.x.copy()
# plot landmarks
if len(landmarks) > 0:
plt.scatter(landmarks[:, 0], landmarks[:, 1],
marker='s', s=60)
track = []
for i, u in enumerate(cmds):
sim_pos = move(sim_pos, u, dt/step, wheelbase)
track.append(sim_pos)
if i % step == 0:
ukf.predict(fx_args=u)
if i % ellipse_step == 0:
plot_covariance_ellipse(
(ukf.x[0], ukf.x[1]), ukf.P[0:2, 0:2], std=6,
facecolor='k', alpha=0.3)
x, y = sim_pos[0], sim_pos[1]
z = []
for lmark in landmarks:
dx, dy = lmark[0] - x, lmark[1] - y
d = sqrt(dx**2 + dy**2) + randn()*sigma_range
bearing = atan2(lmark[1] - y, lmark[0] - x)
a = (normalize_angle(bearing - sim_pos[2] +
randn()*sigma_bearing))
z.extend([d, a])
ukf.update(z, hx_args=(landmarks,))
if i % ellipse_step == 0:
plot_covariance_ellipse(
(ukf.x[0], ukf.x[1]), ukf.P[0:2, 0:2], std=6,
facecolor='g', alpha=0.8)
track = np.array(track)
plt.plot(track[:, 0], track[:,1], color='k', lw=2)
plt.axis('equal')
plt.title("UKF Robot localization")
plt.show()
return ukf
landmarks = np.array([[5, 10], [10, 5], [15, 15]])
cmds = [np.array([1.1, .01])] * 200
ukf = run_localization(
cmds, landmarks, sigma_vel=0.1, sigma_steer=np.radians(1),
sigma_range=0.3, sigma_bearing=0.1)
print('Final P:', ukf.P.diagonal())
+125
View File
@@ -0,0 +1,125 @@
# -*- coding: utf-8 -*-
"""
Created on Sun Oct 9 08:25:01 2016
@author: roger
"""
import numpy as np
class WorldMap(object):
def __init__(self, N=100):
self.N = N
pass
def measurements(self, x, theta):
""" return array of measurements (range, angle) if robot is in position
x"""
N = 10
a = np.linspace(-np.pi, np.pi, self.N)
return a
def get_line(start, end):
"""Bresenham's Line Algorithm
Produces a list of tuples from start and end
>>> points1 = get_line((0, 0), (3, 4))
>>> points2 = get_line((3, 4), (0, 0))
>>> assert(set(points1) == set(points2))
>>> print points1
[(0, 0), (1, 1), (1, 2), (2, 3), (3, 4)]
>>> print points2
[(3, 4), (2, 3), (1, 2), (1, 1), (0, 0)]
source:
http://www.roguebasin.com/index.php?title=Bresenham%27s_Line_Algorithm
"""
# Setup initial conditions
x1, y1 = int(round(start[0])), int(round(start[1]))
x2, y2 = int(round(end[0])), int(round(end[1]))
dx = x2 - x1
dy = y2 - y1
# Determine how steep the line is
is_steep = abs(dy) > abs(dx)
# Rotate line
if is_steep:
x1, y1 = y1, x1
x2, y2 = y2, x2
# Swap start and end points if necessary and store swap state
swapped = False
if x1 > x2:
x1, x2 = x2, x1
y1, y2 = y2, y1
swapped = True
# Recalculate differentials
dx = x2 - x1
dy = y2 - y1
# Calculate error
error = int(dx / 2.0)
ystep = 1 if y1 < y2 else -1
# Iterate over bounding box generating points between start and end
y = y1
points = []
for x in range(x1, x2 + 1):
coord = (y, x) if is_steep else (x, y)
points.append(coord)
error -= abs(dy)
if error < 0:
y += ystep
error += dx
# Reverse the list if the coordinates were swapped
if swapped:
points.reverse()
return points
world = np.zeros((1000,1000), dtype=bool)
def add_line(p0, p1):
pts = get_line(p0, p1)
for p in pts:
try:
world[p[0], p[1]] = True
except:
pass # ignore out of range
add_line((0,0), (1000, 0))
def measure(x, theta):
dx,dy = world.shape
h = np.sqrt(2*(dx*dx + dy+dy))
p1 = [h*np.cos(theta), h*np.sin(theta)]
hits = get_line(x, p1)
try:
for pt in hits:
if world[pt[0], pt[1]]:
return pt
except:
return -1
return -2
measure([100,100], -np.pi/2)
+1617
View File
File diff suppressed because it is too large. Load diff