% TP4ex5
% A exécuter avec des << a >> grands ....

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

% Méthode des rectangles. (1/n)
A=pas*sum(tp4ex5aux(a,xm));
B=pas*sum(tp4ex5aux(a,xp));

% Méthode du point central. (1/n)
C=pas*sum(tp4ex5aux(a,c));

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

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

S=(pas/6)*sum(tp4ex5aux(a,xm)+tp4ex5aux(a,xp)+4*tp4ex5aux(a,c));

% Méthode  de Monte-Carlo.
y=0.5+(1-0.5)*rand(1,n);
MC=mean(tp4ex5aux(a,y))*0.5; % car [1/2;1] est de mesure de Lebesgue égal à 0.5

% Méthode de Monte-Carlo avec rejet sur [1/2;1]
z=1/2+1/2*rand(1,n);
MCC=mean(z<=tp4ex5aux(a,y))*(1/2+1/2);

% Présentation des résultats

disp('Comparaison des évaluations')
disp('Méthode numériques classiques')
[A B C T S]
disp ('Monte-Carlo et Monte-Carlo avec rejet')
[MC MCC]

% Présentation graphique de la fonction tp4ex5aux(a,.)
plot(c,tp4ex5aux(a,c))