W statystyce i jej różnych zastosowaniach często obliczamy macierz kowariancji , która jest pozytywnie określona (w rozważanych przypadkach) i symetryczna, dla różnych zastosowań. Czasami potrzebujemy odwrotności tej macierzy do różnych obliczeń (na przykład formy kwadratowe z odwrotnością jako (jedyną) macierzą środkową). Biorąc pod uwagę cechy tej matrycy i zamierzone zastosowania, zastanawiam się:
Jaka jest najlepsza, pod względem stabilności numerycznej, metoda obliczania lub stosowania (powiedzmy w przypadku form kwadratowych lub ogólnie mnożenia macierzy-wektora) tej odwrotności? Jakaś faktoryzacja, która może się przydać?
źródło
Zrobiłem to po raz pierwszy niedawno, korzystając z sugestii z matematyki.
Myślę, że SVD było zalecane przez większość, ale zdecydowałem się na prostotę Cholesky:
Jeśli macierz , to rozkładam na trójkątną macierz za pomocą Cholesky'ego, tak że . Następnie używam podstawienia w tył lub w przód (w zależności od tego, czy wybiorę L, aby był trójkątem górnym czy dolnym), aby odwrócić , tak że mam . Na tej podstawie mogę szybko obliczyć . M L M =M=AA⊤ M L M=LL⊤ L L−1 M−1=(LL⊤)−1=L−⊤L−1
Zacząć od:
Rozkład na czynniki chłodnicze:
Podstawienie wsteczne:
Mnożenie:
Zastosowana notacja: dolne indeksy to wiersze, górne indeksy to kolumny, a to transpozycjaL−⊤ L−1
Mój algorytm Cholesky'ego (prawdopodobnie z przepisów numerycznych lub Wikipedii)
Można to prawie zrobić na miejscu (potrzebujesz tylko tymczasowego przechowywania elementów ukośnych, akumulatora i niektórych iteratorów liczb całkowitych).
Mój algorytm zastępowania wstecznego (z Numerycznych przepisów sprawdź ich wersję, ponieważ mogłem pomylić się ze znacznikiem LaTeX)
Ponieważ w wyrażeniu pojawia się , kolejność iteracji po macierzy jest ważna (niektóre części macierzy wynikowej zależą od innych jej części, które należy wcześniej obliczyć). Sprawdź kod Przepisy numeryczne, aby znaleźć pełny przykład w kodzie. [Edytuj]: W rzeczywistości po prostu sprawdź przykład Przepisy numeryczne. Za bardzo uprościłem, używając produktów kropkowych, do tego stopnia, że powyższe równanie ma cykliczną zależność bez względu na to, w jakiej kolejności iterujesz ...L−T
źródło
Jeśli wiesz, że macierz ma odwrotność (tj. Jeśli rzeczywiście jest dodatnia) i jeśli nie jest zbyt duża, to rozkład Choleskiego daje odpowiednie środki do scharakteryzowania odwrotności macierzy.
źródło