scipy.integrate中提供了几种积分算法,使用help命令来获取该模块的简述
一般积分(quad)
quad提供了对一个函数一段距离(边界可以为正无穷或负无穷)内积分的功能。如下:对J2.5(x)函数在[0,4.5]范围内进行积分运算。
import scipy.integrate as integrate
import scipy.special as special
result = integrate.quad(lambda x: special.jv(2.5,x), 0, 4.5)
result=(1.1178179380783249, 7.8663172481899801e-09)
from numpy import sqrt, sin, cos, pi
I = sqrt(2/pi)*(18.0/27*sqrt(2)*cos(4.5) - 4.0/27*sqrt(2)*sin(4.5) +
sqrt(2*pi) * special.fresnel(3/sqrt(pi))[0])
>>>I=1.117817938088701
print(abs(result[0]-I))
1.03761443881e-11
quad的第一个参数是一个“可调用的”python对象(即函数,方法或类实例)。注意在这种情况下使用lambda函数作为参数。接下来的两个参数是集成的极限。返回值是一个元组,第一个元素保存积分的估计值,第二个元素保存误差的上限。注意,在这种情况下,该积分的真实值为
Si(x)是菲涅耳正弦积分。
如果被积分函数中有其他参数需要设定,我们可以通过以下方法来处理。例如:
from scipy.integrate import quad
def integr