% TP4ex1

% Methode de Monte-Carlo pour évaluer la fonction de répartition d'une v.a. de loi N(0,1).

clear;
a=input('La valeur du paramètre a= ');
n=input('La valeur de la taille de la subdivision n= ');
pas=a/n;
xm=[0:pas:(a-pas)];
xp=[pas:pas:a];
c=[pas/2:pas:a-pas/2];

% Méthode des rectangles. O(1/n)
A=pas*sum(exp(-xm.*xm));
B=pas*sum(exp(-xp.*xp));

% Méthode du point central. O(1/n)
C=pas*sum(exp(-c.*c));

% Méthode des trapèzes. O(1/n^2)
T=(pas/2)*sum(exp(-xm.*xm)+exp(-xp.*xp));

% Méthode de Simpson. O(1/n^4)

S=(pas/6)*sum(exp(-xm.*xm)+exp(-xp.*xp)+4*exp(-c.*c));

% Méthode  de Monte-Carlo. O(1/sqrt(n))
y=a*rand(1,n);
MC=mean(exp(-y.*y))*a;

% Comparaison avec erf.
MERF=erf(a)*sqrt(pi)/2 ;

% Avec quad : 
F=inline('exp(-x.*x)');
SQ=quad(F,0,a);

% Présentation des résultats

disp('Comparaison des évaluations')
disp('Méthode numériques classiques')
[A B C T S]
disp ('Monte-Carlo et erf et quad')
[MC MERF SQ]

% La méthode de Monte-Carlo n'est pas la meilleure (et ceci de loin !!!)
% car on est en dimension 1 et la fonction est trop régulière ...