diff --git a/matlab/kalman/likelihood/missing_observations_kalman_filter.m b/matlab/kalman/likelihood/missing_observations_kalman_filter.m index 67b3adf6143d50501acb09497181ca29816850f8..8b01c37e610b09829c908947280b32fa9d2dd0eb 100644 --- a/matlab/kalman/likelihood/missing_observations_kalman_filter.m +++ b/matlab/kalman/likelihood/missing_observations_kalman_filter.m @@ -72,13 +72,14 @@ if isequal(H,0) H = zeros(pp,pp); end +P=tril(P)+transpose(tril(P,-1)); % make sure P is symmetric + % Get sample size. smpl = last-start+1; % Initialize some variables. -dF = 1; isqvec = false; -if ndims(Q)>2 +if ~ismatrix(Q) Qvec = Q; Q=Q(:,:,1); isqvec = true; diff --git a/matlab/kalman/likelihood/missing_observations_kalman_filter_d.m b/matlab/kalman/likelihood/missing_observations_kalman_filter_d.m index 3c3724b3b7f1d5fa7b288c6e8e25ece24e1743ef..3eba355cac3ccb3a44e0cc7e37ba4b4f59873f83 100644 --- a/matlab/kalman/likelihood/missing_observations_kalman_filter_d.m +++ b/matlab/kalman/likelihood/missing_observations_kalman_filter_d.m @@ -64,9 +64,8 @@ function [dLIK,dlik,a,Pstar] = missing_observations_kalman_filter_d(data_index,n smpl = last-start+1; % Initialize some variables. -dF = 1; isqvec = false; -if ndims(Q)>2 +if ~ismatrix(Q) Qvec = Q; Q=Q(:,:,1); isqvec = true; @@ -75,7 +74,6 @@ QQ = R*Q*transpose(R); % Variance of R times the vector of structural innova t = start; % Initialization of the time index. dlik = zeros(smpl,1); % Initialization of the vector gathering the densities. dLIK = Inf; % Default value of the log likelihood. -oldK = Inf; if isequal(H,0) H = zeros(pp,pp);