You should never compute, maintain, or update the inverse of a symmetric positive definite matrix if you do not have to. Computing the inverse or manipulating it is inherently instable. You can almost always do what you want to do using the Cholesky decomposition instead, and it is really simple. Unfortunately, Matlab does not support this (as usual), and while LINPACK contains some code, these routines are not officially supported in the successor LAPACK. Here is some code for stable updating/downdating of a Cholesky factor after simple changes to the system matrix. We slightly adapted the LINPACK code. Our modifications leave the routines numerically identical, while making them faster (by using BLAS routines).
More details about these routines is in the paper available at http://www.kyb.tuebingen.mpg.de/bs/people/seeger/papers/cholupdate.pdf. If you use the code in a scientific publication, please cite this paper and/or the web location.
- Changes to previous version:
Initial Announcement on mloss.org.
No one has posted any comments yet. Perhaps you'd like to be the first?
Leave a comment
You must be logged in to post comments.