Aller au contenu principal

Qu'est-ce que la fonction LNGAMMA ?

Définition
La fonction LNGAMMA calcule le logarithme naturel de la fonction gamma pour une valeur x strictement positive. Elle permet de travailler avec des valeurs de gamma très grandes sans déclencher d'erreur de débordement.

LNGAMMA (même nom en anglais : GAMMALN) te sert de porte de sortie quand un calcul de factorielle ou de coefficient binomial explose bien avant que tu obtiennes ton résultat. Tu passes par le logarithme pour rester dans des valeurs manipulables, puis tu additionnes ou soustrais au lieu de multiplier et diviser des nombres à des centaines de chiffres.

Elle évite les débordements de calcul qui bloqueraient ta feuille Excel avec la fonction GAMMA classique. Indispensable pour les data scientists (modèles bayésiens), les analystes quantitatifs (vraisemblance logarithmique), les actuaires (tables de mortalité) et les chercheurs en physique (coefficients binomiaux géants).

Syntaxe

=LNGAMMA(x)

Clique sur un argument pour aller à son explication.

Lucas, la mascotte du Dojo, inspecte les arguments de la fonction à la loupe

Comprendre chaque paramètre de la fonction LNGAMMA

1

x

: le nombre dont tu veux calculer le logarithme naturel de la fonction gamma

Il doit être strictement positif. Tu peux fournir une valeur numérique directe (comme 5 ou 0,5) ou une référence à une cellule contenant un nombre.

Exemple : =LNGAMMA(A2) calcule le logarithme naturel de gamma pour la valeur de la cellule A2. Si A2 contient 5, le résultat sera LN(4!) = LN(24)3,18.

Attention : Si tu passes un nombre négatif ou zéro à LNGAMMA, Excel retourne #NOMBRE!. La fonction gamma n'est définie que pour les valeurs positives. Utilise =SI(A1>0; LNGAMMA(A1); "Erreur") si tes données peuvent contenir des valeurs non positives.

Lucas, la mascotte du Dojo, fait une démonstration pas à pas de la fonction dans Excel

Exemples pratiques pas à pas

Exemple 1

Comment calculer le logarithme naturel de la fonction gamma avec la fonction LNGAMMA

Tu reprends une densité de loi Beta écrite en notation mathématique, où les constantes de normalisation sont posées en Γ et pas en factorielles, et tu dois l'évaluer ligne par ligne dans ta feuille. Chaque calcul apporte son paramètre, et il te faut le logarithme de Γ en face pour enchaîner sur la vraisemblance sans que les valeurs intermédiaires explosent en route. La fonction LNGAMMA rend ce logarithme directement, sans jamais passer par la valeur de Γ elle-même.

Les étapes
  1. 1
    Dans une cellule, écris =LNGAMMA(.
  2. 2
    En 1er argument : clique sur la cellule qui porte le nombre dont tu veux le logarithme de Γ, B2. Elle affiche 5 sur la première ligne. Cet argument doit rester strictement positif, sans quoi la fonction renvoie #NOMBRE!.
  3. 3
    Ferme la parenthèse et appuie sur Entrée, puis recopie la formule vers le bas. Sur un entier, Γ(n) vaut (n-1)!, ce que confirme la ligne 3, qui rend 0,6931, soit LN(2) et non LN(6).
Au final, ta formule devrait ressembler à ça :=LNGAMMA(B2)
Explication
La fonction LNGAMMA ne calcule jamais Γ avant d'en prendre le logarithme, et c'est tout son intérêt : elle rend 3,1781, qui est LN(24), sans que 24 apparaisse nulle part. Sur un argument aussi petit que 5 le détour ne se verrait pas, mais c'est ce chemin direct qui lui permet de tenir là où la valeur de Γ ne tiendrait plus dans une cellule.
Exemple 2

Comment calculer le logarithme naturel d'une factorielle géante avec la fonction LNGAMMA

Tu compares des ordres de grandeur combinatoires sur des tailles qui vont de quelques unités à plusieurs milliers, et il te faut le logarithme de n! sur chaque ligne. Le calcul direct s'arrête net : au-delà de 170, la factorielle dépasse la plus grande valeur qu'Excel sache stocker et ta colonne se remplit d'erreurs, alors que son logarithme reste un nombre tout à fait ordinaire. La fonction LNGAMMA va chercher ce logarithme sans jamais former la factorielle qui pose problème.

Les étapes
  1. 1
    Dans une cellule, écris =LNGAMMA(.
  2. 2
    En 1er argument : clique sur la cellule qui porte n, B2, puis complète par +1. Ce +1 fait passer de Γ à la factorielle, parce que LNGAMMA(n+1) rend LN(n!) là où LNGAMMA(n) s'arrêterait à LN((n-1)!).
  3. 3
    Ferme la parenthèse et appuie sur Entrée, puis recopie vers le bas. La ligne 5 rend 4,7875, soit LN(120), tandis que les lignes 170, 171 et 1000 restent des nombres ordinaires là où un calcul de factorielle direct renvoie #NOMBRE! dès 171.
Voici la formule que tu obtiens à la fin :=LNGAMMA(B2+1)
Explication
Le +1 glissé dans l'argument est ce qui recale Γ sur la factorielle : puisque Γ(n) vaut (n-1)!, c'est bien LNGAMMA(n+1) qui rend LN(n!), donc 4,7875 est le logarithme de 120. La colonne continue ensuite sans broncher jusqu'à 1000, là où un calcul direct de factorielle rend #NOMBRE! dès 171.
Exemple 3

Comment calculer le logarithme d'un coefficient binomial avec la fonction LNGAMMA

Tu dois comparer le nombre de tirages possibles entre plusieurs protocoles d'échantillonnage, et ces nombres se comptent en dizaines puis en centaines de chiffres. Les comparer directement ne mène nulle part puisqu'aucun d'eux ne tient dans une cellule, alors que leurs logarithmes se rangent sagement entre 60 et 350 et se lisent d'un coup d'oeil. La fonction LNGAMMA construit ce logarithme terme à terme, sans jamais former les factorielles qui bloqueraient le calcul.

Les étapes
  1. 1
    Dans une cellule, écris =LNGAMMA(.
  2. 2
    En 1er argument : clique sur la cellule qui porte n, B2, puis complète par +1. Ce premier appel construit le numérateur LN(n!), où le +1 recale Γ sur la factorielle.
  3. 3
    Ferme la parenthèse, complète par -LNGAMMA(C2+1)-LNGAMMA(B2-C2+1), puis appuie sur Entrée. Ces deux appels se soustraient parce que diviser par k! puis par (n-k)! revient à retrancher leurs logarithmes, ce qui traduit C(n;k) = n! / (k! × (n-k)!) en additions et soustractions.
Une fois les morceaux assemblés, ta formule donne ça :=LNGAMMA(B2+1)-LNGAMMA(C2+1)-LNGAMMA(B2-C2+1)
Explication
Trois appels à la fonction LNGAMMA suffisent à traduire C(n;k) = n! / (k! × (n-k)!) en logarithmes, où chaque division devient une soustraction. Le résultat se contrôle sur la première ligne : EXP(66,7838) rend 1,0089E+29, exactement la valeur que rend COMBIN sur les mêmes 100 et 50. Sur la ligne 500, ce retour en arrière n'est plus possible, parce que le nombre visé compte 149 chiffres.
Lucas, la mascotte du Dojo, l'air gêné face à une erreur Excel

Les erreurs fréquentes avec la fonction LNGAMMA

Avec LNGAMMA, deux ennuis reviennent sans cesse, et le plus piégeux n'affiche même pas d'erreur. Comme GAMMA(n) = (n-1)!, LNGAMMA(5) te donne LN(24) et non LN(120) : ce décalage d'un cran te file un résultat faux sans rien signaler. L'autre cas, lui, est franc : passe zéro ou un négatif et Excel te renvoie #NOMBRE!, car la fonction gamma n'est définie que pour les valeurs strictement positives.

Erreur #NOMBRE! avec un nombre négatif ou zéro

LNGAMMA n'accepte que les nombres strictement positifs. Une valeur inférieure ou égale à zéro déclenche #NOMBRE! car la fonction gamma n'est pas définie sur les entiers négatifs ou nuls.

Solution : Vérifie que ta cellule contient une valeur strictement positive avant d'appeler LNGAMMA. Utilise =SI(A1>0; LNGAMMA(A1); "Valeur non valide") si tes données peuvent contenir des zéros ou des négatifs.

Confusion entre LNGAMMA(n) et LN(n!)

Pour les entiers, GAMMA(n) = (n-1)!, pas n!. Donc LNGAMMA(5) = LN(4!) = LN(24) ≈ 3,18, pas LN(5!) = LN(120). Cette nuance d'un décalage d'un cran est la source d'erreur la plus classique.

Solution : Pour calculer LN(n!) avec LNGAMMA, utilise =LNGAMMA(n+1). Par exemple, =LNGAMMA(6) te donne LN(5!) = LN(120). Retiens : LNGAMMA(n) = LN((n-1)!), donc décale toujours d'un cran.

Confondre LNGAMMA et LN(GAMMA(x))

Pour les petits nombres, LNGAMMA(x) et LN(GAMMA(x)) donnent le même résultat. Mais pour les grands nombres, seul LNGAMMA fonctionne car GAMMA déborde avant que LN puisse s'appliquer.

Solution : Utilise toujours LNGAMMA directement. Pour x > 170, GAMMA(x) retourne #NOMBRE! et LN ne peut pas s'y appliquer. LNGAMMA gère correctement des valeurs bien au-delà de 170 sans débordement.

Lucas, la mascotte du Dojo, avec une ampoule, partage des astuces avancées

Astuces avancées avec LNGAMMA

1Astuce

Multiplie des gammas sans débordement en additionnant des LNGAMMA

Pour calculer le produit GAMMA(a) × GAMMA(b), passe par les logarithmes : LNGAMMA(a) + LNGAMMA(b) te donne LN(GAMMA(a) × GAMMA(b)). Tu récupères la vraie valeur avec =EXP(LNGAMMA(a) + LNGAMMA(b)) si le résultat reste dans les limites d'Excel.
Cette propriété des logarithmes transforme les multiplications en additions, ce qui stabilise tous les calculs impliquant plusieurs gamma.

2Astuce

Calcule des coefficients binomiaux pour n et k très grands

La formule =EXP(LNGAMMA(n+1) - LNGAMMA(k+1) - LNGAMMA(n-k+1)) te donne C(n,k) sans débordement, pour des valeurs de n bien au-delà de 170 où FACTORIELLE échoue.
Pour n > 300, le résultat lui-même déborde aussi dans EXP. Reste alors en log (sans le EXP) pour comparer des ordres de grandeur ou effectuer des ratios.

3Astuce

Densité de la loi beta en log pour les modèles bayésiens

La log-densité de la loi beta vaut LNGAMMA(α+β) - LNGAMMA(α) - LNGAMMA(β) + (α-1)*LN(x) + (β-1)*LN(1-x). Cette formule est le coeur des modèles bayésiens sur des proportions (taux de conversion, taux de défaut).
Travailler en log depuis le début évite tous les débordements intermédiaires même pour des α et β élevés.

Lucas, la mascotte du Dojo, compare deux fonctions Excel

LNGAMMA vs GAMMA vs FACTORIELLE vs LN

Choisis LNGAMMA dès que tes valeurs grimpent : au-delà de x > 170, GAMMA et FACTORIELLE débordent et renvoient #NOMBRE!, là où LNGAMMA reste stable. Garde GAMMA pour les petits x quand tu veux directement la valeur, et FACTORIELLE quand tu te limites à des entiers en combinatoire simple.

CritèreLNGAMMAGAMMAFACTORIELLELN
RésultatLN(Gamma(x))Gamma(x)n!Logarithme naturel
Grands nombres (x > 170)✅ Excellent❌ Déborde❌ Déborde⚠️ Selon l'entrée
Nombres décimaux✅ Oui✅ Oui❌ Entiers seulement✅ Oui
Stabilité numérique⭐⭐⭐⭐⭐⭐
Usage principalStatistiques avancées, bayésienCalculs directs (petits x)Combinatoire simpleTous logarithmes
Vrai ou faux ?
« LNGAMMA(5) vaut LN(5!). » Faux. Comme GAMMA(n) = (n-1)!, LNGAMMA(5) renvoie LN(4!) = LN(24), et non LN(120). Pour obtenir LN(n!), décale toujours d'un cran : LNGAMMA(n+1).
FAQ

Questions fréquentes

LNGAMMA retourne le logarithme naturel du résultat de GAMMA, ce qui permet de travailler avec des nombres beaucoup plus grands sans dépasser les limites d'Excel. Pour x > 170, GAMMA retourne #NOMBRE!, mais LNGAMMA fonctionne parfaitement. Pour les petits x, les deux fonctions sont reliées par LNGAMMA(x) = LN(GAMMA(x)).

Ressources

Pour aller plus loin

Continue sur ta lancée après la fonction LNGAMMA : la leçon associée, un modèle prêt à l'emploi et le guide pour progresser.

Tout voir