4 điểm bởi GN⁺ 2024-12-09 | 1 bình luận | Chia sẻ qua WhatsApp

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 doctests và 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

    • Plot khô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 DirectedInfinityIndeterminate.
    • Hiển thị tooltip thông báo lỗi trong giao diện Mathics-Django.
    • Có thể thay đổi $CharacterEncoding trong phiên làm việc.
  • Cấu trúc nội bộ

    • Tách eval_abseval_sign khỏi AbsSign, rồi thêm vào mathics.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, $MaxLengthIntStringConversion kiểm soát kích thước tối đa khi chuyển đổi giữa số nguyên lớn và chuỗi.
  • Sửa lỗi

    • Definitions tương thích với pickle.
    • Cải thiện hỗ trợ cho biểu thức Quantity.
    • Tùy chọn nền của GraphicsGraphics3D hoạ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ý SparseArray trong Outer[].
    • ArrayQ[] phát hiện được SparseArray.
    • 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ập nhật gói

    • Hỗ trợ Python 3.11.
    • Hỗ trợ Sympy 1.12.

1 bình luận

 
GN⁺ 2024-12-09
Ý 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ở

    • Từ những lựa chọn kinh điển như GNU Octave, Maxima cho đến các lựa chọn hiện đại như SAGEmath, Symbolics.jl, sympy
    • Phạm vi rất rộng, từ các thư viện symbolic như GiNaC đến các IDE "đủ pin kèm theo" như SAGEmath
    • SAGEmath đã tiên phong giao diện notebook trên web, thứ sau này dẫn đến Jupyter ngày nay
  • 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ó

    • Không chỉ có các giải pháp hàng đầu ngành cho các chủ đề nền tảng như tích phân symbolic, đồ họa 2D/3D, phương pháp phần tử hữu hạn, mà còn bao gồm cả các miền chuyên biệt như tin sinh học
    • Mathics đã tái tạo khá tốt phần cốt lõi, nhưng còn thiếu toàn bộ hệ sinh thái thư viện đó
    • Logic này cũng tương tự như khi so sánh Matlab với các bản sao của numpy
  • 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

    • Giấy phép "Home & Hobby" có giá khá rẻ: $195/năm hoặc giấy phép vĩnh viễn $390
    • Tôi nghĩ mức giá của giấy phép hobby là xứng đáng, và việc hỗ trợ phần mềm toán học là điều tốt
  • Phần mềm toán học (F)OSS vẫn giữ vai trò quan trọng

    • Mathematica tuy toàn diện nhưng vẫn có một vài điểm yếu đáng kể trong toán học nâng cao
    • Các phần mềm (F)OSS như GAP, M2, PARI/GP đóng vai trò quan trọng trong việc bù đắp những phần còn thiếu của Wolfram Language
  • 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