SymPy - Интеграция

Пакет SymPy содержит модуль интегралов. В нем реализованы методы вычисления определенных и неопределенных интегралов выражений. Метод интегрировать () используется для вычисления как определенных, так и неопределенных интегралов. Чтобы вычислить неопределенный или примитивный интеграл, просто передайте переменную после выражения.

Например -

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. Следующие примеры вычисляют преобразование Фурье и преобразование Лапласа соответственно.

Example 1

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

При выполнении вышеуказанной команды в оболочке python будет сгенерирован следующий вывод:

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

Что эквивалентно -

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

Example 2

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

При выполнении вышеуказанной команды в оболочке python будет сгенерирован следующий вывод:

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