% TP4ex2

% Methode de Monte-Carlo pour évaluer la fonction de répartition d'une v.a. de loi khi-deux.

% Après une intégration par partie, on obtient une expression de I(a) sans singularité
% en 0.

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. (1/n)
A=pas*sum(sqrt(xm).*exp(-xm));
B=pas*sum(sqrt(xp).*exp(-xp));

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

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

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

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

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

% Comparaison avec pchisp.
MPKHI=pchisq(2*a,1)*sqrt(pi); %2*a pour le changement de variables ...

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

% Présentation des résultats

disp('Comparaison des évaluations')
disp('Méthode numériques classiques')
(2*sqrt(a)*exp(-a))*ones(1,5)+(2*[A B C T S])
disp ('Monte-Carlo et mpkhi et quad')
[2*sqrt(a)*exp(-a)+2*MC MPKHI SQ]
