Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Dóra Kocsis
dynare
Commits
2fb1065b
Commit
2fb1065b
authored
Nov 16, 2012
by
Frédéric Karamé
Browse files
computes the density of particles in a gaussian distribution.
parent
56e723c0
Changes
1
Hide whitespace changes
Inline
Side-by-side
matlab/particle/probability.m
0 → 100644
View file @
2fb1065b
function [prior,likelihood,C,posterior] = probability(mu,sqrtP,prior,X)
[dim,nov] = size(X);
M = size(mu,2) ;
if nargout>1
likelihood = zeros(M,nov);
normfact = (2*pi)^(dim/2);
for k=1:M
XX = bsxfun(@minus,X,mu(:,k));
S = sqrtP(:,:,k);
foo = S \ XX;
likelihood(k,:) = exp(-0.5*sum(foo.*foo, 1))/abs((normfact*prod(diag(S))));
end
end
likelihood = likelihood + 1e-99;
if nargout>2
C = prior*likelihood + 1e-99;
end
if nargout>3
posterior = bsxfun(@rdivide,bsxfun(@times,prior',likelihood),C) + 1e-99 ;
posterior = bsxfun(@rdivide,posterior,sum(posterior,1));
end
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment