2015-03-19 11 views
6

Użyłem metody Jacobiego do znalezienia wszystkich wartości własnych i wektorów własnych w kodzie c. Chociaż złożoność metody Jacobiego to O (n^3), ale wymiar mojej matrycy jest ogromny (17814 X 17814). To zajmuje dużo czasu. Chcę poznać lepszy algorytm, dzięki któremu mogę rozwiązać ten problem. Jeśli chcesz, mogę dołączyć mój kod c.Jak znaleźć lepszy algorytm obliczania wartości własnej i wektora własnego bardzo dużej macierzy

+1

To pytanie zostało już przesłuchane (http://mathoverflow.net/questions/62904/complexity-of-eigenvalue-decomposition) –

+1

Algorytm Coppersmitha i Winograda może rozwiązać problem w O (n^2,376) –

Odpowiedz

2

Algorytm sugerowany w komentarzach niekoniecznie jest najlepszy.
Jak widać here, metoda Jacobiego może być znacznie szybsza przy użyciu specjalnych technik.
Co więcej, Jacobi jest dość łatwy do uruchomienia równolegle i jest znacznie szybszy w przypadku macierzy rzadkich niż w przypadku gęstych macierzy, więc można również z tego skorzystać, w zależności od architektury i typu macierzy.

Powiedziałbym, że najlepiej jest przetestować kilka różnych metod i zobaczyć w praktyce, gdzie można uzyskać najlepsze wyniki.
O(n^2.376) niekoniecznie jest lepszy niż O(n^3) w zależności od stałych.

Powiązane problemy