อ่าน 6 นาที
ซอฟต์แวร์เทนเซอร์
ซอฟต์แวร์เทนเซอร์ เป็น ซอฟต์แวร์ทางคณิตศาสตร์ประเภทหนึ่งที่ออกแบบมาเพื่อใช้ในการจัดการและคำนวณเทนเซอร์
ซอฟต์แวร์เทนเซอร์
ซอฟต์แวร์เทนเซอร์ เป็น ซอฟต์แวร์ทางคณิตศาสตร์ประเภทหนึ่งที่ออกแบบมาเพื่อใช้ในการจัดการและคำนวณเทนเซอร์
ซอฟต์แวร์แบบสแตนด์อโลน
- SPLATT [ 1 ]เป็น แพ็คเกจซอฟต์แวร์โอ เพนซอร์ส สำหรับ การแยกตัวประกอบเทนเซอร์แบบเบาบางที่มีประสิทธิภาพสูง SPLATT มาพร้อม กับไฟล์ปฏิบัติการแบบสแตนด์อะโลน ไลบรารี C/C++ และAPI Octave / MATLAB
- Cadabra [ 2 ]เป็นระบบพีชคณิตคอมพิวเตอร์ (CAS) ที่ออกแบบมาโดยเฉพาะสำหรับการแก้ปัญหาที่พบในทฤษฎีสนาม มีฟังก์ชันการทำงานที่ครอบคลุมสำหรับการลดรูปพหุนามเทนเซอร์ รวมถึงสมมาตรหลายเทอม เฟอร์มิออนและตัวแปรที่ไม่สลับกัน พีชคณิตคลิฟฟอร์ดและการแปลงเฟียร์ซ การพึ่งพาพิกัดโดยปริยาย ประเภทดัชนีหลายประเภท และอื่นๆ อีกมากมาย รูปแบบอินพุตเป็นส่วนย่อยของ TeX มีทั้งอินเทอร์เฟซบรรทัดคำสั่งและอินเทอร์เฟซกราฟิกให้ใช้งาน
- Tela [ 3 ]เป็นแพ็คเกจซอฟต์แวร์ที่คล้ายกับMATLABและGNU Octaveแต่ได้รับการออกแบบมาโดยเฉพาะสำหรับเทนเซอร์
ซอฟต์แวร์สำหรับใช้งานร่วมกับ Mathematica
- Tensor [ 4 ]เป็นแพ็กเกจเทนเซอร์ที่เขียนขึ้นสำหรับระบบ Mathematica โดยมีฟังก์ชันมากมายที่เกี่ยวข้องกับการคำนวณสัมพัทธภาพทั่วไปในเรขาคณิต Riemann–Cartan ทั่วไป
- Ricci [ 5 ]เป็นระบบสำหรับ Mathematica 2.x และเวอร์ชันที่ใหม่กว่าสำหรับการวิเคราะห์เทนเซอร์ขั้นพื้นฐาน ซึ่งสามารถใช้งานได้ฟรี
- TTC [ 6 ] Tools of Tensor Calculus เป็นแพ็กเกจ Mathematica สำหรับการทำแคลคูลัสเทนเซอร์และแคลคูลัสภายนอกบนแมนิโฟลด์ที่สามารถหาอนุพันธ์ได้
- EDC และ RGTC [ 7 ] "Exterior Differential Calculus" และ "Riemannian Geometry & Tensor Calculus" เป็นแพ็กเกจ Mathematica ฟรีสำหรับแคลคูลัสเทนเซอร์ที่ออกแบบมาโดยเฉพาะ แต่ไม่ได้มีไว้สำหรับทฤษฎีสัมพัทธภาพทั่วไปเท่านั้น
- Tensorial [ 8 ] "Tensorial 4.0" เป็นแพ็คเกจแคลคูลัสเทนเซอร์อเนกประสงค์สำหรับ Mathematica
- xAct: [ 9 ]พีชคณิตคอมพิวเตอร์เทนเซอร์ที่มีประสิทธิภาพสำหรับ Mathematica xAct เป็นชุดแพ็กเกจสำหรับการจัดการนิพจน์เทนเซอร์เชิงสัญลักษณ์อย่างรวดเร็ว
- GREAT [ 10 ]เป็นแพ็กเกจฟรีสำหรับ Mathematica ที่คำนวณการเชื่อมต่อ Christoffel และเทนเซอร์พื้นฐานของทฤษฎีสัมพัทธภาพทั่วไปจากเทนเซอร์เมตริกที่กำหนด
- Atlas 2 สำหรับ Mathematica [ 11 ]เป็นกล่องเครื่องมือ Mathematica ที่ทรงพลังซึ่งช่วยให้สามารถคำนวณเรขาคณิตเชิงอนุพันธ์สมัยใหม่ได้หลากหลาย
- GRTensorM [ 12 ]เป็นแพ็คเกจพีชคณิตคอมพิวเตอร์สำหรับการคำนวณในสาขาเรขาคณิตเชิงอนุพันธ์ทั่วไป
- MathGR [ 13 ]เป็นแพ็กเกจสำหรับจัดการการคำนวณเทนเซอร์และ GR ด้วยดัชนีแบบนามธรรมหรือแบบชัดเจน ลดความซับซ้อนของเทนเซอร์ด้วยสมมาตรการเรียงสับเปลี่ยน แยกเทนเซอร์จากดัชนีแบบนามธรรมเป็นดัชนีแบบชัดเจนบางส่วนหรือทั้งหมด และแปลงอนุพันธ์ย่อยเป็นอนุพันธ์ทั้งหมด
- TensoriaCalc [ 14 ]เป็นแพ็กเกจแคลคูลัสเทนเซอร์ที่เขียนขึ้นสำหรับ Mathematica 9 และเวอร์ชันที่สูงกว่า โดยมุ่งเน้นที่การมอบฟังก์ชันการทำงานที่เป็นมิตรกับผู้ใช้และความสอดคล้องที่ราบรื่นกับภาษา Mathematica เอง ณ เดือนธันวาคม 2025 เมื่อกำหนดเมตริกและพิกัดแล้ว TensoriaCalc สามารถคำนวณวัตถุทางเรขาคณิตที่เกี่ยวข้อง เช่น สัญลักษณ์ Christoffel, เทนเซอร์ความโค้ง Riemann, เทนเซอร์/สเกลาร์ Ricci เป็นต้น อนุญาตให้กำหนดเทนเซอร์ทั่วไปและย้ายดัชนีได้อย่างง่ายดาย นอกจากนี้ยังสามารถดำเนินการทางเรขาคณิตเชิงอนุพันธ์ เช่น อนุพันธ์ร่วมแปร, อนุพันธ์ Lie และอนุพันธ์ภายนอก; คู่ Hodge; การแปลงพิกัดบนเทนเซอร์ทั่วไป รวมถึงการใช้ฐานตั้งฉาก เป็นต้น TensoriaCalc อยู่ระหว่างการพัฒนาอย่างต่อเนื่อง
- OGRe [ 15 ]เป็น แพ็กเกจ Mathematica ที่ ทันสมัย ฟรี และโอเพนซอร์สสำหรับแคลคูลัสเทนเซอร์ ซึ่งเปิดตัวในปี 2021 สำหรับ Mathematica 12.0 และเวอร์ชันที่ใหม่กว่า ได้รับการออกแบบให้มีประสิทธิภาพและใช้งานง่าย และเหมาะอย่างยิ่งสำหรับทฤษฎีสัมพัทธภาพทั่วไป OGRe อนุญาตให้ดำเนินการกับเทนเซอร์ที่ซับซ้อนได้ตามต้องการ และแปลงระหว่างการกำหนดค่าดัชนีและระบบพิกัดโดยอัตโนมัติเบื้องหลังตามความจำเป็นสำหรับแต่ละการดำเนินการ
ซอฟต์แวร์สำหรับใช้กับ Maple
- GRTensorII [ 16 ]เป็นแพ็คเกจพีชคณิตคอมพิวเตอร์สำหรับการคำนวณในสาขาเรขาคณิตเชิงอนุพันธ์ทั่วไป
- Atlas 2 สำหรับ Maple [ 17 ]เป็นเรขาคณิตเชิงอนุพันธ์สมัยใหม่สำหรับ Maple
- DifferentialGeometry [ 18 ]เป็นแพ็กเกจที่ดำเนินการคำนวณแคลคูลัสพื้นฐานบนแมนิโฟลด์ เรขาคณิตเชิงอนุพันธ์ แคลคูลัสเทนเซอร์ ทฤษฎีสัมพัทธภาพทั่วไป พีชคณิตลี กลุ่มลี กลุ่มการแปลง พื้นที่เจ็ต และแคลคูลัสแปรผัน แพ็กเกจนี้รวมอยู่ใน Maple
- Physics [ 19 ]เป็นแพ็กเกจที่พัฒนาขึ้นเป็นส่วนหนึ่งของ Maple ซึ่งใช้การคำนวณเชิงสัญลักษณ์กับวัตถุส่วนใหญ่ที่ใช้ในฟิสิกส์คณิตศาสตร์ ประกอบด้วยวัตถุจากทฤษฎีสัมพัทธภาพทั่วไป (เทนเซอร์ เมตริก อนุพันธ์โคแวเรียนต์ เททราด ฯลฯ) กลศาสตร์ควอนตัม (เค็ต บรา คอมมิวเทเตอร์ ตัวแปรไม่สลับที่) ฯลฯ
ซอฟต์แวร์สำหรับใช้งานร่วมกับ Matlab
- Tensorlab [ 20 ]เป็นกล่องเครื่องมือ MATLAB สำหรับพีชคณิตเชิงเส้นหลายตัวและการรวมข้อมูลที่มีโครงสร้าง
- Tensor Toolbox [ 21 ]ซอฟต์แวร์ MATLAB พีชคณิตเชิงเส้นหลายตัว
- MPCA และ MPCA+LDA [ 22 ] ซอฟต์แวร์การเรียนรู้ซับสเปซแบบหลายเชิงเส้น : การวิเคราะห์ส่วนประกอบหลักแบบหลายเชิงเส้น
- UMPCA [ 23 ] ซอฟต์แวร์ การเรียนรู้ซับสเปซเชิงเส้นหลายตัว : การวิเคราะห์ส่วนประกอบหลักเชิงเส้นหลายตัวที่ไม่สัมพันธ์กัน
- UMLDA [ 24 ] ซอฟต์แวร์ การเรียนรู้ซับสเปซเชิงเส้นหลายตัว : การวิเคราะห์การจำแนกเชิงเส้นหลายตัวที่ไม่สัมพันธ์กัน
ซอฟต์แวร์สำหรับใช้งานร่วมกับ Maxima
Maxima [ 25 ]เป็นระบบพีชคณิตคอมพิวเตอร์อเนกประสงค์แบบโอเพนซอร์ส ฟรี ซึ่งรวมถึงแพ็กเกจหลายชุดสำหรับการคำนวณพีชคณิตเทนเซอร์ในการแจกจ่ายหลัก มีประโยชน์อย่างยิ่งสำหรับการคำนวณด้วยเทนเซอร์นามธรรม กล่าวคือ เมื่อต้องการทำการคำนวณโดยไม่ต้องกำหนดส่วนประกอบทั้งหมดของเทนเซอร์อย่างชัดเจน มาพร้อมกับแพ็กเกจเทนเซอร์สามแพ็กเกจ: [ 26 ]
- เทนเซอร์สำหรับการจัดการเทนเซอร์เชิงนามธรรม (เชิงบ่งชี้)
- ctensor สำหรับเทนเซอร์ที่กำหนดโดยส่วนประกอบ และ
- เทนเซอร์สำหรับการจัดการเทนเซอร์เชิงพีชคณิต
ซอฟต์แวร์สำหรับใช้กับ R
- Tensor [ 27 ]เป็นแพ็กเกจ R สำหรับการดำเนินการเทนเซอร์พื้นฐาน
- rTensor [ 28 ]มีวิธีการแยกส่วนเทนเซอร์หลายวิธี
- nnTensor [ 29 ]มีวิธีการแยกส่วนเทนเซอร์ที่ไม่เป็นลบหลายวิธี
- ttTensor [ 30 ]มีวิธีการแยกส่วนเทนเซอร์เทรนหลายวิธี
- tensorBF [ 31 ]เป็นแพ็กเกจ R สำหรับการแยกส่วนเทนเซอร์แบบเบย์เซียน
- MTF [ 32 ] การแยกตัวประกอบเทนเซอร์หลายตัวแบบเบย์เซียนสำหรับการรวม ข้อมูลและเวอร์ชันเบย์เซียนของ Tensor PCA และ Tensor CCA ซอฟต์แวร์: MTF
- ricci [ 33 ]ให้ส่วนต่อประสาน R ที่กระชับสำหรับการคำนวณเทนเซอร์ โดยใช้ ข้อกำหนด แคลคูลัสของ Ricciเพื่อกระตุ้นการหดตัวและการแบ่งย่อยแนวทแยงมุมโดยปริยาย การดำเนินการเทนเซอร์ที่ชัดเจน เช่น การบวก การลบ และการคูณเทนเซอร์ผ่านตัวดำเนินการทางคณิตศาสตร์มาตรฐาน การยกและลดดัชนี การหาชิ้นส่วนเทนเซอร์สมมาตรหรือปฏิสมมาตร รวมถึงผลคูณ Kroneckerก็มีให้ใช้งาน เทนเซอร์ทั่วไป เช่นKronecker delta , Levi Civita epsilon , เทนเซอร์เมตริก บางตัว , สัญลักษณ์ Christoffel , เทนเซอร์ Riemannรวมถึงเทนเซอร์ Ricciก็มีให้ใช้งานอนุพันธ์โคแวเรียนต์ของฟิลด์เทนเซอร์เทียบกับเทนเซอร์เมตริกใดๆ ก็สามารถประเมินได้
ซอฟต์แวร์สำหรับใช้งานร่วมกับ Python
- TensorLy [ 34 ]มีวิธีการแยกส่วนเทนเซอร์หลายวิธี
- OGRePy [ 35 ]เป็นเวอร์ชัน Python ของแพ็คเกจ OGRe จาก Mathematica (ดู§ ซอฟต์แวร์สำหรับใช้กับ Mathematica ) ซึ่งเผยแพร่ในปี 2024 สำหรับ Python 3.12 และเวอร์ชันที่ใหม่กว่า โดยใช้SymPyสำหรับการคำนวณเชิงสัญลักษณ์และJupyterเป็นอินเทอร์เฟซโน้ตบุ๊ก OGRePy อนุญาตให้คำนวณสูตรเทนเซอร์แบบใดก็ได้โดยใช้การบวก การคูณด้วยสเกลาร์ ร่องรอย การหดตัว อนุพันธ์ย่อย อนุพันธ์ร่วมแปร และการเรียงสับเปลี่ยนดัชนี และมีสิ่งอำนวยความสะดวกสำหรับการคำนวณเทนเซอร์ความโค้งต่างๆ และสมการจีโอเดสิก
- Tensorgradเป็นแพ็กเกจ Python แบบโอเพนซอร์สสำหรับจัดการเทนเซอร์เชิงสัญลักษณ์ รองรับการหาอนุพันธ์ของเทนเซอร์เชิงสัญลักษณ์ทั่วไปโดยใช้สัญกรณ์กราฟิกของ Penroseและค่าคาดหวังแบบเกาส์เซียนผ่านทฤษฎีบทของ Isserlis
ซอฟต์แวร์สำหรับใช้กับ Julia
- TensorDecompositions.jl [ 36 ]มีวิธีการแยกส่วนเทนเซอร์หลายวิธี
- TensorToolbox.jl [ 37 ]มีวิธีการแยกส่วนเทนเซอร์หลายวิธี ซึ่งเป็นไปตามฟังก์ชันการทำงานของ MATLAB Tensor toolbox และ Hierarchical Tucker Toolbox
- ITensors.jl [ 38 ]เป็นไลบรารีสำหรับการสร้างอัลกอริธึมเครือข่ายเทนเซอร์ที่ถูกต้องและมีประสิทธิภาพอย่างรวดเร็ว นี่คือเวอร์ชัน Julia ของ ITensor ไม่ใช่ตัวห่อหุ้มเวอร์ชัน C++ แต่เป็นการใช้งานแบบเต็มรูปแบบด้วยภาษา Julia
ซอฟต์แวร์สำหรับใช้งานร่วมกับ SageMath
- SageManifolds : แคลคูลัสเทนเซอร์บนแมนิโฟลด์เรียบ; รหัส SageManifolds [ 39 ] ทั้งหมด รวมอยู่ในSageMathตั้งแต่เวอร์ชัน 7.5; ช่วยให้สามารถคำนวณในเฟรมเวกเตอร์และแผนภูมิพิกัดต่างๆ ได้ โดยไม่จำเป็นต้องทำให้แมนิโฟลด์สามารถประมวลผลแบบขนานได้
ซอฟต์แวร์สำหรับใช้งานร่วมกับ Java
- ND4J : อาร์เรย์ Nมิติสำหรับ JVM [ 40 ]เป็นไลบรารี Java สำหรับการดำเนินการเทนเซอร์พื้นฐานและการคำนวณทางวิทยาศาสตร์
- เทนเซอร์ : การคำนวณสำหรับเทนเซอร์หลายมิติแบบปกติหรือแบบไม่มีโครงสร้าง ค่าสเกลาร์อาจเป็นตัวเลขหรือความแม่นยำที่แน่นอน API ได้รับแรงบันดาลใจจาก Mathematica ไลบรารี Java 8 ที่ไม่มีการพึ่งพาภายนอก
ห้องสมุด
- Redberry [ 41 ]เป็นระบบพีชคณิตคอมพิวเตอร์แบบโอเพนซอร์สที่ออกแบบมาสำหรับการจัดการเทนเซอร์เชิงสัญลักษณ์ Redberry มีเครื่องมือทั่วไปสำหรับการจัดการนิพจน์ ซึ่งวางอยู่บนวัตถุเทนเซอร์ รวมถึงคุณสมบัติเฉพาะของเทนเซอร์ เช่น สมมาตรของดัชนีอินพุตแบบLaTeXการจัดการดัชนีจำลอง ตามธรรมชาติ ประเภทดัชนีหลายประเภทเป็นต้น แพ็คเกจ HEPประกอบด้วยเครื่องมือสำหรับการคำนวณไดอะแกรม Feynman เช่น พีชคณิตDiracและSU(N) การลดรูป Levi-Civitaเครื่องมือสำหรับการคำนวณเทอมเคาน์เตอร์แบบวนรอบเดียว เป็นต้น Redberry เขียนด้วยภาษา Javaและมีภาษาการเขียนโปรแกรมที่ใช้Groovy อย่างครอบคลุม
- libxm [ 42 ]เป็นไลบรารีเทนเซอร์แบบกระจายขนานน้ำหนักเบาที่เขียนด้วยภาษา C
- FTensor [ 43 ]เป็นไลบรารีเทนเซอร์ประสิทธิภาพสูงที่เขียนด้วยภาษา C++
- TL [ 44 ]เป็นไลบรารีเทนเซอร์แบบมัลติเธรดที่เขียนด้วยภาษา C++ ซึ่งใช้ใน Dynare++ ไลบรารีนี้รองรับการแสดงเทนเซอร์แบบพับ/คลี่ออก หนาแน่น/เบาบาง และอันดับทั่วไป (สมมาตร) ไลบรารีนี้ใช้สูตร Faa Di Bruno และปรับให้เข้ากับหน่วยความจำที่มีอยู่ Dynare++ เป็นแพ็กเกจแบบสแตนด์อโลนที่แก้ปัญหาการประมาณค่าเทย์เลอร์ลำดับสูงกว่าสำหรับสมดุลของแบบจำลองสุ่มที่ไม่เป็นเชิงเส้นที่มีความคาดหวังเชิงตรรกะ
- vmmlib [ 45 ]เป็นไลบรารีพีชคณิตเชิงเส้น C++ ที่รองรับเทนเซอร์ 3 ทาง โดยเน้นการคำนวณและการจัดการการแยกส่วนเทนเซอร์หลาย รายการ
- Spartns [ 46 ]เป็นเฟรมเวิร์ก Sparse Tensor สำหรับCommon Lisp
- FAstMat [ 47 ]เป็นไลบรารีพีชคณิตเทนเซอร์ทั่วไปที่ปลอดภัยต่อเธรดซึ่งเขียนด้วยภาษา C++ และออกแบบมาเป็นพิเศษสำหรับการคำนวณองค์ประกอบ/ขอบของ FEM/FVM/BEM/FDM
- Cyclops Tensor Framework [ 48 ]เป็นไลบรารีหน่วยความจำแบบกระจายสำหรับการแยกส่วนเทนเซอร์ประเภทใดก็ได้อย่างมีประสิทธิภาพ และการดำเนินการแบบขนาน MPI+OpenMP ของการหดตัว/ฟังก์ชันเทนเซอร์
- TiledArray [ 49 ]เป็นไลบรารีเทนเซอร์แบบบล็อกสปาร์สที่ปรับขนาดได้ ซึ่งออกแบบมาเพื่อช่วยในการประกอบสมการเทนเซอร์พีชคณิตประสิทธิภาพสูงอย่างรวดเร็ว โดยได้รับการออกแบบให้ปรับขนาดได้ตั้งแต่คอมพิวเตอร์มัลติคอร์เครื่องเดียวไปจนถึงระบบหน่วยความจำแบบกระจายขนานขนาดใหญ่
- libtensor [ 50 ]เป็นชุดของรูทีนพีชคณิตเทนเซอร์เชิงเส้นที่มีประสิทธิภาพสำหรับเทนเซอร์ขนาดใหญ่ที่พบในวิธีการหลัง Hartree–Fock ในเคมีควอนตัม
- ITensor [ 51 ]มีคุณสมบัติการหดตัวอัตโนมัติของดัชนีเทนเซอร์ที่ตรงกัน เขียนด้วยภาษา C++ และมีคุณสมบัติระดับสูงสำหรับอัลกอริธึมฟิสิกส์ควอนตัมโดยอิงจากเครือข่ายเทนเซอร์
- Fastor [ 52 ]เป็นไลบรารีพีชคณิตเทนเซอร์ C++ ประสิทธิภาพสูงที่รองรับเทนเซอร์ที่มีมิติใดๆ ก็ได้ รวมถึงการหดตัวและการเรียงสับเปลี่ยนที่เป็นไปได้ทั้งหมด โดยใช้การเพิ่มประสิทธิภาพการค้นหากราฟในเวลาคอมไพล์เพื่อค้นหาลำดับการหดตัวที่เหมาะสมที่สุดระหว่างเทนเซอร์จำนวนใดๆ ในเครือข่าย มีคุณสมบัติเฉพาะโดเมนระดับสูงสำหรับการแก้ปัญหาฟิสิกส์หลายมิติแบบไม่เชิงเส้นโดยใช้ FEM
- Xerus [ 53 ]เป็นไลบรารีพีชคณิตเทนเซอร์ C++ สำหรับเทนเซอร์ที่มีมิติตามอำเภอใจและการแยกเทนเซอร์ออกเป็นเครือข่ายเทนเซอร์ทั่วไป (โดยเน้นที่สถานะผลคูณเมทริกซ์ ) มีไวยากรณ์คล้ายสัญกรณ์ของไอน์สไตน์และปรับลำดับการหดตัวของเครือข่ายเทนเซอร์ใดๆ ให้เหมาะสมที่สุดในขณะรันไทม์ ดังนั้นจึงไม่จำเป็นต้องกำหนดมิติในขณะคอมไพล์