2017-09-18 80 views
0

,我想代码的函数为f(X)=测试/(PI *(X ^(2)+的β^(2)) 为测试值0,10,20,50,100如何创建一个依赖于数组值的函数?

所以我想这个功能在从负无穷x的到无穷远的范围内进行整合。我有下面的代码的基础,但我不能确定如何通过传递一个数组的测试版。

感谢您的帮助!

from scipy.integrate import quad 
from sympy import Symbol 
from math import pi 
import numpy as np 
import matplotlib.pyplot as plt 

def integrand(x): 
    return limit(beta/(np.pi*(x**2 + beta**2))); 
xlo = '-inf' 
xhi = 'inf' 
result = quad(integrand, xlo, xhi, args=(beta)) 
print result 
+0

'导入scipy as quad'?你不是指从scipy.integrate import quad'吗? – saintsfan342000

回答

0

试试这个:

from scipy.integrate import quad 
from math import pi 
import numpy as np 

def integrand(x, beta): 
    return beta/(np.pi*(x**2 + beta**2)) 

for beta in [0., 1., 10., 20., 50., 100.]: 
    xlo = -np.inf 
    xhi = np.inf 
    result = quad(integrand, xlo, xhi, args=(beta)) 
    print('beta: {}, result: {}, error estimate: {}'.format(beta, *result)) 

如果此表达式的beta> 0,积分应该始终为1,不管beta是多少,如果integrate it。我不知道为什么limit在那里,或者它应该来自哪里,所以我把它删除了。如果beta为零,那么函数在x = 0时是未定义的,您可能需要小心。

相关问题