คำตอบในเชิงบวกที่ใกล้เคียงที่สุดสำหรับคำถามของคุณที่ฉันพบได้สำหรับการรบกวนเยื้องในแนวทแยงมุม (ดูด้านล่าง)
จากที่กล่าวมาฉันไม่ทราบถึงอัลกอริธึมใด ๆ สำหรับกรณีทั่วไปแม้ว่าจะมีการวางหลักเกณฑ์ทั่วไปของเทคนิคที่คุณพูดถึงการเลื่อนสเกลาร์จากการฝึก SPD เป็นเมทริกซ์จตุรัสทั้งหมด:
ให้เมทริกซ์จตุรัสใด ๆมีการสลายตัวของ Schur A = U T U Hโดยที่UมีการรวมกันและTคือรูปสามเหลี่ยมด้านบนและA + σ I = U ( T + σ I ) U Hให้ Schur สลายตัวของA + σฉัน ดังนั้นแนวคิดการคำนวณล่วงหน้าของคุณจึงขยายไปถึงเมทริกซ์จตุรัสทั้งหมดผ่านอัลกอริทึม:AA=UTUHUTA+σI=U(T+σI)UHA+σI
- Compute ในที่มากที่สุดO ( n 3 )การทำงาน[U,T]=schur(A)O(n3)
- แก้ปัญหาแต่ละข้อผ่านx : = U ( T + σ I ) - 1 U H bในO ( n 2 )งาน(A+σI)x=bx:=U(T+σI)−1UHbO(n2)
บรรทัดของการให้เหตุผลนี้จะลดวิธีการที่คุณกล่าวถึงเมื่อคือ SPD เนื่องจากการสลายตัวของ Schur จะลดลงเป็น EVD สำหรับเมทริกซ์ปกติและ EVD เกิดขึ้นพร้อมกับ SVD สำหรับเมทริกซ์บวกแน่นอนแบบบวกของเฮอร์มีเชียนA
การตอบสนองต่อการอัปเดต:
จนกว่าฉันจะมีหลักฐานซึ่งฉันไม่ได้เป็นฉันก็ปฏิเสธที่จะอ้างว่าคำตอบคือ "ไม่" อย่างไรก็ตามฉันสามารถให้ข้อมูลเชิงลึกเกี่ยวกับสาเหตุที่มันยากเช่นเดียวกับเอกสารย่อยอื่นที่คำตอบคือใช่
ปัญหาที่สำคัญคือแม้ว่าการอัพเดตในแนวทแยงจะยังคงอยู่ในอันดับเต็มทั่วไปดังนั้นเครื่องมือหลักสำหรับการอัปเดตผกผันสูตรเชอร์แมน - มอร์ริสัน - วูดเบอรีก็ไม่ปรากฏขึ้นเพื่อช่วย แม้ว่าตัวเรือนสเกลาร์กะลานั้นยังมีตำแหน่งเต็ม แต่มันก็เป็นกรณีที่พิเศษอย่างยิ่งเนื่องจากมันจะส่งสัญญาณกับเมทริกซ์ทุกตัวตามที่คุณพูดถึง
กับที่กล่าวว่าถ้าแต่ละเบาบางคือพวกเขาแต่ละคนมีO ( 1 ) nonzeros แล้วสูตรเชอร์แมนมอร์ริสันฟอร์ด-อัตราผลตอบแทนถัวO ( n 2 )แก้ปัญหาด้วยกันทั้งคู่{ D , B } ตัวอย่างเช่นด้วยค่าศูนย์เดียวที่รายการแนวทแยงที่jดังนั้นD = δ e j e H j :DO(1)O(n2){D,b}jD=δejeHj
[A−1+δejeHj]−1=A−1−δA−1ejeHjA−11+δ(eHjA−1ej),
ที่คือเจ TH เวกเตอร์พื้นฐานมาตรฐานejj
การอัปเดตอื่น:ฉันควรพูดถึงว่าฉันได้ลอง preconditioner ที่ @GeoffOxberry แนะนำเกี่ยวกับการสุ่ม SPD 1000 × 1,000เมทริกซ์โดยใช้ PCG และอาจไม่แปลกใจเลยที่มันลดจำนวนการทำซ้ำเมื่อ| | D | | 2 / | | A | | 2มีขนาดเล็ก แต่ไม่ใช่เมื่อเป็นO ( 1 )หรือมากกว่าA−11000×1000||D||2/||A||2O(1)