คำถามติดแท็ก sparse-matrix

คำถามที่เกี่ยวข้องกับการจัดเก็บการประกอบการดำเนินการและด้านอื่น ๆ ของการจัดการกับเมทริกซ์แบบกระจัดกระจายซึ่งจัดเก็บเฉพาะองค์ประกอบที่ไม่ใช่ศูนย์เท่านั้น คำถามที่ไม่เกี่ยวกับเมทริกซ์แบบกระจัดกระจายโดยตรง แต่วิธีอื่น ๆ ในการใช้ sparsity ควรติดแท็กด้วย [sparse-operator]

5
ตัวเลือกที่ดีที่สุดของตัวแก้ปัญหาสำหรับระบบสมมาตรแบบเบาบางขนาดใหญ่ (แต่ไม่ใช่ค่าบวกแน่นอน)
ขณะนี้ฉันกำลังทำงานเพื่อแก้ไขระบบสมมาตรขนาดใหญ่มาก (แต่ไม่แน่นอนแน่นอน) ที่สร้างขึ้นโดยอัลกอริทึมบางอย่าง เมทริกซ์เหล่านี้มีบล็อกความแจ่มใสที่ดีซึ่งสามารถใช้สำหรับการแก้แบบขนาน แต่ฉันไม่สามารถตัดสินใจได้ว่าฉันควรใช้วิธีการโดยตรง (เช่น Multi-frontal) หรือวนซ้ำ (GMRES หรือ MINRES ที่กำหนดเงื่อนไขไว้ล่วงหน้า) การศึกษาทั้งหมดของฉันแสดงให้เห็นว่าตัวแก้ซ้ำ (แม้จะมีการบรรจบกันอย่างรวดเร็วของการวนซ้ำภายใน 7 ครั้ง) ล้มเหลวในการเอาชนะผู้ปฏิบัติงานโดยตรงใน MATLAB แต่ในทางทฤษฎีแล้ววิธีการโดยตรงควรจะมีราคาสูงกว่า สิ่งนี้เกิดขึ้นได้อย่างไร? มีเอกสารหรือกระดาษที่ทันสมัยสำหรับกรณีดังกล่าวหรือไม่? ฉันสามารถใช้ sparsity แบบบล็อกในระบบคู่ขนานโดยใช้วิธีโดยตรงเช่นเดียวกับตัวแก้ซ้ำแบบยืดหยุ่นอย่าง GMRES

1
PETSc เคยใช้ประโยชน์จากห้องสมุด LAPACK สำหรับคณิตศาสตร์เมทริกซ์กระจัดกระจายหรือไม่?
การรวบรวม PETSc กับไลบรารี BLAS / LAPACK ภายนอกส่งผลกระทบต่อประสิทธิภาพการทำงานของเมทริกซ์แบบเบาบางหรือไม่หรือใช้ไลบรารีเหล่านั้นเพื่อคำนวณเมทริกซ์หนาแน่นเท่านั้น?

3
ค่าใช้จ่ายในการคูณเมทริกซ์คืออะไร
การคูณเมทริกซ์ (ทั้ง Mat * Mat และ Mat * Vec) มีการปรับมาตราส่วนด้วยจำนวนที่ไม่เป็นศูนย์หรือมีขนาดของเมทริกซ์หรือไม่? หรือการรวมกันของทั้งสอง เกี่ยวกับรูปร่าง ตัวอย่างเช่นฉันมีเมทริกซ์ 100 x 100 พร้อม 100 ค่าในนั้นหรือเมทริกซ์ 1,000 x 1,000 ที่มี 100 ค่า เมื่อยกกำลังสองเมทริกซ์เหล่านี้ (หรือคูณด้วยเมทริกซ์ที่คล้ายกันที่มีการกระจายแบบเดียวกัน) เป็นครั้งแรก (100x100) จะเร็วกว่าวินาที (1000x1000) หรือไม่ มันขึ้นอยู่กับว่าค่าอยู่ที่ไหน? ถ้ามันขึ้นอยู่กับการใช้งานฉันสนใจคำตอบสำหรับ PETSc

2
วิธีการใช้เงื่อนไขขอบเขต Dirichlet อย่างมีประสิทธิภาพในเมทริกซ์ stiffnes องค์ประกอบ จำกัด กระจัดกระจายทั่วโลก
ฉันสงสัยว่าเงื่อนไขขอบเขตของ Dirichlet ในเมทริกซ์องค์ประกอบกระจัดกระจายทั่วโลกนั้นมีการใช้งานจริงได้อย่างมีประสิทธิภาพหรือไม่ ตัวอย่างเช่นสมมติว่าเมทริกซ์องค์ประกอบไฟไนต์โกลบอลของเราคือ: K=⎡⎣⎢⎢⎢⎢⎢⎢520- 102410001632- 1037000203⎤⎦⎥⎥⎥⎥⎥⎥และเวกเตอร์ด้านขวาb =⎡⎣⎢⎢⎢⎢⎢⎢ข1ข2ข3ข4ข5⎤⎦⎥⎥⎥⎥⎥⎥K=[520-102410001632-1037000203]และเวกเตอร์ด้านขวาข=[ข1ข2ข3ข4ข5]K = \begin{bmatrix} 5 & 2 & 0 & -1 & 0 \\ 2 & 4 & 1 & 0 & 0 \\ 0 & 1 & 6 & 3 & 2 \\ -1 & 0 & 3 & 7 & 0 \\ …

2
โครงสร้างข้อมูลแบบใหม่ใดที่ใช้ใน FEM ที่ปรับตัวได้
ไลบรารี FEM ที่ปรับตัวได้จำนวนมากใช้โครงสร้างข้อมูลตาข่ายที่ทันสมัยกว่าเพื่อจัดการกับการเพิ่ม / ลบโหนด, ขอบ, สามเหลี่ยม, เตตราฮาดราเป็นต้นตัวอย่างเช่นไลบรารีp4estใช้โครงสร้างข้อมูลแปดตัวสำหรับการปรับแต่งการปรับตาข่าย คุณมักจะไม่พบว่ามีแปดที่ใช้สำหรับการคำนวณบนตาข่ายแบบคงที่ การเปลี่ยนแปลงด้านพีชคณิตเชิงเส้นสำหรับ FEM แบบปรับตัวได้คืออะไร? วิธีที่ทื่อที่สุดที่ฉันสามารถนึกได้ก็คือการสร้างเมทริกซ์ระบบใหม่ทั้งหมดอย่างสมบูรณ์เมื่อใดก็ตามที่ตาข่ายถูกขัดหรือหยาบ หากการดัดแปลงตาข่ายเป็นการดำเนินการที่ไม่บ่อยนักเพียงพอค่าใช้จ่ายในการทำเช่นนั้นจะถูกตัดจำหน่ายในที่สุดเมื่อคำนวณส่วนที่เหลือ เราสามารถใช้ประโยชน์จากซอฟต์แวร์พีชคณิตเชิงเส้นแบบกระจาย (PETSc, Trilinos และอื่น ๆ ) ได้อย่างง่ายดายด้วยวิธีการนี้ วิธีการทู่นี้ใช้กันมากที่สุดหรือมีห้องสมุดที่จัดการเพื่อนำมาใช้ใหม่หรือปรับเปลี่ยนเมทริกซ์เก่าในระหว่างการปรับแต่ง? ท้ายที่สุดแล้วส่วนใหญ่ของตาข่ายและเมทริกซ์ที่เกี่ยวข้องจะไม่เปลี่ยนแปลงระหว่างการปรับตัวของตาข่าย

3
การแก้ปัญหาที่เบาบางและระบบปรับอากาศที่ไม่ดี
ฉันตั้งใจที่จะแก้ปัญหา Ax = b โดยที่ A มีความซับซ้อนเบาบางไม่สมมาตรและมีเงื่อนไขไม่ดี (หมายเลขเงื่อนไข ~ 1E + 20) เมทริกซ์สี่เหลี่ยมหรือสี่เหลี่ยม ฉันสามารถแก้ไขระบบด้วย ZGELSS ใน LAPACK ได้อย่างถูกต้อง แต่เมื่อระดับความเป็นอิสระในระบบของฉันเพิ่มขึ้นมันใช้เวลานานในการแก้ไขระบบบนพีซีที่มี ZGELSS เนื่องจาก sparsity ไม่ถูกใช้ประโยชน์ เมื่อเร็ว ๆ นี้ฉันลอง SuperLU (ใช้ที่เก็บข้อมูล Harwell-Boeing) สำหรับระบบเดียวกัน แต่ผลลัพธ์ไม่ถูกต้องสำหรับหมายเลขเงื่อนไข> 1E + 12 (ฉันไม่แน่ใจว่านี่เป็นปัญหาเชิงตัวเลขกับการหมุน) ฉันมีแนวโน้มที่จะใช้ตัวแก้ปัญหาที่พัฒนาแล้วมากขึ้น มีตัวแก้ปัญหาที่แข็งแกร่งซึ่งสามารถแก้ปัญหาระบบที่ฉันกล่าวถึงอย่างรวดเร็ว (เช่นการใช้ประโยชน์จาก sparsity) และเชื่อถือได้ (ในมุมมองของหมายเลขเงื่อนไข)?

1
การแก้ระบบด้วยการอัพเดทแนวทแยงอันดับเล็ก ๆ
สมมติว่าฉันมีระบบ linear ขนาดใหญ่แบบดั้งเดิม: Ax0=ข0Ax0=b0A\textbf{x}_0=\textbf{b}_0. ตอนนี้ฉันไม่มีA- 1A−1A^{-1} เนื่องจาก A ใหญ่เกินไปที่จะแยกตัวประกอบหรือแยกย่อยใด ๆ ของ AAAแต่สมมติว่าฉันมีทางออก x0x0\textbf{x}_0 พบกับการแก้ซ้ำ ๆ ตอนนี้ฉันต้องการใช้การอัปเดตอันดับเล็กน้อยกับเส้นทแยงมุมของ A (เปลี่ยนรายการเส้นทแยงมุมเล็กน้อย): ( A + D )x1=ข0(A+D)x1=b0(A+D)\textbf{x}_1=\textbf{b}_0 ที่ไหน DDDเป็นเมทริกซ์แนวทแยงที่มีค่า 0 ส่วนใหญ่เป็นเส้นทแยงมุมและค่าที่ไม่เป็นศูนย์ ถ้าฉันมีA- 1A−1A^{-1}ฉันจะสามารถใช้ประโยชน์จากสูตร Woodbury เพื่อใช้การอัปเดตกับสิ่งที่ตรงกันข้าม อย่างไรก็ตามฉันไม่มีสิ่งนี้ มีอะไรบ้างที่ฉันทำได้เพียงแค่แก้ไขปัญหาระบบทั้งหมดซ้ำแล้วซ้ำอีก? มีวิธีใดบ้างที่ฉันจะได้รับสิ่งที่จำเป็นก่อนMMM ซึ่งง่ายต่อการกลับด้าน \ ง่ายเช่นนั้น MA1≈A0MA1≈A0MA_1 \approx A_0ดังนั้นฉันจะต้องทำทั้งหมดถ้ามี x0x0\textbf{x}_0 ถูกนำไปใช้ M- 1M−1M^{-1} และวิธีการวนซ้ำจะมาบรรจบกันในการทำซ้ำสองสามครั้ง?

3
การคำนวณพหุนามลักษณะของเมทริกซ์กระจัดกระจายจริง
รับเมทริกซ์กระจัดกระจายทั่วไป A ∈Rn × nA∈Rn×nA \in \mathbb{R}^{n\times n}ด้วยm << n (การแก้ไข:ม«n2ม.«n2m \ll n^2) องค์ประกอบที่ไม่ใช่ศูนย์ (โดยทั่วไป m ∈ O ( n )ม.∈O(n)m \in {\cal O}(n)) AAA เป็นเรื่องทั่วไปในแง่ที่ว่ามันไม่มีคุณสมบัติที่เฉพาะเจาะจง (เช่นความชัดเจนเชิงบวก) และไม่มีโครงสร้าง (เช่นความเป็นแถบสี) อะไรคือวิธีการเชิงตัวเลขที่ดีในการคำนวณทั้งพหุนามลักษณะหรือพหุนามน้อยที่สุดของAAA?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.