LOIS ALÉATOIRES UNIFORME, EXPONENTIELLE ET NORMALE

Arthenius Messages postés 1182 Date d'inscription mercredi 21 janvier 2004 Statut Membre Dernière intervention 6 septembre 2011 - 17 janv. 2005 à 10:29
Darmarius Messages postés 1 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 24 novembre 2007 - 24 nov. 2007 à 04:42
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28896-lois-aleatoires-uniforme-exponentielle-et-normale

Darmarius Messages postés 1 Date d'inscription samedi 24 novembre 2007 Statut Membre Dernière intervention 24 novembre 2007
24 nov. 2007 à 04:42
Je crois que je peux répondre à tes questions:
1. NB_LAW = 100:
champommier utilise le théorème limite central pour simuler sa loi gaussienne (ou normale). Le TLC dit que lorsque l'on additionne plusieurs loi indépendante, la loi résultante est une gaussienne lorsque le nombre de loi tend vers l'infini. Il a donc décidé d'additionner 100 loi uniforme pour créer sa loi gaussienne. Un statisticien d'application aurait choisi 5 comme chiffre, puisqu'il sait que c'est amplement suffisant pour obtenir une gaussienne à partir de lois uniformes. champommier a probablement choisi d'y aller pour un chiffre beaucoup plus gros puisqu'il n'a aucune idée de l'implémentation de la classe Random (dont sa loi uniforme dépend) et ainsi s'assurer d'une loi gaussienne.

2. rnd.StandardDeviation = value * Math.Sqrt(NB_LAW);
encore une fois c'est à cause du TLC. Lorsque l'on additionne n loi uniforme de moyenne u et d'écart-type o pour former une gaussienne, la loi gaussienne résultante sera de moyenne u et d'écart-type o/Sqrt(n), en tout cas c'est ce que je suppose.

3.a = currentMean - Math.Sqrt(3) * value;
il a juste joué avec les définitions de la moyenne et de l'écart-type pour une loi uniforme. On sait que:moyenne u (a+b)/2écart-type o (b-a)/Sqrt(12)
donc, en isolant a dans les deux équation, on a:
a = 2*u - b à l'aide de l'équation de la moyenne
a = b - Sqrt(12)*o à l'aide de l'équation de l'écart-type
2*u - b = b - Sqrt(12)*o
2*u + Sqrt(12) = 2b
u + Sqrt(12/4) = b
u + Sqrt(3) = b
et inversement pour a.

J'espère que j'ai été compréhensible
D
fabianus Messages postés 1 Date d'inscription samedi 6 juillet 2002 Statut Membre Dernière intervention 19 février 2007
19 févr. 2007 à 13:17
Salut champommier,

Merci pour le projet « LOIS ALÉATOIRES UNIFORME, EXPONENTIELLE ET NORMALE ». Il est très intéressant et j'essai de comprendre? mais il y a trois points sur lesquelles je sèche quant à la loi normale. Je te serais très reconnaissant pour un petit coup de pousse?

Pourquoi NB_LAW dans la class NormalLaw est toujours égale à 100, il y a-t-il une raison précise pour avoir choisi ce nombre et non pas un autre ?
const int NB_LAW=100; dans class NormalLaw

Pourquoi StandardDeviation est setté en étant multiplié par la racine carrée du nombre de laws ?
rnd.StandardDeviation = value * Math.Sqrt(NB_LAW);

Pourquoi est-ce que dans la définition des bornes a et b dans la class UniformLaw on multipli par la racine carrée de 3 ?
double currentMean = Mean;
a = currentMean - Math.Sqrt(3) * value;
b = currentMean + Math.Sqrt(3) * value;

Merci beaucoup pour ton aide.
Salutations,
Fabian
Rejoignez-nous