定积分的结果作为附加参数的函数

时间:2018-12-18 19:07:37

标签: python integrate

我正在尝试对依赖于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。

1 个答案:

答案 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