คำถามติดแท็ก linear-algebra

คำถามเกี่ยวกับอัลกอริทึม / การคำนวณเชิงพีชคณิตเชิงเส้นรวมถึงการแก้ปัญหาของระบบเชิงเส้นปัญหากำลังสองน้อยที่สุด eigenproblems และเรื่องอื่น ๆ

2
พีชคณิต Multigrid: เพราะเหตุใดผลิตภัณฑ์ของการแก้ไขและข้อ จำกัด จึงไม่ส่งผลในบางสิ่งด้วย norm 1
ขณะนี้ฉันกำลังทำงานกับ "A Multigrid Tutorial" โดย Briggs et al, บทที่ 8 การก่อสร้างของผู้ดำเนินการแก้ไขได้รับ: จากนั้นจะมีการสร้างตัวควบคุมข้อ จำกัด และตัวดำเนินการตารางแบบละเอียดดังนี้ สมมติว่าเรามีจุดกริดสามจุด x0, x1, x2 โดยที่ตรงกลางหนึ่ง x1 นั้นใช้ได้และส่วนอื่น ๆ จะหยาบ x1 = x0*w0 + x2*w2หนึ่งกลางหยันโดย ดังนั้นตัวดำเนินการแก้ไขคือ (ใน Matlab): I = [1, 0, 0; w0, 0, w2; 0, 0, 1] I = [ 1, 0, 0] [ w0, …

2
เป็นวิธีที่เร็วที่สุดในการคำนวณค่าลักษณะเฉพาะทั้งหมดของเมทริกซ์ adjacency ใหญ่และเบาบางในงูใหญ่คืออะไร?
ฉันพยายามที่จะคิดออกว่ามีวิธีที่เร็วกว่าในการคำนวณค่าลักษณะเฉพาะและ eigenvector ทั้งหมดของเมทริกซ์ adjacency ขนาดใหญ่มากและกระจัดกระจายกว่าการใช้ scipy.sparse.linalg.eigsh เท่าที่ฉันรู้วิธีการนี้ใช้เพียงการกระจายและ คุณลักษณะสมมาตรของเมทริกซ์ เมทริกซ์คำวิเศษณ์เป็นเลขฐานสองสิ่งที่ทำให้ฉันคิดว่ามีวิธีที่เร็วกว่าที่จะทำ ฉันสร้างเมทริกซ์ adjacency แบบสุ่มขนาด 1000x1000 และเปรียบเทียบระหว่างหลายวิธีในแล็ปท็อป x230 ubuntu 13.04 ของฉัน: scipy.sparse.linalg.eigs: 0.65 วินาที scipy.sparse.linalg.eigsh: 0.44 วินาที scipy.linalg.eig: 6.09 วินาที scipy.linalg.eigh: 1.60 วินาที ด้วยการกระจัดกระจาย eigs และ eigsh ฉันตั้ง k จำนวนค่าลักษณะเฉพาะและ eigenvectors ที่ต้องการให้เป็นอันดับของเมทริกซ์ ปัญหาเริ่มต้นด้วยเมทริกซ์ที่ใหญ่กว่า - บนเมทริกซ์ 9000x9000 ใช้เวลา scipy.sparse.linalg.eigsh 45 นาที!

3
ตัวแก้เชิงเส้นเบาบางสำหรับหลาย ๆ มือขวา
ฉันจำเป็นต้องแก้ปัญหาระบบเชิงเส้นแบบกระจัดกระจาย (300x300 ถึง 1,000x1000) ที่มีด้านขวามือจำนวนมาก (300 ถึง 1,000) นอกเหนือจากปัญหาแรกนี้ฉันยังต้องการที่จะแก้ปัญหาระบบที่แตกต่างกัน แต่ด้วยองค์ประกอบที่ไม่เป็นศูนย์เหมือนกัน (ค่าที่แตกต่างกัน) ซึ่งเป็นระบบที่ห่างเหินจำนวนมากที่มีรูปแบบการกระจายอย่างต่อเนื่อง เมทริกซ์ของฉันไม่มีกำหนด ประสิทธิภาพของการแยกตัวประกอบและการกำหนดค่าเริ่มต้นไม่สำคัญ แต่ประสิทธิภาพของขั้นตอนการแก้คือ ขณะนี้ฉันกำลังพิจารณา PaStiX หรือ Umfpack และฉันอาจจะเล่นกับ Petsc (ซึ่งรองรับทั้งนักแก้ปัญหา) มีห้องสมุดที่สามารถใช้ประโยชน์จากความต้องการเฉพาะของฉัน (vectorization, multi-threading) หรือฉันควรพึ่งพานักแก้ปัญหาทั่วไปและ อาจแก้ไขได้เล็กน้อยตามความต้องการของฉัน เกิดอะไรขึ้นถ้าเมทริกซ์กระจัดกระจายมีขนาดใหญ่ขึ้นถึง ?106× 106106×10610^6 \times 10^6

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 ของรายการนำหน้าเพื่อดำเนินการยกเลิก การค้นหารูปแบบที่ลดลงของเมทริกซ์ยิ่งทำให้ปัญหารุนแรงขึ้นอีก ดังนั้นคำถามของฉันคือมีอัลกอริทึมหรือยังดีกว่าการใช้งานที่สามารถทดสอบความเป็นอิสระเชิงเส้นและแก้รูปแบบแถวระดับลดลงในขณะที่รักษารายการที่มีขนาดเล็กที่สุดเท่าที่จะทำได้? การทดสอบที่มีประสิทธิภาพสำหรับความเป็นอิสระเชิงเส้นมีความสำคัญอย่างยิ่งเนื่องจากในอัลกอริทึมแคลคูลัสดัชนีจะดำเนินการมากที่สุด

1
อัลกอริทึมสำหรับระบบเชิงเส้นของ ODE
ฉันสงสัยว่า: อัลกอริทึมที่ดีที่สุดในการแก้ โดยที่คือเมทริกซ์จริง A ไม่ได้ขึ้นอยู่กับเวลาอย่างชัดเจนโดยทั่วไปกระจัดกระจาย แต่ไม่จำเป็นต้องมีแถบสี ค่าลักษณะเฉพาะของมันมีชิ้นส่วนจริงที่ไม่เป็นบวก A นั้นเป็นเส้นทแยงมุม แต่อาจมีขนาดใหญ่เกินไปที่จะทำให้เส้นทแยงมุมเต็มประสิทธิภาพdudt=Aududt=Au\begin{equation} \frac{du}{dt} = Au \end{equation}AAAn×nn×nn\times n มีกฎสี่เหลี่ยมคางหมูโดยนัยซึ่งฉันมีประสบการณ์ที่ดี (I−Δt2A)un+1=(I+Δt2A)un(I−Δt2A)un+1=(I+Δt2A)un\begin{equation} \left(I-\frac{\Delta t}{2} A\right) u_{n+1} = \left(I+\frac{\Delta t}{2} A\right) u_{n} \end{equation} วิธีการที่ชัดเจนหรือประมาณ Pade? นอกจากนี้จะมีการเปลี่ยนแปลงอย่างไรถ้ามีการเพิ่มคำที่บังคับให้กับ RHS

3
Blaze ห้องสมุดพีชคณิตเชิงเส้น?
กระดาษ "Expression Templates Revisited: การวิเคราะห์ประสิทธิภาพของระเบียบวิธีปัจจุบัน" ใน SIAM Journal of Scientific Computing อ้างถึงห้องสมุดพีชคณิตเชิงเส้น "Blaze" ฉันไม่เคยได้ยินมาก่อนและดูเหมือนไม่สามารถหาข้อมูลอ้างอิงออนไลน์ได้ (การค้นหา google ที่เห็นได้ชัดกำลังให้กระดาษด้านบนคืน) แล้วห้องสมุดนี้คืออะไรและฉันจะเรียนรู้เพิ่มเติมได้ที่ไหน

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

3
แอปพลิเคชันกรณีใดบ้างที่มีเงื่อนไขการเสริมล่วงหน้าที่ดีกว่าตัวคูณ
ทั้งในการสลายตัวของโดเมน (DD) และ multigrid (MG) วิธีหนึ่งอาจเขียนแอพลิเคชันของการปรับปรุงบล็อกหรือแก้ไขหยาบเป็นทั้งสารเติมแต่งหรือคูณ สำหรับนักแก้จุดบกพร่องนี่คือความแตกต่างระหว่างการทำซ้ำ Jacobi และ Gauss-Seidel เรียบคูณสำหรับx = Bทำหน้าที่เป็นS ( x o L d , B ) = x n E Wจะถูกใช้เป็นAx=bAx=bAx = bS(xold,b)=xnewS(xold,b)=xnewS(x^{old}, b) = x^{new} xi+1=Sn(Sn−1(...,S1(xi,b)...,b),b)xi+1=Sn(Sn−1(...,S1(xi,b)...,b),b) x_{i+1} = S_n(S_{n-1}( ..., S_1(x_i, b) ..., b), b) และสารเติมแต่งเรียบเนียนถูกนำไปใช้เป็น xi+1=xi+∑ℓ=0nλℓ(Sℓ(xi,b)−xi)xi+1=xi+∑ℓ=0nλℓ(Sℓ(xi,b)−xi) x_{i+1} = x_{i} + \displaystyle\sum_{\ell = 0}^{n}\lambda_\ell(S_\ell(x_i, …

3
การใช้อัลกอริทึมเมทริกซ์ tridiagonal ที่มีประสิทธิภาพ
ฉันกำลังแก้ปัญหาทางกายภาพโดยใช้ชุดตัวเลขโดยปริยาย สิ่งนี้ทำให้ฉันแก้สมการเชิงเส้นด้วยเมทริกซ์สามเหลี่ยม ฉันเขียนรหัสอัลกอริทึมนี้จาก Wikipedia ฉันสงสัยว่ามีห้องสมุดที่มีประสิทธิภาพที่ช่วยให้แก้สมการประเภทนี้ด้วยวิธีที่เหมาะสมหรือไม่ สิ่งสำคัญคือเมทริกซ์นั้นจะเปลี่ยนแปลงตัวเองเฉพาะเมื่อพารามิเตอร์ของระบบมีการเปลี่ยนแปลงดังนั้นฉันจึงมีโอกาสในการคำนวณขั้นตอนวิธีอัลกอริทึมใหม่สำหรับโบนัสรอบการแสดงที่ดี ฉันใช้ C ++

3
การทดสอบว่าเมทริกซ์เป็นค่ากึ่งบวกแน่นอนหรือไม่
ฉันมีรายการของเมทริกซ์สมมาตรที่ฉันต้องการตรวจสอบความแน่นอนกึ่งบวก (นั่นคือค่าลักษณะเฉพาะของพวกเขาไม่ใช่ค่าลบ)LL{\cal L} ความคิดเห็นข้างต้นบอกเป็นนัยว่าเราสามารถทำได้โดยการคำนวณค่าลักษณะเฉพาะและตรวจสอบว่าไม่ใช่ค่าลบ (อาจต้องดูแลข้อผิดพลาดในการปัดเศษ) การคำนวณค่าลักษณะเฉพาะนั้นค่อนข้างแพงในสถานการณ์ของฉัน แต่ฉันสังเกตว่าห้องสมุดที่ฉันใช้นั้นมีการทดสอบที่รวดเร็วสำหรับความชัดเจนเชิงบวก (นั่นคือถ้าค่าลักษณะเฉพาะของเมทริกซ์เป็นบวกอย่างเคร่งครัด) ดังนั้นความคิดจะเป็นที่ได้รับเมทริกซ์หนึ่งการทดสอบถ้าB + ϵ ฉันเป็นบวกแน่นอน ถ้าไม่ใช่Bจะไม่เป็นกึ่งบวกแน่นอนมิฉะนั้นเราสามารถคำนวณค่าลักษณะเฉพาะของBเพื่อให้แน่ใจว่าเป็นบวกกึ่งแน่นอนแน่นอนB ∈ LB∈LB \in {\cal L}B + ϵ ฉันB+ϵIB + \epsilon IBBBBBB คำถามของฉันตอนนี้คือ: มีวิธีการทดสอบที่ตรงและมีประสิทธิภาพมากขึ้นหรือไม่ว่าเมทริกซ์นั้นเป็นกึ่งบวกแน่นอนหรือไม่โดยมีเงื่อนไขว่าการทดสอบที่มีประสิทธิภาพสำหรับความแน่นอนเชิงบวกจะได้รับหรือไม่?

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. …

1
ค่าลักษณะเฉพาะที่เล็กที่สุดโดยไม่ผกผัน
สมมติว่าA∈Rn×nA∈Rn×nA\in\mathbb{R}^{n\times n}เป็นเมทริกซ์สมมาตรเชิงบวกแน่นอน AAAใหญ่พอที่จะแก้ปัญหาAx=bAx=bAx=bได้โดยตรง มีอัลกอริทึมซ้ำสำหรับการหาค่าลักษณะเฉพาะที่เล็กที่สุดของAAAที่ไม่เกี่ยวข้องกับการกลับAAAในแต่ละการวนซ้ำหรือไม่? นั่นคือฉันจะต้องใช้อัลกอริทึมซ้ำเช่นการไล่ระดับสีแบบคอนจูเกตเพื่อแก้Ax=bAx=bAx=bดังนั้นการใช้ซ้ำหลายครั้งA−1A−1A^{-1}ดูเหมือนว่า "วงใน" ที่มีราคาแพง ฉันต้องการไอเกนิคตัวเดียว ขอบคุณ!

2
อันตรายจากการคำนวณทางคณิตศาสตร์ที่ซับซ้อนในการคำนวณทางวิทยาศาสตร์
ผลิตภัณฑ์ภายในที่ซับซ้อนได้สองคำนิยามที่แตกต่างกันตัดสินใจโดยการประชุม: ˉ U Tวีหรือยูทีˉวี ใน BLAS ฉันพบกิจวัตร cdotu, zdotu และ cdotc, zdotc สองรูทีนก่อนหน้านี้คำนวณu t v (ผลิตภัณฑ์ด้านในปลอม!) และรูทีนสุดท้ายสองรายการเชื่อมต่อเวกเตอร์แรกในผลิตภัณฑ์ภายใน นอกจากนี้โดยความหมายอย่างใดอย่างหนึ่ง (ผันUหรือV ) ⟨ U , V ⟩ = ¯ ⟨ วี, ยู⟩⟨ u , v ⟩⟨ยู,โวลต์⟩\langle u,v\rangleยู¯Tโวลต์ยู¯Tโวลต์\bar{u}^TvยูTโวลต์¯ยูTโวลต์¯u^T\bar{v}ยูTโวลต์ยูTโวลต์u^Tvยูยูuโวลต์โวลต์v⟨ u , v ⟩ = ⟨ v , u ⟩¯¯¯¯¯¯¯¯¯¯¯⟨ยู,โวลต์⟩=⟨โวลต์,ยู⟩¯\langle u,v\rangle=\overline{\langle v,u\rangle}ด้วยการผัน! ยิ่งไปกว่านั้นตามที่ระบุไว้ในความคิดเห็นการเลือกค่าหลักสำหรับฟังก์ชันที่ซับซ้อนหลายค่าสามารถขึ้นอยู่กับการประชุม คำถามของฉันคือ: ภาวะแทรกซ้อนนี้ทำให้เกิดอันตรายที่แท้จริงสำหรับการใช้เลขคณิตที่ซับซ้อนในการคำนวณทางวิทยาศาสตร์หรือไม่? …

1
สเกลค่าคงที่สำหรับอัลกอริธึมการค้นหาบรรทัดและภูมิภาคที่เชื่อถือได้
ในหนังสือของ Nocedal & Wright เกี่ยวกับการเพิ่มประสิทธิภาพเชิงตัวเลขมีคำสั่งในหัวข้อ 2.2 (หน้า 27) "โดยทั่วไปการพูดง่ายกว่าที่จะรักษาระดับความไม่แปรเปลี่ยนของอัลกอริธึมการค้นหาบรรทัด ในส่วนเดียวกันพวกเขาพูดคุยเกี่ยวกับการมีตัวแปรใหม่ที่เป็นรุ่นดั้งเดิมของตัวแปรดั้งเดิมซึ่งสามารถช่วยในการค้นหาทั้งสองและภูมิภาคที่เชื่อถือได้ อีกวิธีคือการปรับสภาพล่วงหน้า สำหรับวิธีการภูมิภาคที่เชื่อถือได้นั้นการปรับสภาพล่วงหน้านั้นเทียบเท่ากับการมีภูมิภาคที่เชื่อถือได้รูปไข่และทำให้เกิดความแปรปรวนของสเกล อย่างไรก็ตามสัญชาตญาณที่คล้ายกันไม่ชัดเจนสำหรับการกำหนดเงื่อนไขสำหรับการค้นหาบรรทัด การค้นหาบรรทัดเหมาะกว่าสำหรับขนาด invariance อย่างไร มีข้อควรพิจารณาในทางปฏิบัติบ้างไหม? นอกจากนี้ฉันมีคำถามเกี่ยวกับเงื่อนไขเบื้องต้นสำหรับวิธีภูมิภาคที่เชื่อถือได้ สำหรับปัญหาที่มีเงื่อนไขไม่ดีนักเงื่อนไขที่ดีจะลดจำนวนการทำซ้ำรอบนอกของนิวตันและการทำซ้ำ CG ภายในหรือเฉพาะหลังเท่านั้น? เนื่องจากภูมิภาคที่ไว้วางใจนั้นเป็นรูปวงรีในพื้นที่ดั้งเดิมผู้มีเงื่อนไขเบื้องต้นที่ดีควรนำไปสู่รูปวงรีที่จะเข้ากับภูมิทัศน์ได้ดีขึ้น ฉันรู้สึกว่านี่อาจลดจำนวนการทำซ้ำรอบนอกของนิวตันโดยบังคับให้อัลกอริทึมไปยังทิศทางที่ดีขึ้น ถูกต้องหรือไม่

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