SciPy 积分

SciPy 积分

当一个函数不能用分析法进行积分,或很难用分析法进行积分时,人们通常会求助于数值积分方法。SciPy有许多执行数值积分的程序。它们中的大多数都在同一个 scipy.integration 库中找到。下表列出了一些常用的函数。

Sr No. 功能和描述
1 quad 单一积分
2 dblquad 双重积分
3 tplquad 三重积分
4 nquad n -fold multiple integration
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 )进行单次积分的默认选择。

int_{a}^{b} f(x)dx

quad 的一般形式是 scipy.integration.quad(f, a, b) , 其中 ‘f’ 是要积分的函数的名称。而’a’和’b’分别是下限和上限。让我们看一个高斯函数的例子,在0和1的范围内积分。

我们首先需要定义函数→f(x) = e^{-x^2} ,这可以用lambda表达式完成,然后对该函数调用quad方法。

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函数返回两个数值,其中第一个数字是积分值,第二个数值是对积分值的绝对误差的估计。

注意 --由于quad要求将函数作为第一个参数,我们不能直接将exp作为参数传递。四元函数接受正负无穷大作为极限。Quad函数可以对标准的预定义NumPy单变量函数进行积分,比如exp、sin和cos。

多重积分

双重积分和三重积分的力学原理已经被封装在函数 dblquad, tplquadnquad中。 这些函数分别对四个或六个参数进行积分。所有内部积分的极限需要被定义为函数。

双重积分

dblquad 的一般形式是 scipy.integration.dblquad(func, a, b, gfun, hfun) 。其中,func是要积分的函数的名称,’a’和’b’分别是x变量的下限和上限,而gfun和hfun是定义y变量的下限和上限的函数的名称。

作为一个例子,让我们进行双积分法。

$int_{0}^{1/2}dy\int_{0}^{sqrt{1-4y^2}}16xy16xy:dx

我们用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.integration还有一些其他的积分例程,包括执行n倍多次积分的nquad,以及其他实现各种积分算法的例程。然而,quad和dblquad将满足我们对数值积分的大部分需求。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程