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)
下面给出一个定积分的示例 −
>>> 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)