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

อ่าน 3 นาที

เมทริกซ์การจัดเก็บแบบบรรจุ

อาร์เรย์/เมทริกซ์ (คณิตศาสตร์)/ต้นขั้วเมทริกซ์

เมทริกซ์จัดเก็บแบบแพ็คหรือที่เรียกว่าเมทริกซ์แพ็คเป็นคำที่ใช้ในการเขียนโปรแกรมเพื่อแสดงเมทริกซ์ม×n{\displaystyle m\times...

เมทริกซ์การจัดเก็บแบบบรรจุ

เมทริกซ์จัดเก็บแบบแพ็คหรือที่เรียกว่าเมทริกซ์แพ็คเป็นคำที่ใช้ในการเขียนโปรแกรมเพื่อแสดงเมทริกซ์×n{\displaystyle m\times n}เมทริกซ์เป็นวิธีที่กะทัดรัดกว่าอาร์เรย์สี่เหลี่ยมผืนผ้าขนาด m คูณ n โดยใช้ประโยชน์จากโครงสร้างพิเศษของเมทริกซ์

ตัวอย่างทั่วไปของเมทริกซ์ที่สามารถใช้ประโยชน์จากการจัดเก็บแบบแพ็ค ได้แก่:

เมทริกซ์บรรจุรูปสามเหลี่ยม

เมทริกซ์จัดเก็บแบบแพ็คช่วยให้สามารถแปลงเมทริกซ์เป็นอาร์เรย์ได้ ซึ่งจะทำให้เมทริกซ์มีขนาดเล็กลงอย่างมาก ในการทำเช่นนั้น สี่เหลี่ยมจัตุรัสก็จะมีขนาดเล็กลงn×n{\displaystyle n\times n}เมทริก ซ์ จะถูก แปลงเป็นอาร์เรย์ที่มีความยาวn (n+1) / 2 [ 1 ]

พิจารณาเมทริกซ์ด้านบนต่อไปนี้:

ยู=(เอ11เอ12เอ13เอ14เอ22เอ23เอ24เอ33เอ34เอ44){\displaystyle \mathbf {U} ={\begin{pmatrix}a_{11}&a_{12}&a_{13}&a_{14}\\&a_{22}&a_{23}&a_{24}\\&&a_{33}&a_{34}\\&&&a_{44}\\\end{pmatrix}}}

ซึ่งสามารถบรรจุลงในอาร์เรย์เดียวได้:

ยูพี=(เอ11 เอ12 เอ22 เอ13 เอ23 เอ33 เอ14, เอ24 เอ34 เอ44){\displaystyle \mathbf {UP} =(\underbrace {a_{11}} \ \underbrace {a_{12}\ a_{22}} \ \underbrace {a_{13}\ a_{23}\ a_{33}} \ \underbrace {a_{14},\ a_{24}\ a_{34}\ a_{44}} )}[ 2 ]

ในทำนองเดียวกัน เมทริกซ์ด้านล่าง:

แอล=(เอ11เอ21เอ22เอ31เอ32เอ33เอ41เอ42เอ43เอ44).{\displaystyle \mathbf {L} ={\begin{pmatrix}a_{11}&&&\\a_{21}&a_{22}&&\\a_{31}&a_{32}&a_{33}&\\a_{41}&a_{42}&a_{43}&a_{44}\\\end{pmatrix}}.}

สามารถจัดเรียงลงในอาร์เรย์หนึ่งมิติได้ดังต่อไปนี้:

แอลพี=(เอ11 เอ21 เอ31 เอ41 เอ22 เอ32 เอ42 เอ33 เอ43 เอ44){\displaystyle LP=(\underbrace {a_{11}\ a_{21}\ a_{31}\ a_{41}} \ \underbrace {a_{22}\ a_{32}\ a_{42}} \ \underbrace {a_{33}\ a_{43}} \ \underbrace {a_{44}} )}[ 2 ]

ตัวอย่างโค้ด (Fortran)

รูปแบบการจัดเก็บข้อมูลทั้งสองแบบต่อไปนี้ถูกนำมาใช้กันอย่างแพร่หลายใน BLAS และ LAPACK

ตัวอย่างการจัดเก็บแบบอัดแน่นสำหรับเมทริกซ์เฮอร์มิเชียน:

complex :: A ( n , n ) ! เมทริกซ์เฮอร์มิเชียนcomplex :: AP ( n * ( n + 1 ) / 2 ) ! พื้นที่จัดเก็บแบบแพ็คสำหรับ A ! สามเหลี่ยมล่างของ A ถูกจัดเก็บแบบคอลัมน์ต่อคอลัมน์ใน AP ! การคลายเมทริกซ์ AP ไปยัง A do j = 1 , n k = j * ( j - 1 ) / 2 A ( 1 : j , j ) = AP ( 1 + k : j + k ) A ( j , 1 : j - 1 ) = conjg ( AP ( 1 + k : j - 1 + k )) end do

ตัวอย่างการจัดเก็บแบบบรรจุสำหรับเมทริกซ์แบบแถบ:

real :: A ( m , n ) ! เมทริกซ์แบบแถบที่มีซับไดอะโกนัล kl ตัวและซูเปอร์ไดอะโกนัล ku ตัว real :: AP ( - kl : ku , n ) ! พื้นที่จัดเก็บแบบแพ็คสำหรับ A ! แถบของ A ถูกจัดเก็บแบบคอลัมน์ต่อคอลัมน์ใน AP บางองค์ประกอบของ AP ไม่ได้ถูกใช้งาน! การคลายแพ็คเมทริกซ์ AP ไปยัง A do j = 1 , n forall ( i = max ( 1 , j - kl ): min ( m , j + ku )) A ( i , j ) = AP ( i - j , j ) end do print * , AP ( 0 ,:) ! เส้นทแยงมุม

ดูเพิ่มเติม

อ่านเพิ่มเติม

  • https://www.netlib.org/lapack/lug/
  • https://www.netlib.org/blas/
  • https://github.com/numericalalgorithmsgroup/LAPACK_Examples
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Packed_storage_matrix&oldid=1285634819 "

สรุปเนื้อหา

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

ข้อมูลสำคัญเกี่ยวกับ เมทริกซ์การจัดเก็บแบบบรรจุ

เมทริกซ์จัดเก็บแบบแพ็คหรือที่เรียกว่าเมทริกซ์แพ็คเป็นคำที่ใช้ในการเขียนโปรแกรมเพื่อแสดงเมทริกซ์ม×n{\displaystyle m\times...

เมทริกซ์บรรจุรูปสามเหลี่ยม

เมทริกซ์จัดเก็บแบบแพ็คช่วยให้สามารถแปลงเมทริกซ์เป็นอาร์เรย์ได้ ซึ่งจะทำให้เมทริกซ์มีขนาดเล็กลงอย่างมาก ในการทำเช่นนั้น สี่เหลี่ยมจัตุรัสก็จะมีขนาดเล็กลง n × n {\displaystyle n\times n} เมทริก ซ์ จะถูก แปลง เป็นอาร์เรย์ที่มีความยาว n (n+1) / 2 [ 1 ]

ตัวอย่างโค้ด (Fortran)

รูปแบบการจัดเก็บข้อมูลทั้งสองแบบต่อไปนี้ถูกนำมาใช้กันอย่างแพร่หลายใน BLAS และ LAPACK

ดูเพิ่มเติม

เมทริกซ์เบาบาง เมทริกซ์เส้นขอบฟ้า เมทริกซ์แถบ