Mục lục[Ẩn giấu][Chỉ]
Không có gì phải xoay quanh toán học, cho dù bạn là sinh viên đại học hay làm việc trong ngành khoa học dữ liệu.
Người ta thậm chí có thể tranh luận rằng khoa học dữ liệu là một loại toán học / thống kê ứng dụng. NumPy, SciPy, scikit-họcvà TensorFlow chỉ là một vài trong số các thư viện Python xử lý toán học một cách định lượng.
Tuy nhiên, chỉ có một đối thủ cạnh tranh để xử lý rõ ràng các ký hiệu toán học: SymPy.
Hãy cùng tìm hiểu tất cả về SymPy.
Là gì SymPy?
SymPy là một thư viện toán học biểu tượng Python. Nó mong muốn trở thành một hệ thống đại số máy tính (CAS) đầy đủ tính năng trong khi vẫn giữ mã cơ bản nhất có thể để dễ hiểu và có thể mở rộng dễ dàng.
Nó được viết hoàn toàn bằng Python. Nó đơn giản để sử dụng vì nó chỉ dựa vào mpmath, một thư viện Python thuần túy cho số học dấu phẩy động tùy ý.
Là một thư viện, nó được tạo ra với sự chú trọng đáng kể đến tính khả dụng trong tâm trí. Khả năng mở rộng là rất quan trọng trong việc thiết kế giao diện chương trình ứng dụng (API) của nó.
Do đó, nó không cố gắng cải tiến ngôn ngữ Python. Mục tiêu là để người dùng có thể sử dụng nó cùng với Thư viện Python trong quy trình làm việc của họ, cho dù trong môi trường tương tác hay như một thành phần được lập trình của một hệ thống lớn hơn.
SymPy, với tư cách là một thư viện, thiếu đồ họa tích hợp sẵn giao diện người dùng (GUI). Thư viện là:
- Miễn phí, cả về lời nói và bia, vì nó được cấp phép theo giấy phép BSD.
- Dựa trên Python: Nó được phát triển hoàn toàn bằng Python và sử dụng Python làm ngôn ngữ của nó.
- Nhẹ vì nó chỉ dựa vào mpmath, một Thư viện Python cho số học dấu phẩy động tùy ý, làm cho nó đơn giản để sử dụng.
- Có thể được kết hợp vào các chương trình khác và được sửa đổi với các chức năng tùy chỉnh ngoài việc được sử dụng như một công cụ tương tác.
Tại sao sử dụng SymPy?
Sage, một hệ thống đại số máy tính, cũng sử dụng Python làm ngôn ngữ lập trình của nó. Mặt khác, Sage rất lớn, yêu cầu tải xuống hơn một gigabyte. Nó có lợi ích là nhẹ.
Ngoài việc nhỏ gọn, nó không có phụ thuộc nào ngoài Python, cho phép nó được sử dụng thực tế ở mọi nơi.
Hơn nữa, mục đích của Sage và SymPy không giống nhau. Sage mong muốn trở thành một hệ thống toán học đầy đủ tính năng và nó làm được như vậy bằng cách kết hợp tất cả các hệ thống toán học mã nguồn mở chính thành một.
Khi bạn sử dụng một hàm Sage, chẳng hạn như tích hợp, nó sẽ gọi một trong các gói mã nguồn mở mà nó chứa. Trên thực tế, nó được tích hợp sẵn trong Sage. Mặt khác, SymPy mong muốn trở thành một hệ thống khép kín, với tất cả các chức năng được thực hiện trong chính nó.
Khả năng hoạt động như một thư viện của nó là một đặc điểm quan trọng. Nhiều hệ thống đại số máy tính được sử dụng trong môi trường tương tác, nhưng chúng rất khó để tự động hóa hoặc mở rộng.
Nó có thể được sử dụng tương tác trong Python hoặc được nhập vào chương trình Python của riêng bạn. Nó cũng có các API để dễ dàng mở rộng nó với các quy trình của riêng bạn.
Cài đặt SymPy
Chỉ cần sử dụng lệnh bên dưới để cài đặt trong môi trường của bạn.
Biểu tượng SymPy
Hãy bắt đầu với nó ngay bây giờ! Đối tượng cơ bản của nó là một biểu tượng. Trong SymPy, bạn có thể tạo ký hiệu x bằng cách viết:
Đoạn mã trên tạo ra ký hiệu x. Các ký hiệu trong đó nhằm mô phỏng các ký hiệu toán học đại diện cho các giá trị chưa biết.
Kết quả là, phép tính sau được hiển thị bên dưới:
Như hình trên, biểu tượng x hoạt động tương tự như một số lượng chưa biết. Nếu bạn muốn tạo nhiều ký hiệu, hãy viết chúng như sau:
Trong trường hợp này, bạn đã tạo hai ký hiệu y và z cùng một lúc. Các biểu tượng này hiện có thể được cộng, trừ, nhân và chia theo ý muốn:
Chức năng SymPy
1. hàm consify ()
Phương thức SymPy biến một biểu thức tùy ý thành một biểu thức SymPy. Nó chuyển đổi các đối tượng Python tiêu chuẩn, chẳng hạn như số nguyên.
Các chuỗi được biến đổi thành các biểu thức của chúng cũng như các số nguyên, v.v.
2. Hàm evalf ()
Hàm này đánh giá một biểu thức số được chỉ định với độ chính xác dấu phẩy động lên đến 100 chữ số.
Hàm cũng chấp nhận một đối tượng từ điển với các giá trị số cho các ký hiệu làm đối số phụ. Hãy xem xét cụm từ sau:
Độ chính xác của dấu phẩy động được đặt thành 15 chữ số theo mặc định. Tuy nhiên, điều này có thể được thay đổi thành bất kỳ số nào từ 1 đến 100.
Phương trình sau đây được đánh giá chính xác đến 20 chữ số.
3. Hàm lambdify ()
Lambdify là một hàm chuyển đổi các biểu thức của nó thành các hàm Python. Phương thức evalf () không hiệu quả khi đánh giá một biểu thức trên nhiều giá trị.
Lambdify hoạt động tương tự như một hàm lambda, ngoại trừ việc nó dịch tên SymPy sang tên của thư viện số được cung cấp, thường là NumPy.
Theo mặc định, Lambdify được áp dụng cho việc triển khai thư viện chuẩn toán học.
Tính năng
Một số tính năng quan trọng nhất của thư viện được liệt kê ở đây; còn nhiều thứ khác không được bao gồm, nhưng bạn có thể kiểm tra chúng tại đây.
1. Khả năng cốt lõi
- Các toán tử số học cơ bản: +, -, *, /, và ** được hỗ trợ (power)
- Khai triển đa thức
- Số nguyên, số hợp lý và số thực với độ chính xác tùy ý
- Hàm lượng giác, hyperbolic và hàm mũ, căn, logarit, giá trị tuyệt đối, sóng hài hình cầu, thừa số và hàm gamma, hàm zeta, đa thức và các hàm đặc biệt
- Các ký hiệu không giao hoán
- Phù hợp với các mẫu
2. Giải tích
- Tích hợp: Phương pháp này sử dụng phương pháp heuristic Risch-Norman mở rộng
- Phân biệt.
- Giới hạn chức năng
- Bộ truyện của Laurent Taylor
3. Đa thức
- Cơ sở Gröbner
- Sự phân rã của các phân số từng phần
- Phép chia, gcd Kết quả là những ví dụ về số học cơ bản.
4. Tổ hợp
- Hoán vị
- Mã xám và mã xù xì
- Kết hợp, Phân vùng, Tập hợp con
- Nhóm đa diện, khối rubik, đối xứng và các nhóm hoán vị khác
5. Toán rời rạc
- Tổng kết
- Biểu thức logic
- Hệ số nhị thức
- Lý thuyết số
Ứng dụng
1. Máy tính xây dựng
2. Hệ thống đại số máy tính
Không giống như các Hệ thống Đại số Máy tính khác, bạn phải khai báo thủ công các biến tượng trưng trong đó bằng cách sử dụng hàm Symbol ().
3. Giải tích
Khả năng của một hệ thống tính toán tượng trưng để thực hiện tất cả các loại tính toán một cách tượng trưng là sức mạnh chính của nó.
Nó có thể đơn giản hóa các câu lệnh, một cách tượng trưng, tính các đạo hàm, tích phân và giới hạn, giải phương trình, tương tác với ma trận và làm được nhiều việc hơn thế.
Để kích thích sự thèm ăn của bạn, đây là một hương vị của sức mạnh biểu tượng.
Bạn có thể làm gì khác với SymPy?
Thay vì đi sâu vào các vấn đề bổ sung, hãy để tôi cung cấp cho bạn danh sách các tài nguyên để giúp bạn nâng cao kỹ năng của mình:
- Ma trận và Đại số tuyến tính: Nó có thể hoạt động với ma trận và thực hiện các phép toán đại số tuyến tính cơ bản. Ngôn ngữ tương tự như cú pháp của NumPy. Tuy nhiên, có những điểm khác biệt đáng chú ý. Để bắt đầu, hãy điều tra ma trận trong thư viện.
- Biểu hiện: Nó sử dụng cây biểu thức, là một cấu trúc dựa trên cây, để theo dõi các biểu thức. Nhìn vào cây biểu hiện nếu bạn muốn tìm hiểu thêm về hoạt động bên trong của chúng.
- Phái sinh và Tích phân: Nó có thể hoàn thành hầu hết những gì bạn học được trong một lớp giải tích nhập môn (trừ phần suy nghĩ). Bạn có thể bắt đầu bằng cách xem chức năng của chúng tôi phân biệt trong SymPy.
- Mối quan hệ với NumPy: NumPy và SymPy đều là các thư viện liên quan đến toán học. Tuy nhiên, về cơ bản chúng khác nhau! NumPy hoạt động với các con số, trong khi nó hoạt động với các biểu thức tượng trưng.
- Đơn giản hóa: Nó đủ thông minh để tự động đơn giản hóa các biểu thức. Tuy nhiên, nếu bạn muốn kiểm soát chi tiết hơn đối với điều này, hãy xem đơn giản hóa.
Kết luận
SymPy là một thư viện mạnh mẽ cho toán học biểu tượng.
Bạn có thể sử dụng nó để tạo các biến và hàm, cũng như mở rộng và đơn giản hóa các câu lệnh toán học một cách tượng trưng và giải các phương trình, bất phương trình và thậm chí cả hệ phương trình / bất phương trình.
Bạn có thể viết các hàm cả trong văn bản của script và trực tiếp trong terminal (hoặc Máy tính xách tay Jupyter) để có được đánh giá nhanh và mô tả đồ họa tốt hơn về các tính toán đã thực hiện.
Bạn đã sẵn sàng khám phá thêm về SymPy chưa? Hãy cho chúng tôi biết trong phần bình luận.
Bình luận