Przestrzeń zerowa prostokątnej gęstej matrycy


16

Biorąc pod uwagę gęstą macierz jaki jest najlepszy sposób na znalezienie podstawy zerowej w granicach tolerancji ?

A∈Rm×n,m>>n;max(m)≈100000
ϵ

Czy na tej podstawie mogę powiedzieć, że niektóre cols są liniowo zależne od ? Innymi słowy, po obliczeniu podstawy zerowej przestrzeni, jakie kolumny należy usunąć, aby uzyskać macierz niesingularną?ϵA

Referencje są mile widziane.

Odpowiedzi:


12

Standardowe metody określania pustej przestrzeni macierzy to wykorzystanie rozkładu QR lub SVD. Jeśli dokładność jest najważniejsza, preferowane jest SVD; rozkład QR jest szybszy.

Używając SVD, jeśli , to kolumny odpowiadające małym pojedynczym wartościom (tj. Małym ukośnym wpisom ) stanowią podstawę dla przestrzeni zerowej. Odpowiednią tolerancją jest tutaj to, co uważa się za „małą” wartość pojedynczą. Na przykład MATLAB zajmuje małą wartość , gdzie jest związany z dokładnością maszyny (patrz tutaj w dokumentacji MATLAB ).A=UΣVHVΣmax(m,n)⋅εε

Używając rozkładu QR, jeśli , a ranga jest , to ostatnie kolumny tworzą pustą przestrzeń , zakładając, że rozkład QR ujawnia rangę. Aby wyznaczyć , obliczyć liczbę wpisów na głównej przekątnej których wielkość przekracza tolerancję (podobną do tej stosowanej w podejściu SVD).AT=QRArn−rQArR

Nie używaj rozkładu LU. Dokładnie w arytmetyce jest to realne podejście, ale w przypadku arytmetyki zmiennoprzecinkowej nagromadzenie błędów numerycznych czyni ją niedokładną.

Wikipedia obejmuje te tematy tutaj .


Geoff, mówiąc w kategoriach QR, przypuśćmy, że mam rozkład, w jaki sposób powiązać podstawę zerową i kolumny w oryginalnej macierzy? Innymi słowy, jakie kolumny powinienem usunąć z , aby pozbyć się pustego miejsca? Chodzi tutaj o pracę z samym A , a nie z jego rozkładem. AA
— Alexander

Procedury, które obliczają rozkład QR zwykle zawierają opcję zwrócenia wektora permutacji wskazującego sposób permutacji kolumn w celu uzyskania faktoryzacji QR. Ostatnie wpisy tego permutacji wektora odpowiadałaby wierszy A (kolumny z A , T ), które znajdują się w nullspace. Pierwsza r Wpisy tego wektora odpowiadają kolumny A , T , które są liniowo niezależne. Nie jestem pewien, co masz na myśli mówiąc „pozbyć się pustego miejsca”. Czy masz na myśli, że chcesz usunąć kolumny A, aby uzyskać macierz niesingularną? n−rAATrATA
— Geoff Oxberry,

Tak, mam na myśli to. Popatrzę na permutację, dzięki.
— Alexander

To jest inne pytanie. Co byś wtedy zamiast zrobić to obliczyć QR rozkładowi (lub SVD) z . Jeśli obliczasz rozkład QR dla A , możesz obliczyć rangę A, jak w powyższej odpowiedzi (nie trzeba transponować macierzy), a następnie pierwsze wpisy r (gdzie r jest rangą A ) wektora permutacji odpowiadają do niezależnych kolumnach A . Ten sam rodzaj algorytmu dotyczy SVD; jeśli możesz zwrócić wektor permutacji wraz z rozkładem, powinno to dostarczyć niezbędnych informacji. AAArrAA
— Geoff Oxberry,

8

Jeśli , jak Twoje pytanie wskazuje, można zaoszczędzić trochę pracy przez pierwsze zbieranie indeks ustawiony I z p ≈ 5 n (powiedzmy) losowych wierszy i używając prostopadły faktoryzacji T I : = Q R . (Faktoryzacja QR to ta, w której Q jest kwadratem, a R jest prostokątem o randze r , a pozostałe n - r kolumny R wynoszą zero. Użycie permutacji faktoryzacji QR zwiększy stabilność; permutacja musi być następnie uwzględniona w bardziej szczegółowy przepis.)m≫nIp≈5nAI:T=QRQRrn−rR

Zazwyczaj będzie to daje znacznie niższe wymiarowej podprzestrzeni łączony przez kolumny , ostatnie n - r kolumny Q . To podprzestrzeń zawiera przestrzeń NULL A . Teraz wybierz inny, losowy zbiór rozłączny indeksu i obliczyć QR faktoryzacji ( A I : N ) T . Pomnóż wynikową pustą przestrzeń po lewej stronie przez N, aby uzyskać lepszą N o prawdopodobnie jeszcze niższym wymiarze. Iteruj, aż wymiar N nie będzie się już zmniejszał. Wtedy prawdopodobnie masz poprawną pustą przestrzeń i możesz to sprawdzić, obliczając A NNn−rQA(AI:N)TNNNAN. Jeśli nie jest to jeszcze nieistotne, wykonaj kolejne iteracje z najbardziej znaczącymi wierszami.

Edycja: Gdy masz , możesz znaleźć maksymalny zestaw J liniowo niezależnych kolumn A przez ortogonalne rozkładanie N T = Q R z obrotem. Rzeczywiście, zestaw J indeksów niewybranych jako osie przestawne będzie miał tę właściwość.NJANT=QRJ


+1 za skuteczny sposób na określenie pustej przestrzeni dużej macierzy. Będę musiał pamiętać o zapoznaniu się z tą odpowiedzią później, kiedy będę jej potrzebować.
— Geoff Oxberry,

Rzeczywiście, to brzmi rozsądnie, jednak moje matryce mieszczą się w 16 GB pamięci RAM, więc pozostałbym przy standardowym matlabie qr.
— Alexander

Prof. Neumaier, postanowiłem przetestować ten algorytm, ale nie rozumiem dokładnie, co to jest i co oznacza „obliczanie faktoryzacji QR dla ( A I : N ) T ”? Czy mógłbyś wyjaśnić nieco więcej. N(AI:N)T
— Alexander

Trochę zredagowałem swoją odpowiedź. oblicza się według przepisu Geoffa Oxberry. N
— Arnold Neumaier

Dziękuję Ci. Zaimplementowałem to. Jednakże, o ile widzę, to algorytm nie pozwala zdefiniować mi zbiór liniowo niezależnych kolumn (ponieważ rozkładają A T I : zamiast A ja : ), ale po prostu pomaga oszacować podstawę nullspace sama? AAI:TAI:
— Alexander
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.