% TP Signaux aléatoires - SRT4
%% TP2 Fonction de variables aléatoires
%
% Nom - Prénom : Avenel - Théophile
%
% Soit N variables aléatoires indépendantes, de loi uniforme entre 0 et 1 : (X_1, ..., X_N) et soit Y=max(X_1, ..., X_N).
% Calculer la fonction de répartition de Y.
% En déduire sa densité de probabilité.
% Générer des valeurs de Y
% Tracer l'histogramme des valeurs générées. Comparer avec la densité de probabilité de Y.
%


close all;
clear all;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%  Fonction de v.a.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 

N = 5;           % Nombre de variables aléatoires indépendantes
Nb = 1000000;     % Nombre de réalisations

% Génération de réalisations de Y
X = rand(N, Nb);  % Génération de Nb valeurs aléatoires uniformes pour chaque variable
Y = max(X);       % Y est défini comme le maximum des N variables aléatoires

% Calcul de la moyenne des réalisations et comparaison avec l'espérance mathématique de Y
moyenne_Y = mean(Y);  % Moyenne empirique des réalisations de Y
esperance_Y = N / (N + 1);  % Espérance théorique de Y pour N variables uniformes

fprintf('Moyenne estimée de Y = %.4f\n', moyenne_Y);
fprintf('Espérance théorique de Y = %.4f\n', esperance_Y);

% On observe que la moyenne (arithmétique) des réalisations est proche de la moyenne statistique E(Y)=\frac{N}{N+1}



% Tracé de la densité de probabilité de Y
figure;
lin = [0:0.01:1];
F = lin.^N;  % Fonction de répartition théorique
D = N .* lin.^(N-1);  % Densité de probabilité théorique

plot(lin, D, 'LineWidth', 2);  % Tracé de la densité de probabilité
title('Densité de probabilité théorique de Y');
xlabel('Y');
ylabel('Densité de probabilité');

% Vérification que l'intégrale de la densité est égale à 1
un = sum(D) * 0.01;  % Somme discrète pour approximer l'intégrale
fprintf('Aire sous la courbe de densité (devrait être proche de 1) = %.4f\n', un);

% Tracé de l'histogramme des réalisations de Y
hold on;
histogram(Y, 'Normalization', 'pdf', 'BinWidth', 0.01);
legend('Densité théorique', 'Histogramme des réalisations de Y');

hold off;