在数学中,伽玛函数被认为是任何给定数字的阶乘的扩展。然而,由于阶乘仅针对实数定义,因此伽马函数超出了对除负整数之外的所有复数定义阶乘的范围。它由 –
表示
Γ(x) = (x-1)!
登录后复制
对数伽玛函数出现,因为伽玛函数仅在较大的数字上快速增长,因此对伽玛应用对数会使其速度减慢很多。它也称为给定数字的自然对数 gamma。
log(Γ(x)) = log((x-1)!)
登录后复制
在Python编程语言中,与其他编程语言一样,对数伽玛函数是使用math.lgamma()函数计算的。不过,我们还将在本文中研究几种其他方法来计算数字的对数伽玛。
输入输出场景
让我们看看一些输入输出场景,以使用 math.lgamma() 方法查找对数伽玛函数。
立即学习“Python免费学习笔记(深入)”;
假设对数 gamma 函数的输入是正整数 –
Input: 12Result: 17.502307845873887
登录后复制
假设对数 gamma 函数的输入是负整数 –
Input: -12Result: “ValueError: math domain error”
登录后复制
假设对数 gamma 函数的输入为零 –
Input: 0Result: “ValueError: math domain error”
登录后复制
假设对数 gamma 函数的输入是接近于零的负十进制值 –
Input: -0.2Result: 1.761497590833938
登录后复制
使用 lgamma() 方法时会出现定义域错误,因为该函数是为所有复数减去负“整数”定义的。让我们看看寻找给定数字的对数伽玛的各种方法。
使用math.lgamma()函数
lgamma() 方法在数学库中定义,返回给定数字的自然对数 gamma 值。该方法的语法是 –
math.lgamma(x)
登录后复制
其中 x 是除负整数之外的任何复数。
示例
使用 math.lgamma() 函数求 log gamma 的 Python 示例如下 –
# import math libraryimport math#log gamma of positive integerx1 = 10print(math.lgamma(x1))#log gamma of negative complex numberx2 = -1.2print(math.lgamma(x2))#log gamma of a positive complex numberx3 = 3.4print(math.lgamma(x3))
登录后复制
输出
上述 python 代码的输出为 –
12.8018274800814671.57917603403998361.0923280598027416
登录后复制
使用 math.gamma()和math.log()函数
在另一种方法中,可以通过首先使用 math.gamma() 函数查找数字的伽玛,然后使用 对伽玛值应用对数来找到数字的对数伽玛。 b>math.log() 函数。在这里,我们只是将 lgamma() 函数分解为多个步骤。
示例
上述过程的 python 实现如下 –
# import math libraryimport math#log gamma of positive integerx1 = math.gamma(10)print(math.log(x1))#log gamma of negative complex numberx2 = math.gamma(-1.2)print(math.log(x2))#log gamma of a positive complex numberx3 = math.gamma(3.4)print(math.log(x3))
登录后复制
输出
获得的输出如下 –
12.8018274800814691.57917603403998391.0923280598027414
登录后复制
通过对数字的阶乘应用对数
更简单的方法是找到给定数字的阶乘,因为 gamma 函数被定义为复数的阶乘,并使用 math.log() 方法对其应用对数计算阶乘。
示例
在这个 Python 示例中,我们使用阶乘和 math.log() 方法查找数字的对数 gamma。使用此方法的唯一缺点是它仅适用于正整数。
# import math libraryimport mathdef factorial(n): if n == 1: return 1 else: return n*factorial(n-1)#log gamma of positive integerx1 = 10y1 = factorial(x1-1)print(math.log(y1))x2 = 3y2 = factorial(x2-1)print(math.log(y2))#log gamma of a positive complex numberx3 = 3.4y3 = factorial(x3-1)print(math.log(y3))
登录后复制
输出
输出为 –
12.8018274800814690.6931471805599453RecursionError: maximum recursion depth exceeded in comparison
登录后复制
以上就是Python程序计算给定数字的对数gamma的详细内容,更多请关注【创想鸟】其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。
发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2225247.html