Sympy 简明教程
SymPy - Integration
SymPy 程序包包含 integrals 模块。它实现计算表达式的定积分和不定积分的方法。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 对象创建未计算的积分,而 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$
Integral Transforms
SymPy 支持各种类型的积分变换,如下所示 -
-
laplace_transform
-
fourier_transform
-
sine_transform
-
cosine_transform
-
hankel_transform
这些函数在 sympy.integrals.transforms 模块中定义。下列示例分别为计算傅里叶变换和拉普拉斯变换。
Example 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{\pi2k^2}$
Example 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)