Mathics 7.0 – Giải pháp thay thế mã nguồn mở cho Mathematica
(github.com/Mathics3)Tóm tắt cập nhật Mathics3/mathics-core
-
Tính năng mới và cải tiến
- Đang tiến hành hỗ trợ tải lười cho các hàm tích hợp sẵn.
- Hiện đại hóa mã Python và phong cách viết, bổ sung chú thích kiểu và loại bỏ lỗi chính tả.
- Sử dụng các phiên bản mới nhất của SymPy và Python.
- Bổ sung các hàm tích hợp sẵn mới:
$MaxLengthIntStringConversion,Elements,ComplexExpand,ConjugateTranspose,LeviCivitaTensor,RealAbs,RealSign,RealValuedNumberQ.
-
Tài liệu hóa
- Khắc phục vấn đề định dạng của tệp PDF.
- Tăng khoảng cách đánh số trong mục lục chương và phần.
- Tăng khoảng trắng xung quanh các định nghĩa tích hợp sẵn.
- Sửa lỗi chính tả.
- Chỉnh sửa mã chạy
doctestsvà tạo tài liệu LaTeX để có thể cập nhật dần các hàm tích hợp sẵn.
-
Khả năng tương thích
Plotkhông còn hiển thị thông báo trong quá trình đánh giá.Range[]giờ đây cũng có thể xử lý số âm.- Cải thiện hỗ trợ cho
DirectedInfinityvàIndeterminate. - Hiển thị tooltip thông báo lỗi trong giao diện Mathics-Django.
- Có thể thay đổi
$CharacterEncodingtrong phiên làm việc.
-
Cấu trúc nội bộ
- Tách
eval_absvàeval_signkhỏiAbsvàSign, rồi thêm vàomathics.eval.arithmetic. - Số chữ số tối đa của chuỗi được đặt là 7000 và có thể điều chỉnh bằng biến môi trường
MATHICS_MAX_STR_DIGITS. - Việc so sánh số thực hiện nay dựa trên phần triển khai nội bộ của
RealSign. - Trên Python 3.11,
$MaxLengthIntStringConversionkiểm soát kích thước tối đa khi chuyển đổi giữa số nguyên lớn và chuỗi.
- Tách
-
Sửa lỗi
Definitionstương thích vớipickle.- Cải thiện hỗ trợ cho biểu thức
Quantity. - Tùy chọn nền của
GraphicsvàGraphics3Dhoạt động đúng. - Khắc phục vấn đề so sánh số với các biểu thức có chứa chuỗi.
- Khắc phục vấn đề xử lý vô cực của
Switch[]. - Khắc phục vấn đề xử lý
SparseArraytrongOuter[]. ArrayQ[]phát hiện đượcSparseArray.- Khắc phục vấn đề xử lý ngoại lệ
BoxExpressionError. - Khắc phục vấn đề đánh giá đạo hàm của
True,False,List[]. - Sửa gói
Combinatorica. - Khắc phục vấn đề hoạt động của
Exit[]. BaseFormđược liệt kê trong$OutputForms.
-
Thay đổi API
- Cần gọi hàm mới
import_and_load_builtins(). - Điều này là cần thiết để hỗ trợ tải lười cho các mô-đun tích hợp sẵn.
- Cần gọi hàm mới
-
Cập nhật gói
- Hỗ trợ Python 3.11.
- Hỗ trợ Sympy 1.12.
1 bình luận
Ý kiến trên Hacker News
Tôi đã theo dõi dự án này vài năm và có khá nhiều giải pháp trưởng thành dành cho những người quan tâm đến các hệ thống đại số máy tính mã nguồn mở
Cá nhân tôi thích phong cách LISPy của Mathematica, nhưng sức mạnh của MMA nằm ở thư viện đồ sộ của nó
Wolfram Cloud được cung cấp miễn phí cho mục đích sử dụng cá nhân, và Wolfram Engine là cách để dùng Mathematica miễn phí qua dòng lệnh
Có thể xem phần giới thiệu ngắn về Mathics tại đây
Mathematica có thể dùng miễn phí trên Raspberry Pi, và hầu hết các trường đại học đều có giấy phép site license
Phần mềm toán học (F)OSS vẫn giữ vai trò quan trọng
Tôi không quá hứng thú với các dự án cố gắng sao chép chức năng của Mathematica, nhưng những dự án như vậy tạo áp lực để Wolfram Research tiếp tục cải thiện các tính năng cơ bản
Các kỹ sư phần mềm có xu hướng không muốn trả tiền cho phần mềm
Một trong những điểm bất tiện của Mathematica là mọi hàm đều bị dồn vào cùng một namespace, và không có overloading bằng các tùy chọn tham số hóa khác nhau