Bedingungsnummer der A'A- und AA'-Formulierungen


9

Es wird gezeigt (Yousef Saad, Iterative Methoden für spärliche lineare Systeme , S. 260), dasscond(AA)cond(A)2

Gilt das auch für ?AA

Im Fall ist mit , beachten , dass IAN×MNMcond(AA)cond(AA)

Bedeutet das, dass in diesem Fall eine Formulierung in Bezug auf vorzuziehen ist?AA


2
Sie vergleichen die Bedingungsnummern von zwei Matrizen mit sehr unterschiedlichen Größen. Ohne eine Erklärung, warum, scheint dieser Vergleich wahrscheinlich nicht aussagekräftig zu sein. Wenn Sie mit der viel kleineren Matrix das erreichen können, was Sie brauchen, sollten Sie dies natürlich tun (auch wenn die Konditionierung ähnlich wäre).
David Ketcheson

1
Die neue Antwort von Stefano M unten ist richtig. Bitte lesen Sie es und stimmen Sie ab.
David Ketcheson

Antworten:


6

Wenn mit , dann ist so dass nicht den vollen Rang haben kann, dh es ist singulär. N < M r a n k ( A T A ) = r a n k ( A A.ARN×MN<MA T A R M × M.

rank(ATA)=rank(AAT)=rank(A)N<M
ATARM×M

Dementsprechend ist die Bedingungsnummer . Aufgrund der endlichen Präzisionsarithmetik erhalten Sie beim Berechnen in Matlab eine große Zahl, nicht .κ2(ATA)=cond(A'A)Inf


@OscarB: Die Singularwerte von sind nur , es gibt keinen ten Singularwert! Ihre Ableitung ist korrekt, aber bitte beachten Sie, dass wenn , die sv von , , während mit nachgestellten Nullen. N M σ i i = 1 N A S S T = d i a g ( σ 2 1 , , σ 2 n ) S T S = d i a g ( σ 2 1 , , σ 2 n , 0 , , 0 ) M -ANMσii=1NASST=diag(σ12,,σn2)STS=diag(σ12,,σn2,0,,0)MN
Stefano M

8

Schauen wir uns an, warum ungefähr die quadratische Bedingungszahl von . Unter Verwendung der SVD-Zerlegung von mit , , können wir als ausdrückenA A = U S V T U R N.ATAAA=USVT S R N × M V R M × M A T A.URN×NSRN×MVRM×MATA

ATA=(USVT)TUSVT=VSTUTUSVT=VSTSVT

Was wir erreichen mit der Feststellung , dass orthonormal ist, so dass . Ferner Wir bemerken , daß eine diagonale Matrix ist, so dass die endgültige Zersetzung von kann ausgedrückt werden , wobei bedeutet , eine Diagonalmatrix mit dem ersten N singuläre Werte ergeben aus quadratisch in der Diagonale. Dies bedeutet, dass, da die Bedingungsnummer das Verhältnis des ersten und des letzten Singularwerts ist, für , U T U = I S A T A V S 2 V.UUTU=ISATAS 2 S T S S c o n d ( A ) = s 1VS2VTS2STSS ARN×M.cond(A)=s1sNARN×M

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

Jetzt können wir dieselbe Übung mit :AAT

AAT=USVT(USVT)T=USVTVSTUT=US2UT

Dies bedeutet, dass wir das Ergebnis , da hier , ein subtiler Unterschied zur obigen Notation. S2SST.cond(AAT)=s12sN2S2SST

Aber beachten Sie diesen subtilen Unterschied! Für hat die Bedingungsnummer den M'ten Singularwert im Nenner, während den N'ten Singularwert hat. Dies erklärt, warum Sie signifikante Unterschiede in der Bedingungsnummer sehen - wird tatsächlich „besser konditioniert“ als .A A T A A T A T AATAAATAATATA

Trotzdem hatte David Ketcheson Recht - Sie vergleichen die Bedingungsnummern zwischen zwei sehr unterschiedlichen Matrizen. Insbesondere ist das, was Sie mit können, nicht dasselbe wie das, was Sie mit .A A T.ATAAAT


Das ist eine gute Erklärung! Ich sehe den Unterschied jetzt deutlich. Matrix A wird verwendet, um normale Gleichungen zu erstellen, und mit geringfügigen Änderungen können Sie sie auch als formulieren , nicht als klassisches . Können Sie auch sagen, ob es vorteilhaft ist, einen Löser wie LSQR zu verwenden, anstatt normale Gleichungen zu lösen? Da LSQR dieses Produkt überhaupt nicht erstellen muss. A ' A.AAAA
Alexander

Ich bin froh, dass es Sinn machte. Im Allgemeinen müssen Sie die Konditionierung des Problems berücksichtigen. Wenn dies jedoch kein Problem darstellt, können Sie je nach Größe des Problems (unter anderem) entweder normale Gleichungen / QR-Faktorisierung (von A) / LSQR verwenden. Wenn Ihr Problem nicht groß oder schlecht konditioniert ist, würde ich wahrscheinlich die QR-Faktorisierung anwenden, aber ohne mehr Wissen über das Problem, das Sie zu lösen versuchen, ist es schwer zu sagen. Ich bin sicher, dass andere mit mehr Erfahrung detailliertere Ratschläge geben könnten.
OscarB

Das A selbst ist schlecht konditioniert (mit einer Bedingungsnummer von ), dicht und groß. QR ist keine Option. Da es schlecht konditioniert ist, muss ich sowieso eine Regularisierung hinzufügen. Jetzt scheint eine einfache Tikhonov-Regularisierung genug zu sein. Der Punkt ist, dass wenn (für meinen Fall mit ), die Verwendung von LSQR immer vorzuziehen scheint, da Sie bei kein Produkt bilden müssen alle. Die Frage ist, ob mit normalen Gleichungen und LSQR erhaltene Lösungen identisch sind. c o n d ( A ) < c o n d ( A A T ) < c o n d ( A T A ) N < M107cond(A)<cond(AAT)<cond(ATA)N<M
Alexander

Nun, so wie ich es verstehe, wird LSQR nach "unendlich vielen" Iterationen mit exakter Genauigkeit eine identische Lösung für normale Gleichungen liefern. Bei schlecht gestellten Problemen ist die normale Gleichungslösung jedoch nicht die gewünschte. Stattdessen möchten Sie LSQR verwenden, um zu iterieren, bis eine Halbkonvergenz erreicht ist. Die Steuerung iterativer Algorithmen bei schlecht gestellten Problemen ist jedoch ein ganz anderes Ballspiel. Abhängig von den Kosten Ihres Matrix-Vektor-Produkts und der Anzahl der benötigten Iterationen (und damit Matveken) ist eine direkte Tikhonov-Lösung mit Bidiagonalisierung möglicherweise besser.
OscarB

Tolle Erklärung. +1 für Sie, Sir!
Meawoppl

2

Die Behauptung, dass (für quadratische Matrizen) in der Frage und [Bearbeiten: Ich habe falsch gelesen] in Artans Antwort Unsinn ist. GegenbeispielcondA2condATA

A=(ϵ10ϵ),ϵ1

für die Sie leicht überprüfen können, ob während .cond A 2 = O ( ϵ - 2 )condATA=O(ϵ4)condA2=O(ϵ2)


Ok, um zu betonen, dass und im Allgemeinen sehr unterschiedlich sind, was Eigs, Svds, Cond-Nummer betrifft: aber meiner Meinung nach geht es in der Behauptung der Frage um . A T A [ c o n d ( A ) ] 2A2ATA[cond(A)]2
Stefano M

@StefanoM Danke, es scheint, dass ich falsch verstanden habe, obwohl aus der Diskussion nicht der einzige.
Jed Brown

1

In exakter arithmetischer Bedingung (A ^ 2) = Bedingung (A'A) = Bedingung (AA '), siehe z. Golub und van Loan, 3. Aufl., S. 70. Dies gilt nicht für die Gleitkomma-Arithmetik, wenn A fast einen Rangmangel aufweist. Der beste Rat ist, die oben genannten Buchrezepte zu befolgen, wenn Sie Probleme mit den kleinsten Quadraten lösen. Am sichersten ist der SVD-Ansatz, S. 257. Verwenden Sie stattdessen \ varepsilon-rank, wenn Sie SVD berechnen, wobei \ varepsilon die Auflösung Ihrer Matrixdaten ist.


Es tut mir leid, ich habe mir Golub und Van Loan angesehen. 70 und konnte nichts finden, was die Aussage cond (A ^ 2) = cond (A ^ TA) = cond (AA ^ T) stützt. Könnten Sie mit Ihrer Referenz genauer sein?
OscarB

Es gibt dort keine Aussage, aber Sie können aus Satz 2.5.2 und der Pseudoinverse, Abschnitt 5.5.4, ableiten, dass cond (AA ') = cond (A'A). Der Grund, warum ich Pseudoinverse nehme, ist, dass dies für das Problem der kleinsten Quadrate in der Hand wichtig ist. Die Gleichheit nach cond (A ^ 2) sollte \ approx sein, entschuldigen Sie den Tippfehler.
Artan

Nein, diese Antwort ist völlig falsch. Siehe mein Gegenbeispiel.
Jed Brown

Saad muss einen solchen Punkt in einem bestimmten Kontext gemacht haben. Relevant für die vorliegende Frage ist das vorgehende Argument.
Artan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.