SciPy集成 SciPy FFTpack SciPy插值 当一个函数不能被分析整合,或者很难分析整合时,通常会转向数值积分方法。SciPy有许多用于执行数值积分的例程。他们中的大多数都在同一个 scipy.integrate 库中。下表列出了一些常用功能。 Sr No. Function & Description 1 quad 单一集成 2 dblquad 双重整合 3 tplquad 三重整合 4 nquad n倍多重积分 5 fixed_quad 高斯积分,阶数n 6 quadrature 高斯正交到容差 7 romberg 隆伯格整合 8 trapz 梯形法则 9 cumtrapz 梯形法则累计计算积分 10 simps 辛普森的规则 11 romb 隆伯格整合 12 polyint 分析多项式积分(NumPy) 13 poly1d 辅助函数polyint(NumPy) 单积分 Quad函数是SciPy集成函数的主力。数值积分有时称为 正交积分 ,因此称为名称。它通常是在a到b给定的固定范围内执行函数 f(x)的 单个积分的默认选择。 ∫b一个F(x )dX∫abf(x)dx quad的一般形式是 scipy.integrate.quad(f,a,b) ,其中'f'是要整合的函数的名称。而'a'和'b'分别是下限和上限。让我们看一个高斯函数的例子,它的积分范围是0和1。 F(x )= e\- x2f(x)=e−x2 import scipy.integrate from numpy import exp f= lambda x:exp(-x**2) i = scipy.integrate.quad(f, 0, 1) print i 上述程序将生成以下输出。 (0.7468241328124271, 8.291413475940725e-15) 四元函数返回两个值,其中第一个数字是积分值,第二个数值是积分值绝对误差的估计值。 注 - 由于quad需要函数作为第一个参数,因此我们不能直接将exp作为参数传递。 Quad函数接受正和负无穷作为限制。Quad函数可以集成单个变量的标准预定义NumPy函数,如exp,sin和cos。 多重积分 双重和三重集成的机制已被包含到函数 dblquad,tplquad 和 nquad中 。这些函数分别集成了四个或六个参数。所有内积分的界限都需要定义为函数。 双积分 dblquad 的一般形式是scipy.integrate.dblquad(func,a,b,gfun,hfun)。其中,func是要整合函数的名称,'a'和'b'分别是x变量的下限和上限,而gfun和hfun是定义下限和上限的函数的名称y变量。 作为例子,让我们执行双重积分方法。 ∫1 / 20dÿ∫1 \- 4 ÿ2√016 x ydX∫01/2dy∫01−4y216xydx 我们使用lambda表达式定义函数f,g和h。请注意,即使g和h是常数,因为它们可能在很多情况下,它们必须定义为函数,正如我们在此处为下限所做的那样。 import scipy.integrate from numpy import exp from math import sqrt f = lambda x, y : 16*x*y g = lambda x : 0 h = lambda y : sqrt(1-4*y**2) i = scipy.integrate.dblquad(f, 0, 0.5, g, h) print i 上述程序将生成以下输出。 (0.5, 1.7092350012594845e-14) 除上述例程外,scipy.integrate还有许多其他的集成例程,其中包括执行n倍多重集成的nquad以及实现各种集成算法的其他例程。但是,quad和dblquad将满足我们对数值积分的大部分需求。 SciPy FFTpack SciPy插值