diff --git a/src/conditional_filter_proposal.m b/src/conditional_filter_proposal.m index 3a019c6a47a14475c4fc345a93aa4a9484b3aeae..e90efa1895a94f012f1f26ae9961b5aacf2ca9d2 100644 --- a/src/conditional_filter_proposal.m +++ b/src/conditional_filter_proposal.m @@ -118,17 +118,17 @@ else Error = obs - PredictedObservedMean ; StateVectorMean = PredictedStateMean + KalmanFilterGain*Error ; StateVectorVariance = PredictedStateVariance - KalmanFilterGain*PredictedObservedVariance*KalmanFilterGain'; - StateVectorVarianceSquareRoot = chol(StateVectorVariance + 1e-6)' ; + StateVectorVarianceSquareRoot = chol(StateVectorVariance + eye(number_of_state_variables)*1e-6)' ; if ParticleOptions.cpf_weights_method.amisanotristani Weights = SampleWeights.*probability2(zeros(number_of_observed_variables,1),chol(PredictedObservedVariance)',Error) ; end end -PredictedStateVarianceSquareRoot = chol(PredictedStateVariance + 1e-6)' ; +PredictedStateVarianceSquareRoot = chol(PredictedStateVariance + eye(number_of_state_variables)*1e-6)' ; ProposalStateVector = StateVectorVarianceSquareRoot*randn(size(StateVectorVarianceSquareRoot,2),1)+StateVectorMean ; if ParticleOptions.cpf_weights_method.murrayjonesparslow Prior = probability2(PredictedStateMean,PredictedStateVarianceSquareRoot,ProposalStateVector) ; Posterior = probability2(StateVectorMean,StateVectorVarianceSquareRoot,ProposalStateVector) ; Likelihood = probability2(obs,H_lower_triangular_cholesky,measurement_equations(ProposalStateVector,ReducedForm,ThreadsOptions)) ; Weights = SampleWeights.*Likelihood.*(Prior./Posterior) ; -end \ No newline at end of file +end