Merge pull request #8 from JohannesPfeifer/patch-3

Properly terminate nonlinear_kalman_filter if non-positive definite m…
rm-particles^2
Stéphane Adjemian 2017-03-15 16:27:38 +01:00 committed by GitHub
commit 79b42ec947
1 changed files with 12 additions and 2 deletions

View File

@ -152,8 +152,18 @@ for t=1:sample_size
KalmanFilterGain = PredictedStateAndObservedCovariance/PredictedObservedVariance;
StateVectorMean = PredictedStateMean + KalmanFilterGain*PredictionError;
StateVectorVariance = PredictedStateVariance - KalmanFilterGain*PredictedObservedVariance*KalmanFilterGain';
StateVectorVarianceSquareRoot = chol(StateVectorVariance)';
PredictedObservedVarianceSquareRoot = chol(PredictedObservedVariance)' ;
[StateVectorVarianceSquareRoot, p]= chol(StateVectorVariance,'lower');
if p
LIK=-Inf;
lik(t)=-Inf;
return
end
[PredictedObservedVarianceSquareRoot, p]= chol(PredictedObservedVariance,'lower');
if p
LIK=-Inf;
lik(t)=-Inf;
return
end
end
lik(t) = log( probability2(0,PredictedObservedVarianceSquareRoot,PredictionError) ) ;
end