Maison > Article > développement back-end > Programme Python pour calculer le gamma logarithmique d'un nombre donné
En mathématiques, la fonction gamma est considérée comme le développement de la factorielle d'un nombre donné. Cependant, puisque la factorielle n'est définie que pour les nombres réels, la fonction gamma dépasse le cadre de la définition de la factorielle pour tous les nombres complexes, à l'exception des entiers négatifs. Il est représenté par -
Γ(x) = (x-1)!
La fonction gamma logarithmique survient parce que la fonction gamma ne croît rapidement que pour des nombres plus grands, donc appliquer le logarithme au gamma le ralentira considérablement. Il est également connu sous le nom de logarithme naturel gamma d'un nombre donné.
log(Γ(x)) = log((x-1)!)
Dans le langage de programmation Python, comme dans d'autres langages de programmation, la fonction log-gamma est calculée à l'aide de la fonction math.lgamma(). Cependant, nous examinerons également quelques autres façons de calculer le log gamma d’un nombre dans cet article.
Examinons quelques scénarios d'entrée-sortie pour trouver la fonction log-gamma à l'aide de la méthode math.lgamma().
Supposons que l'entrée de la fonction log gamma soit un entier positif -
Input: 12 Result: 17.502307845873887
Supposons que l'entrée de la fonction log gamma soit un entier négatif -
Input: -12 Result: “ValueError: math domain error”
Supposons que l'entrée de la fonction log gamma soit nulle -
Input: 0 Result: “ValueError: math domain error”
Supposons que l'entrée de la fonction log gamma soit une valeur décimale négative proche de zéro -
Input: -0.2 Result: 1.761497590833938
Vous obtenez une erreur de domaine lorsque vous utilisez la méthode lgamma() car la fonction est définie pour tous les nombres complexes moins les « entiers » négatifs. Examinons différentes manières de trouver le log gamma d'un nombre donné.
lgamma() est définie dans la bibliothèque mathématique et renvoie la valeur gamma logarithmique naturelle d'un nombre donné. La syntaxe de cette méthode est -
math.lgamma(x)
où x est n'importe quel nombre complexe à l'exception des entiers négatifs.
L'exemple Python d'utilisation de la fonction math.lgamma() pour trouver le journal gamma est le suivant -
# import math library import math #log gamma of positive integer x1 = 10 print(math.lgamma(x1)) #log gamma of negative complex number x2 = -1.2 print(math.lgamma(x2)) #log gamma of a positive complex number x3 = 3.4 print(math.lgamma(x3))
La sortie du code python ci-dessus est -
12.801827480081467 1.5791760340399836 1.0923280598027416
Dans une autre approche, le gamma logarithmique d'un nombre peut être trouvé en trouvant d'abord le gamma du nombre à l'aide de la fonction math.gamma(), puis en utilisant pour appliquer le logarithme à la valeur gamma. Fonction b>math.log(). Ici, nous divisons simplement la fonction lgamma() en étapes.
L'implémentation python du processus ci-dessus est la suivante -
# import math library import math #log gamma of positive integer x1 = math.gamma(10) print(math.log(x1)) #log gamma of negative complex number x2 = math.gamma(-1.2) print(math.log(x2)) #log gamma of a positive complex number x3 = math.gamma(3.4) print(math.log(x3))
Le résultat obtenu est le suivant -
12.801827480081469 1.5791760340399839 1.0923280598027414
Un moyen plus simple consiste à trouver la factorielle d'un nombre donné, puisque la fonction gamma est définie comme la factorielle d'un nombre complexe, et à calculer la factorielle en lui appliquant le logarithme à l'aide de la méthode math.log().
Dans cet exemple Python, nous trouvons le gamma logarithmique d'un nombre en utilisant la factorielle et la méthode math.log(). Le seul inconvénient de cette méthode est qu’elle ne fonctionne qu’avec des entiers positifs.
# import math library import math def factorial(n): if n == 1: return 1 else: return n*factorial(n-1) #log gamma of positive integer x1 = 10 y1 = factorial(x1-1) print(math.log(y1)) x2 = 3 y2 = factorial(x2-1) print(math.log(y2)) #log gamma of a positive complex number x3 = 3.4 y3 = factorial(x3-1) print(math.log(y3))
La sortie est -
12.801827480081469 0.6931471805599453 RecursionError: maximum recursion depth exceeded in comparison
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!