diff --git a/Appendix_A_Installation/Appendix_Installation.ipynb b/Appendix_A_Installation/Appendix_Installation.ipynb index fc237c5..1f30b5a 100644 --- a/Appendix_A_Installation/Appendix_Installation.ipynb +++ b/Appendix_A_Installation/Appendix_Installation.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:55827a10b686f623979e4a64f44719e9065cb04b3c0e4a5632ea4d994dbb8aed" + "signature": "sha256:50cd0bf7b737693755e8062af84247f67e5b07744fa97aee1a0dc08618dec3f8" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Appendix_B_Symbols_and_Notations/Appendix_Symbols_and_Notations.ipynb b/Appendix_B_Symbols_and_Notations/Appendix_Symbols_and_Notations.ipynb index dad8602..c09f055 100644 --- a/Appendix_B_Symbols_and_Notations/Appendix_Symbols_and_Notations.ipynb +++ b/Appendix_B_Symbols_and_Notations/Appendix_Symbols_and_Notations.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:e56fe47fdc8d23de599684e8784653238c5f3dc6bdd59bfc41832bc01a9f6f90" + "signature": "sha256:96b8d49070c26012f68e9c586fe5de841f9bf752ab9ecd8bd8c787afa0086ad3" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Chapter01_gh_filter/g-h_filter.ipynb b/Chapter01_gh_filter/g-h_filter.ipynb index fb809f7..fcba9ec 100644 --- a/Chapter01_gh_filter/g-h_filter.ipynb +++ b/Chapter01_gh_filter/g-h_filter.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:9e775b9de6cb65beae82b0464e38bf5b3bb61f2e0d4dcbb1a16804f342031457" + "signature": "sha256:77fc7fd84343d91f4f546e53400a6fc405edc78def2867c025f1ab848bc94662" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Chapter02_Discrete_Bayes/discrete_bayes.ipynb b/Chapter02_Discrete_Bayes/discrete_bayes.ipynb index 1089f04..c4368af 100644 --- a/Chapter02_Discrete_Bayes/discrete_bayes.ipynb +++ b/Chapter02_Discrete_Bayes/discrete_bayes.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:88299b8bf8496d8642bbdee38eb30e47846ebd319370af9c11d8e7f7da1a4542" + "signature": "sha256:12fc2d9e63ea3d4311d2d3ce3dfde5992d34368a4a40f7e08114702fbe9359f6" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Chapter03_Least_Squares/Least_Squares_Filters.ipynb b/Chapter03_Least_Squares/Least_Squares_Filters.ipynb index 8f2661d..19ac909 100644 --- a/Chapter03_Least_Squares/Least_Squares_Filters.ipynb +++ b/Chapter03_Least_Squares/Least_Squares_Filters.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:840fa1da0403db057e32a7bd911c083ed1fbdff2920cf71fbe10cb3b31bb40f2" + "signature": "sha256:ebef6e832489d1e643b6d4a1ceb1759094a5e5730488c53fb7913dcd7fcc5d0a" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Chapter04_Gaussians/Gaussians.ipynb b/Chapter04_Gaussians/Gaussians.ipynb index be88f6b..34e55c2 100644 --- a/Chapter04_Gaussians/Gaussians.ipynb +++ b/Chapter04_Gaussians/Gaussians.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:c6d0174467636b2460a28523c35141b3937e125a51ec438d4a4184f4c898666b" + "signature": "sha256:f06623f9c65b72eaaa654d00719496d1826c6c5a76a1cb6ee583c4b4844b2cf2" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Chapter05_Kalman_Filters/Kalman_Filters.ipynb b/Chapter05_Kalman_Filters/Kalman_Filters.ipynb index c4eb030..1b1478f 100644 --- a/Chapter05_Kalman_Filters/Kalman_Filters.ipynb +++ b/Chapter05_Kalman_Filters/Kalman_Filters.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:abf8b08ac221d3eaaa0d08bfad431f9344a799b128a81efd6668244874bf1e11" + "signature": "sha256:64e8545f18bda8e1f5d616e6ae32bb4de6b9d2facb49965254214130a9a105c2" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Chapter06_Multivariate_Kalman_Filter/Multivariate_Kalman_Filters.ipynb b/Chapter06_Multivariate_Kalman_Filter/Multivariate_Kalman_Filters.ipynb index ec50b94..ab57a3b 100644 --- a/Chapter06_Multivariate_Kalman_Filter/Multivariate_Kalman_Filters.ipynb +++ b/Chapter06_Multivariate_Kalman_Filter/Multivariate_Kalman_Filters.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:7bf0115f6109356333dcf7a6f5bb4eab8d2f856c7c808df54a1ff879f9b6806f" + "signature": "sha256:1fd86dce337827275aa9e5a40fcd9a60f0595e7e5ac5a23f6dad969a8c25b607" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Chapter07_Kalman_Filter_Math/Kalman_Filter_Math.ipynb b/Chapter07_Kalman_Filter_Math/Kalman_Filter_Math.ipynb index 72aff20..166c2b4 100644 --- a/Chapter07_Kalman_Filter_Math/Kalman_Filter_Math.ipynb +++ b/Chapter07_Kalman_Filter_Math/Kalman_Filter_Math.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:3c16c5f6f146457a27065808fb14f78b3d99d0930936d61dbfea6366dbb6c6a3" + "signature": "sha256:67c4129fff41565d034db649263858ab42767dacc3daeda9bef268c3cd29f702" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Chapter08_Designing_Kalman_Filters/Designing_Kalman_Filters.ipynb b/Chapter08_Designing_Kalman_Filters/Designing_Kalman_Filters.ipynb index da9eb4e..e63e13a 100644 --- a/Chapter08_Designing_Kalman_Filters/Designing_Kalman_Filters.ipynb +++ b/Chapter08_Designing_Kalman_Filters/Designing_Kalman_Filters.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:b8809b65792a3504dd59fd7fa5bc5b1df44c519aaed7f44824c301f62d934231" + "signature": "sha256:80428cb216840389474113bd56ba0360d30a5707bcf03dbb7f7c2afe2696656c" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Chapter09_Extended_Kalman_Filters/Extended_Kalman_Filters.ipynb b/Chapter09_Extended_Kalman_Filters/Extended_Kalman_Filters.ipynb index 723ab3d..170a74c 100644 --- a/Chapter09_Extended_Kalman_Filters/Extended_Kalman_Filters.ipynb +++ b/Chapter09_Extended_Kalman_Filters/Extended_Kalman_Filters.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:13f1ac619b4757d46c582ecc4e301de7fa8c981e9df2d369824aeb3cb99714a8" + "signature": "sha256:8639f3d09166c8c1ae2b55e044e278c8b7e31e19bd72545341522e3c86eb9f7b" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Chapter10_Unscented_Kalman_Filters/Unscented_Kalman_Filter.ipynb b/Chapter10_Unscented_Kalman_Filters/Unscented_Kalman_Filter.ipynb index 464d6b1..f34ca62 100644 --- a/Chapter10_Unscented_Kalman_Filters/Unscented_Kalman_Filter.ipynb +++ b/Chapter10_Unscented_Kalman_Filters/Unscented_Kalman_Filter.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:ee2cc3ceadfd52b4488768339c53f95a124c3ea251b8b87d387a4eba90fb314a" + "signature": "sha256:d0f56611de4c723c8e7b5143ed3ccef719165500f23856ea8aeaaf28fcab3664" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Chapter11_Designing_Nonlinear_Kalman_Filters/Designing_Nonlinear_Kalman_Filters.ipynb b/Chapter11_Designing_Nonlinear_Kalman_Filters/Designing_Nonlinear_Kalman_Filters.ipynb index 1a44723..e876943 100644 --- a/Chapter11_Designing_Nonlinear_Kalman_Filters/Designing_Nonlinear_Kalman_Filters.ipynb +++ b/Chapter11_Designing_Nonlinear_Kalman_Filters/Designing_Nonlinear_Kalman_Filters.ipynb @@ -1,7 +1,7 @@ { "metadata": { "name": "", - "signature": "sha256:525f046eb6483efc3d5c6475fa1ad79e15ab2cfb0e2b0b4ad20be34aa61c5415" + "signature": "sha256:3185a085ad316dcb4614b3dba3381282f39a7cc587dcf3de18fd06f2b0ba2fed" }, "nbformat": 3, "nbformat_minor": 0, @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Introduction.ipynb b/Introduction.ipynb index deb7124..7b24e4b 100644 --- a/Introduction.ipynb +++ b/Introduction.ipynb @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/Preface.ipynb b/Preface.ipynb index 3a842ff..ad7d1f6 100644 --- a/Preface.ipynb +++ b/Preface.ipynb @@ -12,7 +12,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb" + "[Table of Contents](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/table_of_contents.ipynb)" ] }, { diff --git a/README.md b/README.md index 61ea532..22f61e6 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,12 @@ Introductory textbook for Kalman filters and Bayesian filters. All code is writt Reading Online --- -The quickest way to read the book is to read it online. The book is written as a collection of IPython Notebooks, an interactive, browser based system that allows you to combine text, Python, and math into your brower. The website http://nbviewer.org provides an IPython Notebook server that renders notebooks stored at github (or elsewhere). The rendering is done in real time when you load the book. If you read my book today, and then I make a change tomorrow, when you go back tomorrow you will see that change. +----- You may access this book via nbviewer at any by using this address: -[*Static Version of Book*](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/Introduction.ipynb) +[*Read Online Now*](http://nbviewer.ipython.org/github/rlabbe/Kalman-and-Bayesian-Filters-in-Python/blob/master/Preface.ipynb) + +The quickest way to read the book is to read it online. The book is written as a collection of IPython Notebooks, an interactive, browser based system that allows you to combine text, Python, and math into your brower. The website http://nbviewer.org provides an IPython Notebook server that renders notebooks stored at github (or elsewhere). The rendering is done in real time when you load the book. If you read my book today, and then I make a change tomorrow, when you go back tomorrow you will see that change. I periodically generate a PDF of the book from the Notebooks. I do not do this for every check in, so the PDF will usually lag the content in github and on nbviewer.org. However, I do generate it whenever I make a substantial change.