Rumah > Artikel > pembangunan bahagian belakang > 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.
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.
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 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))
Keluaran kod python di atas ialah -
12.801827480081467 1.5791760340399836 1.0923280598027416
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.
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 yang diperolehi adalah seperti berikut -
12.801827480081469 1.5791760340399839 1.0923280598027414
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().
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))
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!