积分

SciPy提供了许多用于执行数值积分(定积分)的函数,其中大部分都位于scipy.integrate子包中。以下介绍几个比较常用的积分函数。

  • scipy.integrate.quad(f, a, b),单定积分函数,其公式形式为\(\int_{a}^{b}f(x)dx\)。

其中f是要积分的函数名称,可以是Lambda表达式;ab分别是定积分的下限和上限,传递给单积分函数的上限与下限可以是正无穷和负无穷。例如计算以下定积分

$$\int_{0}^{1}e^{-x^{2}}dx$$

可以参考以下示例。

import scipy.integrate
from numpy import exp
f = lambda x: exp(-x ** 2)
i = scipy.integrate.quad(f, 0, 1)
print(i)

quad()函数返回两个值,其中第一个值是积分值,第二个值为积分值绝对误差的估计值。

  • scipy.integrate.dblquad(f, a, b, g, h),双重定积分函数,其公式形式为\(\int_{a}^{b}dy\int_{g(y)}^{h(y)}f(x,y)dx\)。

其中f是要积分的函数名称,ab是变量$x$的下限和上限,而gh则是定义变量$y$的下限和上限的函数名称。

Warning

需要注意的是,即便是gh是常数,也必须要定义为函数形式。

例如计算双重定积分\(\int_{0}^{\frac{1}{2}}dy\int_{0}^{\sqrt{1-4y^2}}16xydx\)可以使用以下例程。

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)
  • scipy.integrate.tplquad(),三重定积分函数。
  • scipy.integrate.nquad(),多重定积分函数。

三重定积分和多重定积分两个函数的使用方法可以参考SciPy的文档,其基本使用方法与单定积分和双重定积分相似,只是参数更多。