Darmarius
Messages postés1Date d'inscriptionsamedi 24 novembre 2007StatutMembreDernière intervention24 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és1Date d'inscriptionsamedi 6 juillet 2002StatutMembreDernière intervention19 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;
24 nov. 2007 à 04:42
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
19 févr. 2007 à 13:17
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