Kalman filter predict/update equations are here:

https://en.wikipedia.org/wiki/Kalman_filter

I have implemented the Kalman filter and it works nicely. However, the standard Kalman equations are written naively in terms of the matrix inverse. In particular, the S matrix (innovation covariance) is inverted in order to compute K (the gain matrix):

S = H P H^t + R

K = P H^t S^{-1}

The gain matrix (K) is finally used to update the state estimate (x) and estimated covariance of the state (P) as follows:

x += K y

P -= K H P

I would like to update 'x' and 'P' without computing the matrix inverse S^{-1}.

In the following reference, a method is given "for calculating (H P H^t + R)^{-1} H in the conventional Kalman filter without explicitly computing an inverse." (using U D U^T, or LDL^t) Of course, (H P H^t + R)^{-1} is equal to S^{-1}, but this confuses me because "S^{-1} H" does not appear in the computation of K....and so, it is not clear to me, how the value of S^{-1}H can be used to compute K.

Reference:

'Kalman Filtering; Theory and Practice Using MATLAB', second edition, by Grewal and Andrews

http://books.google.com/books?id=sZbxLK-NKb0C&q=+without+explicitly+inverting#v=snippet&q=without%20explicitly%20inverting&f=false

(click the second link)

**Edited by yahastu, 12 September 2013 - 03:39 PM.**