แนวทางสำหรับผู้มีเงื่อนไขเบื้องต้นซ้อนกัน


9

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

  • ในหนึ่งครั้งคุณสามารถเรียกใช้การแก้ปัญหาภายในเพื่อรวมกันในแต่ละขั้นตอนของการแก้ปัญหาด้านนอก

  • ในสุดโต่งอื่น ๆ คุณไม่สามารถแก้ปัญหาภายในได้เลย แต่แทนที่มันด้วยอุปกรณ์ปรับสภาพชั้นในแทน

  • อยู่ตรงกลางคุณสามารถตัดทอนลูป Krylov ด้านในหลังจากทำซ้ำจำนวนคงที่หรือหลังจากความอดทนที่แน่นอน

สังเกตุฉันได้เจอสถานการณ์ที่รุนแรงครั้งแรกดีกว่าและสถานการณ์ต่าง ๆ ที่รุนแรงที่สุดที่สองจะดีกว่า (ในแง่ของต้นทุนทั้งหมด) อย่างไรก็ตามฉันไม่สามารถหาเหตุผลที่ชัดเจนว่าทำไมบางสถานการณ์จึงชอบกลยุทธ์หนึ่งมากกว่าอีกกลยุทธ์หนึ่ง

มีแนวทางหรือทฤษฎีเกี่ยวกับเมื่อกลยุทธ์ที่แตกต่างเหล่านี้จะดีกว่า?


4
อย่างน้อยสถานการณ์ที่สาม (ขั้นกลาง) ในรายการของคุณจุดเริ่มต้นที่ดีอาจเป็น Simoncini และ Szyld, วิธีการย่อย Krylov Sub-Outer ยืดหยุ่นนอกเขต, SIAM J. Numer ทางทวารหนัก 40 หน้า 2219-2239
Andrew T. Barker

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

คุณใช้วิธี Krylov ที่ยืดหยุ่นหรือไม่? ผลลัพธ์ที่คุณอธิบายคือสิ่งที่ฉันคาดหวังหากคุณไม่ได้ สถานการณ์ระดับกลางเป็นสถานการณ์ที่แตกต่างกันไปเล็กน้อยในแต่ละครั้งของการทำซ้ำซึ่งจำเป็นต้องใช้วิธีการแบบยืดหยุ่นของ Krylov
Andrew T. Barker

คำตอบ:


1

คำถามนี้เปิดมาเป็นเวลานาน แต่ฉันคิดว่ามันสมควรที่จะได้รับคำตอบ

ปัญหาพื้นฐานที่มีการใช้ Krylov-space solver บนบล็อกแต่ละตัวเป็นปัจจัยพื้นฐานภายในคือพวกมันไม่ใช่ตัวดำเนินการเชิงเส้น เพื่อให้เข้าใจสิ่งนี้เราจะแสดงโดยเวกเตอร์ที่คุณได้รับเป็นวิธีแก้ปัญหาด้วยการรัน Krylov space methodบนระบบเชิงเส้นสำหรับการวนซ้ำส่วนใหญ่หรือจนกว่าจะมีความอดทนถึงใช้ preconditioner1} ในคำอื่น ๆ ที่คุณสามารถคิดเป็นผู้ประกอบการที่ทำหน้าที่ในขx~=K(A,P,τ,N;b)KAx=bNτPA1Kb

ตอนนี้ทราบว่าเป็นตัวดำเนินการเชิงเส้น: มันจะต้องมีการแก้ไขอย่างแน่นอนนั่นคือซึ่งเป็นเส้นตรงในขในหลายกรณีการทำงานวิธีการพื้นที่ Krylov สำหรับตรงหนึ่งย้ำเริ่มต้นจากศูนย์เวกเตอร์นี้ยังมีผู้ประกอบการเชิงเส้นนำไปใช้กับขแต่เนื่องจากลำดับของเวกเตอร์ Krylov ขึ้นอยู่กับส่วนที่เหลือเริ่มต้น , ตัวดำเนินการโดยทั่วไปไม่ใช่ ผู้ประกอบการเชิงเส้นสำหรับ จำกัดและ\K(A,P,0,;)Ax=bK(A,P,0,;b)=A1bbbr(0)=bAx(0)K(A,P,τ,N;)Nτ

สิ่งนี้หมายความว่าถ้าคุณใช้เป็นส่วนหนึ่งของ preconditioner สำหรับระบบเชิงเส้นที่เป็นหนึ่งบล็อกคุณจะจบลงด้วย preconditioner ที่ไม่ทำหน้าที่เป็น ผู้ประกอบการเชิงเส้นK(A,P,τ,N;)A

ตรงกันข้ามกับวิธีอื่น ๆ ที่ใช้ในการกำหนดเงื่อนไขล่วงหน้าตัวอย่างเช่นขั้นตอน SSOR หนึ่งขั้นตอนเป็นการดำเนินการเชิงเส้นบนเวกเตอร์ที่คุณใช้เช่นเดียวกับวิธีอื่นทั้งหมดที่ใช้ขั้นตอนเดียวของการทำซ้ำจุดคงที่

ปัญหาพื้นฐานในขณะนี้คือวิธีการพื้นที่ Krylov ส่วนใหญ่ต้องการให้ผู้กำหนดเงื่อนไขเป็นตัวดำเนินการเชิงเส้น พวกมันจะไม่มาบรรจบกันถ้าผู้สร้างเงื่อนไขไม่ใช่เชิงเส้นอธิบายการสังเกตของคุณ ในทางกลับกันมีวิธีการพื้นที่ Krylov บางรูปแบบซึ่งมักจะนำหน้าด้วยคำว่า "ยืดหยุ่น" เช่น F-GMRES ใน "ยืดหยุ่น GMRES" - ซึ่งทำงานรอบนี้และสามารถจัดการกับสิ่งที่จำเป็นต้องมีก่อนได้ ผู้ประกอบการ ตัวแปรที่ยืดหยุ่นเหล่านี้ของวิธีการดั้งเดิมจะยังคงมาบรรจบกันและมักจะเป็นวิธีที่ทรงพลังเมื่อรวมกับปัจจัยพื้นฐานที่ดี (แต่ไม่เชิงเส้น)

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