Il s'agit d'une librarie et des codes NUnit associés offrant des classes avec pour chacune:
- NextDouble : tirage d'un nombre aléatoire respectant la loi
- Mean : moyenne de la loi
- StandardDeviation : écart type de la loi
Petite précision : la loi normale est obtenue par utilisation du théorème central limite.
Conclusion :
Un exemple d'utilisation est fourni. Il utilise la librairie ZedGraph 1.0.1812.29779 (
http://zedgraph.sourceforge.net/). Par ailleurs, la librairie est développée sur SharpDevelop 1.0.3 (
http://www.sharpdevelop.net/OpenSource/SD/).
Merci à eux...
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
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
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.