我正在嘗試計算復(fù)雜參數(shù)的Beta函數(shù)的值。該方法scipy.special.beta不接受復(fù)雜參數(shù),所以我定義了beta = lambda a, b: (gamma(a) * gamma(b)) / gamma(a + b)它適用于小值,但是,對于大值,它會返回nan. 所以我深入研究了Gamma函數(shù)的行為from scipy.special import gammaimport numpyradius = 165phi = (3.0 * numpy.pi) / 4.0n = 1.9 + numpy.exp(phi * 1j) * radiusprint gamma(n)0j將返回A并且顯然該值太小而無法打印。不過,雖然Gamma函數(shù)的值超小,但對應(yīng)的Beta函數(shù)的值并不完全。所以做計算還是有意義的。但我想不出辦法。我試過了math.gamma,但它不會接受復(fù)雜的論點。我想在此提供的方法的答案,它會返回-0j的n = 1.9 + numpy.exp(phi * 1j) * radiusnumpy.exp(numpy.log(gamma(n)) + numpy.log(gamma(0.5)) - numpy.log(gamma(n + 0.5)))我試圖計算beta(n, 0.5) 的地方。有人可以幫我解決這個問題嗎?提前致謝!
1 回答

largeQ
TA貢獻2039條經(jīng)驗 獲得超8個贊
我不了解 scipy,但您可以使用sympy來評估 beta 函數(shù)。它支持復(fù)雜的參數(shù)。本文檔可能會對此有所幫助。
因此,如果我理解正確,您的代碼大致如下所示:
from sympy.functions.special.beta_functions import beta
import numpy
radius = 165
phi = (3.0 * numpy.pi) / 4.0
n = 1.9 + numpy.exp(phi * 1j) * radius
print(beta(n, 0.5))
>>> 0.0534468376932947 - 0.127743871500741*I
添加回答
舉報
0/150
提交
取消