ฉันควรใช้แนวทางใดเมื่อค้นหาวิธีการกำหนดเงื่อนไขเบื้องต้นที่ดีสำหรับปัญหาเฉพาะ


19

สำหรับการแก้ปัญหาของระบบเชิงเส้นขนาดใหญ่โดยใช้วิธีวนซ้ำมันมักจะน่าสนใจที่จะแนะนำการปรับสภาพล่วงหน้าเช่นแก้แทนโดยที่ถูกใช้ที่นี่สำหรับการปรับสภาพซ้ายของระบบ . โดยทั่วไปแล้วเราควรมีและให้พื้นฐานสำหรับการแก้ปัญหาที่มีประสิทธิภาพ (มากขึ้น) หรือลดทรัพยากรการคำนวณ (เช่นที่เก็บข้อมูลหน่วยความจำ) เปรียบเทียบกับโซลูชันของระบบดั้งเดิม ( เช่นเมื่อ ) อย่างไรก็ตามเราควรใช้แนวทางใดในการเลือกผู้ตั้งเงื่อนไขล่วงหน้า ผู้ฝึกหัดทำสิ่งนี้อย่างไรสำหรับปัญหาเฉพาะของพวกเขาM - 1 ( A x = b ) M M - 1A - 1 M = AAx=bM1(Ax=b)MM1A1M=A


1
แม้สำหรับชั้นหนึ่งโดยเฉพาะอย่างยิ่งของสมการนี้จะต้องมีคำตอบที่ยาวมากและมีรายละเอียด ...
แจ็ค Poulson

ควรเป็นไปได้ที่จะแนะนำกลยุทธ์การแก้ปัญหาสำหรับวิธีการเลือกเงื่อนไขเบื้องต้น ตัวอย่างเช่นเมื่อมีปัญหาผู้ฝึกหัดทำอะไรในทางปฏิบัติเพื่อลองและหาผู้มีสภาพดีก่อน เพียงแค่เริ่มต้นด้วยตัวตั้งต้นพื้นฐานในแนวทแยงตามการแยกทแยงออกจาก ? หรือ? A
Allan P. Engsig-Karup

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

@JackPoulson: เนื่องจากคำถามนี้อยู่ในหลอดเลือดดำที่คล้ายกันซึ่งระบบการกระจายเชิงเส้นที่ใช้แก้ปัญหา? และวิธีเลือกตัวแก้เส้นตรงที่ปรับขนาดได้ดูเหมือนกับฉัน (แม้ว่ากว้าง) เนื่องจากความคิดเห็นของคุณเป็นคำตอบคุณสามารถแปลงเป็นคำตอบได้ไหม?
Geoff Oxberry

ฉันเริ่มให้ความสนใจกับคำถามนี้แล้ว แต่ฉันก็สนใจที่จะเห็นคำถามเพิ่มเติมในหลอดเลือดดำนี้ซึ่งอาจจะเป็นการดีกว่าหรือ จำกัด เฉพาะปัญหาที่เฉพาะเจาะจง
Aron Ahmadia

คำตอบ:


17

เดิมทีฉันไม่ต้องการที่จะให้คำตอบเพราะนี่เป็นการรักษาที่ยาวนานมากและหวังว่าคนอื่นจะยังคงให้มัน อย่างไรก็ตามฉันสามารถให้ภาพรวมคร่าวๆของแนวทางที่แนะนำได้อย่างแน่นอน:

  1. ทำการค้นหาวรรณกรรมอย่างละเอียด
  2. หากสิ่งนั้นล้มเหลวให้ลองทุกคนที่มีเงื่อนไขก่อนตัดสินใจได้ MATLAB, PETSc และ Trilinos เป็นสภาพแวดล้อมที่ดีสำหรับเรื่องนี้
  3. หากล้มเหลวคุณควรคิดอย่างรอบคอบเกี่ยวกับฟิสิกส์ของปัญหาของคุณและดูว่าเป็นไปได้ที่จะหาวิธีแก้ปัญหาโดยประมาณราคาถูกหรืออาจเป็นปัญหาที่เปลี่ยนไปเล็กน้อย

ตัวอย่างของ 3 ได้รับการปรับเปลี่ยนเวอร์ชันของ Laplacian ของ Helmholtz และงานล่าสุดของ Jinchao Xuเกี่ยวกับการปรับสภาพผู้ปฏิบัติงานระบบ biharmonic กับ Laplacians


ขอบคุณ! ส่วนที่เหลือของความคิดเห็นนี้ตรงตามจำนวนอักขระขั้นต่ำ
Geoff Oxberry

14

คนอื่น ๆ ได้ให้ความเห็นเกี่ยวกับปัญหาของการปรับสภาพเบื้องต้นในสิ่งที่ฉันจะเรียกว่าเมทริกซ์ "เสาหิน" เช่นตัวอย่างที่ไม่ต่อเนื่องของสมการสเกลาร์เช่นสมการ Laplace, สมการ Laplace, สมการ Helmholtz หรือถ้าคุณต้องการสรุปมัน สมการความยืดหยุ่น สำหรับสิ่งเหล่านี้มันเป็นที่ชัดเจนว่า multigrid (เช่นพีชคณิตหรือเรขาคณิต) เป็นผู้ชนะถ้าสมการนั้นเป็นรูปไข่และสำหรับสมการอื่น ๆ มันไม่ชัดเจนนัก - แต่บางอย่างเช่น SSOR มักจะทำงานได้ดีพอสมควร (สำหรับความหมายบางอย่างของ "มีเหตุผล").

(ABBT0).

(AB0BTA1B)1
(A1~B0(BTA1B)1~)
AA1~(BTA1B)1~

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


1
ผู้ชายใช่ฉันต้องการความโปรดปราน! ;-)
Wolfgang Bangerth

ในย่อหน้าที่สองของคุณ: "แต่สิ่งนี้ได้จางหายไปเพราะมันใช้งานไม่ค่อยดี" คุณสามารถให้สัญชาตญาณว่าทำไมมันทำงานได้ไม่ดี? มีสถานการณ์ภายใต้การทำงานหรือไม่?
Andrew T. Barker

สาเหตุที่ multigrid โดยตรงนำไปใช้กับทั้งระบบยังไม่ได้รับการพิสูจน์ว่าประสบความสำเร็จนั่นคือความต้องการความนุ่มนวลในการอนุรักษ์คุณสมบัติเชิงโครงสร้างของสมการ ตัวอย่างเช่นหากคุณต้องการใช้หลายค่ากับสมการสโตกส์คุณจะต้องมีความราบรื่นที่ให้เวกเตอร์อิสระที่แตกต่างกันทำให้คุณมีเวกเตอร์อิสระที่แตกต่างกัน มีเครื่องปรับแบบนุ่มนวลสำหรับสโตกส์ แต่ไม่จำเป็นต้องสร้างและมักจะนำคุณภาพที่ได้มาจากการใช้งานที่นุ่มนวลขึ้น มันกลายเป็นเรื่องยากมากขึ้นในการรักษาคุณสมบัติในกรณีที่มากกว่าปกติ
Wolfgang Bangerth

สำหรับการสรุปสิ่งต่าง ๆ เช่น Jacobi / SSOR / ฯลฯ ให้กับระบบ: วิธีการเหล่านี้ส่วนใหญ่ต้องการให้รายการในแนวทแยงของเมทริกซ์นั้นไม่ใช่ศูนย์ เห็นได้ชัดว่าไม่ใช่กรณีของ Stokes ดังนั้นวิธีที่ง่ายที่สุดถัดไปคือการไม่ดูแต่ละแถวเมทริกซ์ แต่บล็อกแถวเช่นแถวทั้งหมดสำหรับ DoF ที่เกี่ยวข้องกับจุดสุดยอดเดียว สิ่งเหล่านี้เรียกว่า "point-smoothers" (ชี้ในจุดสุดยอด) และพวกเขาทำงานในระดับหนึ่ง แต่พวกเขาประสบกับประสิทธิภาพที่ลดลงเช่นเดียวกับ Jacobi / SSOR เมื่อปัญหามีขนาดใหญ่เมื่อต้องการหลีกเลี่ยงปัญหานั้น เหมือน multigrid
Wolfgang Bangerth

Multigrid ไม่ได้ผลในการแก้ปัญหา Helmholtz เนื่องจากส่วนใหญ่เป็นเพราะโหมดการแกว่งพลังงานต่ำนั้นยากที่จะเรียบหรือเป็นตัวแทนในพื้นที่หยาบ มีงานบางอย่างเกี่ยวกับคลื่นรังสีหลาย multigrid แต่การกำหนดเป็นเทคนิคมากและมันไม่ได้เป็นวิธีการที่เป็นผู้ใหญ่ในจุดนี้ โปรดทราบว่าระบบที่ไม่สมมาตรสามารถแก้ไขได้ด้วยการย่อยสลายบล็อกแบบนี้ ขึ้นอยู่กับการเลือกของตัวแปร (เช่นแบบดั้งเดิมกับแบบอนุรักษ์นิยม) อาจจำเป็นต้องมีการเปลี่ยนแปลงพื้นฐานภายในเครื่องปรับสภาพเพื่อให้เห็นโครงสร้างที่ถูกบล็อก
Jed Brown

13

แจ็คให้วิธีการที่ดีในการค้นหาผู้กำหนดเงื่อนไข ฉันจะลองตอบคำถามว่า "อะไรคือสิ่งที่ทำให้ดีก่อน?" คำจำกัดความการดำเนินงานคือ:

Ax=bM1A1

อย่างไรก็ตามสิ่งนี้ไม่ได้ทำให้เราเข้าใจถึงการออกแบบเครื่องปรับอากาศ ปัจจัยพื้นฐานส่วนใหญ่ขึ้นอยู่กับการปรับเปลี่ยนคลื่นความถี่ของตัวดำเนินการ โดยทั่วไปวิธี Krylov มาบรรจบกันได้เร็วขึ้นเมื่อค่าลักษณะเฉพาะเป็นคลัสเตอร์ดูMatrix ซ้ำหรือฟังก์ชั่น meromorphic และพีชคณิตเชิงเส้น บางครั้งเราสามารถพิสูจน์ผล preconditioner เป็นเพียงค่าลักษณะเฉพาะที่ไม่ซ้ำกันไม่กี่เช่นหมายเหตุเกี่ยวกับ preconditioning สำหรับ Indefinite ระบบเชิงเส้น

กลยุทธ์ทั่วไปได้รับการยกตัวอย่างโดย Multigrid นักสร้างความผ่อนคลาย (ที่นี่นุ่มนวล) เช่น SOR ลบส่วนประกอบความถี่สูงในข้อผิดพลาด เมื่อส่วนที่เหลือถูกฉายลงบนกริดหยาบส่วนประกอบข้อผิดพลาดความถี่ที่ต่ำกว่าจะกลายเป็นความถี่ที่สูงขึ้นและสามารถโจมตี SOR ได้อีกครั้ง กลยุทธ์พื้นฐานนี้รองรับ MG ที่มีความซับซ้อนเช่น AMG โปรดทราบว่าที่ด้านล่างตัวแก้ไขต้องแก้ไขความถี่ต่ำสุดในข้อผิดพลาดอย่างถูกต้อง

อีกกลยุทธ์ที่เกี่ยวข้องกับการแก้สมการในพื้นที่เล็ก ๆ ซึ่งเป็นสิ่งที่นักแก้ปัญหา Krylov กำลังทำอยู่ ในรูปแบบที่ง่ายนี้เป็นKaczmarz วิธีการหรือสารเติมแต่งวิธี Schwarz ทฤษฎีขั้นสูงที่นี่การแบ่งแยกโดเมนมุ่งเน้นไปที่การประมาณสเปกตรัมของข้อผิดพลาดบนอินเทอร์เฟซเนื่องจากโดเมนจะถือว่าถูกต้องอย่างแม่นยำ

A


ขอบคุณสำหรับการตอบกลับของคุณ. ประสบการณ์ใด ๆ เกี่ยวกับว่าเราควรไปไกลแค่ไหนจริง ๆพิสูจน์ว่า preconditioning ทำงานสำหรับระบบขนาดใหญ่ - และอาจเป็นไปได้ว่าวิธีนี้สามารถหรือควรทำในทางปฏิบัติ มันเป็นประสบการณ์ของฉันที่สำหรับหลาย ๆ ระบบเราต้องพึ่งพาสัญชาตญาณฮิวริสติก ฯลฯ
อัลลันพี Engsig-Karup

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