我正在尝试对依赖于E和x的函数的dE积分定积分,x是我稍后将使用的另一个参数。我定义了x的函数可以帮助我解决这个问题,但是它似乎不起作用。当我给新函数一个特定值(例如1或10)时,它总是返回0。这是我的代码:
%matplotlib inline
import matplotlib.pyplot as plt
from scipy.integrate import quad
import numpy as np
from numpy import pi
from numpy import arange
gg=100.0
ms=100.0
def integrand(E, xx):
return (gg/2*pi)*E*(E**2-ms**2)**(1/2)/(np.exp(E*xx*ms)-1)
def nn(x):
return quad(integrand, ms, np.inf, args=(x)) ## quad(funcion, lim inf, lim sup, args)
我需要的是稍后能够使用参数x作为变量来调用函数nn。
答案 0 :(得分:0)
您可以简单地定义函数外部的所有值:
from scipy.integrate import quad
import numpy as np
from numpy import pi
gg = 100.0
ms = 100.0
xx = 5.0
ms = 1.0
def integrand(E):
return (gg / 2 * pi) * E * (E ** 2 - ms ** 2) ** (1 / 2) / (np.exp(E * xx * ms) - 1)
val, err = quad(integrand, ms, np.inf)
print(val)
0.16712443596152543