积分
SciPy提供了许多用于执行数值积分(定积分)的函数,其中大部分都位于scipy.integrate
子包中。以下介绍几个比较常用的积分函数。
scipy.integrate.quad(f, a, b)
,单定积分函数,其公式形式为\(\int_{a}^{b}f(x)dx\)。
其中f
是要积分的函数名称,可以是Lambda表达式;a
和b
分别是定积分的下限和上限,传递给单积分函数的上限与下限可以是正无穷和负无穷。例如计算以下定积分
$$\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
是要积分的函数名称,a
和b
是变量$x$的下限和上限,而g
和h
则是定义变量$y$的下限和上限的函数名称。
例如计算双重定积分\(\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的文档,其基本使用方法与单定积分和双重定积分相似,只是参数更多。