การแก้


22

ฉันมีการฝึกอบรมและG Aกระจัดกระจายและn × nมีnมาก (สามารถเรียงตามลำดับได้หลายล้าน) Gคือเมทริกซ์สูงn × mมีmค่อนข้างเล็ก ( 1 < m < 1,000 ) และแต่ละคอลัมน์สามารถมีเพียงหนึ่งเดียว1รายการที่มีส่วนที่เหลือเป็น0 's เช่นว่าG T G =ฉัน Aมีขนาดใหญ่มากมันจึงยากที่จะกลับด้านและฉันสามารถแก้ปัญหาระบบเชิงเส้นเช่นAAGAn×nnGn×mm1<m<100010GTG=IAAx=bซ้ำ ๆ กันโดยใช้วิธีการ subspace ของ Krylov เช่นBiCGStab(l)แต่ฉันไม่มีA1อย่างชัดเจน

ฉันต้องการแก้ระบบของรูปแบบ: (GTA1G)x=bโดยที่xและbเป็นเวกเตอร์ความยาวmวิธีหนึ่งในการทำคือใช้อัลกอริธึมการวนซ้ำภายในอัลกอริทึมการวนซ้ำเพื่อแก้ปัญหาA1สำหรับการวนซ้ำของอัลกอริทึมการวนซ้ำรอบนอกแต่ละครั้ง อย่างไรก็ตามการคำนวณนี้มีราคาแพงมาก ฉันสงสัยว่ามีวิธีที่ง่ายกว่าในการแก้ปัญหานี้หรือไม่


ฉันเพิ่งเพิ่มคำตอบของฉันข้อสังเกตในการใช้ประโยชน์จากโครงสร้าง 0-1
Arnold Neumaier

คำตอบ:


19

แนะนำเวกเตอร์และแก้ปัญหาระบบคู่ขนาดใหญ่A y + G x = 0 , G T y = - bสำหรับ( y , x )พร้อมกันโดยใช้วิธีการวนซ้ำ ถ้าAนั้นสมมาตร (ดูเหมือนว่าคุณจะไม่ได้ระบุไว้อย่างชัดเจน) ระบบนั้นก็สมมาตร (แต่ไม่ จำกัด แม้ว่า quasidefinite ถ้าAy:=A1GxAy+Gx=0GTy=b(y,x)AAเป็นบวกแน่นอน) ซึ่งอาจช่วยให้คุณเลือกวิธีการที่เหมาะสม (คำหลักที่เกี่ยวข้อง: KKT matrix, quasidefinite matrix)

แก้ไข: เนื่องจากเป็นสมมาตรที่ซับซ้อนดังนั้นเมทริกซ์ที่เพิ่มขึ้นก็คือ แต่ไม่มีความสมบูรณ์แบบทางทะเล อย่างไรก็ตามคุณสามารถใช้รูทีนA xเพื่อคำนวณA x = ¯ A ¯ x ; ดังนั้นคุณสามารถปรับวิธีการเช่น QMR ftp://ftp.math.ucla.edu/pub/camreport/cam92-19.pdf (ออกแบบมาสำหรับระบบจริง แต่คุณสามารถเขียนใหม่สำหรับระบบที่ซับซ้อนได้อย่างง่ายดายโดยใช้ adjoint ใน ที่ของทรานส) เพื่อแก้ปัญหาของคุณAAxAx=Ax¯¯

แก้ไข 2: ที่จริงแล้วโครงสร้าง (0,1) ของหมายความว่าคุณสามารถกำจัดx amd องค์ประกอบของG T y เป็นสัญลักษณ์ได้ดังนั้นจึงสิ้นสุดด้วยระบบที่มีขนาดเล็กลงเพื่อแก้ปัญหา ซึ่งหมายความว่ายุ่งกับโครงสร้างของAและจ่ายเฉพาะเมื่อได้รับAในรูปแบบกระจัดกระจายแทนที่จะเป็นตัวดำเนินการเชิงเส้นGxGTyAA


ขอขอบคุณ! A คือสมมาตรที่ซับซ้อน มีเหตุผลที่จะคาดหวังว่าสภาพของเมทริกซ์ที่เติมจะเลวร้ายยิ่งกว่าเมทริกซ์เดิมหรือไม่? หาก m มีขนาดเล็กเมทริกซ์ที่เติมจะมีขนาดใหญ่กว่า A เพียงเล็กน้อยดังนั้นฉันจึงสงสัยว่าการแก้ปัญหาระบบเติมนี้ไม่ควรจะยากกว่าการแก้ระบบด้วย A? A
Costis

หมายเลขเงื่อนไขของระบบทั้งสองนั้นโดยทั่วไปไม่เกี่ยวข้องกัน มันขึ้นอยู่กับว่าคืออะไร - ฉันเพิ่มข้อมูลคำตอบของฉันเกี่ยวกับวิธีการใช้ประโยชน์จากสมมาตรที่ซับซ้อน G
Arnold Neumaier

หวัดดี! ขอบคุณสำหรับคำตอบทั้งหมด สถานที่นี้ดีมาก! ส่วนขยายของคำถามเดิมสมมติว่าตอนนี้ฉันมีโดยที่ G และ A มีความหมายเช่นเดียวกับในคำถามเดิม แต่ B เป็นเมทริกซ์ nxn ที่ขาดอันดับ ( ขนาดเดียวกับ A) และG T A - H B A - 1 G ทั้งหมดนั้นอยู่ในอันดับเต็ม คุณจะไปเกี่ยวกับการแก้ปัญหาระบบใหม่อย่างไรเนื่องจากตอนนี้การผกผันของ B ไม่มีอยู่ดังนั้นคุณจึงไม่มีA B - 1 A H(GTAHBA1G)x=bGTAHBA1GAB1AH. ฉันไม่คิดว่ามันจะใช้งานได้กับ pseudoinverse ของ B เช่นกัน
Costis

1
แนะนำและz : = A - H B yและดำเนินการเปรียบเทียบกับกรณีที่เกิดขึ้น (เป็นไปได้ว่าคุณจำเป็นต้องคำนึงถึงปัจจัยBเป็นเมทริกซ์อันดับเต็มและแนะนำเวกเตอร์ระดับกลางเพิ่มเติม)y:=A1Gxz:=AHByB
Arnold Neumaier

สวัสดีอาร์โนลด์ ขอบคุณสิ่งนี้ใช้ได้จริง! ฉันทดสอบด้วยตัวอย่างการทดสอบขนาดเล็กมากและใช้งานได้ดี อย่างไรก็ตามผู้แก้ปัญหาที่วนซ้ำของฉันกำลังประสบปัญหามากมายในการแปลงเมทริกซ์ที่เติม ในขณะที่ใช้เวลาประมาณ 80 ซ้ำ (ไม่กี่วินาที) เพื่อแก้ปัญหาระบบของรูปแบบกับเมทริกซ์ A ดั้งเดิมระบบที่มีเมทริกซ์เพิ่มเติม (ซึ่งคือ 2n + mx 2n + m หรือ 2n-mx 2n- m โดยใช้วิธีการของ @ wolfgang-bangerth ใช้เวลามากกว่าหมื่นครั้งในการแก้ปัญหาหนึ่ง RHS มีกลยุทธ์ใดในการเร่งความเร็วของคอนเวอร์เจนซ์หรือไม่? อาจเป็นสิ่งที่จำเป็น? Ax=b
Costis

7

ตามการตอบกลับของ Arnold มีบางสิ่งที่คุณสามารถทำได้เพื่อทำให้ปัญหาง่ายขึ้น โดยเฉพาะการเขียนระบบเป็นY + G x = 0 , G T Y = - จากนั้นให้สังเกตว่าจากข้อความที่Gสูงและแคบและแต่ละแถวมีเพียง 1 และศูนย์เท่านั้นมิฉะนั้นคำสั่งG T y = - bหมายความว่าเซตย่อยขององค์ประกอบของyมีค่าคงที่กล่าวคือองค์ประกอบของ- Ay+Gx=0,GTy=bGGTy=byb .

ให้เราบอกว่าสำหรับความเรียบง่ายที่มีคอลัมน์และnแถวและที่ว่าครั้งแรกที่แถวมีคนในพวกเขาและที่จะมีการเรียงลำดับองค์ประกอบของxฉันสามารถทำให้มันเพื่อให้Gมีม. × เมตรตัวตนของเมทริกซ์ที่ด้านบน และเมทริกซ์n - m × mศูนย์ที่ด้านล่าง แล้วฉันจะแบ่งพาร์ติชันY = ( Y C , Y )เข้า "จำกัด" และn - เมตรองค์ประกอบ "ฟรี" เพื่อให้GmnmxGm×mnm×my=(yc,yf)mnm ฉันสามารถแบ่งพาร์ติชัน Aเพื่อให้ A = ( A c c A c f A f c A f f )yc=bAA=(AccAcfAfcAff) )จากสมการฉันได้สิ่งต่อไปนี้: A c c y c + A c f y f + x = 0 ,Ay+Gx=0

Accyc+Acfyf+x=0,Afcyc+Affyf=0
yc
Affyf=Afcb
x=AccbAcfAff1Afcb.
AGGz=AfcbAffh=zx=AccbAcfh

GA.


0

But we know G, GT and A, so

GTA1Gx=b

GGTA1Gx=Gb

Since GTG=I, then GT=G1, so GGT=I:

A1Gx=Gb

AA1Gx=AGb

Gx=AGb

GTGx=GTAGb

x=GTAGb

Unless I've missed something, you don't need any iteration, or any solver to calculate x given G, A and b.


3
GT being a left inverse of G does not imply that it is also a right inverse. Consider G=e1, where GT=e1T is a left inverse, but GGT=e1e1TI.
Jack Poulson

1
GCnCm, hence GTG=Im×m, but GGTIn×n. Rather it's a projector on a subspace.
Deathbreath
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.