Mnożenie macierzy - Matrix multiplication
W matematyce , szczególnie w algebrze liniowej , mnożenie macierzy jest operacją binarną, która tworzy macierz z dwóch macierzy. W przypadku mnożenia macierzy liczba kolumn w pierwszej macierzy musi być równa liczbie wierszy w drugiej macierzy. Otrzymana macierz, znana jako iloczyn macierzy , ma liczbę wierszy pierwszej i liczbę kolumn drugiej macierzy. Iloczyn macierzy A i B oznaczamy jako AB .
Mnożenie macierzy został po raz pierwszy opisany przez francuskiego matematyka Jacques Philippe Marie Binet w 1812 roku, do reprezentowania kompozycję z map liniowych , które są reprezentowane przez macierze. Mnożenie macierzy jest zatem podstawowym narzędziem algebry liniowej i jako takie ma liczne zastosowania w wielu dziedzinach matematyki, a także w matematyce stosowanej , statystyce , fizyce , ekonomii i inżynierii . Obliczanie produktów macierzy jest centralną operacją we wszystkich zastosowaniach obliczeniowych algebry liniowej.
Notacja
W tym artykule zostaną zastosowane następujące konwencje notacji: macierze są reprezentowane dużymi literami pogrubionymi, np. A ; wektory pogrubione małymi literami, np. a ; a wpisy wektorów i macierzy są kursywą (ponieważ są to liczby z pola), np. A i a . Notacja indeksowa jest często najjaśniejszym sposobem wyrażania definicji i jest stosowana jako standard w literaturze. , J wejście macierzy A jest wskazany przez ( A ), ij , A ij lub w ij , natomiast podpisem cyfrowym (nie wpisy matrycy) na zbiór macierzy jest indeksowana tylko, na przykład A 1 , A 2 , itd.
Definicja
Jeśli A jest macierzą m × n , a B jest macierzą n × p ,
produkt macierzy C = AB (oznaczonej rozmnażania bez oznaczeń lub punkty) jest określona jako m x p macierz
takie, że
dla i = 1, ..., m oraz j = 1, ..., p .
Oznacza to, że wpis produktu uzyskuje się przez pomnożenie wyraz po wyrazie wpisów i- tego wiersza A i j- tej kolumny B i zsumowanie tych n produktów. Innymi słowy, jest iloczyn skalarny tego ı -tego rzędu A i j tej kolumny B .
Dlatego AB można również zapisać jako
Zatem iloczyn AB jest zdefiniowany wtedy i tylko wtedy, gdy liczba kolumn w A jest równa liczbie wierszy w B , w tym przypadku n .
W większości scenariuszy wpisy są liczbami, ale mogą to być dowolne obiekty matematyczne, dla których zdefiniowano dodawanie i mnożenie, są asocjacyjne i takie, że dodawanie jest przemienne , a mnożenie jest rozdzielne względem dodawania . W szczególności wpisy mogą być same macierzami (patrz macierz blokowa ).
Ilustracja
Rysunek po prawej ilustruje schematycznie iloczyn dwóch macierzy A i B , pokazując, jak każde przecięcie w macierzy iloczynu odpowiada rzędowi A i kolumnie B .
Wartości na skrzyżowaniach oznaczonych kółkami to:
Podstawowe zastosowania
W przeszłości mnożenie macierzy zostało wprowadzone w celu ułatwienia i wyjaśnienia obliczeń w algebrze liniowej . Ten silny związek między mnożeniem macierzy a algebrą liniową pozostaje fundamentalny w całej matematyce, a także w fizyce , chemii , inżynierii i informatyce .
Mapy liniowe
Jeśli przestrzeń wektorowa ma skończoną bazę , każdy z jej wektorów jest jednoznacznie reprezentowany przez skończony ciąg skalarów, zwany wektorem współrzędnych , którego elementami są współrzędne wektora na podstawie. Te wektory współrzędnych tworzą inną przestrzeń wektorową, która jest izomorficzna z oryginalną przestrzenią wektorową. Wektor współrzędnych jest zwykle zorganizowany jako macierz kolumnowa (zwana również wektorem kolumnowym ), która jest macierzą z tylko jedną kolumną. Tak więc wektor kolumnowy reprezentuje zarówno wektor współrzędnych, jak i wektor oryginalnej przestrzeni wektorowej.
Odwzorowanie liniowe A z przestrzeni wektorowej o wymiarze n na przestrzeń wektorową o wymiarze m odwzorowuje wektor kolumnowy
na wektor kolumnowy
Mapa liniowa A jest zatem zdefiniowana przez macierz
i odwzorowuje wektor kolumnowy na iloczyn macierzy
Jeśli B jest innym odwzorowaniem liniowym z poprzedzającej przestrzeni wektorowej wymiaru m , do przestrzeni wektorowej wymiaru p , jest reprezentowane przez macierz Proste obliczenie pokazuje , że macierz odwzorowania złożonego jest iloczynem macierzy Ogólny wzór ) , który definiuje skład funkcji jest tu przedstawiony jako szczególny przypadek asocjatywności iloczynu macierzy (patrz § Asocjatywność poniżej):
Układ równań liniowych
Ogólna postać układu równań liniowych to
Używając tego samego zapisu jak powyżej, taki układ jest równoważny z równaniem jednomacierzowym
Iloczyn skalarny, forma dwuliniowa i iloczyn wewnętrzny
Iloczyn skalarny dwóch wektorów kolumnowych jest iloczynem macierzy
gdzie jest wektorem wierszowym uzyskanym przez transpozycję, a uzyskana macierz 1×1 jest identyfikowana za pomocą swojego unikalnego wpisu.
Mówiąc bardziej ogólnie, każda forma dwuliniowa w przestrzeni wektorowej o skończonych wymiarach może być wyrażona jako iloczyn macierzowy
a każdy produkt wewnętrzny może być wyrażony jako
gdzie oznacza sprzężoną transpozycję z (sprzężoną transpozycję lub równoważnie transpozycji koniugatu).
Właściwości ogólne
Mnożenie macierzy dzieli niektóre właściwości ze zwykłym mnożeniem . Jednak mnożenie macierzy nie jest zdefiniowane, jeśli liczba kolumn pierwszego czynnika różni się od liczby wierszy drugiego czynnika i jest nieprzemienne , nawet jeśli iloczyn pozostaje określony po zmianie kolejności czynników.
Nieprzemienność
Operacja jest przemienna, jeśli przy danych dwóch elementach A i B takich, że iloczyn jest zdefiniowany, to również jest zdefiniowany, a
Jeżeli A i B są macierzami o odpowiednich rozmiarach i , to jest definiowane jeżeli , a jest definiowane jeżeli . Dlatego jeśli jeden z produktów jest zdefiniowany, drugi nie jest zdefiniowany w ogóle. Jeśli , dwa produkty są zdefiniowane, ale mają różne rozmiary; dlatego nie mogą być równe. Tylko jeśli , to znaczy, jeśli A i B są macierzami kwadratowymi o tym samym rozmiarze, oba produkty są zdefiniowane i mają ten sam rozmiar. Nawet w tym przypadku generalnie trzeba
Na przykład
ale
Ten przykład można rozszerzyć, aby pokazać, że jeśli A jest macierzą z wpisami w polu F , to dla każdej macierzy B z wpisami w F , wtedy i tylko wtedy , gdy gdzie , a I jest macierzą jednostkową . Jeżeli zamiast pola wpisy mają należeć do ringu , to należy dodać warunek, że c należy do środka ringu.
Jednym szczególnym przypadkiem, w którym występuje przemienność, jest sytuacja, w której D i E są dwiema (kwadratowymi) macierzami diagonalnymi (tego samego rozmiaru); następnie DE = ED . Ponownie, jeśli macierze znajdują się nad ogólnym pierścieniem, a nie polem, odpowiednie wpisy w każdej z nich muszą również komunikować się ze sobą, aby to się utrzymało.
Dystrybucja
Iloczyn matrycy jest rozdzielczy pod względem dodawania matrycy . Oznacza to, że jeśli A , B , C , D są macierzami o odpowiednich rozmiarach m × n , n × p , n × p i p × q , to należy mieć (lewy rozkład)
i (właściwa dystrybucja)
Wynika to z rozdzielności dla współczynników przez
Produkt ze skalarem
Jeśli A jest macierzą, a c skalarem, to macierze i są otrzymywane przez pomnożenie wszystkich wpisów A przez c . Jeśli skalary mają własność przemienności , to
Jeśli iloczyn jest zdefiniowany (czyli liczba kolumn A jest równa liczbie rzędów B ), to
- oraz
Jeśli skalary mają własność przemienności, to wszystkie cztery macierze są równe. Mówiąc bardziej ogólnie, wszystkie cztery, jeśli są równe C należy do środka z pierścieniem zawierającym dane z macierzy, ponieważ w tym przypadku, c X = X C dla wszystkich macierzy X .
Właściwości te wynikają z dwuliniowości iloczynu skalarów:
Transponować
Jeśli skalary mają przemienność , to transpozycja iloczynu macierzy jest iloczynem, w odwrotnej kolejności, transpozycji czynników. To jest
gdzie T oznacza transpozycję, czyli wymianę wierszy i kolumn.
Ta identyczność nie obowiązuje dla nieprzemiennych wpisów, ponieważ kolejność między wpisami A i B jest odwrócona, gdy rozszerza się definicję iloczynu macierzy.
Złożony koniugat
Jeśli A i B mają wpisy złożone , to
gdzie * oznacza złożoną koniugat macierzy.
Wynika to z zastosowania do definicji iloczynu macierzowego faktu, że koniugat sumy jest sumą koniugatów sum, a koniugat produktu jest iloczynem koniugatów tych czynników.
Transpozycja działa na indeksy pozycji, podczas gdy koniugacja działa niezależnie na same pozycje. Wynika z tego, że jeśli A i B mają złożone wpisy, trzeba:
gdzie † oznacza koniugat transponowany (koniugat transpozycji lub równoważnie transponowany koniugatu).
Łączność
Mając trzy macierze A , B i C , iloczyny ( AB ) C i A ( BC ) są zdefiniowane wtedy i tylko wtedy , gdy liczba kolumn A jest równa liczbie rzędów B , a liczba kolumn B jest równa liczbie wierszy C (w szczególności, jeśli jeden z produktów jest zdefiniowany, to drugi jest również zdefiniowany). W tym przypadku mamy własność asocjacyjną
Jeśli chodzi o każdą operację asocjacyjną, pozwala to na pominięcie nawiasów i zapisanie powyższych produktów jako
Rozciąga się to naturalnie na iloczyn dowolnej liczby matryc, pod warunkiem, że wymiary się zgadzają. To znaczy, jeśli A 1 , A 2 , ..., A n są macierzami takimi, że liczba kolumn A i jest równa liczbie wierszy A i + 1 dla i = 1, ..., n – 1 , następnie produkt
jest zdefiniowana i nie zależy od kolejności mnożenia , jeśli kolejność macierzy jest stała.
Te właściwości można udowodnić za pomocą prostych, ale skomplikowanych operacji sumowania . Wynik ten wynika również z faktu, że macierze reprezentują odwzorowania liniowe . Dlatego też asocjacyjna własność macierzy jest po prostu szczególnym przypadkiem asocjacyjnej własności składania funkcji .
Złożoność nie jest asocjacyjna
Chociaż wynik sekwencji iloczynów macierzy nie zależy od kolejności operacji (pod warunkiem, że kolejność macierzy nie zostanie zmieniona), złożoność obliczeniowa może dramatycznie zależeć od tej kolejności.
Na przykład, jeśli A , B i C są macierzami o odpowiednich rozmiarach 10×30, 30×5, 5×60 , obliczenie ( AB ) C wymaga 10×30×5 + 10×5×60 = 4500 mnożenia, natomiast obliczenie A ( BC ) wymaga 30×5×60 + 10×30×60 = 27 000 mnożenia.
Algorytmy zostały zaprojektowane w celu wyboru najlepszej kolejności produktów, patrz Mnożenie łańcucha macierzy . Gdy liczba n macierzy wzrasta, wykazano, że wybór najlepszego rzędu ma złożoność
Zastosowanie do podobieństwa
Każda macierz odwracalna definiuje transformację podobieństwa (na macierzach kwadratowych o tym samym rozmiarze co )
Transformacje podobieństwa mapują produkt na produkty, czyli
W rzeczywistości trzeba
Macierze kwadratowe
Oznaczmy zbiór n × n macierzy kwadratowych z wpisami w pierścieniu R , który w praktyce jest często ciałem .
W , iloczyn jest definiowany dla każdej pary macierzy. Tworzy to pierścień , który ma macierz jednostkową I jako element tożsamościowy (macierz, której wpisy przekątne są równe 1, a wszystkie inne wpisy są równe 0). Ten pierścień jest również asocjacyjną R- algebrą .
Jeśli n > 1 , wiele macierzy nie posiada odwrotności multiplikatywnej . Na przykład macierz, w której wszystkie wpisy wiersza (lub kolumny) mają wartość 0, nie ma odwrotności. Jeśli istnieje, odwrotność macierzy A oznaczamy A −1 , a zatem weryfikuje
Macierz, która ma odwrotność, jest macierzą odwracalną . W przeciwnym razie jest to pojedyncza macierz .
Iloczyn macierzy jest odwracalny wtedy i tylko wtedy, gdy każdy czynnik jest odwracalny. W tym przypadku trzeba
Gdy R jest przemienne , aw szczególności, gdy jest polem, wyznacznikiem iloczynu jest iloczyn wyznaczników. Ponieważ wyznacznikami są skalary, a skalary przechodzą, mamy zatem:
Inne niezmienniki macierzy nie zachowują się tak dobrze z produktami. Niemniej jednak, jeśli R jest przemienne, AB i BA mają ten sam ślad , ten sam wielomian charakterystyczny i te same wartości własne z tymi samymi krotnościami. Jednak wektory własne są ogólnie różne, jeśli AB ≠ BA .
Potęgi macierzy
Macierz kwadratową można podnieść do dowolnej nieujemnej potęgi całkowitej, mnożąc ją wielokrotnie przez siebie w taki sam sposób, jak w przypadku zwykłych liczb. To jest,
Obliczenie k- tej potęgi macierzy wymaga k – 1- krotności czasu pojedynczego mnożenia macierzy, jeśli odbywa się to algorytmem trywialnym (mnożenie wielokrotne). Jak to może być bardzo czasochłonne, jeden generalnie preferuje stosując algorytm szybkiego potęgowania , która wymaga mniej niż 2 log 2 k mnożenie macierzy, a więc jest znacznie bardziej wydajne.
Łatwym przypadkiem potęgowania jest macierz diagonalna . Ponieważ iloczyn macierzy diagonalnych sprowadza się do prostego pomnożenia przez siebie odpowiednich elementów diagonalnych, k- tą potęgę macierzy diagonalnej uzyskuje się przez podniesienie wpisów do potęgi k :
Algebra abstrakcyjna
Definicja iloczynu macierzowego wymaga, aby wpisy należały do semiringu i nie wymaga, aby mnożenie elementów semiringu było przemienne . W wielu zastosowaniach elementy macierzy należą do dziedziny, chociaż tropikalny półpierścień jest również powszechnym wyborem w przypadku problemów z najkrótszą ścieżką grafu . Nawet w przypadku macierzy nad polami iloczyn w ogólności nie jest przemienny, chociaż jest asocjacyjny i dystrybucyjny względem dodawania macierzy . W macierzy tożsamości (które są macierze kwadratowe , których prace są równe zero na zewnątrz głównego przekątnej i 1 na głównej przekątna) są elementy identyfikacyjne produktu matrycy. Wynika z tego, że macierze n × n nad pierścieniem tworzą pierścień, który jest nieprzemienny, chyba że n = 1, a pierścień uziemienia jest przemienny.
Macierz kwadratowa może mieć odwrotność multiplikatywną , zwaną macierzą odwrotną . W powszechnym przypadku, gdy wpisy należą do pierścienia przemiennego r , macierz ma odwrotność wtedy i tylko wtedy, gdy jej wyznacznik ma odwrotność multiplikatywną w r . Wyznacznik iloczynu macierzy kwadratowych jest iloczynem wyznaczników czynników. N x n macierzy, które mają odwrotny, tworzą grupę względem mnożenia macierzy tej podgrupy , które są nazywane grupami matrycy . Wiele grup klasycznych (w tym wszystkie grupy skończone ) jest izomorficznych z grupami macierzowymi; to jest punkt wyjścia teorii reprezentacji grupowych .
Złożoność obliczeniowa
Mnożenie macierzy algorytm , który wynika z definicji wymaga w najgorszym przypadku , mnożenia i dodatki skalarów obliczyć iloczyn dwóch kwadratowych n x n macierzy. Jego złożoność obliczeniowa jest zatem , w modelu obliczeń, dla którego operacje skalarne trwają stały czas (w praktyce dotyczy to liczb zmiennoprzecinkowych , ale nie liczb całkowitych).
Co zaskakujące, ta złożoność nie jest optymalna, jak wykazał w 1969 roku Volker Strassen , który dostarczył algorytm, obecnie nazywany algorytmem Strassena , ze złożonością algorytmu Strassena, który można zrównoleglać w celu dalszej poprawy wydajności. Od grudnia 2020 r. najlepszy algorytm mnożenia macierzy został opracowany przez Josha Almana i Virginię Vassilevska Williams i ma złożoność O ( n 2.3728596 ) . Nie wiadomo, czy mnożenie macierzy można wykonać w czasie O ( n 2 + o(1) ) . Byłoby to optymalne, ponieważ trzeba odczytać elementy macierzy, aby pomnożyć ją przez inną macierz.
Ponieważ mnożenie macierzy stanowi podstawę wielu algorytmów, a wiele operacji na macierzach ma nawet taką samą złożoność, jak mnożenie macierzy (aż do stałej mnożenia), złożoność obliczeniowa mnożenia macierzy pojawia się w numerycznej algebrze liniowej i informatyce teoretycznej .
Uogólnienia
Inne rodzaje produktów matryc to:
- Mnożenie macierzy bloków
- Produkt krakowski , zdefiniowany jako A ∧ B = B T A
- Iloczyn skalarny Frobeniusa , iloczyn skalarny macierzy traktowanych jako wektory lub równoważnie suma pozycji iloczynu Hadamarda
- Iloczyn Hadamarda dwóch macierzy o tej samej wielkości, co skutkuje macierzą o tej samej wielkości, która jest produktem wejścia po wejściu
- Iloczyn Kroneckera lub iloczyn tensorowy , uogólnienie na dowolny rozmiar poprzedniego
- Produkt Khatri-Rao i produkt do dzielenia twarzy
- Produkt zewnętrzny , zwany także produkt dwójkowym lub tensorowy produkt dwóch kolumn macierzy, co jest
- Mnożenie przez skalar
Zobacz też
- Rachunek macierzowy , do interakcji mnożenia macierzy z operacjami z rachunku różniczkowego
Uwagi
Bibliografia
- Henry Cohn, Robert Kleinberg , Balázs Szegedy i Chris Umans. Algorytmy teorii grup dla mnożenia macierzy. arXiv : math.GR/0511460 . Materiały z 46th Annual Symposium on Foundations of Computer Science , 23-25 października 2005, Pittsburgh, PA, IEEE Computer Society, s. 379-388.
- Henry Cohn, Chris Umans. Teoretyczne podejście do szybkiego mnożenia macierzy. arXiv : math.GR/0307321 . Materiały z 44th Annual IEEE Symposium on Foundations of Computer Science , 11-14 października 2003, Cambridge, MA, IEEE Computer Society, s. 438-449.
- Kowal, D.; Winograd, S. (1990). „Mnożenie macierzy przez progresje arytmetyczne” . J. Obliczenia symboliczne . 9 (3): 251-280. doi : 10.1016/s0747-7171(08)80013-2 .
- Róg, Roger A.; Johnson, Charles R. (1991), Tematy w analizie macierzy , Cambridge University Press , ISBN 978-0-521-46713-1
- Knuth, DE , Sztuka programowania komputerowego Tom 2: Algorytmy półnumeryczne . Addison-Wesley Zawodowiec; Wydanie III (14 listopada 1997). ISBN 978-0-201-89684-8 . s. 501.
- Prasa, William H.; Flannery, Brian P.; Teukolsky, Saul A. ; Vetterling, William T. (2007), Przepisy numeryczne: The Art of Scientific Computing (3rd ed.), Cambridge University Press , ISBN 978-0-521-88068-8.
- Pobiegł Razem . O złożoności produktu matrycowego. W Proceedings z trzydziestego czwartego dorocznego sympozjum ACM na temat teorii informatyki. ACM Press, 2002. doi : 10.1145/509907.509932 .
- Robinson, Sara, W kierunku optymalnego algorytmu mnożenia macierzy, SIAM News 38(9), listopad 2005. PDF
- Strassen, Volker, Gaussian Elimination is not Optimal , Number. Matematyka. 13, s. 354-356, 1969.
- Styan, George PH (1973), "Hadamard Products and Multivariate Statistical Analysis" (PDF) , Algebra liniowa i jej zastosowania , 6 : 217-240, doi : 10.1016/0024-3795 (73) 90023-2
- Williams, Wirginia Wasilewska (19.05.2012). „Mnożenie macierzy szybciej niż kotlarz-winograd” . Materiały z 44 Sympozjum Teorii Informatyki - STOC '12 . ACM. s. 887-898. CiteSeerX 10.1.1.297.2680 . doi : 10.1145/2213977.2214056 . Numer ISBN 9781450312455. S2CID 14350287 .