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)