使用scipy.integrate.quad集成gamma功能

时间:2015-11-22 18:00:53

标签: python scipy integration gamma-function

a = 3/2使用scipy.integrate.quad时如何找到import numpy as np import math as m import matplotlib.pyplot as plt from math import exp from scipy import * import scipy.integrate def f(a): return x**(a-1)*exp(-x) a = 3/2 print scipy.integrate.quad(f(a), 0, inf) 从0到无穷大的积分?

到目前为止,我已尝试过一些代码,但我被告知" quad:第一个参数不可调用"。

这是我使用的代码:

$.ajax({
    ...
    data : { email : resource[0] }
    ...
});

1 个答案:

答案 0 :(得分:1)

您可以定义fa采用参数,如下所示:

def f(x, a):
    return x**(a-1) * np.exp(-x)

请注意f将第一个参数设为x是必要的,因为这是我们要进行整合的变量。

要进行整合,您可以使用af的值传递给args

>>> a = 3./2
>>> scipy.integrate.quad(f, 0, np.inf, args=a)
(0.8862269254536111, 9.077554263825505e-10)

其他几点:

  • 您的原始错误是由于quad需要一个函数(或可调用)对象作为其第一个参数。编写f(...)会传递函数返回的值,而不是函数对象本身。
  • 在Python 2中,表达式3/2将给出整数1,而不是float 1.5。你需要使其中一个数字成为一个浮点数来触发真正的除法(Python 3没有这个问题)。