Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program Python untuk mengira gamma logaritma bagi nombor tertentu

Program Python untuk mengira gamma logaritma bagi nombor tertentu

WBOY
WBOYke hadapan
2023-09-04 22:05:05931semak imbas

Program Python untuk mengira gamma logaritma bagi nombor tertentu

Dalam matematik, fungsi gamma dianggap sebagai pengembangan faktorial bagi sebarang nombor tertentu. Walau bagaimanapun, oleh kerana faktorial ditakrifkan hanya untuk nombor nyata, fungsi gamma berada di luar skop menentukan faktorial untuk semua nombor kompleks kecuali integer negatif. Ia diwakili oleh -

Γ(x) = (x-1)!

Fungsi gamma logaritma timbul kerana fungsi gamma hanya berkembang dengan cepat pada bilangan yang lebih besar, jadi penggunaan logaritma kepada gamma akan melambatkannya dengan banyak. Ia juga dikenali sebagai gamma logaritma semula jadi bagi nombor tertentu.

log(Γ(x)) = log((x-1)!)

Dalam bahasa pengaturcaraan Python, seperti bahasa pengaturcaraan lain, fungsi log-gamma dikira menggunakan fungsi math.lgamma(). Walau bagaimanapun, kami juga akan melihat beberapa cara lain untuk mengira log gamma nombor dalam artikel ini.

Senario input dan output

Mari kita lihat beberapa senario input-output untuk mencari fungsi log-gamma menggunakan kaedah math.lgamma().

Anggap bahawa input kepada fungsi log gamma ialah integer positif -

Input: 12
Result: 17.502307845873887

Anggap bahawa input kepada fungsi log gamma ialah integer negatif -

Input: -12
Result: “ValueError: math domain error”

Anggap bahawa input kepada fungsi log gamma adalah sifar -

Input: 0
Result: “ValueError: math domain error”

Anggap bahawa input kepada fungsi log gamma ialah nilai perpuluhan negatif yang hampir dengan sifar -

Input: -0.2
Result: 1.761497590833938

Anda mendapat ralat domain apabila menggunakan kaedah lgamma() kerana fungsi ditakrifkan untuk semua nombor kompleks tolak negatif "integer". Mari lihat pelbagai cara untuk mencari gamma log bagi nombor yang diberikan.

Gunakan fungsi math.lgamma()

Kaedah

lgamma() ditakrifkan dalam pustaka matematik dan mengembalikan nilai gamma logaritma asli bagi nombor tertentu. Sintaks kaedah ini ialah -

math.lgamma(x)

di mana x ialah sebarang nombor kompleks kecuali integer negatif.

Contoh

Contoh Python menggunakan fungsi math.lgamma() untuk mencari log gamma adalah seperti berikut -

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

Output

Keluaran kod python di atas ialah -

12.801827480081467
1.5791760340399836
1.0923280598027416

Gunakan fungsi math.gamma() dan math.log()

Dalam pendekatan lain, gamma logaritma sesuatu nombor boleh didapati dengan mencari gamma nombor itu menggunakan fungsi math.gamma(), dan kemudian menggunakan untuk menggunakan logaritma pada nilai gamma. b>math.log() fungsi. Di sini, kita hanya memecahkan fungsi lgamma() kepada beberapa langkah.

Contoh

Pelaksanaan python bagi proses di atas adalah seperti berikut -

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

Output

Output yang diperolehi adalah seperti berikut -

12.801827480081469
1.5791760340399839
1.0923280598027414

Dengan menggunakan logaritma kepada faktorial nombor

Cara yang lebih mudah ialah mencari pemfaktoran bagi nombor tertentu, kerana fungsi gamma ditakrifkan sebagai pemfaktoran bagi nombor kompleks, dan mengira pemfaktoran dengan menggunakan logaritma padanya menggunakan kaedah math.log().

Contoh

Dalam contoh Python ini, kita dapati gamma logaritma nombor menggunakan kaedah faktorial dan math.log(). Satu-satunya kelemahan menggunakan kaedah ini ialah ia hanya berfungsi dengan integer positif.

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

Output

Keluaran ialah -

12.801827480081469
0.6931471805599453
RecursionError: maximum recursion depth exceeded in comparison

Atas ialah kandungan terperinci Program Python untuk mengira gamma logaritma bagi nombor tertentu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam