Mathics 7.0 – ทางเลือกโอเพนซอร์สของ Mathematica
(github.com/Mathics3)สรุปอัปเดต Mathics3/mathics-core
-
ฟีเจอร์ใหม่และการปรับปรุง
- กำลังดำเนินงานเพื่อรองรับการโหลดแบบ lazy ของฟังก์ชัน built-in
- ปรับโค้ดและสไตล์ของ Python ให้ทันสมัย เพิ่ม type annotations และลบคำสะกดผิด
- ใช้งาน SymPy และ Python เวอร์ชันล่าสุด
- เพิ่มฟังก์ชัน built-in ใหม่:
$MaxLengthIntStringConversion,Elements,ComplexExpand,ConjugateTranspose,LeviCivitaTensor,RealAbs,RealSign,RealValuedNumberQ.
-
เอกสารประกอบ
- แก้ปัญหารูปแบบของไฟล์ PDF
- เพิ่มระยะห่างของหมายเลขในสารบัญระดับ chapter และ section
- เพิ่มพื้นที่ว่างรอบคำจำกัดความของ built-in
- แก้ไขคำสะกดผิด
- ปรับปรุงการรัน
doctestsและโค้ดสร้างเอกสาร LaTeX เพื่อให้สามารถอัปเดต built-in แบบค่อยเป็นค่อยไปได้
-
ความเข้ากันได้
Plotจะไม่แสดงข้อความระหว่างการประเมินผล- ตอนนี้
Range[]สามารถจัดการค่าติดลบได้แล้ว - ปรับปรุงการรองรับ
DirectedInfinityและIndeterminate - แสดง tooltip ของข้อความผิดพลาดในอินเทอร์เฟซ Mathics-Django
- สามารถเปลี่ยน
$CharacterEncodingภายในเซสชันได้
-
โครงสร้างภายใน
- แยก
eval_absและeval_signออกจากAbsและSignแล้วเพิ่มไปยังmathics.eval.arithmetic - จำนวนหลักสูงสุดของสตริงถูกตั้งไว้ที่ 7000 และสามารถปรับได้ผ่านตัวแปรสภาพแวดล้อม
MATHICS_MAX_STR_DIGITS - ตอนนี้การเปรียบเทียบจำนวนจริงอิงตามการทำงานภายในของ
RealSign - ใน Python 3.11,
$MaxLengthIntStringConversionควบคุมขนาดสูงสุดของการแปลงระหว่างจำนวนเต็มขนาดใหญ่กับสตริง
- แยก
-
การแก้บั๊ก
Definitionsเข้ากันได้กับpickle- ปรับปรุงการรองรับนิพจน์
Quantity - ตัวเลือกพื้นหลังของ
GraphicsและGraphics3Dทำงานได้ - แก้ปัญหาการเปรียบเทียบเชิงตัวเลขสำหรับนิพจน์ที่มีสตริง
- แก้ปัญหาการจัดการอินฟินิตี้ของ
Switch[] - แก้ปัญหาการจัดการ
SparseArrayของOuter[] ArrayQ[]สามารถตรวจจับSparseArrayได้- แก้ปัญหาการจัดการข้อยกเว้น
BoxExpressionError - แก้ปัญหาการประเมินอนุพันธ์ของ
True,False,List[] - ปรับแก้แพ็กเกจ
Combinatorica - แก้ปัญหาการทำงานของ
Exit[] BaseFormถูกแสดงอยู่ใน$OutputForms
-
การเปลี่ยนแปลง API
- จำเป็นต้องเรียกใช้ฟังก์ชันใหม่
import_and_load_builtins() - สิ่งนี้จำเป็นเพื่อรองรับการโหลดแบบ lazy ของโมดูล built-in
- จำเป็นต้องเรียกใช้ฟังก์ชันใหม่
-
อัปเดตแพ็กเกจ
- รองรับ Python 3.11
- รองรับ Sympy 1.12
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
ผมติดตามโปรเจ็กต์นี้มาหลายปี และมีโซลูชันที่ค่อนข้างสมบูรณ์หลากหลายสำหรับคนที่สนใจระบบพีชคณิตเชิงคำนวณแบบโอเพนซอร์ส
โดยส่วนตัวผมชอบสไตล์แบบ LISPy ของ Mathematica แต่พลังที่แท้จริงของ MMA อยู่ที่ไลบรารีขนาดมหาศาล
Wolfram Cloud เปิดให้ใช้งานฟรีสำหรับการใช้งานส่วนบุคคล และ Wolfram Engine เป็นอีกวิธีในการใช้ Mathematica ฟรีผ่านบรรทัดคำสั่ง
ดูคำแนะนำสั้น ๆ เกี่ยวกับ Mathics ได้ที่นี่
Mathematica ใช้งานฟรีบน Raspberry Pi ได้ และมหาวิทยาลัยส่วนใหญ่ก็มี site license อยู่แล้ว
ซอฟต์แวร์คณิตศาสตร์แบบ (F)OSS ยังคงมีบทบาทสำคัญ
ผมไม่ได้สนใจมากนักกับโปรเจ็กต์ที่พยายามทำซ้ำความสามารถของ Mathematica แต่โปรเจ็กต์เหล่านี้ก็สร้างแรงกดดันให้ Wolfram Research ต้องปรับปรุงความสามารถพื้นฐานอย่างต่อเนื่อง
วิศวกรซอฟต์แวร์มักมีแนวโน้มไม่อยากจ่ายเงินค่าเครื่องมือซอฟต์แวร์
จุดที่ใช้งานไม่สะดวกอย่างหนึ่งของ Mathematica คือฟังก์ชันทั้งหมดถูกรวมอัดแน่นอยู่ใน namespace เดียว และไม่มีการโอเวอร์โหลดด้วยตัวเลือกการกำหนดพารามิเตอร์แบบอื่น