Я реализую некоторые математические формулы в Python и получаю следующую ошибку при использовании mpmath.nsum()
TypeError: ufunc 'gamma' не поддерживается для типов ввода, и входы не могутбыть безопасно приведенным к любым поддерживаемым типам в соответствии с правилом приведения «safe»
основной файл
import math
from mpmath import nsum
H_n = - nsum(lambda n: P_n(a,b,c,n)*math.log(P_n(a,b,c,n)), [0, math.inf])
файл функции
import math
from scipy.special import gamma, hyp1f1
def P_n(a,b,c,n):
P = ((gamma(b)*gamma(a+n))/(gamma(a)*gamma(b+n)))*(hyp1f1(a+n,b+n,-c))
return P
Когда яиспользуйте цикл for ниже, я получаю ответы, которые я хочу.
sum = 0.0
for n in range(100):
sum += rna.P_n(a,b,c,n)*math.log(rna.P_n(a,b,c,n))
Любая помощь, пожалуйста?(Примечание: я абсолютный новичок в Python, поэтому не знаю, как решить эту проблему)