Liczba warunkowa preparatów A'A i AA '


9

Pokazano (Yousef Saad, Iteracyjne metody dla rzadkich układów liniowych , s. 260), którecond(AA)cond(A)2

Czy dotyczy to również ?AA

W przypadku, gdy jest N \ razy M z N \ ll M , obserwuję, że cond (A'A) \ gg cond (AA ')AN×MNMcond(AA)cond(AA)

Czy to oznacza, że w tym przypadku preferowane jest sformułowanie w kategoriach AA ?


2
Porównujesz liczby warunków dwóch macierzy o bardzo różnych rozmiarach. Bez wyjaśnienia dlaczego wydaje się, że to porównanie prawdopodobnie nie ma znaczenia. Oczywiście, jeśli możesz osiągnąć to, czego potrzebujesz, używając znacznie mniejszej matrycy, powinieneś (nawet jeśli warunkowanie było podobne).
David Ketcheson

1
Nowa odpowiedź Stefano M poniżej jest poprawna. Proszę przeczytać i zagłosować.
David Ketcheson

Odpowiedzi:


6

Jeśli z , to tak że nie może mieć pełnej rangi, tzn. jest liczbą pojedynczą.ARN×MN<M

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

Odpowiednio, warunkiem jest . Ze względu na skończoną precyzję arytmetyki, jeśli obliczasz w Matlabie, otrzymujesz dużą liczbę, a nie .κ2(ATA)=cond(A'A)Inf


@OscarB: wartości w liczbie pojedynczej to tylko , nie ma czegoś takiego jak ta liczba osobliwa! Twoje wyprowadzenie jest prawidłowe, ale pamiętaj, że jeśli , są sv , to , podczas gdy z końcowymi zerami . ANMσii=1NASST=diag(σ12,,σn2)STS=diag(σ12,,σn2,0,,0)MN
Stefano M

8

Cóż, wygląd Spójrzmy prawdzie w dlaczego ma w przybliżeniu kwadrat o liczbę warunek . Używając rozkładu SVD , z , , , możemy wyrazić jakoATAAA=USVTURN×NSRN×MVRM×MATA

ATA=(USVT)TUSVT=VSTUTUSVT=VSTSVT

Które otrzymujemy od stwierdzenia, że jest ortonormalna takie, że . Ponadto zauważamy, że jest macierzą diagonalną, tak że ostateczny rozkład można wyrazić jako , przy czym oznacza , otrzymując macierz diagonalną z pierwszymi N liczbą pojedynczą z kwadracie po przekątnej. Oznacza to, że ponieważ liczba warunków jest stosunkiem pierwszej i ostatniej liczby pojedynczej, dla , UUTU=ISATAVS2VTS2STSScond(A)=s1sNARN×M

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

Teraz możemy wykonać to samo ćwiczenie z :AAT

AAT=USVT(USVT)T=USVTVSTUT=US2UT

Co oznacza, że ​​otrzymujemy wynik , ponieważ tutaj oznacza , subtelną różnicę w stosunku do powyższej notacji.cond(AAT)=s12sN2S2SST

Ale zauważ tę subtelną różnicę! Dla liczba warunków ma M-tą liczbę pojedynczą w mianowniku, podczas gdy ma N-tą liczbę pojedynczą. To wyjaśnia, dlaczego widzisz znaczące różnice w liczbie warunków - będzie rzeczywiście „lepiej uwarunkowany” niż .ATAAATAATATA

Mimo to David Ketcheson miał rację - porównujesz liczby warunków między dwiema zupełnie różnymi macierzami. W szczególności, co można osiągnąć z nie będzie takie samo jak to, co można osiągnąć z .ATAAAT


To świetne wytłumaczenie! Teraz wyraźnie widzę różnicę. Macierz A służy do budowania równań normalnych i przy niewielkich zmianach można również sformułować ją jako , a nie klasyczny . Czy możesz również powiedzieć, czy korzystniejsze jest użycie solvera takiego jak LSQR zamiast rozwiązywania normalnych równań? Ponieważ LSQR wcale nie wymaga budowania tego produktu. AAAA
Alexander

Cieszę się, że to miało sens. Ogólnie rzecz biorąc, należy wziąć pod uwagę uwarunkowanie problemu. Ale jeśli to nie jest problem, możesz użyć albo normalnych równań / faktoryzacji QR (z A) / LSQR, w zależności od wielkości problemu (między innymi). O ile twój problem nie jest duży lub źle uwarunkowany, prawdopodobnie zastosowałbym faktoryzację QR, ale bez większej wiedzy o problemie, który próbujesz rozwiązać, trudno powiedzieć. Jestem pewien, że inni z większym doświadczeniem mogą udzielić bardziej szczegółowych porad.
OscarB

Samo A jest źle uwarunkowane (z liczbą warunków ), gęste i duże. QR nie jest opcją. Ponieważ jest to źle uwarunkowane, muszę dodać trochę regularyzacji. Teraz wydaje się, że wystarczy zwykła regularyzacja Tichonowa. Chodzi o to, że jeśli (w moim przypadku z ), to użycie LSQR wydaje się zawsze preferowane, ponieważ nie musisz tworzyć żadnego produktu w wszystko. Pytanie brzmi, czy rozwiązania uzyskane przy pomocy równań normalnych i LSQR są identyczne? 107cond(A)<cond(AAT)<cond(ATA)N<M
Alexander

Cóż, jak rozumiem, LSQR zapewni identyczne rozwiązanie normalnych równań po „nieskończenie wielu” iteracjach z dokładną dokładnością. Jednak w przypadku źle postawionych problemów normalne rozwiązanie równań nie jest tym, czego chcesz. Zamiast tego chcesz używać LSQR do iteracji aż do osiągnięcia półkonwergencji. Jednak kontrolowanie algorytmów iteracyjnych w źle postawionych problemach to zupełnie inna gra w piłkę. Ponadto, w zależności od kosztu produktu macierzy-wektora i liczby potrzebnych iteracji (a tym samym matveców), bezpośrednie rozwiązanie Tichonowa z bidiagonalizacją może być lepsze.
OscarB

Niesamowite wyjaśnienie. +1 dla pana!
meawoppl,

2

Twierdzenie, że (dla macierzy kwadratowych) w pytaniu i [Edycja: źle odczytałem] w odpowiedzi Artana jest nonsensowne. KontrprzykładcondA2condATA

A=(ϵ10ϵ),ϵ1

dla których możesz łatwo sprawdzić, czy podczas gdy .condATA=O(ϵ4)condA2=O(ϵ2)


Ok, aby podkreślić, że i są na ogół bardzo odmienne w odniesieniu do eigs, svds, cond number: ale moim zdaniem pytanie to dotyczy . A2ATA[cond(A)]2
Stefano M

@StefanoM Dzięki, wydaje mi się, że źle odczytałem, choć z dyskusji, nie był jedyny.
Jed Brown

1

Dokładnie arytmetyczny cond (A ^ 2) = cond (A'A) = cond (AA '), patrz np. Golub i van Loan, 3. wydanie, str. 70. Nie jest to prawdą w przypadku arytmetyki zmiennoprzecinkowej, jeśli A ma prawie niedobór rangi. Najlepiej jest postępować zgodnie z powyższymi przepisami przy rozwiązywaniu najmniejszych kwadratowych problemów, najbezpieczniejszym jest podejście SVD, str. 257. Zamiast tego używaj \ varepsilon-rank podczas obliczania SVD, gdzie \ varepsilon jest rozdzielczością danych macierzy.


Przepraszam, spojrzałem na Goluba i Van Loana 3. ed str. 70, i nie mogłem znaleźć niczego, co tworzy kopię instrukcji cond (A ^ 2) = cond (A ^ TA) = cond (AA ^ T). Czy mógłbyś być bardziej szczegółowy w odniesieniu do swojego odniesienia?
OscarB

Nie ma tam żadnego zdania, ale można wywnioskować z twierdzenia 2.5.2 i pseudoinwersji, sekcja 5.5.4, że cond (AA ') = cond (A'A). Powodem, dla którego biorę pseudo-odwrotność, jest to, że ma to znaczenie dla problemu najmniejszych kwadratów. Równość po warunku (A ^ 2) powinna wynosić \ ok, przepraszam za literówkę.
Artan,

Nie, ta odpowiedź jest całkowicie niepoprawna. Zobacz mój kontrprzykład.
Jed Brown

Saad musiał zwrócić uwagę na jakiś konkretny kontekst. Dla omawianego pytania istotny jest przebieg postępowania.
Artan,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.