Moved code specific to one notebook to the *_internal.py file
for that book.
Updated to require FilterPy 1.2.4 due to a fix of a bad bug in the
UKF RTS Smoother, and the change of likelihood from a function back
to a property.
for reasons I don't understand you have to call with suprres=True
and no othe rparameters for it to 'work', even though the
get_printoptions shows it as correctly set.
After a new Anaconda install I was getting a lot of minor errors
in the notebooks. I've fixed all of those. Along the ways I altered
the format of the PDF output to exclude the In[] Out[] tags so the
code is indented less. I also altered the font size of the notebooks
to better match fonts in other pages on chrome.
FilterPy was updated to 1.1.0, and this check in requires that release
at the minimum.
I erroneously named the prediction of x x_est, which is confusing at best.
There were also issues with plotsize. The %matplotlib notebook magic
is resetting the size of the plots. Not sure if this has something to do
with some of my plotting code or not. Anyway, I wrote a context manager
to reset the plot size after exiting interactive mode.
problems when trying to import files from the code subdirectory.
I also tried to rearange some code so that book_format does not need
to be imported if you are not running in a Jupyter Notebook.
the plots generated by interactive plots (%matplotlib notebook) do
not show up in the PDF. This has meant that I haven't been able to
update the PDF since febuary. I switched the default plotting
mechanism to noninteractive.
Using %matplotlib notebook to render plots.
I made the g-h filter chapter work. There is a very good chance
I broke the other chapters. Need to push to really find out.
I've derived the x + Ky form for the univariate kalman filter.
I completely reordered material, cutting about 10 pages (pdf)
of material. I made the connection between the bayesian form
and orthogonal form more explicit.
Probably there are a lot of grammatical errors, but I wanted to get
these checked in.
I also altered the css - mainly the font.
All my code in this chapter hard coded the computation of the
likelihood inside the update() function, where it had no business.
Also, my treatment of the likelihood was rather hand wavey. By
pulling it out of update() and maing it explicit I have created
a firm foundation for the rest of the book.
Changed default sizes of plots, changed the book template for
pdf creation, and lots of minor edits, most changing bold to
italic, and removing italic for emphasis.
Moved book_format out of code to simplify importing it into the
notebooks. Added code to it to suppress future warnings from
matplotlib 1.4.3, and to set the numpy print precision to 3
decimal places.
All these changes are to make the book easier to run from
cloud.sagemath.org. You can share individual notebooks there,
but not entire projects.By putting everything under code at the
user only needs to grab that one directory.
More on sagemath later, if I decide to pursue that as a delivery
mechanism...
Most of the text is wrong, but changed code to use the
renamed ScaledUnscentedKalmanFilter.
Checking in with bad text because I am in the process of changing
FilterPy to use a class for the sigma points to make it easier
to change the sigma point generation, leaving us with one
UKF class instead of several.
Most of the graphs were really too tall. Well, we can quibble about that
but I made them smaller to reduce the PDF size and thus print size
of the full book.
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.
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.