diff --git a/matlab/kalman/likelihood/kalman_filter_d.m b/matlab/kalman/likelihood/kalman_filter_d.m index 79b3607fb21de53cfc895071501657715dc9c332..48c0d91c4aa8246af8a47f8e059345e6e78c1745 100644 --- a/matlab/kalman/likelihood/kalman_filter_d.m +++ b/matlab/kalman/likelihood/kalman_filter_d.m @@ -65,7 +65,7 @@ dLIK = Inf; % Default value of the log likelihood. oldK = Inf; s = 0; -while rank(Pinf,diffuse_kalman_tol) && (t<=last) +while rank(Z*Pinf*Z',diffuse_kalman_tol) && (t<=last) s = t-start+1; v = Y(:,t)-Z*a; %get prediction error v^(0) in (5.13) DK (2012) Finf = Z*Pinf*Z'; % (5.7) in DK (2012) diff --git a/matlab/kalman/likelihood/univariate_kalman_filter_d.m b/matlab/kalman/likelihood/univariate_kalman_filter_d.m index ce78d2421497d1c570081d334910d611ae21dd55..6abe6b9a780859cccf2f9d5596f4719e7a2f3f76 100644 --- a/matlab/kalman/likelihood/univariate_kalman_filter_d.m +++ b/matlab/kalman/likelihood/univariate_kalman_filter_d.m @@ -154,7 +154,7 @@ while newRank && (t<=last) end end if newRank - oldRank = rank(Pinf,diffuse_kalman_tol); + oldRank = rank(Z*Pinf*Z',diffuse_kalman_tol); else oldRank = 0; end @@ -162,7 +162,7 @@ while newRank && (t<=last) Pstar = T*Pstar*T'+QQ; Pinf = T*Pinf*T'; if newRank - newRank = rank(Pinf,diffuse_kalman_tol); + newRank = rank(Z*Pinf*Z',diffuse_kalman_tol); end if oldRank ~= newRank disp('univariate_diffuse_kalman_filter:: T does influence the rank of Pinf!')