Rozwiązuję dla ogromnej rzadkiej dodatniej określonej macierzy za pomocą metody gradientu sprzężonego (CG). Czy można obliczyć wyznacznik podstawie informacji uzyskanych podczas rozwiązania?A A
Rozwiązuję dla ogromnej rzadkiej dodatniej określonej macierzy za pomocą metody gradientu sprzężonego (CG). Czy można obliczyć wyznacznik podstawie informacji uzyskanych podczas rozwiązania?A A
Odpowiedzi:
Obliczanie wyznacznika rzadkiej macierzy jest zazwyczaj tak samo drogie jak bezpośrednie rozwiązanie, i jestem sceptyczny, że CG byłby bardzo pomocny w jej obliczeniu. Byłoby możliwe uruchomienie CG dla powtórzeń (gdzie jest ) w celu generowania informacji na całym spektrum , a następnie obliczyć determinantę jako iloczyn wartości własnych, ale byłoby to zarówno wolno i niestabilny numerycznie.A n × n A
Byłoby lepszym pomysłem obliczyć rzadką bezpośrednią faktoryzację Choleskiego macierzy, powiedzmy , gdzie jest dolnym trójkątem. Następnie gdzie jest po prostu iloczynem przekątnych wejść dolnej trójkątnej matrycy ponieważ wartości własne macierzy trójkątnej leżą wzdłuż jej przekątnej. L det ( A ) = det ( L ) det ( L H ) = | det ( L ) | 2 , det ( L ) L.
W przypadku ogólnej macierzy niepodzielnej należy zastosować obrotowy układ LU, powiedzmy , gdzie jest macierzą permutacji, tak aby Ponieważ jest macierzą permutacji, , a ze względu na konstrukcję L będzie zazwyczaj mieć przekątną wszystkich, co implikuje, że det ( L ) = 1 . W ten sposób można obliczyć det ( A ) jako ± det ( U )P det ( A ) = det ( P - 1 ) ⋅ det ( L ) ⋅ det ( U ) . P det ( P ) = ± 1
Nie wchodząc (ponownie) w pytanie, dlaczego i jak determinanty są złe, załóżmy, że twój operator albo nie jest łatwo podzielny na czynniki, albo po prostu w ogóle nie jest dostępny jako matryca i że naprawdę musisz oszacować jego determinantę.
Prawdopodobnie możesz dokonać inżynierii wstecznej, w jaki sposób powstaje to oszacowanie wyznacznika w standardowej implementacji CG, postępując zgodnie z rozdziałem 6.7.3 książki.