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

แนวทางในการแก้ระบบสมการโดยการคาดการณ์ปัญหาจากการแทนค่ามาตราส่วนอย่างละเอียดไปยังค่าที่หยาบกว่า การแทนค่าแบบหยาบโดยทั่วไปจะมีค่าที่ไม่รู้จักน้อยกว่าทำให้แก้ปัญหาได้เร็วกว่าปัญหาเดิม จากนั้นวิธีแก้ปัญหาที่หยาบสามารถถูกคาดเดากลับไปยังปัญหาที่ละเอียดกว่าเพื่อเป็นการเดาเบื้องต้นของวิธีแก้ปัญหาที่ละเอียดกว่า

17
มีตัวแก้ปัญหาการเขียนโปรแกรมแบบไม่เชิงเส้นคุณภาพสูงสำหรับ Python หรือไม่?
ฉันมีปัญหาการเพิ่มประสิทธิภาพทั่วโลกที่ไม่ท้าทายเพื่อแก้ปัญหา ปัจจุบันผมใช้กล่องเครื่องมือเพิ่มประสิทธิภาพของ MATLAB (โดยเฉพาะfmincon()กับอัลกอริทึม = 'sqp') ซึ่งมีประสิทธิภาพมาก อย่างไรก็ตามรหัสของฉันส่วนใหญ่อยู่ใน Python และฉันก็ชอบที่จะเพิ่มประสิทธิภาพใน Python ด้วยเช่นกัน มีตัวแก้ NLP ที่มีการผูก Python ที่สามารถแข่งขันได้fmincon()หรือไม่ มันจะต้อง สามารถรับมือกับความไม่เสมอภาคและความไม่เท่าเทียมกันได้ ไม่ต้องการให้ผู้ใช้จัดหายาโคบ ไม่เป็นไรหากไม่รับประกันว่าจะมีประสิทธิภาพระดับโลก ( fmincon()ไม่) fmincon()ฉันกำลังมองหาบางสิ่งบางอย่างที่ทนทานลู่ไปยังท้องถิ่นที่เหมาะสมแม้สำหรับความท้าทายปัญหาและแม้ว่ามันจะช้ากว่าเล็กน้อย ฉันได้พยายามแก้หลายที่ให้บริการผ่าน OpenOpt และพบว่าพวกเขาจะด้อยกว่าของ fmincon/sqpMATLAB เพียงเพื่อเน้นฉันมีสูตรเวิ้งว้างและแก้ปัญหาที่ดี เป้าหมายของฉันคือการเปลี่ยนภาษาเพื่อให้เวิร์กโฟลว์มีความคล่องตัวมากขึ้น เจฟฟ์ชี้ให้เห็นว่าคุณลักษณะบางอย่างของปัญหาอาจเกี่ยวข้องกัน พวกเขาคือ: 10-400 ตัวแปรการตัดสินใจ 4-100 ข้อ จำกัด ความเท่าเทียมกันของพหุนาม (ดีกรีพหุนามมีช่วงตั้งแต่ 1 ถึงประมาณ 8) จำนวนข้อ จำกัด ของความไม่เท่าเทียมกันที่มีเหตุผลเท่ากับจำนวนตัวแปรการตัดสินใจประมาณสองเท่า ฟังก์ชั่นวัตถุประสงค์เป็นหนึ่งในตัวแปรการตัดสินใจ ชาวจาโคเบียนแห่งข้อ จำกัด ความเท่าเทียมมีความหนาแน่นสูงเช่นเดียวกับชาวจาโคเบียนแห่งข้อ จำกัด …

2
ไลบรารีใดบ้างที่มีการสนับสนุนระดับสูงสำหรับ multigrid
ฉันวางแผนที่จะใช้หลายค่าเพื่อคำนวณค่าลักษณะเฉพาะและเวกเตอร์และฉันสังเกตเห็นว่า PETSc มีการรองรับหลายระดับในระดับสูง เอกสาร PETSc บอกว่าไม่ควรใช้ส่วนของ PETSc เพราะมันจะถูกแทนที่ในไม่ช้า ห้องสมุดอื่นใดที่มีการสนับสนุนระดับสูงสำหรับ multigrid และคร่าว ๆ ว่า PETSc จะปล่อยการสนับสนุน multigrid ใหม่เร็ว ๆ นี้?

5
ข้อได้เปรียบของ multigrid เหนือสิ่งที่จำเป็นสำหรับการย่อยสลายโดเมนและในทางกลับกันคืออะไร?
นี่เป็นจุดประสงค์หลักสำหรับ PDEs รูปไข่ผ่านโดเมนนูนเพื่อให้ฉันได้ภาพรวมที่ดีของทั้งสองวิธี

3
วิธี multigrid เพื่อแก้ปัญหา PDE
ฉันต้องการคำอธิบายง่ายๆของ Multigrid Method หรือวรรณกรรมบางอย่างเกี่ยวกับเรื่องนี้ ฉันคุ้นเคยกับวิธีการวนซ้ำรวมถึง BiCGStab, CG, GS, Jacobi และการปรับเงื่อนไขล่วงหน้า แต่ฉันเป็นผู้เริ่มต้นด้วยวิธีการแบบหลายจุด บางคนสามารถอธิบายรายละเอียดนี้หรืออย่างน้อยก็ให้รหัสเทียมหรือซอร์สโค้ดอย่างชัดเจนแม้จะมีวรรณกรรมที่ดีสำหรับผู้เริ่มต้น ขอบคุณ!

1
สามารถใช้วิธีการ subspace ของ Krylov ได้อย่างราบรื่นสำหรับ multigrid หรือไม่?
เท่าที่ฉันทราบตัวแก้แบบหลายตัวใช้ตัวทำซ้ำแบบซ้ำซ้อนเช่น Jacobi, Gauss-Seidel และ SOR เพื่อลดความผิดพลาดที่ความถี่ต่าง ๆ สามารถใช้วิธีการ subspace ของ Krylov (เช่น gradient conjugate, GMRES และอื่น ๆ ) ได้หรือไม่? ฉันไม่คิดว่าพวกมันถูกจัดอยู่ในประเภท "สมูทเทนเนอร์" แต่พวกเขาสามารถใช้เพื่อประมาณโซลูชันกริดแบบหยาบ เราคาดหวังได้ไหมว่าการลู่เข้าหากันของสารละลายเหมือนกับวิธีมาตรฐานหลายจุด หรือมันขึ้นอยู่กับปัญหา?

1
มีอัลกอริทึมแบบ multigrid ที่แก้ปัญหาของ Neumann และมีอัตราการลู่เข้าโดยไม่ขึ้นกับจำนวนของระดับหรือไม่?
วิธี Multigrid มักจะแก้ปัญหา Dirichlet ในระดับ (เช่นจุด Jacobi หรือ Gauss-Seidel) เมื่อใช้วิธีไฟไนต์เอลิเมนต์แบบต่อเนื่องจะมีค่าใช้จ่ายน้อยกว่ามากในการรวบรวมปัญหาของ Neumann ขนาดเล็กกว่าการรวบรวมปัญหา Dirichlet ขนาดเล็ก วิธีการสลายตัวโดเมนที่ไม่ทับซ้อนกันเช่น BDDC (เช่น FETI-DP) สามารถตีความได้ว่าเป็นวิธีการหลายจุดที่แก้ปัญหา "ตรึง" Neumann ในระดับ น่าเสียดายที่หมายเลขเงื่อนไขสำหรับ BDDC หลายระดับเป็น ค( 1 + บันทึก( Hชั่วโมง) )2 ลิตรค(1+เข้าสู่ระบบ⁡(Hชั่วโมง))2LC \left(1 + \log \left(\frac{H}{h}\right)\right)^{2L} LLLH/ชมH/ชั่วโมงH/h มีวิธีการแก้ปัญหา "ตรึง" ฟอนนอยมันน์โดยไม่สูญเสียความเป็นอิสระในระดับ?
14 pde  multigrid 

1
Multigrid ของ Krylov เร่งความเร็วอย่างไรโดยใช้ MG เป็นตัวกระตุ้นล่วงหน้า?
Multigrid (MG) อาจใช้เพื่อแก้ระบบเชิงเส้นโดยสร้างการเดาเริ่มต้นx 0และทำซ้ำสิ่งต่อไปนี้สำหรับi = 0 , 1 ..จนกระทั่งการบรรจบกัน:A x = bAx=bAx=bx0x0x_0i = 0 , 1 ..i=0,1..i=0,1.. คำนวณส่วนที่เหลือRผม= b - A xผมri=b−Axir_i = b-Ax_i สมัครรอบ multigrid ที่จะได้รับประมาณที่อีฉัน = RฉันΔ xผม≈ eผมΔxi≈ei\Delta x_i \approx e_iอีผม= rผมAei=riAe_i = r_i อัปเดตxฉัน+ 1← xผม+ Δ xผมxi+1←xi+Δxix_{i+1} \gets x_i + \Delta x_i วงจร multigrid เป็นลำดับของเรียบแก้ไขข้อ …

3
อัลกอริทึมโทมัสเป็นวิธีที่เร็วที่สุดในการแก้ปัญหาระบบเชิงเส้นที่กระจัดกระจายในแนวทแยงมุมสมมาตร
ฉันสงสัยว่าอัลกอริธึมของ Thomas นั้นเป็นวิธีที่เร็วที่สุด (พิสูจน์ได้หรือไม่) เพื่อแก้ปัญหาระบบ tridiagonal ที่กระจัดกระจายในแนวทแยงมุมแบบสมมาตรในแง่ของความซับซ้อนของอัลกอริทึม ฉันรู้ว่าทั้งอัลกอริธึมของ Thomas และ Multigrid นั้นมีความซับซ้อนแต่ปัจจัยคงที่สำหรับ Multigrid นั้นน้อยกว่านี้หรือไม่ สำหรับฉันดูเหมือนว่า multigrid อาจไม่เร็วกว่านี้ แต่ฉันก็ไม่คิดบวกO ( n )O(n)O(n) หมายเหตุ: ฉันกำลังพิจารณากรณีที่เมทริกซ์มีขนาดใหญ่มาก ยอมรับได้ทั้งวิธีโดยตรงหรือแบบวนซ้ำ

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

3
ปกติแล้วจะไม่มีการตรวจสอบคอนเวอร์เจนซ์ใน Multigrid หรือไม่?
ฉันเพียงแค่อ่านบทที่ 3 ในระดับ "A multigrid สอน" โดยบริกส์ / เฮนสัน / แมค ลิงค์ ข้อความเกี่ยวกับวงจร Multigrid เช่น V-cycle, mu-cycle, FMG สิ่งที่ดึงดูดสายตาของฉัน: ในขั้นตอนการวนซ้ำมากที่สุดคนหนึ่งตรวจสอบว่ามันได้แปรสภาพเป็นความอดทน / ความแม่นยำที่ต้องการหรือไม่ แต่ Briggs / Henson / McCormick ไม่ได้ใช้การตรวจสอบคอนเวอร์เจนซ์ใด ๆ ในรูปแบบที่นำเสนอ จำนวนการวนซ้ำและการเรียกซ้ำเป็นเพียงฮาร์ดโค้ดและเราต้องมั่นใจว่าโครงร่างจะมาบรรจบกัน ดังนั้นวิธีนี้ทำได้ใน Multigrid ปกติ? เป็นเรื่องปกติหรือไม่ที่จำนวนการวนซ้ำ / การเรียกซ้ำซ้ำซ้อน ฉันกลัวว่าฉันจะเสียเวลาในการคำนวณมากเพราะฉันแม่นยำเกินไปหรือในทางกลับกันความแม่นยำจะไม่ดีในหลายกรณีเมื่อฉันเลือกการวนซ้ำ / การเรียกซ้ำที่ต่ำกว่า
12 multigrid 

1
อัลกอริทึม * full * multigrid ทำงานอย่างไร
ดังนั้นฉันจึงเข้าใจ (หรืออย่างน้อยฉันเชื่อว่าฉันทำ) วิธี V-cycle ทำงาน ฉันได้เขียนใน Matlab รุ่น 1-D รุ่นเวียนรอบของ V-cycle อย่างไรก็ตามเมื่อฉันรันโค้ดสำหรับ FMG โซลูชันของฉันไม่ได้มาบรรจบกัน ฉันเชื่อว่าปัญหาของฉันอยู่ที่การเข้าใจส่วน FMG ที่แท้จริง สิ่งที่ฉันรู้ในขณะนี้คือ: ก่อนการแก้ไข FMG ฉันได้ผ่อนคลายวิธีแก้ปัญหาของยูuu แก้ไขทั้งข้อผิดพลาดและ (?)ยูuu ดำเนินการ v-cycle 2 กริดส่งผ่านข้อผิดพลาดไปยัง v-cycle (?) คลายข้อผิดพลาด (บนตารางที่หยาบที่สุดอันดับ 2) สอดแทรกและข้อผิดพลาดยูuu อัพเดต โดยการเพิ่มข้อผิดพลาดเข้าไปยูuu เรียกใช้ v-cycle จากนั้นทำซ้ำจากขั้นตอนที่ 4 ฉันไม่แน่ใจเกี่ยวกับการสั่งซื้อ แต่ฉันก็อาจผิดเกี่ยวกับสิ่งที่ฉันแก้ไขและส่งผ่านไปยังวงจรของฉัน หากฉันขาดอะไรจากอัลกอริทึมโปรดแจ้งให้เราทราบ
12 multigrid 

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

1
วิธีการหนึ่งที่สามารถทำให้ขนานหลายวิธีสำหรับการแก้ระบบสมการเชิงเส้น?
ตามที่ฉันเข้าใจวิธี multigrid แก้ปัญหาระบบเชิงเส้นโดยการแก้ไขปัญหาแบบเดียวกันของ coarser (โดยการกำจัดข้อผิดพลาดความถี่ต่ำ) จากนั้นฉายกลับไปที่กริดที่ดีเพื่อลดข้อผิดพลาดความถี่สูง สำหรับระบบที่มีขนาดใหญ่ฉันสามารถดูว่าวิธีการวนซ้ำสามารถนำมาใช้ในการขนานในแต่ละระดับ วิธีนี้มีขนาดที่ดีในแบบคู่ขนานหรือไม่? มีแหล่งที่มาของการเกิดขึ้นพร้อมกันในอัลกอริทึมที่หนึ่งสามารถใช้ประโยชน์ในแบบคู่ขนาน?

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

2
Multigrid บนกริด“ ไม่เป็นสี่เหลี่ยมจัตุรัสอย่างสมบูรณ์”
การแนะนำ Multigrid ตามปกติจะใช้ตารางสี่เหลี่ยม การแก้ไขค่านั้นตรงไปข้างหน้า: แค่สอดแทรกเชิงเส้นตรงบนขอบระหว่างสองโหนดที่อยู่ติดกันของกริดหยาบเพื่อค้นหาค่าของโหนดกริดที่ดีบนขอบนั้น สำหรับแอปพลิเคชั่น FEM ฉันมีกริดซึ่งเป็นรูปสี่เหลี่ยม "ทอพอโลยี" เพื่อให้การเชื่อมต่อโหนดเหมือนในกริดสี่เหลี่ยม อย่างไรก็ตามโหนดนั้นไม่ได้เรียงตัวกันอย่างสมบูรณ์บนกริด แต่อาจเดินทางระยะทางเล็ก ๆ เพื่อให้เข้ากับรูปทรงเรขาคณิตได้ดีขึ้นในขณะที่ยังคงรักษาการเชื่อมต่อเช่นเดียวกับในกริดสี่เหลี่ยมที่สมบูรณ์แบบ ตาข่ายลักษณะสิ่งที่ต้องการที่: ตาข่ายตัวอย่างเช่น คุณเห็น: การเชื่อมต่อเป็น "รูปสี่เหลี่ยมผืนผ้าปกติ" แต่ตำแหน่งของโหนดไม่ ฉันสามารถภาพแผนการแก้ไขทางเรขาคณิต "สมเหตุสมผล" หลายแบบสำหรับการตั้งค่าเช่นนี้ คำถามทั่วไปคือ: Multigrid ต้องการกริดสี่เหลี่ยมที่เรียงตัวกันอย่างสมบูรณ์หรือจะทำงานกับสถานการณ์ที่อธิบายข้างต้นได้หรือไม่ตราบใดที่การแก้ไขเป็น "ดี"? หรือดีกว่าที่จะใช้พีชคณิตแบบหลายจุดในกรณีนั้น (ซึ่งฉันไม่ชอบเพราะมันไม่ได้ใช้งานง่ายเหมือน multigrid ทางเรขาคณิต)
9 multigrid 

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