Python math.lgamma()方法

在数学中,伽马函数将阶乘函数扩展到复数 (a + bi) 和非负整数。它是由希腊字母Γ

Gamma function

自然对数指的是以一个数字的数学常数为基础的对数e 。这里,e 等于2.718281828459

Natural logarithm

Python包含一个内置模块,math ,使我们能够轻松地进行大量的数学运算。它支持各种数学运算和领域,如三角学和对数。

这个模块有执行伽马函数和自然对数的程序,即math.gamma(x)math.log(x)

非负数的自然对数gamma值是我们谈到的两个函数的综合体。我们可以使用math.lgamma() 来执行这个操作。

Natural logarithm Gamma function

语法

math.lgamma(x)

参数

类型 说明
x 浮点数 一个非负的整数和非零的值。注意,该值可以是负数,但不应该是整数。

返回

lgamma() 方法返回一个数值的伽马运算的绝对结果的自然对数。

例1:使用math.lgamma() 来获取一个数字的自然对数伽玛值

import math
print(math.lgamma(0.1))
print(math.lgamma(-0.1))
print(math.lgamma(-44.234))
print(math.lgamma(4800.345))
print(math.lgamma(0.0000001))
print(math.lgamma(1))
print(math.lgamma(-1.0000001))

输出:

2.2527126517342055
2.3689613327287886
-124.66184995040256
35886.18683992019
16.11809559323676
0.0
16.11809560809603

上面的 Python 代码计算了0.1,-0.1,-44.234,4800.345,0.0000001,1, 和-1.0000001 的自然对数伽玛值。注意,这些值都是非负整数且非零。

如果一个域外的值被提供给lgamma() 方法,它会引发一个ValueError 异常。此外,如果输入的不是一个数字,它会引发一个TypeError 异常。

例2:为一个零值返回一个ValueError

import math
print(math.lgamma(0))

输出:

Traceback (most recent call last):
  File "main.py", line 3, in <module>
    print(math.lgamma(0))
ValueError: math domain error

例3:对一个负整数值返回一个ValueError

import math
print(math.lgamma(-343))

输出:

Traceback (most recent call last):
  File "main.py", line 3, in <module>
    print(math.lgamma(-343))
ValueError: math domain error

上面的Python代码表明,lgamma() 方法的输入不能是一个负的整数或零;因此,该方法会引发ValueError 异常。

例4:为一个字符串值返回一个TypeError

import math
print(math.lgamma("this is a string!"))

输出:

Traceback (most recent call last):
  File "main.py", line 3, in <module>
    print(math.lgamma("this is a string!"))
TypeError: must be real number, not str

上面的Python代码将一个字符串作为输入;因此,lgamma() 方法引发了一个TypeError 异常。