annotate toolboxes/FullBNT-1.0.7/KPMstats/condGaussToJoint.m @ 0:cc4b1211e677 tip

initial commit to HG from Changeset: 646 (e263d8a21543) added further path and more save "camirversion.m"
author Daniel Wolff
date Fri, 19 Aug 2016 13:07:06 +0200
parents
children
rev   line source
Daniel@0 1 function [muXY, SigmaXY] = condGaussToJoint(muX, SigmaX, muY, SigmaY, WYgivenX)
Daniel@0 2
Daniel@0 3 % Compute P(X,Y) from P(X) * P(Y|X) where P(X)=N(X;muX,SigmaX)
Daniel@0 4 % and P(Y|X) = N(Y; WX + muY, SigmaY)
Daniel@0 5
Daniel@0 6 % For details on how to compute a Gaussian from a Bayes net
Daniel@0 7 % - "Gaussian Influence Diagrams", R. Shachter and C. R. Kenley, Management Science, 35(5):527--550, 1989.
Daniel@0 8
Daniel@0 9 % size(W) = dy x dx
Daniel@0 10 dx = length(muX);
Daniel@0 11 dy = length(muY);
Daniel@0 12 muXY = [muX(:); WYgivenX*muX(:) + muY];
Daniel@0 13
Daniel@0 14 W = [zeros(dx,dx) WYgivenX';
Daniel@0 15 zeros(dy,dx) zeros(dy,dy)];
Daniel@0 16 D = [SigmaX zeros(dx,dy);
Daniel@0 17 zeros(dy,dx) SigmaY];
Daniel@0 18
Daniel@0 19 U = inv(eye(size(W)) - W')';
Daniel@0 20 SigmaXY = U' * D * U;
Daniel@0 21
Daniel@0 22