I had information on these rather buried, and did not have a single example
of how to compute them. Now the first part of the chapter covers this much
more thoroughly.
Also added a section on plotting exponentials. Not sure I want to retain
it; it is a bit 'light'.
Some sections jumped from level 2 to level 4, for example.
Also played around with generating book to HTML. I like it, but
it needs some work. The Calico table of content generator cannot
deal with different headers with the same name, for example.
I want to go to HTML so I can use Bokeh to have interactive plots.
But that means no more PDF, because Bokeh will not export to
PDF.
I think I finally arrived at a good ordering of material.
Started with implementing a linear problem just so we can
see how it differs from the linear KF, then added problems
step by step. Got rid of most of the poor performing filters.
My charts were mixing position vs time, which was pretty confusing.
I changed it to position vs velocity, and demonstrated how multipying
the covariances lead to a much better result.
I had a lot of problems with lines being visible, and ended up
using different styles in different places. I found a style that
seems to work everywhere and put the code in book_plots.py.
I moved book_format.py to the root directory so that all of the
notebooks do not need to modify the system path to import it. It
modifies the path on import so that all of the code in ./code can
then be accessed.
Altered links to nbviewer to account for no longer using subdirectories.
I need to change some of the colors because they do not render
well when next to each other, as is common when I am plotting
filter output vs measurement. For now I made the yellow color
last as it is the hardest to see.
When editting a notebook I tend to rerun the cells many times.
But imports are only done once, so the code in book_format()
is only run the first time. I put all of that code in a function
so that it is run every time.
I read the matplotlib rcParams from a json file. The json module
always uses Unicode, but this does not work in Python 2.7. This
was causing the plots not to appear if using Python 2.7.
Wrote code to detect Python version and to convert to ASCII if
Python version 2.
I got the original code from the author, Cameron Davidson-Pilon,
modified it for the minor changes I make for the book, and put it
in 538.json. The main gain is that somebody doesn't need bleeding
edge matplotlib installed to get the 538 look.
Several changes and clarifications. Added chart showing 2d distribution
of points for multivariate gaussian. Improved some discussions. Fixed
some typos.
Added more examples and cleaned up explanations on modifying R
and Q. In particular, the filter setting for R was not the same
as the simulated noise for no obvious reason. Also, names were
bad R instead of R_var, for example.
The animation script used in the KF chapter is general enough
to be used by the entire book, so I removed it from the notebook
and put it in gif_animate.py
Beginning of adding animations to the chapters. I wrote the
existing material not assuming animations, so it is quite
possible that I will want to revise the chapter to better
make use of this ability. For now I just animated two different
update/predict cycles.
Chapter was not adding ../code to the search path. Multivarite discusion about the ellipses
was a bit unclear about the relationship of the standard deviation.