Maison  >  Article  >  développement back-end  >  Programme Python pour calculer le gamma logarithmique d'un nombre donné

Programme Python pour calculer le gamma logarithmique d'un nombre donné

WBOY
WBOYavant
2023-09-04 22:05:05862parcourir

Programme Python pour calculer le gamma logarithmique dun 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.

Scénarios d'entrée et de sortie

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é.

Utilisez la fonction math.lgamma()

La méthode

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.

Exemple

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))

Sortie

La sortie du code python ci-dessus est -

12.801827480081467
1.5791760340399836
1.0923280598027416

Utilisez les fonctions math.gamma() et math.log()

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.

Exemple

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))

Sortie

Le résultat obtenu est le suivant -

12.801827480081469
1.5791760340399839
1.0923280598027414

En appliquant des logarithmes à la factorielle d'un nombre

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().

Exemple

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))

Sortie

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer