// TP2 - Exercice 4
// Simulation de loi normale par la méthode du rejet.


N = 10000; // Nombre de simulations

X = []; //On prend pour X un vecteur vide que l'on va remplir

while length(X)<N
  
  E = -log(rand(1,1)); // E suit la loi exponentielle de paramètre 1. 
  U = rand(1,1);       // X suit la loi uniforme sur [0,1]
  
  if (  U*exp(-E+0.5) < exp(-E^2/2)  ) // On teste si le point doit être
                                       // rejeté ou non.
	X = [X; E]; // On rajoute E à X
  end
  
end





/////// Histogramme de |X| et comparaison avec la densité ///////

xset('window',0);
clf();

histplot(20,X);
x = [0:0.1:3];
plot(x, exp(-x.^2/2)*(2/%pi)^0.5, 'r');








/////// Histogramme de Theta * |X| et comparaison avec la densité ///////

theta = 2*(rand(N,1)>0.5)-1; // (rand(N,1)>0.5) vaut 0 ou 1 avec
                             // probabilité 1/2. En appliquant x -> 2*x-1,
                             //  on obtient 1 ou -1 avec probabilité 1/2.
Y = X.*theta;
xset('window',1);
clf();


histplot(40,Y);
x = [-3:0.1:3];
plot(x, exp(-x.^2/2)*(2*%pi)^-0.5, 'r');
