首頁 >後端開發 >Python教學 >Python程式計算給定數字的對數gamma

Python程式計算給定數字的對數gamma

WBOY
WBOY轉載
2023-09-04 22:05:05963瀏覽

Python程式計算給定數字的對數gamma

在數學中,伽瑪函數被認為是任何給定數字的階乘的擴展。然而,由於階乘僅針對實數定義,因此伽馬函數超出了對除負整數之外的所有複數定義階乘的範圍。它由 -

表示
Γ(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() 方法時會出現定義域錯誤,因為該函數是為所有複數減去負「整數」定義的。讓我們看看尋找給定數字的對數伽瑪的各種方法。

使用math.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()math.log()函數

在另一種方法中,可以透過先使用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中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除