我尝试使用python计算积分,代码如下:
def findint(k, x, g, n, q, s):
f = lambda t, m: ((m*gamma(k)*gamma(t-k)*gamma(n)*gamma(t-n))/(gamma(m)*gamma(k-m)*gamma(n-m)*gamma(t-k-n+m)*gamma(t)*math.sqrt(2*math.pi)*x*s))*math.exp(-0.5*((t-x*q)/(x*s))**2)
i=integrate.dblquad(f, 0, k, lambda m: n, lambda m: np.inf)
return i
x = 80
g = 250
n = g*x
q = 300
s = 7
k=250
print(findint(k, x, g, n, q, s))
但是,当我尝试运行代码时,会出现以下错误:
invalid value encountered in double_scalars
f = lambda t, m: ((m*gamma(k)*gamma(t-k)*gamma(n)*gamma(t-n))/(gamma(m)*gamma(k-m)*gamma(n-m)*gamma(t-k-n+m)*gamma(t)*math.sqrt(2*math.pi)*x*s))*math.exp(-0.5*((t-x*q)/(x*s))**2)
(nan, 0)
函数分母中的数字似乎非常小,如果这样做,系统会认为我试图除以0(如果您认为有其他错误解释,请纠正我)。如何避免这种情况并计算积分
提前谢谢
目前没有回答
相关问题 更多 >
编程相关推荐