Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL pour MAC Génération de nombres suivant une loi lognormale

Clement345

XLDnaute Nouveau
Bonjour à tous,
Dans le cadre de mon mémoire, je cherche à générer une série de nombres qui suivraient une loi lognormale sur excel ayant pour paramètres une moyenne et 2 bornes.
Exemple : générer une série de nombres avec une une moyenne de x % et ayant des valeurs comprises entre X et Y.
Quelqu'un pourrait m'éclairer ?
Merci,
Clément
 

Dranreb

XLDnaute Barbatruc
Bonsoir.
Des nombres suivant une loi log-normale n'ont pas de borne supérieure.
Cette fonction perso renvoie 1 ou 2 nombres en distribution normale à partir de deux nombre en distribution uniforme 0 à 1 :
VB:
Function DistrN(ByVal Rnd1 As Double, ByVal Rnd2 As Double, ByVal ÉTyp As Double, ParamArray Moy() As Variant) As Variant
   Rnd1 = Sqr(-2 * Log(Rnd1)) * ÉTyp: Rnd2 = Rnd2 * Pi×2
   If UBound(Moy) = 1 Then
   DistrN = Array(Moy(0) + Rnd1 * Cos(Rnd2), Moy(1) + Rnd1 * Sin(Rnd2))
   Else: DistrN = Moy(0) + Rnd1 * Cos(Rnd2): End If
   End Function
En en prenant l'exponentielle vous l'aurez en distribution log-normale.
L'écart type et la moyenne à spécifier sont ceux du logarithme du nombre à produire, non de ce dernier.

Maintenant si vous voulez absolument du borné, j'ai une fonction plus simple n'utilisant qu'un seul Rnd de distribution quasi normale :
VB:
Function DistrQsN(ByVal Rnd0à1 As Double, ByVal Moyenne As Double, ByVal ÉcartType As Double) As Double
   Rem. Distribution quasi normale à part que le nombre engendré ne fuira la moyenne de plus de 4 fois l'écart type
   DistrQsN = (Rnd0à1 ^ 0.18148 - (1 - Rnd0à1) ^ 0.18148) * 4 * ÉcartType + Moyenne
   End Function
Function DistrQsNMnMx(ByVal Rnd0à1 As Double, ByVal Mini As Double, ByVal Maxi As Double) As Double
   DistrQsNMnMx = DistrQsN(Rnd0à1, (Mini + Maxi) / 2, (Maxi - Mini) / 8)
   End Function
Pareil, vous pouvez en prendre une exponentielle.
 
Dernière édition:

Discussions similaires

Réponses
9
Affichages
335
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…