กลับไปหน้าบทความ

อ่าน 2 นาที

ชุดเครื่องมือเมทริกซ์ Java

Matrix Toolkit Java (MTJ) เป็น ไลบรารีซอฟต์แวร์โอเพนซอร์สที่ เขียนด้วยภาษา Java สำหรับการคำนวณ พีชคณิตเชิงเส้นเชิงตัวเลข...

ชุดเครื่องมือเมทริกซ์ Java

( เรียนรู้วิธีและเวลาในการลบข้อความนี้ )
ชุดเครื่องมือเมทริกซ์ Java
ผู้เขียนต้นฉบับบียอร์น-โอเว ไฮมซุนด์
ปล่อย2003 ( 2003 )
รุ่นทดลองใช้งาน
0.9.14 / 22 พฤศจิกายน 2011 ( 22 พฤศจิกายน 2011 )
เขียนเป็นชวา
พิมพ์อินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API)
ใบอนุญาตแอลจีพีแอล
ที่เก็บข้อมูลgithub.com/fommil/matrix-toolkits-java

Matrix Toolkit Java (MTJ) เป็นไลบรารีซอฟต์แวร์โอเพนซอร์สที่เขียนด้วยภาษาJava สำหรับการคำนวณพีชคณิตเชิงเส้นเชิงตัวเลขไลบรารีนี้ประกอบด้วยชุดการดำเนินการพีชคณิตเชิงเส้นมาตรฐานสำหรับเมทริกซ์หนาแน่นโดยใช้โค้ดBLASและLAPACK ส่วนการดำเนินการสำหรับเมทริกซ์ เบาบางนั้นมีให้ใช้งานบางส่วนผ่านโครงการ Templates ไลบรารีนี้สามารถกำหนดค่าให้ทำงานเป็นไลบรารี Java บริสุทธิ์ หรือใช้โค้ด BLAS ที่ปรับให้เหมาะสมกับเครื่องผ่านJava Native Interfaceได้

MTJ เดิมทีได้รับการพัฒนาโดย Bjørn-Ove Heimsund ซึ่งได้ถอนตัวออกไปเนื่องจากภาระผูกพันอื่น ๆ เว็บไซต์ของโปรเจกต์ระบุว่า "(ผู้ดูแลใหม่) ให้ความสำคัญหลักกับการดูแลรักษาไลบรารีและแก้ไขข้อบกพร่องเมื่อพบ ไม่มีแผนสำหรับเวอร์ชันในอนาคต" [ 1 ]

สามารถพบการอ้างอิงหลายรายการสำหรับ MTJ ในเอกสารทางวิทยาศาสตร์ รวมถึง[ 2 ]ซึ่งใช้ตัวปรับสภาพ LU ประสิทธิภาพของ MTJ ได้รับการเปรียบเทียบกับไลบรารีอื่นๆ ซึ่งสามารถพบได้ที่เว็บไซต์ Java Matrix Benchmark [ 3 ]

ความสามารถ

ต่อไปนี้เป็นภาพรวมของความสามารถของ MTJ ตามที่ระบุไว้ในเว็บไซต์ของโครงการ:

  • โครงสร้างข้อมูลสำหรับเมทริกซ์หนาแน่นและเมทริกซ์เบาบางที่มีโครงสร้างในรูปแบบต่อไปนี้:
    • หนาแน่น เรียงตัวเป็นแถวหลัก
    • เมทริกซ์แบบแถบ ซึ่งเก็บค่าเฉพาะในแนวทแยงมุมไม่กี่ค่าเท่านั้น
    • เมทริกซ์แบบแพ็ค คือการจัดเก็บเมทริกซ์เพียงครึ่งเดียว (สำหรับเมทริกซ์สามเหลี่ยมหรือเมทริกซ์สมมาตร)
    • เมทริกซ์สามแถวและเมทริกซ์สามแถวสมมาตร
  • รองรับการจัดเก็บข้อมูลแบบสมมาตรและแบบสามเหลี่ยมอย่างโปร่งใส
  • โครงสร้างข้อมูลสำหรับเมทริกซ์แบบสปาร์สที่ไม่มีโครงสร้างในรูปแบบต่อไปนี้:
    • การจัดเก็บข้อมูลแบบบีบอัดแถวหรือคอลัมน์ (CRS/CCS)
    • CRS/CCS ที่ยืดหยุ่น โดยใช้เวกเตอร์แบบเบาบางที่สามารถขยายได้
    • หน่วยความจำแนวทแยงมุมแบบบีบอัด (CDS)
  • เมทริกซ์แบบเบาบางที่มีความหนาแน่นและโครงสร้างนั้นสร้างขึ้นบนพื้นฐานของ BLAS และ LAPACK และรวมถึงการดำเนินการภายในต่อไปนี้:
    • การคูณเมทริกซ์/เวกเตอร์
    • การคูณเมทริกซ์กับเมทริกซ์
    • การอัปเดตอันดับโดยใช้เมทริกซ์หรือเวกเตอร์
    • ตัวแก้เมทริกซ์โดยตรง
  • เมทริกซ์แบบสปาร์สที่ไม่มีโครงสร้างรองรับการดำเนินการเช่นเดียวกับเมทริกซ์ที่มีโครงสร้าง ยกเว้นว่าไม่มีตัวแก้ปัญหาโดยตรง อย่างไรก็ตาม วิธีการคูณเมทริกซ์/เวกเตอร์ของเมทริกซ์เหล่านี้ได้รับการปรับให้เหมาะสมสำหรับการใช้งานในตัวแก้ปัญหาแบบวนซ้ำ
  • การแยกส่วนเมทริกซ์ของเมทริกซ์หนาแน่นและเมทริกซ์เบาบางที่มีโครงสร้าง:
    • LU และ Cholesky
    • การแยกส่วนประกอบค่าลักษณะเฉพาะสำหรับเมทริกซ์หนาแน่นที่ไม่สมมาตร
    • การแยกส่วนค่าเอกลักษณ์สำหรับเมทริกซ์หนาแน่นที่ไม่สมมาตร
    • การแยกส่วนประกอบค่าลักษณะเฉพาะสำหรับเมทริกซ์สมมาตร (เมทริกซ์สามแถว เมทริกซ์แถบ เมทริกซ์อัดแน่น และเมทริกซ์หนาแน่น)
    • การแยกส่วน เมทริกซ์เชิงตั้งฉากสำหรับเมทริกซ์หนาแน่น (QR, RQ, LQ และ QL)
  • ตัวแก้ปัญหาแบบวนซ้ำสำหรับเมทริกซ์เบาบางที่ไม่มีโครงสร้างจากโครงการ Templates:
    • การไล่ระดับแบบไบคอนจูเกต
    • การไล่ระดับไบคอนจูเกตมีเสถียรภาพแล้ว
    • การไล่ระดับแบบคอนจูเกต
    • การไล่ระดับคอนจูเกตยกกำลังสอง
    • การวนซ้ำแบบเชบิเชฟ
    • ค่าตกค้างขั้นต่ำทั่วไป (GMRES)
    • การปรับปรุงแบบวนซ้ำ (วิธีของริชาร์ดสัน)
    • ค่าตกค้างขั้นต่ำแบบกึ่งสมบูรณ์
  • ตัวอย่างตัวปรับสภาพเชิงพีชคณิต:
    • การปรับสภาพเบื้องต้นแบบทแยงมุม
    • การคลายตัวเกินแบบสมมาตรต่อเนื่อง
    • Cholesky ไม่สมบูรณ์
    • LU ไม่สมบูรณ์
    • LU ที่ไม่สมบูรณ์พร้อมการเติมเต็มโดยใช้การกำหนดค่าเกณฑ์
    • มัลติกริดเชิงพีชคณิตโดยการรวมแบบเรียบ

ตัวอย่างการใช้งาน

ตัวอย่างของการแยกส่วนค่าเอกลักษณ์ (Singular Value Decomposition: SVD):

SVD svd = new SVD ( matA.numRows ( ) , matA.numColumns ( ) ) ; SVD s = svd.factor ( matA ) ; DenseMatrix U = s.getU ( ) ; DenseMatrix S = s.getS ( ) ; DenseMatrix Vt = s.getVt ( ) ;

ตัวอย่างการคูณเมทริกซ์:

DenseMatrix result = new DenseMatrix ( matA.numRows ( ) , matB.numColumns ( ) ) ; matA.mult ( matB , result ) ;

ดูเพิ่มเติม

  • matrix-toolkits-javaบนGitHub
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Matrix_Toolkit_Java&oldid=1341625714 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ชุดเครื่องมือเมทริกซ์ Java

Matrix Toolkit Java (MTJ) เป็น ไลบรารีซอฟต์แวร์โอเพนซอร์สที่ เขียนด้วยภาษา Java สำหรับการคำนวณ พีชคณิตเชิงเส้นเชิงตัวเลข...

ความสามารถ

ต่อไปนี้เป็นภาพรวมของความสามารถของ MTJ ตามที่ระบุไว้ในเว็บไซต์ของโครงการ:

ตัวอย่างการใช้งาน

ตัวอย่างของการแยกส่วนค่าเอกลักษณ์ (Singular Value Decomposition: SVD):

ดูเพิ่มเติม

รายชื่อซอฟต์แวร์วิเคราะห์เชิงตัวเลข รายชื่อไลบรารีคณิตศาสตร์โอเพนซอร์ส