Simulation de la loi normale


Ce programme simule un phénomène qui obéit à une loi normale.
Pour créer les variables aléatoires, on utilise une fonction dérivée de la méthode nextGaussian() de la classe java.util.Random qui retourne une variable x pseudo-aléatoire dont la distribution suit la loi centrale réduite (moyenne nulle et écart-type égal à 1).
La variable X = μ + σ.x est une variable pseudo-aléatoire dont la loi de distribution suit la loi normale de moyenne μ et d'écart-type σ.
On étudie le domaine ±xmax qui est découpé en Nc classes dont la valeur centrale est X(i).
Lors d'un tirage, on obtient la valeur X et on cherche la classe à laquelle elle appartient.
Après N tirages, on connaît la fréquence f(i) (nombre d'événements) pour chaque classe.
La moyenne <x> est donc ΣX(i).f(i) / N.
On a également σ2 =( Σ([X(i) − <X>]2) / N.
Pour obtenir des graphiques bien lisibles, la valeur de xmax est choisie automatiquement en fonction de la valeur de l'écart-type.
Après normalisation, on trace l'histogramme et la courbe de Gauss correspondant aux valeurs de μ et de σ calculées.
On peut constater que pour un grand nombre de tirages, la répartition suit bien la loi normale.
En fait, comme on réalise une simulation, on vérifie la qualité du générateur de nombres pseudo-aléatoires utilisé par le langage de programmation utilisé..

Utilisation
Choisir avec les liste de choix le nombre de classes et le nombre de tirages.
On peut modifier avec le slider la valeur de l'écart-type utilisée par le générateur de nombres aléatoires.
Le bouton [Calcul] permet de relancer le programme avec les mêmes données.
Le programme affiche les valeurs calculées de μ et de σ ainsi que le nombre d'événements dans la classe la plus remplie.