如何创建依赖于值数组的函数?

时间:2017-09-18 01:10:06

标签: arrays python-3.x matplotlib

我要编码的函数是f(x)= beta /(pi *(x ^(2)+ beta ^(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 

1 个答案:

答案 0 :(得分: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>积分应始终为1如果您integrate it,则无论beta如何,此表达式均为0。我不确定为什么limit在那里或它应该来自哪里,所以我删除了它。如果beta为零,则函数在x = 0时未定义,您可能需要小心。