n v λ 0 A v = λ 0 v. สมมติว่าส่วนที่เหลือเริ่มต้นมีขนาดใหญ่แล้วมันอาจเกิดขึ้นที่เราหยุดที่แต่ข้อผิดพลาดยังคงมีขนาดใหญ่ ตัวบ่งชี้ข้อผิดพลาดที่ดีกว่าคืออะไรในกรณีนี้ คือผู้สมัครที่ดี?
n v λ 0 A v = λ 0 v. สมมติว่าส่วนที่เหลือเริ่มต้นมีขนาดใหญ่แล้วมันอาจเกิดขึ้นที่เราหยุดที่แต่ข้อผิดพลาดยังคงมีขนาดใหญ่ ตัวบ่งชี้ข้อผิดพลาดที่ดีกว่าคืออะไรในกรณีนี้ คือผู้สมัครที่ดี?
คำตอบ:
โปรดอย่าใช้ความแตกต่างระหว่างการวนซ้ำต่อเนื่องเพื่อกำหนดเกณฑ์การหยุด การวินิจฉัยนี้ซบเซาสำหรับการลู่เข้า การทำซ้ำเมทริกซ์แบบไม่สมมาตรส่วนใหญ่ไม่ใช่แบบโมโนโทนและแม้แต่ GMRES ในเลขคณิตที่แน่นอนที่ไม่มีการรีสตาร์ทอาจซบเซาสำหรับจำนวนการทำซ้ำโดยพลการ (ขึ้นอยู่กับมิติของเมทริกซ์) ก่อนที่จะมาบรรจบกันทันที ดูตัวอย่างในNachtigal เรดดี้และ Trefethen (1993)
เรามักจะสนใจในความถูกต้องของวิธีแก้ปัญหาของเรามากกว่าขนาดของส่วนที่เหลือ โดยเฉพาะเราอาจต้องการรับประกันว่าความแตกต่างระหว่างโซลูชันโดยประมาณและโซลูชันที่แน่นอนตามสำหรับผู้ใช้ระบุบางคปรากฎว่าสามารถทำได้โดยการหาเช่นนั้นโดยที่เป็นค่าเอกพจน์ที่เล็กที่สุดของเนื่องจาก x | x n - x | < c c x n | A x n - b | < c ϵ ϵ A
โดยที่เราใช้ว่าเป็นค่าเอกพจน์ที่ใหญ่ที่สุดของ (บรรทัดที่สอง) และนั้นแก้ปัญหา (บรรทัดที่สาม) ได้อย่างแน่นอนA - 1 x A x = b
การประมาณค่าที่ถูกต้องแม่นยำของค่าเอกพจน์ที่น้อยที่สุดมักไม่สามารถใช้ได้โดยตรงจากปัญหา แต่สามารถประมาณได้ว่าเป็นผลพลอยได้จากการไล่ระดับสีแบบคอนจูเกตหรือการวนซ้ำ GMRES โปรดทราบว่าแม้ว่าค่าประมาณค่าลักษณะเฉพาะที่ใหญ่ที่สุดและค่าเอกพจน์มักจะค่อนข้างดีหลังจากการทำซ้ำเพียงไม่กี่ครั้งการประมาณค่าที่ถูกต้องของค่า eigen / เอกพจน์ที่เล็กที่สุดมักจะได้รับเมื่อถึงการลู่เข้าเท่านั้น ก่อนการบรรจบกันการประมาณโดยทั่วไปจะมีขนาดใหญ่กว่ามูลค่าที่แท้จริง นี้แสดงให้เห็นว่าคุณจริงต้องแก้สมการก่อนที่คุณจะสามารถกำหนดความอดทนที่ถูกต้องคอดทนลู่อัตโนมัติที่จะใช้เวลาที่ผู้ใช้ให้ความถูกต้องc ϵ c ϵ ϵสำหรับการแก้ปัญหาและประมาณการค่าเอกพจน์เล็กที่สุดกับสถานะปัจจุบันของวิธี Krylov อาจจะมาบรรจบกันเร็วเกินไปเพราะการประมาณนั้นใหญ่กว่าค่าที่แท้จริงมาก
-ksp_monitor_singular_value
กับโปรแกรม PETSc ใด ๆ ดูKSPComputeExtremeSingularValues ()เพื่อคำนวณค่าเอกพจน์จากรหัส-ksp_gmres_restart 1000
ใน PETSc)อีกวิธีหนึ่งในการดูปัญหานี้คือการพิจารณาเครื่องมือจากปัญหาผกผันที่ไม่ต่อเนื่องนั่นคือปัญหาที่เกี่ยวข้องกับการแก้หรือที่มีอาการไม่ดีมาก (เช่นอัตราส่วนระหว่าง ค่าเอกพจน์แรกและสุดท้ายมีขนาดใหญ่)
ที่นี่เรามีหลายวิธีในการเลือกเกณฑ์การหยุดและสำหรับวิธีการวนซ้ำฉันขอแนะนำเกณฑ์ L-curve เนื่องจากมันเกี่ยวข้องกับปริมาณที่มีอยู่แล้วเท่านั้น (หมายเหตุ: ที่ปรึกษาของฉันเป็นผู้บุกเบิกวิธีการนี้ มัน). ฉันใช้สิ่งนี้กับความสำเร็จในวิธีการวนซ้ำ
แนวคิดคือการตรวจสอบบรรทัดฐานที่เหลือและวิธีแก้ปัญหามาตรฐานโดยที่คือการวนซ้ำของในขณะที่คุณวนซ้ำสิ่งนี้จะเริ่มวาดรูปร่างของ L ในพล็อตล็อกล็อก (rho, eta) และจุดที่มุมของ L นั้นเป็นตัวเลือกที่ดีที่สุด
สิ่งนี้ช่วยให้คุณสามารถใช้เกณฑ์ที่คุณจับตามองเมื่อคุณผ่านมุม (เช่นดูที่การไล่ระดับสีของ ) จากนั้นเลือกการวนซ้ำที่อยู่ที่มุม
วิธีที่ฉันทำเกี่ยวข้องกับการจัดเก็บซ้ำ 20 ครั้งล่าสุดและหากการไล่ระดับสีมีขนาดใหญ่กว่าขีด จำกัด สำหรับการวนซ้ำ 20 ครั้งฉันรู้ว่าฉันอยู่ในแนวดิ่งของเส้นโค้งและฉันผ่านมุมแล้ว จากนั้นฉันก็ใช้การวนซ้ำครั้งแรกในอาร์เรย์ของฉัน (เช่นการทำซ้ำ 20 ครั้งก่อน) เป็นโซลูชันของฉัน
นอกจากนี้ยังมีวิธีการโดยละเอียดเพิ่มเติมสำหรับการค้นหามุมและวิธีการเหล่านี้ทำงานได้ดีขึ้น แต่ต้องมีการจัดเก็บซ้ำจำนวนมาก เล่นรอบกับมันเล็กน้อย หากคุณอยู่ใน MATLAB คุณสามารถใช้กล่องเครื่องมือ Regularization Tools ซึ่งใช้งานบางอย่างนี้ (โดยเฉพาะฟังก์ชั่น "มุม" ใช้งานได้)
โปรดทราบว่าวิธีการนี้เหมาะอย่างยิ่งสำหรับปัญหาขนาดใหญ่เนื่องจากเวลาในการประมวลผลพิเศษที่เกี่ยวข้องนั้นมีขนาดเล็ก