% Lois conditionnelles d'un vecteur gaussien
clear

n=10; k=6;    % (dim X,dim Z)=(n,k)    0<k<n 
y=rand(n-k,1); % vecteur des valeurs de Y pour le calcul de L(Z|Y=y)

% G = matrice de covariance de X, doit etre >0 
X=rand(n,n); 
G=X'*X+.1*eye(n); 

% Calcul des coefficients lambda(i,j)
L=zeros(k,n-k);
for i=1:k, 
  L(i,:)=G(i,k+1:n)/G(k+1:n,k+1:n);
end

% Calcul de E(Z|Y=y) 
moyenne = dot(L(i,:),y)
% Calcul de cov = matrice de cov de L(Z|Y=y)
cov=zeros(k,k);
for i=1:k,
  for j=1:k,
	cov(i,j)=-L(i,:)*G(k+1:n,k+1:n)*L(i,:)';
  end
end
cov=G(1:k,1:k)-cov
