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

เมทริกซ์คืออาร์เรย์ขององค์ประกอบสี่เหลี่ยม (หมายเลข eq สัญลักษณ์หรือนิพจน์) ซึ่งจัดเรียงในคอลัมน์และแถว

5
การคำนวณโครงสร้าง sparsity สำหรับเมทริกซ์องค์ประกอบ จำกัด
คำถาม: มีวิธีการใดในการคำนวณโครงสร้าง sparsity ของเมทริกซ์ไฟท์องค์ประกอบที่แม่นยำและมีประสิทธิภาพ ข้อมูล: ฉันกำลังทำงานกับตัวแก้สมการความดัน Poisson โดยใช้วิธีของ Galerkin ที่มีพื้นฐานกำลังสองของลากรองจ์เขียนใน C และใช้ PETSc สำหรับการจัดเก็บเมทริกซ์แบบกระจัดกระจายและกิจวัตร KSP ในการใช้ PETSc อย่างมีประสิทธิภาพฉันจำเป็นต้องจัดสรรหน่วยความจำล่วงหน้าสำหรับเมทริกซ์ความแข็งระดับโลก ขณะนี้ฉันกำลังประกอบ mock เพื่อประเมินจำนวนที่ไม่ใช่ศูนย์ต่อแถวดังต่อไปนี้ (pseudocode) int nnz[global_dim] for E=1 to NUM_ELTS for i=1 to 6 gi = global index of i if node gi is free for j=1 to 6 gj = global …

3
ความแม่นยำจุดเดียวเทียบกับสองเท่า
ตัวเลขจุดลอยตัวที่มีความแม่นยำเดียวใช้หน่วยความจำเพียงครึ่งเดียวและในเครื่องจักรที่ทันสมัย รหัส FDTD จำนวนมากที่ฉันพบนั้นใช้เลขคณิตและการจัดเก็บที่มีความแม่นยำเพียงอย่างเดียวเท่านั้น มีกฎของหัวแม่มือเมื่อยอมรับการใช้ความแม่นยำเดียวสำหรับการแก้ระบบสมการกระจัดกระจายขนาดใหญ่หรือไม่? ฉันคิดว่ามันต้องขึ้นอยู่กับจำนวนเงื่อนไขเมทริกซ์เป็นอย่างมาก นอกจากนี้ยังมีเทคนิคที่มีประสิทธิภาพใด ๆ ที่ใช้ความแม่นยำสองเท่าในกรณีที่จำเป็นและไม่ต้องใช้ความแม่นยำสองเท่า ตัวอย่างเช่นฉันคิดว่าสำหรับการคูณเวกเตอร์เมทริกซ์หรือผลิตภัณฑ์เวกเตอร์ดอทมันอาจเป็นความคิดที่ดีที่จะสะสมผลลัพธ์ในตัวแปรความแม่นยำสองเท่า (เพื่อหลีกเลี่ยงข้อผิดพลาดในการยกเลิก) แต่รายการแต่ละรายการจะถูกคูณด้วยกัน สามารถคูณด้วยความแม่นยำเดียว FPU สมัยใหม่ช่วยให้การแปลงจากความแม่นยำเดี่ยว (ลอย) เป็นความแม่นยำสองเท่า (สองเท่า) และในทางกลับกันได้หรือไม่? หรือการดำเนินการที่มีราคาแพงเหล่านี้?

5
การแก้ซ้ำ ๆ ด้วย ,
ฉันกำลังใช้ MATLAB เพื่อแก้ปัญหาที่เกี่ยวข้องกับการแก้A x = bAx=b\mathbf{A} \mathbf{x}=\mathbf{b}ทุก ๆ เวลาที่ขb\mathbf{b}เปลี่ยนแปลงไปตามกาลเวลา ตอนนี้ฉันกำลังทำสิ่งนี้โดยใช้ MATLAB mldivide: x = A\b ฉันมีความยืดหยุ่นในการทำให้เป็น precomputations มากที่สุดเท่าที่จำเป็นเพื่อให้ผมสงสัยว่าถ้ามีวิธีที่เร็วขึ้นและ / mldivideหรือความถูกต้องมากกว่า โดยทั่วไปแล้วจะทำอะไรที่นี่ ขอบคุณทุกคน!

1
อัลกอริทึมสำหรับเมทริกซ์จำนวนเต็มกระจัดกระจาย
ฉันกำลังมองหาห้องสมุดที่ดำเนินการเมทริกซ์ในเมทริกซ์กระจัดกระจายขนาดใหญ่ที่ไม่มีความเสถียรเชิงตัวเลข เมทริกซ์จะเป็น 1,000+ โดย 1000+ และค่าของเมทริกซ์จะอยู่ระหว่าง 0 ถึง 1,000 ฉันจะทำการอัลกอริทึมแคลคูลัสดัชนีดังนั้นฉันจะสร้างเวกเตอร์แถว (กระจัดกระจาย) ของเมทริกซ์ตามลำดับ เมื่อฉันพัฒนาแต่ละแถวฉันจะต้องทดสอบความเป็นอิสระเชิงเส้น เมื่อฉันกรอกเมทริกซ์ของฉันด้วยจำนวนเวกเตอร์อิสระเชิงเส้นที่ต้องการฉันจะต้องเปลี่ยนเมทริกซ์ให้อยู่ในรูปแบบแถวระดับลดลง ปัญหาตอนนี้คือการใช้งานของฉันใช้การกำจัดแบบเกาส์เซียนเพื่อกำหนดความเป็นอิสระเชิงเส้น อย่างไรก็ตามด้วยความหนาแน่นและขนาดของเมทริกซ์นี่หมายความว่ารายการในแต่ละแถวใหม่มีขนาดใหญ่ขึ้นเรื่อย ๆ เมื่อเวลาผ่านไปเนื่องจากต้องพบ lcm ของรายการนำหน้าเพื่อดำเนินการยกเลิก การค้นหารูปแบบที่ลดลงของเมทริกซ์ยิ่งทำให้ปัญหารุนแรงขึ้นอีก ดังนั้นคำถามของฉันคือมีอัลกอริทึมหรือยังดีกว่าการใช้งานที่สามารถทดสอบความเป็นอิสระเชิงเส้นและแก้รูปแบบแถวระดับลดลงในขณะที่รักษารายการที่มีขนาดเล็กที่สุดเท่าที่จะทำได้? การทดสอบที่มีประสิทธิภาพสำหรับความเป็นอิสระเชิงเส้นมีความสำคัญอย่างยิ่งเนื่องจากในอัลกอริทึมแคลคูลัสดัชนีจะดำเนินการมากที่สุด

3
สถานะปัจจุบันของศิลปะเกี่ยวกับอัลกอริธึมสำหรับการสลายตัวของค่าเอกพจน์คืออะไร?
ฉันกำลังทำงานกับเมทริกซ์ไลบรารีส่วนหัวเท่านั้นเพื่อให้ความสามารถพีชคณิตเชิงเส้นในระดับที่สมเหตุสมผลในแพคเกจที่ง่ายที่สุดเท่าที่จะเป็นไปได้และฉันพยายามสำรวจว่าสถานะปัจจุบันของศิลปะเป็นอย่างไร: การคำนวณ SVD ของ เมทริกซ์ที่ซับซ้อน ฉันกำลังสลายตัวแบบสองเฟส, การทำ bidiagonalization ตามด้วยการคำนวณค่าเอกพจน์ ตอนนี้ฉันกำลังใช้วิธีคฤหัสถ์สำหรับ bidiagonalization (ผมเชื่อว่า LAPACK ใช้นี้เช่นกัน) และผมคิดว่าเป็นเรื่องที่ดีที่จะได้รับในปัจจุบัน (ยกเว้นกรณีที่มีคนรู้ของอัลกอริทึม สำหรับมัน..). O(N2)O(N2)\mathcal{O}(N^2) การคำนวณค่าเอกพจน์อยู่ถัดไปในรายการของฉันและฉันค่อนข้างจะวนซ้ำกับสิ่งที่อัลกอริทึมทั่วไปสำหรับทำสิ่งนี้ ฉันได้อ่านที่นี่ว่าการวิจัยมุ่งไปที่วิธีผกผันการทำซ้ำที่รับประกันความเป็นเอกเทศกับความซับซ้อน ฉันสนใจที่จะได้ยินเกี่ยวกับเรื่องนั้นหรือความก้าวหน้าอื่น ๆO(N)O(N)\mathcal{O}(N)

1
ปัญหา SVD ถ่วงน้ำหนักหรือไม่
AAABBBxxxyyymin∑ij(Aij−xiyjBij)2.min∑ij(Aij−xiyjBij)2. \min \sum_{ij} (A_{ij} - x_i y_j B_{ij})^2. A−diag(x)⋅B⋅diag(y)=A−B∘(xy⊤)A−diag(x)⋅B⋅diag(y)=A−B∘(xy⊤)A - \mbox{diag}(x) \cdot B \cdot \mbox{diag}(y) = A - B \circ (x y^\top) โดยทั่วไปฉันต้องการค้นหาเวกเตอร์หลายหน่วยและyในรูปแบบ \ min \ sum_ {ij} (A_ {ij} - \ sum_ {k = 1} ^ n s_i x_i ^ {(k)} y_j ^ {(k)} B_ {ij}) ^ 2 โดยที่s_iมีค่าสัมประสิทธิ์แท้จริงเป็นบวกxxxyyymin∑ij(Aij−∑k=1nsix(k)iy(k)jBij)2.min∑ij(Aij−∑k=1nsixi(k)yj(k)Bij)2. …

3
การทดสอบว่าเมทริกซ์ 12x12 สองตัวมีค่าเดียวกัน
12×1212×1212 \times 12QQQdet(Q)=det(12I−Q−J)(1)det(Q)=det(12I−Q−J)(1)\det(Q) = \det(12I-Q-J) \; \; (1)JJJ ฉันกำลังทำสิ่งนี้กับห้องสมุดตัวนิ่มแต่มันกลับช้าไปหน่อย สิ่งที่ฉันต้องทำคือทำล้านล้านเมทริกซ์และปรากฎว่าการคำนวณสองปัจจัยคือคอขวดของโปรแกรมของฉัน ดังนั้นฉันมีสองคำถาม มีเคล็ดลับใดบ้างที่ฉันสามารถใช้เพื่อคำนวณดีเทอร์แนนต์ได้เร็วขึ้นเมื่อฉันรู้ขนาดของมัน? อาจเป็นการขยายตัวที่ยุ่งเหยิงสำหรับเมทริกซ์12×1212×1212 \times12ที่สามารถทำงานได้ในกรณีนี้? มีวิธีอื่นที่มีประสิทธิภาพในการทดสอบความเท่าเทียมกันหรือไม่(1)(1)(1) แก้ไข เพื่อตอบความคิดเห็น ฉันจำเป็นต้องคำนวณกราฟที่ไม่เกี่ยวข้องกับตัวเองที่เชื่อมต่อทั้งหมดGGGของคำสั่ง131313เช่นGGGและG¯¯¯¯G¯\overline{G}มีจำนวนของต้นไม้ทอด แรงจูงใจสำหรับสิ่งนี้สามารถพบได้ในโพสต์mathoverflowนี้ สำหรับเครื่องฉันใช้งานเครื่อง 8 คอร์ 3.4GHh พร้อมกัน แก้ไข ฉันสามารถลดเวลาทำงานที่คาดไว้ได้ถึง 50% โดยการทำโปรแกรม C เพื่อคำนวณปัจจัยเฉพาะของ12×1212×1212 \times 12เมทริกซ์ ข้อเสนอแนะยังคงยินดีต้อนรับ

2
SVD ของเมทริกซ์คำนวณอย่างไรในทางปฏิบัติ
เช่น MATLAB จะคำนวณ SVD ของเมทริกซ์ที่กำหนดอย่างไร ผมถือว่าคำตอบอาจจะเกี่ยวข้องกับการคำนวณ eigenvectors A*A'และค่าลักษณะเฉพาะของ หากเป็นกรณีนี้ฉันอยากจะรู้ว่ามันคำนวณได้อย่างไร

3
ห้องสมุดสำหรับแก้สมการของ Lyapunov
สมการเมทริกซ์ต่อไปนี้ ในสำหรับเมทริกซ์และปรากฏในงานของฉันเป็นลักษณะของเมทริกซ์ความแปรปรวนร่วม ฉันได้เรียนรู้ว่าสมการนี้เป็นที่รู้จักโดยเฉพาะอย่างยิ่งในทฤษฎีการควบคุมเวลาต่อเนื่องในฐานะสมการของ Lyapunovและมีอัลกอริทึมที่รู้จักกันดีมากมายสำหรับการแก้ปัญหาที่ใช้ประโยชน์จากลักษณะพิเศษของสมการเชิงเส้นนี้ B Σ + Σ BT+ C= 0BΣ+ΣBT+C=0B\Sigma + \Sigma B^T + C = 0ΣΣ\Sigma -−-BBBคCC-−- จาก googling ฉันได้เรียนรู้ว่ามีการใช้งาน Matlab และ Fortran อยู่ ฉันพบ SLICOT และ RECSY เนื่องจากปัญหาสิทธิ์การใช้งานการเข้าถึงแหล่ง SLICOT ถูกหยุดลง งานส่วนใหญ่ของฉันถูกนำไปใช้ใน R และเมื่อฉันไม่สามารถหาส่วนต่อประสาน R เพื่อแก้ปัญหาได้ คำถามของฉันคือถ้า SLICOT เป็นห้องสมุด Fortran (หรือ C) ที่ดีที่สุดที่มีอยู่พร้อมกับการแก้สมการของ Lyapunov? ฉันยังสนใจในการใช้งานที่สามารถจัดการเมทริกซ์กระจัดกระจายได้ BBB

1
การฉายพื้นที่ว่างของ
เมื่อพิจารณาจากระบบที่ฉันได้อ่านว่าในกรณีที่การทำซ้ำ Jacobi ถูกใช้เป็นนักแก้ปัญหาวิธีนี้จะไม่มาบรรจบกันถ้าไม่มีศูนย์ องค์ประกอบใน null พื้นที่ของ ดังนั้นวิธีหนึ่งอย่างเป็นทางการสามารถระบุได้อย่างไรว่าหากมีองค์ประกอบที่ไม่เป็นศูนย์ซึ่งประกอบไปด้วยพื้นที่ว่างของ , วิธี Jacobi นั้นไม่เป็นการรวมกัน? ฉันสงสัยว่าจะทำอย่างไรให้เป็นทางการทางคณิตศาสตร์ได้เนื่องจากส่วนหนึ่งของฉากตั้งฉากกับพื้นที่ว่างนั้นมาบรรจบกันA ∈ R n × n b A b Ax = B ,Ax=b,Ax=b,A ∈ Rn × nA∈Rn×nA\in\mathbb{R}^{n\times n}ขbbAAAขbbAAA ดังนั้นโดยการฉายช่องว่างว่างของจากแต่ละการวนซ้ำมันจะมาบรรจบกัน (หรือ?)AAA ......... ฉันสนใจเป็นพิเศษในกรณีของ ที่เป็นเมทริกซ์ Laplacian แบบสมมาตรที่มีช่องว่างว่างที่เวกเตอร์และมีองค์ประกอบเป็นศูนย์ใน null-space ของ ,ที่เป็นเมทริกซ์กึ่งกลาง นั่นหมายความว่าย้ำ Jacobi แต่ละคนจะมีช่องว่างของคาดการณ์ไว้เช่น. แต่ละ iterate จะอยู่กึ่งกลาง ? ฉันถามสิ่งนี้ตั้งแต่นั้นมาก็ไม่จำเป็นต้องฉายว่างของจาก Jacobi iterates (หรือกล่าวอีกนัยหนึ่งถึงจุดศูนย์กลางL …

4
การค้นหาสแควร์รูทของเมทริกซ์ Laplacian
สมมติว่าเมทริกซ์ต่อไปจะได้รับ [ 0.500 - 0.333 - ภายในเวลา 0.167 - 0.500 0.667 - ภายในเวลา 0.167 - 0.500 - 0.333 0.833 ] กับ transpose ของT ผลิตภัณฑ์A T A = Gให้ผลตอบแทน [ 0.750 - 0.334 - 0.417 - 0.334 0.667 - 0.333 - 0.417 - 0.333 0.750 ] ,AAA⎡⎣⎢0.500−0.500−0.500−0.3330.667−0.333−0.167−0.1670.833⎤⎦⎥[0.500−0.333−0.167−0.5000.667−0.167−0.500−0.3330.833] \left[\begin{array}{ccc} 0.500 & -0.333 …

2
เมทริกซ์เลขชี้กำลังของเมทริกซ์ Hamiltonian
ให้เป็นเมทริกซ์จตุรัสที่มีความหนาแน่นจริง และนั้นสมมาตร ปล่อยG QA , G , QA,G,QA, G, QGGGQQQ H=[A−Q−G−AT]H=[A-G-Q-AT]H = \begin{bmatrix} A & -G \\ -Q &-A^T \end{bmatrix} เป็นเมทริกซ์มิลโตเนียน ฉันต้องการที่จะคำนวณชี้แจงเมทริกซ์ของHฉันต้องการเลขชี้กำลังแบบเต็มเมทริกซ์ไม่เพียง แต่ผลิตภัณฑ์เมทริกซ์เวกเตอร์ มีอัลกอริธึมหรือไลบรารีพิเศษใดบ้างที่พร้อมใช้งานในการคำนวณเลขชี้กำลังของเมทริกซ์มิลโตเนียน?e t HHHHetHอีเสื้อHe^{tH}

1
ทำไม SVD ถึงพูดถึง QR และ LU น้อยกว่าสำหรับเมทริกซ์กระจัดกระจาย
ตัวอย่างเช่นไลบรารี C ++ sparse matrix ที่ฉันใช้ - Eigen และ SuiteSparse ดูเหมือนว่าพวกเขาจะไม่มี SVD funcitionality สำหรับ sparse matrix ดังนั้นเพียงแค่อยากรู้อยากเห็น SVD นั้นยากกว่า QR / LU สำหรับเมทริกซ์แบบกระจายหรือไม่

4
แพคเกจเมทริกซ์กระจัดกระจายแบบสี่แกนเลขคณิตใด ๆ ?
ฉันกำลังทำงานกับระบบสมการเชิงเส้นหร็อมแหร็มขนาดใหญ่ ฉันต้องการใช้เลขคณิตคู่สองครั้งหรือเลขคณิตคู่เลขคณิตเพื่อแก้ปัญหาเหล่านั้น ฉันรู้ว่ามีแพ็คเกจชื่อ MPACK ที่พัฒนาโดย Nakata, Maho ซึ่งสามารถทำการคำนวณเชิงพีชคณิตเชิงเส้นเชิงตัวเลขภายใต้การคำนวณทางคณิตศาสตร์แบบสี่คู่ อย่างไรก็ตามมันถูกออกแบบมาสำหรับเมทริกซ์หนาแน่นไม่ใช่เมทริกซ์เบาบาง คุณรู้หรือไม่ว่ามีแพคเกจเมทริกซ์กระจัดกระจายแบบ quad-double ใด ๆ ?

1
การแก้ระบบ Ax = b อย่างง่ายควบคู่ไปกับ PETSc
ฉันยังใหม่กับแพ็คเกจ PETSc ฉันมีเมทริกซ์ ~ 4000x4000 A ในรูปแบบเมทริกซ์ตลาดและฉันต้องการให้ PETSc แก้ปัญหานี้โดยใช้โปรเซสเซอร์หลายตัว ฉันรู้วิธีแก้ปัญหาระบบในโปรเซสเซอร์เดียว แต่ฉันไม่ทราบวิธีการกระจายเมทริกซ์และเวกเตอร์ระหว่างโปรเซสเซอร์ที่แตกต่างกัน มีคำแนะนำง่ายๆในการทำเช่นนี้หรือไม่?
10 petsc  matrix 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.