Arne Schwarz created MATH-1142:
----------------------------------

             Summary: Kalman filter gain calculation
                 Key: MATH-1142
                 URL: https://issues.apache.org/jira/browse/MATH-1142
             Project: Commons Math
          Issue Type: Improvement
    Affects Versions: 3.3
            Reporter: Arne Schwarz
            Priority: Minor
             Fix For: 3.4


In the class KalmanFilter in the function correct(RealMatrix) the gain matrix 
currently is calculated via first calculating the inverse of the residual 
covariance matrix s. I think it would be more effective to calculate the gain 
by directly solving the linear system with an QR or Cholesky decomposition.
For example like this (maybe replace "Cholesky" by "QR"):
// calculate gain matrix
// K(k) = P(k)- * H' * (H * P(k)- * H' + R)^-1
// K(k) = P(k)- * H' * S^-1
// K(k) * S = P(k)- * H'
// S' * K(k)' = H * P(k)-'
RealMatrix kalmanGain = new 
CholeskyDecomposition(s).getSolver().solve(measurementMatrix.multiply(errorCovariance.transpose())).transpose();




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to