วิธีการสร้างว่าวิธีการวนซ้ำสำหรับระบบเชิงเส้นขนาดใหญ่เป็นคอนเวอร์เจนซ์ในทางปฏิบัติ?


11

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

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

แต่สิ่งที่สามารถทำได้เพื่อสร้างการบรรจบกันในทางปฏิบัติ? และทำอะไร


1
เป็นคำถามที่ดีมาก! เมื่อคุณพูดว่า 'สร้างคอนเวอร์เจนซ์' คุณหมายถึง 'สร้างว่าโซลูชันกำลังบรรจบกัน' หรือ 'สร้างคอนเวอร์เจนซ์ที่จะเกิดขึ้น' หรือไม่? ฉันรู้ว่าตัวอย่างเช่นวัตถุ PETSc KSP มีเทคนิคเริ่มต้นเล็กน้อยสำหรับการทดสอบคอนเวอร์เจนซ์ (ค่าเฉลี่ยของข้อผิดพลาดลดลงจำนวนการทำซ้ำสูงสุด) นี่เป็นคำตอบที่คุณต้องการหรือไม่?
Aron Ahmadia

@ Aaron: ฉันคิดว่าจะน่าสนใจที่จะเห็นคำตอบสำหรับการแก้ไขปัญหาทั้งสอง
Allan P. Engsig-Karup

คำตอบ:


6

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

PETSc ใช้วัตถุที่เรียกว่า KSPMonitor สำหรับตรวจสอบความคืบหน้าของตัวแก้ซ้ำและตัดสินใจว่าตัวแก้นั้นได้แปรสภาพหรือแยกออกหรือไม่ จอภาพใช้เกณฑ์สี่แบบที่แตกต่างกันในการตัดสินใจว่าจะหยุดหรือไม่ รายละเอียดเพิ่มเติมเกี่ยวกับการอภิปรายที่นี่สามารถพบได้ในหน้าคนสำหรับKSPGetConvergedReason ()

x

Ax=

x^R^
  1. (P-1(Ax-))

    R^=P-1(Ax^-)
  2. (AP-1Px=)

    R^=Ax^-

เกณฑ์การลู่เข้า

  1. aเสื้อโอล.
    R^aเสื้อโอล.
  2. Rเสื้อโอล.
    R^Rเสื้อโอล.
  3. เกณฑ์อื่น ๆ - การแก้ปัญหาแบบวนซ้ำยังสามารถมาบรรจบกันได้เนื่องจากการตรวจจับความยาวก้าวเล็ก ๆ หรือความโค้งเชิงลบ

เกณฑ์ความแตกต่าง

  1. การวนซ้ำสูงสุด - จำนวนการวนซ้ำที่ตัวแก้สามารถทำได้ถูก จำกัด ด้วยการวนซ้ำสูงสุด หากไม่ตรงตามเกณฑ์อื่น ๆ เมื่อถึงจำนวนการทำซ้ำสูงสุดแล้วจอภาพจะกลับมาตามความแตกต่าง

  2. NaN ที่เหลือ - หาก ณ จุดใดก็ตามที่ตกค้างประเมินเป็น NaN ตัวแก้ปัญหาจะคืนค่าเป็น diverged

  3. dเสื้อโอล.

    R^dเสื้อโอล.
  4. Solver Breakdownเมธอด Krylov สามารถส่งสัญญาณความแตกต่างได้หากตรวจพบเมทริกซ์เอกฐานหรือเงื่อนไขเบื้องต้น

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