在數學中,伽瑪函數被認為是任何給定數字的階乘的擴展。然而,由於階乘僅針對實數定義,因此伽馬函數超出了對除負整數之外的所有複數定義階乘的範圍。它由 -
表示Γ(x) = (x-1)!
對數伽瑪函數出現,因為伽瑪函數只在較大的數字上快速成長,因此對伽瑪應用對數會使其速度減慢很多。它也稱為給定數字的自然對數 gamma。
log(Γ(x)) = log((x-1)!)
在Python程式語言中,與其他程式語言一樣,對數伽瑪函數是使用math.lgamma()函數計算的。不過,我們也將在本文中研究幾種其他方法來計算數字的對數伽瑪。
讓我們來看看一些輸入輸出場景,以使用 math.lgamma() 方法來尋找對數伽瑪函數。
假設對數 gamma 函數的輸入是正整數 -
Input: 12 Result: 17.502307845873887
假設對數 gamma 函數的輸入是負整數 -
Input: -12 Result: “ValueError: math domain error”
假設對數 gamma 函數的輸入為零 -
Input: 0 Result: “ValueError: math domain error”
假設對數 gamma 函數的輸入是接近零的負十進位值 -
Input: -0.2 Result: 1.761497590833938
使用 lgamma() 方法時會出現定義域錯誤,因為該函數是為所有複數減去負「整數」定義的。讓我們看看尋找給定數字的對數伽瑪的各種方法。
lgamma() 方法在數學庫中定義,傳回給定數字的自然對數 gamma 值。該方法的語法是 -
math.lgamma(x)
其中 x 是負整數以外的任何複數。
使用 math.lgamma() 函數求 log gamma 的 Python 範例如下 -
# 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))
上述 python 程式碼的輸出為 -
12.801827480081467 1.5791760340399836 1.0923280598027416
在另一種方法中,可以透過先使用math.gamma() 函數來找出數字的伽瑪,然後使用對伽瑪值應用對數來找到數字的對數伽瑪。 b>math.log() 函數。在這裡,我們只是將 lgamma() 函數分解為多個步驟。
上述過程的 python 實作如下 -
# 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))
獲得的輸出如下 -
12.801827480081469 1.5791760340399839 1.0923280598027414
更簡單的方法是找到給定數字的階乘,因為 gamma 函數被定義為複數的階乘,並使用 math.log() 方法對其應用對數計算階乘。
在這個 Python 範例中,我們使用階乘和 math.log() 方法來找出數字的對數 gamma。使用此方法的唯一缺點是它僅適用於正整數。
# 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))
輸出為 -
12.801827480081469 0.6931471805599453 RecursionError: maximum recursion depth exceeded in comparison
以上是Python程式計算給定數字的對數gamma的詳細內容。更多資訊請關注PHP中文網其他相關文章!