VBA, génération aléatoire, gaussienne et exp
Bonjour,
Mon premier post sur ce forum !
J'ai observé un problème dans une macro excel :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
Sub Test()
Randomize
Dim a As Double
Dim b As Double
Dim g As Double
Dim i As Integer
For i = 1 To 5000
a = Rnd()
b = Rnd()
g = Sqr(0.1) * Sqr(-2 * Log(a)) * Cos(2 * WorksheetFunction.Pi * b)
Range("A" & i).Value = g
Range("B" & i).Value = 10 * Exp(g)
Next
End Sub |
J'utilise l'algorithme usuel de génération de gaussienne et j'en prend l'exponentielle. Par théorème, la moyenne des exponentielles devrait être l'exponentielle de la moyenne des gaussiennes et donc 1.
Or, en calculant la moyenne des valeurs obtenues sur ma feuille excel, je trouve un résultat systématiquement supérieur à 10. Le plus souvent ~10.5, ce qui me paraît vraiment élevé pour être une simple erreur d'estimation ( surtout avec 5000 tirages).
Alors je me demande à quoi est du mon erreur ? Ma programmation, un arrondi malheureux, une exponentielle douteuse ?
Merci énormément et à bientôt !
Raphaël