Jak obliczyć moc macierzy kwadratowych?

16

Załóżmy, że otrzymujemy macierz i pozwólmy . Jak szybko możemy obliczyć moc A ^ m tej macierzy? m N 0 A mZARN.×N.mN.0ZAm

Kolejną najlepszą rzeczą w porównaniu do obliczania produktów jest zastosowanie szybkiego potęgowania, które wymaga produktów macierzy \ mathcal O (\ log m) .O ( log m )mO(logm)

W przypadku matryc diagonalizowanych można zastosować rozkład wartości własnej. Jego naturalne uogólnienie, rozkład Jordana, jest niestabilny w wyniku perturbacji i dlatego się nie liczy (afaik).

Czy można przyspieszyć potęgowanie macierzy w ogólnym przypadku?

Szybkie potęgowanie sugeruje, że przydatna jest również odmiana tego pytania:

Czy kwadrat ogólnej macierzy ZA można obliczyć szybciej niż przy użyciu znanych algorytmów mnożenia macierzy?

shuhalo
źródło
Jeśli zależy ci na stabilności w zaburzeniach, szybkie potęgowanie również nie wydaje się bezpieczne.
MCH
Cóż, zakładam, że jest nie mniej bezpieczny niż wielokrotne mnożenie, które jest tak samo bezpieczne jak potęgowanie skalarne, prawda?
shuhalo,

Odpowiedzi:

20

Jak zauważasz, obliczanie może być wykonane w razy liczba operacji mnożenia macierzy na macierzach. Odpowiedź na twoje drugie pytanie brzmi: nie, przynajmniej dla asymptotycznej złożoności - kwadrat macierzy i mnożenie macierzy mają równoważny czas / złożoność arytmetyczną (aż do stałych czynników). Zmniejszenie kwadratu do mnożenia macierzy jest oczywiste. Aby ograniczyć namnażanie się kwadratury, załóżmy, że chcemy obliczyć iloczyn i . Utwórz macierz ze strukturą bloku: O ( log m ) N × N A B 2 n × 2 n CZAmO(logm)N.×N.ZAb2)n×2)ndo

[0  ZA]

[b  0]

Oznacza to, że ma macierz wszystkich zer w swojej górnej lewej ćwiartce i prawej dolnej ćwiartce. Zauważ, że zawiera w lewym górnym kwadrancie.n × n C 2 A Bdon×ndo2)ZAb

Ryan Williams
źródło
Niedawno zadałem pytanie na cs.SE dotyczące złożoności obliczania w szczególnym przypadku, gdy m = . Łatwo jest podać górną granicę , ale najlepszą dolną granicę, jaką mogę podać, to . Czy masz jakieś uwagi na temat tego problemu? Myślę, że wiele interesujących problemów ogranicza się do tego szczególnego przypadku. ZAmO(n)O(M.(n)log(n))Ω(M.(n))
Shitikanth