Я пытаюсь вычислить значение функции Beta для сложного аргумента. Метод scipy.special.beta
не принимает сложный аргумент, поэтому я определил вместо него
beta = lambda a, b: (gamma(a) * gamma(b)) / gamma(a + b)
Отлично работает для небольших значений, однако для больших значений вернет nan
. Так что я копался в поведении Гамма функция
from scipy.special import gamma
import numpy
radius = 165
phi = (3.0 * numpy.pi) / 4.0
n = 1.9 + numpy.exp(phi * 1j) * radius
print gamma(n)
A 0j
будет возвращено, и, очевидно, значение слишком мало для печати.
Однако, хотя значение функции Gamma очень мало, значение соответствующей функции Beta не совсем. Так что все равно имеет смысл сделать расчет. Но я не мог найти способ.
Я пытался math.gamma
, но он не принял сложный аргумент. Я попробовал метод, представленный в этом ответе , он вернул бы -0j
для
n = 1.9 + numpy.exp(phi * 1j) * radius
numpy.exp(numpy.log(gamma(n)) + numpy.log(gamma(0.5)) - numpy.log(gamma(n + 0.5)))
где я пытался вычислить бета (n, 0,5) .
Может кто-нибудь помочь мне в этом вопросе? Заранее спасибо!