SymPy - 集成

SymPy 包包含积分模块。 它实现了计算表达式的定积分和不定积分的方法。 integrate() 方法用于计算定积分和不定积分。 要计算不定积分或原始积分,只需在表达式后传递变量即可。

例如 −

integrate(f, x)

要计算定积分,按如下方式传递参数 −

(integration_variable, lower_limit, upper_limit)
>>> from sympy import * 
>>> x,y = symbols('x y') 
>>> expr=x**2 + x + 1 
>>> integrate(expr, x)

上面的代码片段给出了等同于下面表达式的输出 −

$\frac{x^3}{3} + \frac{x^2}{2} + x$

>>> expr=sin(x)*tan(x) 
>>> expr 
>>> integrate(expr,x)

上面的代码片段给出了等同于下面表达式的输出 −

$-\frac{\log(\sin(x) - 1)}{2} + \frac{\log(\sin(x) + 1)}{2} - \sin(x)$

The example of definite integral is given below −

>>> expr=exp(-x**2) 
>>> integrate(expr,(x,0,oo) )

上面的代码片段给出了等同于下面表达式的输出 −

$\frac{\sqrt\pi}{2}$

您可以传递多个极限元组来执行多重积分。 下面给出一个例子 −

>>> expr=exp(-x**2 - y**2)
>>> integrate(expr,(x,0,oo),(y,0,oo))

上面的代码片段给出了等同于下面表达式的输出 −

$\frac{\pi}{4}$

您可以使用 Integral 对象创建未评估的积分,可以通过调用 doit() 方法对其进行评估。

>>> expr = Integral(log(x)**2, x) 
>>> expr

上面的代码片段给出了等同于下面表达式的输出 −

$\int \mathrm\log(x)^2 \mathrm{d}x$

>>> expr.doit()

上面的代码片段给出了等同于下面表达式的输出 −

$x\log(x)^2 - 2xlog(x) + 2x$


积分变换

SymPy支持各种类型的积分变换如下 −

  • laplace_transform
  • fourier_transform
  • sine_transform
  • cosine_transform
  • hankel_transform

这些函数在 sympy.integrals.transforms 模块中定义。 以下示例分别计算傅立叶变换和拉普拉斯变换。

示例 1

>>> from sympy import fourier_transform, exp 
>>> from sympy.abc import x, k 
>>> expr=exp(-x**2) 
>>> fourier_transform(expr, x, k)

在 python shell 中执行上述命令,将生成以下输出 −

sqrt(pi)*exp(-pi**2*k**2)

这相当于 −

$\sqrt\pi * e^{\pi^2k^2}$

示例 2

>>> from sympy.integrals import laplace_transform 
>>> from sympy.abc import t, s, a 
>>> laplace_transform(t**a, t, s)

在 python shell 中执行上述命令,将生成以下输出 −

(s**(-a)*gamma(a + 1)/s, 0, re(a) > -1)