%%% Tracé de l'écart en entropie et en degrès de librerté 
%%% lors de la simulation d'une loi gaussienne multivariée
clear
X = rand(4,4); G = 1*eye(4)+X'*X/4; % G = matrice de cov.
A = sqrtm(G);                       % A = Racine carrée de G
n = 1000;                           % Nombre de réalisations
realis = zeros(4,n);
% Calcul matrice de cov. empirique au fil des n réalisations.
covemp = zeros(4,4); moyemp = zeros(4,n); 
df = zeros(1,n); er = zeros(1,n);
for k=1:n,
  realis(:,k) = A*randn(4,1);
  moyemp(:,k) = sum(realis(:,1:k)')';
  for i=1:4,
    covemp(i,i) = sum(realis(i,1:k).^2)/k-moyemp(i,k)^2/k^2;
	for j=i+1:4,
	  covemp(i,j) = dot(realis(i,1:k),realis(j,1:k))/k;
      covemp(i,j) = covemp(i,j)-moyemp(i,k)*moyemp(j,k)/k^2;
	  covemp(j,i) = covemp(i,j);
	end
  end
  X=covemp/G;
  df(k) = 4-sum(trace(X));
  er(k) = -.5*log2(det(X));
end
figure(1); clg
hold on
xlabel('Nombre de réalisations')
ylabel('DL & RE')
plot(df(10:n),'r-;Degres de liberte;')
plot(er(10:n),'b-;Reduction d''entropie;')
title('Comparaison matrices de cov. empiriques et théoriques')
%Idee: utiliser la fonc cov ou cor de octave (et MatLab ?)
