SymPy là một thư viện Python mà chúng ta có thể thực hiện các phép toán tượng trưng. Lợi ích của SymPy trong nhiều lĩnh vực như đạo hàm, tích phân, vi phân, giải phương trình, phép toán ma trận và phép toán thống kê. Nó cũng có các chức năng hữu ích trong các lĩnh vực vật lý và hóa học
Trước tiên, hãy cài đặt thư viện SymPy của chúng tôi và các thư viện cần thiết khác
Hình-1-Cài đặt Sympy1. Hoạt động cơ bản
Để thực hiện một số phép toán cơ bản, trước tiên hãy xác định hai ký hiệu là x và y, sau đó hãy xem đầu ra của một số phép toán ký hiệu
Hình-2-Sympy-Symbols
Ngoài các ký hiệu cơ bản, SymPy cho phép tạo các ký hiệu như alpha, beta và theta
Hình-3-Sympy-Symbols-2
Bây giờ hãy xem cách biểu diễn tích phân được thực hiện
Hình-4-Tích phân Sympy
SymPy cũng cho phép chúng ta dễ dàng tạo các ký hiệu đạo hàm, giới hạn, tổng và nhân
Hình-5-Sympy-Derivative-Giới hạn-Tổng-Sản phẩm
Chúng ta cũng có thể tạo một hàm đẳng thức với Eq[]. Nếu chúng ta muốn xem kết quả của phép toán, chúng ta có thể sử dụng hàm doit[]. Một hàm hữu ích khác là hàm evalf[], cho phép chúng ta xác định có bao nhiêu chữ số cần tính. Để tạo một hàm, chúng ta có thể sử dụng Hàm[]
Hình-6-Sympy-Eq-evalf-doit
Các phép toán nhị thức và giai thừa cũng có thể thực hiện được với SymPy. Bây giờ hãy xem làm thế nào chúng ta có thể làm điều đó
Hình-7-Sympy-Binomial-Factorial2. Simplify[], Expand[],Factor[],Apart[] và Together[]
Simplify[] rút gọn một biểu thức toán học. Hãy làm cho điều này dễ hiểu hơn với các ví dụ
Hình-8-Sympy-Đơn giản hóa
thừa số [] chia các biểu thức đa thức thành các thừa số bất khả quy
Hình-9-Yếu tố Symy
hàm expand[] ngược lại với hàm thừa số [] và chia thành thừa số cho một biểu thức toán học
Hình-10-Sympy-mở rộng
Bây giờ chúng ta hãy xem các hàm together[] và apart[]
Hình-11-Sympy-together-apart3. Giải phương trình
Chúng ta có thể sử dụng hàm Solveset[] để giải các phương trình. Nếu chúng tôi muốn chỉ định một tên miền, chúng tôi có thể sử dụng tham số tên miền
Hình-12-Sympy-solveset
Chúng ta có thể sử dụng hàm linsolve[] cho phương trình tuyến tính và hàm nonlinsolve[] cho phương trình phi tuyến
Hình-13-Sympy-linsolve-nonlinsolve4. Hoạt động ma trận
Thư viện SymPy cho phép bạn dễ dàng thực hiện nhiều thao tác ma trận. Bây giờ chúng ta hãy xem một số trong số này
Hình-14-Hoạt động ma trận Sympy
Hình-15-Sympy-Matrix-Operations-2
Hình-16-Sympy-Matrix-Operations-35. Tạo đồ thị
Trong SymPy, chúng ta có thể dễ dàng tạo biểu đồ bằng hàm plot[]. Bây giờ hãy vẽ biểu đồ -x
Hình-17-Sympy-Tạo-Plot
Cũng có thể vẽ nhiều chức năng cùng một lúc
Hình-18-Sympy-Tạo-Plot-2
Bây giờ hãy vẽ hàm sigmoid, được sử dụng làm hàm kích hoạt trong mạng thần kinh nhân tạo
Hình-19-Sympy-Tạo-Plot-3
Chúng ta cũng có thể vẽ đồ thị ba chiều bằng SymPy. Bây giờ, hãy vẽ hàm sigmoid dưới dạng 3D
Hình-20-Sympy-Tạo-Plot-3D
Tất nhiên, thư viện SymPy không giới hạn ở những thứ này. Có rất nhiều thư viện đã được phát triển bằng SymPy cho các lĩnh vực như vật lý, hóa học và tối ưu hóa. Thông tin thêm về SymPy có thể được tìm thấy ở đây
Nếu bạn sử dụng Jupyter Notebook và muốn lưu công việc của mình dưới dạng tệp Word, bạn có thể lưu tệp của mình dưới dạng Markdown bằng cách làm theo Tệp>Tải xuống dưới dạng>Markdown[. md] và sau đó chuyển đổi nó sang Word tại đây
Trong toán ký hiệu, các ký hiệu được sử dụng để biểu diễn các biểu thức toán học. Dưới đây là một ví dụ về biểu thức toán học tượng trưng
$$ x^{2} + y^{2} = z $$
Trong biểu thức trên, chúng ta có các biến $x$, $y$ và $z$
Nếu chúng ta định nghĩa một biểu thức toán học tượng trưng thứ hai là
$$ x = a + b $$
Chúng ta có thể thay thế $a + b$ bằng $x$
Biểu thức kết quả là
$$ [a + b]^{2} + y^{2} = z $$$$ a^{2} + 2ab + b^{2} + y^{2} = z $$
Giải quyết $y$ theo $a$,$b$ và $z$, kết quả là
$$ y = \sqrt{z - a^{2} - 2ab - b^{2}} $$Nếu chúng ta có các giá trị số cho $z$, $a$ và $b$, chúng ta có thể sử dụng Python để tính giá trị của $y$
Tuy nhiên, nếu chúng ta không có các giá trị số cho $z$, $a$ và $b$, Python cũng có thể được sử dụng để sắp xếp lại các hạng của biểu thức và giải quyết biến $y$ theo các biến $z khác . Làm việc với các ký hiệu toán học theo cách lập trình, thay vì làm việc với các giá trị số theo cách lập trình, được gọi là toán ký hiệu
SymPy là một thư viện Python để làm việc với toán tượng trưng. Trước khi có thể sử dụng SymPy, nó cần được cài đặt. Quá trình cài đặt Sympy được thực hiện bằng Anaconda Prompt [hoặc thiết bị đầu cuối và pip] bằng lệnh
> conda install sympy
SymPy được bao gồm trong bản phân phối Anaconda của Python. Nếu bạn có bản phân phối Anaconda đầy đủ, bạn sẽ được thông báo rằng thư viện SymPy đã được cài đặt
Xác định các biến trong SymPy¶
Để xác định các biến toán học tượng trưng với SymPy, trước tiên hãy nhập hàm
x, y = symbols['x y']7 từ mô-đun SymPy
Trong 1]
from sympy import symbols
Các biến toán học tượng trưng được khai báo bằng hàm
x, y = symbols['x y']7 của SymPy. Lưu ý, các đối số được truyền cho hàm
x, y = symbols['x y']7 [tên biểu tượng] được phân tách bằng dấu cách, không có dấu phẩy và được bao quanh bởi dấu ngoặc kép. Đầu ra của hàm
x, y = symbols['x y']7 là các đối tượng biểu tượng SymPy. Các đối tượng đầu ra này được phân tách bằng dấu phẩy không có dấu ngoặc kép
Trong 2]
x, y = symbols['x y']
Giờ đây, các ký hiệu
expr = 2*x + y1 và
expr = 2*x + y2 đã được khởi tạo, có thể tạo một biểu thức toán học ký hiệu bằng cách sử dụng
expr = 2*x + y1 và
expr = 2*x + y2
Một biểu thức toán học ký hiệu là sự kết hợp của các biến toán học ký hiệu với các số và toán tử, chẳng hạn như
expr = 2*x + y5,
expr = 2*x + y6,
expr = 2*x + y7 và
expr = 2*x + y8. Các quy tắc Python tiêu chuẩn để làm việc với các số áp dụng trong các biểu thức toán học ký hiệu SymPy
Trong 3]
expr = 2*x + y
Sử dụng phương pháp
expr = 2*x + y9 để chèn một giá trị số vào một biểu thức toán học tượng trưng. Đối số đầu tiên của phương thức
expr = 2*x + y9 là đối tượng ký hiệu [biến] và đối số thứ hai là giá trị số. Trong biểu thức trên$$ 2x + y $$
Nếu chúng ta thay thế
$$ x = 2 $$Biểu thức kết quả là
$$ 2[2] + y $$$$ 4 + y $$Trong [4]
x, y = symbols['x y']8
Ra[4]
x, y = symbols['x y']9
Phương pháp
expr = 2*x + y9 không thay biến tại chỗ,
expr = 2*x + y9 chỉ hoàn thành thay thế một lần. Nếu chúng ta gọi
x, y = symbols['x y']83 sau khi phương thức
expr = 2*x + y9 được áp dụng, biểu thức
x, y = symbols['x y']83 ban đầu được trả về
Trong [5]
from sympy import symbols5
Ra[5]
from sympy import symbols6
Để thực hiện thay thế vĩnh viễn, một đối tượng biểu thức mới cần được gán cho đầu ra của phương thức
expr = 2*x + y9
Trong [6]
from sympy import symbols8
Ra[6]
x, y = symbols['x y']9
Các biến SymPy cũng có thể được thay thế thành các biểu thức SymPy
Trong [7]
from sympy import symbols0
Ra[7]
from sympy import symbols1
Thay thế phức tạp hơn cũng có thể được hoàn thành. Hãy xem xét những điều sau đây
$$ 2x + y $$thay thế trong
$$ y = 2x^2 + z^{-3} $$Kết quả trong
$$ 2x + 2x^2 + z^{-3} $$Trong [8]
from sympy import symbols2
Ra[8]
from sympy import symbols3
Một ví dụ thực tế hơn có thể liên quan đến một biểu thức lớn và một số thay thế biến
$$ n_0e^{-Q_v/RT} $$$$ n_0 = 3. 48 \times 10^{-6} $$$$ Q_v = 12.700 $$$$ R = 8. 31 $$$$ T = 1000 + 273 $$Trong [9]
from sympy import symbols4
Nhiều phương thức SymPy ________ 187 có thể được xâu chuỗi lại với nhau để thay thế nhiều biến trong một dòng mã
Trong [10]
from sympy import symbols5
Ra[10]
from sympy import symbols6
Để đánh giá một biểu thức dưới dạng số dấu phẩy động [lấy câu trả lời bằng số], hãy sử dụng phương pháp
x, y = symbols['x y']88 của Sympy
Trong [11]
from sympy import symbols7
Ra[11]
from sympy import symbols8
Định nghĩa phương trình trong Sympy¶
Chúng ta có thể định nghĩa các phương trình trong SymPy bằng cách sử dụng các biến toán học tượng trưng. Các phương trình trong SymPy khác với các biểu thức trong SymPy. Một biểu thức không có đẳng thức. Một phương trình có đẳng thức. Một phương trình bằng với một cái gì đó
Trong 1]
from sympy import symbols9
Trong 2]
x, y = symbols['x y']
Các phương trình SymPy được khởi tạo như một đối tượng của lớp
x, y = symbols['x y']89. Sau khi các ký hiệu SymPy được tạo, các ký hiệu có thể được chuyển vào một đối tượng phương trình. Hãy lập phương trình$$ 2x + y - 1 = 0 $$
Trong 3]
x, y = symbols['x y']1
Bây giờ hãy tạo một phương trình thứ hai
$$ x + y - 5 = 0 $$Trong [4]
x, y = symbols['x y']2
Để giải hai phương trình cho hai biến
expr = 2*x + y1 và
expr = 2*x + y2, chúng ta sẽ sử dụng hàm
x, y = symbols['x y']92 của SymPy. Hàm
x, y = symbols['x y']92 nhận hai đối số, một bộ gồm các phương trình
x, y = symbols['x y']94 và một bộ các biến để giải quyết cho
x, y = symbols['x y']95
Trong [5]
x, y = symbols['x y']3
Ra[5]
x, y = symbols['x y']4
Đối tượng giải pháp SymPy là một từ điển Python. Các khóa là các đối tượng biến SymPy và các giá trị là các giá trị số mà các biến này tương ứng với
Trong [6]
x, y = symbols['x y']5
x, y = symbols['x y']6
Bản tóm tắt¶
Trong bài đăng này, chúng tôi đã xem xét gói Python dành cho toán tượng trưng có tên là SymPy. Sử dụng toán ký hiệu, chúng ta có thể định nghĩa chính xác các biểu thức và phương trình dưới dạng các biến ký hiệu. Chúng tôi đã xem xét cách tạo biểu thức SymPy và thay thế các giá trị và biến vào biểu thức. Sau đó, chúng tôi đã tạo các đối tượng phương trình SymPy và giải hai phương trình cho hai ẩn số bằng hàm
x, y = symbols['x y']92 của SymPy