หมายเลขเงื่อนไขของสูตร A 'และ AA'


9

มันแสดงให้เห็น (Yousef Saad, วิธีการวนซ้ำสำหรับระบบเชิงเส้นแบบกระจัดกระจาย , หน้า 260)cond(AA)cond(A)2

สิ่งนี้เป็นจริงหรือ AA เช่นกัน?

เผื่อ A คือ N×M กับ NMฉันสังเกตว่า cond(AA)cond(AA)

นั่นหมายถึงการกำหนดในแง่ของ AA จะดีกว่าในกรณีนี้


2
คุณกำลังเปรียบเทียบจำนวนเงื่อนไขของเมทริกซ์สองตัวที่มีขนาดต่างกันอย่างมากมาย หากไม่มีคำอธิบายว่าทำไมดูเหมือนว่าการเปรียบเทียบนั้นอาจไม่มีความหมาย แน่นอนถ้าคุณสามารถบรรลุสิ่งที่คุณต้องการโดยใช้เมทริกซ์ขนาดเล็กกว่ามากคุณควร (แม้ว่าการปรับสภาพจะคล้ายกัน)
David Ketcheson

1
คำตอบใหม่ของ Stefano M ด้านล่างถูกต้อง โปรดอ่านและลงคะแนน
David Ketcheson

คำตอบ:


6

ถ้า ARN×M กับ N<Mจากนั้น

rank(ATA)=rank(AAT)=rank(A)N<M
ดังนั้น ATARM×M ไม่สามารถเป็นอันดับเต็มได้นั่นคือเป็นเอกพจน์

ตามจำนวนเงื่อนไขคือ κ2(ATA)=. เนื่องจากความแม่นยำทางคณิตศาสตร์แน่นอนถ้าคุณคำนวณcond(A'A)ใน MATLAB Infคุณได้รับเป็นจำนวนมากไม่ได้


@OscarB: ค่าเอกพจน์ของ A เป็นเพียงแค่ Nไม่มีสิ่งเช่นนั้น Mค่าเอกพจน์ที่สอง! ที่มาของคุณถูกต้อง แต่โปรดทราบว่าถ้าσi, i=1N เป็น sv ของ Aจากนั้น SST=diag(σ12,,σn2)ในขณะที่ STS=diag(σ12,,σn2,0,,0) กับ MNเลขศูนย์ต่อท้าย
Stefano M

8

เรามาดูเหตุผลกันดีกว่า ATA มีประมาณเงื่อนไขกำลังสองจำนวนของ A. การใช้การสลายตัว SVD ของA=USVTกับ URN×N, SRN×M, VRM×Mเราสามารถแสดง ATA เช่น

ATA=(USVT)TUSVT=VSTUTUSVT=VSTSVT

ซึ่งเรามาถึงโดยสังเกตว่า U เป็น orthonormal เช่นนั้น UTU=I. ต่อไปเราทราบว่าS เป็นเมทริกซ์ทแยงมุมเช่นการสลายตัวสุดท้ายของ ATA สามารถแสดงเป็น VS2VTกับ S2 ความหมาย STSโดยให้เมทริกซ์แนวทแยงที่มีค่า N เอกพจน์แรกจาก Sกำลังสองในแนวทแยง นี่หมายความว่าเนื่องจากหมายเลขเงื่อนไขคืออัตราส่วนของค่าเอกพจน์แรกและค่าสุดท้ายcond(A)=s1sN สำหรับ ARN×M,

cond(ATA)=s12sM2=(s1sM)2=cond(A)2

ตอนนี้เราสามารถออกกำลังกายแบบเดียวกันกับ AAT:

AAT=USVT(USVT)T=USVTVSTUT=US2UT

ซึ่งหมายความว่าเราได้รับผลลัพธ์ cond(AAT)=s12sN2, ตั้งแต่ S2 ที่นี่หมายถึง SSTแตกต่างเล็กน้อยจากสัญกรณ์ข้างต้น

แต่ทราบว่าความแตกต่างที่ลึกซึ้ง! สำหรับATAหมายเลขเงื่อนไขมีค่าเอกพจน์ M'th ในส่วนขณะที่ AATมีค่าเอกพจน์ N'th สิ่งนี้อธิบายว่าทำไมคุณถึงเห็นความแตกต่างอย่างมีนัยสำคัญในหมายเลขเงื่อนไข -AAT จะเป็น "ปรับอากาศที่ดีกว่า" แน่นอนกว่า ATA.

อย่างไรก็ตาม David Ketcheson นั้นถูกต้องคุณกำลังเปรียบเทียบหมายเลขเงื่อนไขระหว่างเมทริกซ์ที่ต่างกันสองตัว โดยเฉพาะอย่างยิ่งสิ่งที่คุณสามารถทำได้ด้วยATA จะไม่เหมือนกับสิ่งที่คุณสามารถทำได้ด้วย AAT.


นั่นคือคำอธิบายที่ดี! ฉันเห็นความแตกต่างชัดเจนแล้ว เมทริกซ์ A ถูกใช้เพื่อสร้างสมการปกติและด้วยการเปลี่ยนแปลงเล็กน้อยคุณสามารถกำหนดเป็นAAไม่ใช่คลาสสิก AA. คุณสามารถบอกได้เช่นกันว่าการใช้ตัวแก้ปัญหาเช่น LSQR นั้นดีกว่าการแก้สมการปกติหรือไม่ เนื่องจาก LSQR ไม่จำเป็นต้องสร้างผลิตภัณฑ์นี้เลย
Alexander

ดีใจที่ได้รู้ โดยทั่วไปคุณต้องพิจารณาถึงการปรับสภาพปัญหา แต่ถ้านั่นไม่ใช่ปัญหาคุณสามารถใช้สมการปกติ / QR-factorization (ของ A) / LSQR ขึ้นอยู่กับขนาดของปัญหา (เหนือสิ่งอื่นใด) ถ้าหากปัญหาของคุณมีขนาดใหญ่หรือไม่มีเงื่อนไขฉันอาจจะใช้การแยกตัวประกอบ QR แต่ถ้าไม่มีความรู้เพิ่มเติมเกี่ยวกับปัญหาที่คุณพยายามแก้ไขมันก็ยากที่จะบอก ฉันมั่นใจว่าคนอื่น ๆ ที่มีประสบการณ์มากกว่าสามารถให้คำแนะนำโดยละเอียดเพิ่มเติมได้
OscarB

ตัว A นั้นปรับอากาศ (ด้วยจำนวนเงื่อนไขของ 107) ความหนาแน่นและขนาดใหญ่ QR ไม่ใช่ตัวเลือก เนื่องจากมันไม่ได้ปรับอากาศฉันจึงต้องเพิ่มการทำให้เป็นมาตรฐานอยู่ดี ตอนนี้การทำให้เป็นมาตรฐาน Tikhonov อย่างง่ายน่าจะเพียงพอแล้ว ประเด็นก็คือว่าถ้าcond(A)<cond(AAT)<cond(ATA) (สำหรับกรณีของฉันด้วย N<M) ดังนั้นการใช้ LSQR จึงเป็นที่นิยมมากกว่าเนื่องจากคุณไม่จำเป็นต้องสร้างผลิตภัณฑ์ใด ๆ เลย คำถามคือถ้าคำตอบที่ได้จากสมการปกติและ LSQR เหมือนกัน?
Alexander

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

คำอธิบายที่ดีเลิศ +1 สำหรับคุณครับ!
meawoppl

2

โดยอ้างว่า condA2condATA(สำหรับตารางเมทริกซ์) ในคำถามและ [แก้ไข: ฉันอ่านผิด] ในคำตอบของ Artan นั้นไร้สาระ Counter-ตัวอย่างเช่น

A=(ϵ10ϵ),ϵ1

ซึ่งคุณสามารถตรวจสอบได้อย่างง่ายดาย condATA=O(ϵ4) ในขณะที่ condA2=O(ϵ2).


ตกลงที่จะเน้นว่า A2 และ ATA โดยทั่วไปแล้วจะแตกต่างกันมากเกี่ยวกับสิ่งที่ eigs, svds, หมายเลข cond: แต่ในความคิดของฉันการเรียกร้องของคำถามเกี่ยวกับ [cond(A)]2.
Stefano M

@StefanoM Thanks, it seems I misread, though from the discussion, wasn't the only one.
Jed Brown

1

In exact arithmetic cond(A^2)=cond(A'A)=cond(AA'), see eg. Golub and van Loan, 3rd ed, p70. This is not true in floating point arithmetic if A is nearly rank deficient. The best advise is to follow the above book recipes when solving least square problems, the safest being SVD approach, p257. Use \varepsilon-rank instead when computing SVD, where \varepsilon is the resolution of your matrix data.


I'm sorry, I looked at Golub and Van Loan 3rd ed p. 70, and couldn't find anything backing up the statement cond(A^2)=cond(A^TA)=cond(AA^T). Could you be more specific with your reference?
OscarB

There is no statement there, but you can derive from theorem 2.5.2 and the pseudoinverse, section 5.5.4 that cond(AA')=cond(A'A). The reason that I take pseudoinverse is that this is what matters for the least squares problem in hand. The equality after cond(A^2) should be \approx, sorry for the typo.
Artan

No, this answer is totally incorrect. See my counter-example.
Jed Brown

Saad must have made such a point wrt to some specific context. What is relevant for the question at hand is the proceeding argument.
Artan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.