From bf7fb86355bad1c7bd424dff3d6c0119f10e2bf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Adjemian=20=28Argos=29?= <stepan@adjemian.eu> Date: Wed, 9 Apr 2025 16:26:57 +0200 Subject: [PATCH] Bug fix (computation of PredictedObservedVarianceSquareRoot). --- matlab/nonlinear-filters/nonlinear_kalman_filter.m | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/matlab/nonlinear-filters/nonlinear_kalman_filter.m b/matlab/nonlinear-filters/nonlinear_kalman_filter.m index 551345c1ac..f103ceff2c 100644 --- a/matlab/nonlinear-filters/nonlinear_kalman_filter.m +++ b/matlab/nonlinear-filters/nonlinear_kalman_filter.m @@ -181,14 +181,13 @@ for t=1:sample_size lik(t)=-Inf; return end - [~, p]= chol(PredictedObservedVariance,'lower'); + [PredictedObservedVarianceSquareRoot, p]= chol(PredictedObservedVariance,'lower'); if p LIK=-Inf; lik(t)=-Inf; return end end - PredictedObservedVarianceSquareRoot = chol(PredictedObservedVariance); PredictedObservedInverseVarianceSquareRoot = PredictedObservedVarianceSquareRoot\eye(n); % Inverse of the Cholesky -> inv(PredictedObservedVariance) = A*A' StandardPredictionError = PredictedObservedInverseVarianceSquareRoot'*PredictionError; lik(t) = -.5*n*log(2*pi) + sum(log(diag(PredictedObservedInverseVarianceSquareRoot))) - .5*dot(StandardPredictionError, StandardPredictionError); -- GitLab