%%
%% TP1 Exercice 2
%% Simulation de la loi uniforme discrète et la loi géométrique
%% par la méthode de troncature
%%

N=input('Entrez la taille de l''échantillon N : '); % Nombre de simulation
a=input('Precisez la valeur du paramètre a : ');   % loi uniforme discréte sur {1,...,a}
if a~=round(a)
   disp('le paramètre a doit etre un entier positif !!')
   break
end
lambda=input('Precisez la valeur du parametre lambda : '); % loi exponentielle de paramètre lambda
X=rand(N,1); % simulation loi uniforme sur [0,1]
Y=fix(1+a*X); % simulation loi uniforme discréte sur {1,...,a}
Z=fix(-log(X)/lambda); % simulation loi géométrique

p=1-exp(-lambda); 
figure;
plot(cumsum(Y)'./[1:N],'b') 
title('Loi des Grands Nombres piour la loi Uniforme Discrète')
xlabel('Nombre de realisations')
ylabel('Moyennes empiriques')
hold on
plot((1+a)*0.5*ones(N,1),'r--') % Espérance loi uniforme discrète --> (1+a)/2
legend('Empirique','Theorique')
hold off

figure
plot(cumsum(Z)'./[1:N],'b')
title('Loi des Grands Nombres pour la loi Géométrique')
xlabel('Nombre de realisations')
ylabel('Moyennes empiriques')
hold on
plot(((1-p)/p)*ones(N,1),'r--') % Espérance loi géométrique --> (1-p)/p
legend('Empirique','Theorique')

