Principe de la simulation :
Lors d'une expérience,
on enregistre au total N événements lors d'une série de S comptages de durée
t. La moyenne m(t) vaut N/S. La loi de probabilité de la variable m(t) est une
loi de Poisson de moyenne M(t) et d'écart type M(t)½. (M(t) serait la
valeur moyenne obtenue pour un très grand nombre de comptages).
La durée
d'un comptage étant négligeable devant la durée de vie de la source (demi-vie
T = 30 ans) on peut admettre que M(t) est une fonction linéaire du temps. On
montre que l'on peut simuler m(t) par la relation m(t) = M(t) + va.(M/S)½.
La variable aléatoire va suivant une loi de Gauss de moyenne 0 et d'écart
type 1. Dans la classe java.util.random, Java propose directement une variable
de ce type. Le nombre d'événements que doit simuler le programme est donc N
= m(t).S.
Pour représenter chaque série de comptages, on définit un
tableau carré de dimension s, s telle que S = s2.
Pour chaque événement, on choisit de façon aléatoire (nombres aléatoires de
répartition uniforme) une case du tableau et on incrémente le compteur
de la case sélectionnée. A la fin du processus, on dispose de S valeurs dont
le total est N et la moyenne est m(t).
On peut alors tracer l'histogramme
(fréquence en fonction du taux de comptage x) normalisé (somme des fréquences
égale à 1) du phénomène et la courbe de Poisson P(x) = Mx.e-M/x!
correspondante.
J'ai comparé les résultats des expériences réelles et des
simulations sans trouver la moindre différence.
L'applet :
Les listes de choix
permettent de sélectionner la durée de chaque comptage et le nombre de comptages
réalisés lors d'une expérience.
Le programme trace l'histogramme de l'expérience
(fréquence en fonction du nombre d'événements) ainsi que "la courbe de
Poisson" (le trait rouge est un simple guide pour les yeux) qui correspond
à la valeur moyenne entière la plus voisine de la valeur moyenne de l'expérience.
Les
temps de comptage ont été choisis pour que les valeurs moyennes soient voisines
de 2, 4, 5 et 8.