SymPy - Tích hợp
Gói SymPy chứa mô-đun tích phân. Nó thực hiện các phương pháp tính tích phân xác định và không xác định của biểu thức. Phương thức tích phân () được sử dụng để tính cả tích phân xác định và tích phân không xác định. Để tính một tích phân không xác định hoặc nguyên thủy, chỉ cần chuyển biến sau biểu thức.
Ví dụ -
integrate(f, x)
Để tính một tích phân xác định, hãy chuyển đối số như sau:
(integration_variable, lower_limit, upper_limit)
>>> from sympy import *
>>> x,y = symbols('x y')
>>> expr=x**2 + x + 1
>>> integrate(expr, x)
Đoạn mã trên cho kết quả tương đương với biểu thức bên dưới:
$\frac{x^3}{3} + \frac{x^2}{2} + x$
>>> expr=sin(x)*tan(x)
>>> expr
>>> integrate(expr,x)
Đoạn mã trên cho kết quả tương đương với biểu thức bên dưới:
$-\frac{\log(\sin(x) - 1)}{2} + \frac{\log(\sin(x) + 1)}{2} - \sin(x)$
Ví dụ về tích phân xác định được đưa ra dưới đây:
>>> expr=exp(-x**2)
>>> integrate(expr,(x,0,oo) )
Đoạn mã trên cho kết quả tương đương với biểu thức bên dưới:
$\frac{\sqrt\pi}{2}$
Bạn có thể vượt qua nhiều bộ giá trị giới hạn để thực hiện một phép tích phân. Dưới đây là một ví dụ:
>>> expr=exp(-x**2 - y**2)
>>> integrate(expr,(x,0,oo),(y,0,oo))
Đoạn mã trên cho kết quả tương đương với biểu thức bên dưới:
$\frac{\pi}{4}$
Bạn có thể tạo tích phân không đánh giá bằng đối tượng Tích phân, đối tượng này có thể được đánh giá bằng cách gọi phương thức doit ().
>>> expr = Integral(log(x)**2, x)
>>> expr
Đoạn mã trên cho kết quả tương đương với biểu thức bên dưới:
$\int \mathrm\log(x)^2 \mathrm{d}x$
>>> expr.doit()
Đoạn mã trên cho kết quả tương đương với biểu thức bên dưới:
$x\log(x)^2 - 2xlog(x) + 2x$
Chuyển đổi tích phân
SymPy hỗ trợ nhiều loại biến đổi tích phân như sau:
- laplace_transform
- fourier_transform
- sine_transform
- cosine_transform
- hankel_transform
Các chức năng này được định nghĩa trong mô-đun precision.integrals.transforms. Các ví dụ sau đây tính toán biến đổi Fourier và biến đổi Laplace tương ứng.
Example 1
>>> from sympy import fourier_transform, exp
>>> from sympy.abc import x, k
>>> expr=exp(-x**2)
>>> fourier_transform(expr, x, k)
Khi thực hiện lệnh trên trong python shell, kết quả sau sẽ được tạo:
sqrt(pi)*exp(-pi**2*k**2)
Tương đương với -
$\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)
Khi thực hiện lệnh trên trong python shell, kết quả sau sẽ được tạo:
(s**(-a)*gamma(a + 1)/s, 0, re(a) > -1)