Mnożenie macierzy

Wikipedia:Weryfikowalność
Ten artykuł od 2021-02 wymaga zweryfikowania podanych informacji.
Należy podać wiarygodne źródła w formie przypisów bibliograficznych.
Część lub nawet wszystkie informacje w artykule mogą być nieprawdziwe. Jako pozbawione źródeł mogą zostać zakwestionowane i usunięte.
Sprawdź w źródłach: Encyklopedia PWN • Google Books • Google Scholar • Federacja Bibliotek Cyfrowych • BazHum • BazTech • RCIN • Internet Archive (texts / inlibrary)
Dokładniejsze informacje o tym, co należy poprawić, być może znajdują się w dyskusji tego artykułu.
Po wyeliminowaniu niedoskonałości należy usunąć szablon {{Dopracować}} z tego artykułu.

Mnożenie macierzy – operacja mnożenia macierzy przez skalar lub inną macierz. Artykuł zawiera opis różnorodnych sposobów przeprowadzania ich mnożenia.

Standardowe mnożenie macierzy

Jest to najczęstszy sposób mnożenia macierzy, nazywany też mnożeniem Cauchy’ego. Działanie to zdefiniowane jest wyłącznie dla macierzy, z których pierwsza ma tyle kolumn, co druga wierszy. Jeżeli A {\displaystyle A} jest macierzą n × m , {\displaystyle n\times m,} a B {\displaystyle B} macierzą typu m × p , {\displaystyle m\times p,} to ich iloczyn, oznaczany A B , {\displaystyle AB,} czasem też A B , {\displaystyle A\cdot B,} jest macierzą o wymiarach n × p . {\displaystyle n\times p.} Jeżeli C = A B , {\displaystyle C=AB,} a c i , j {\displaystyle c_{i,j}} oznacza element C {\displaystyle C} na pozycji ( i , j ) , {\displaystyle (i,j),} to

c i , j = r = 1 m a i , r b r , j = a i , 1 b 1 , j + a i , 2 b 2 , j + + a i , m b m , j {\displaystyle c_{i,j}=\sum _{r=1}^{m}a_{i,r}b_{r,j}=a_{i,1}b_{1,j}+a_{i,2}b_{2,j}+\ldots +a_{i,m}b_{m,j}}

dla każdej pary i , j {\displaystyle i,j} dla której 1 i n {\displaystyle 1\leqslant i\leqslant n} oraz 1 j p . {\displaystyle 1\leqslant j\leqslant p.}

Obliczanie z definicji

Poniżej zilustrowany został sposób obliczania elementów c 12 {\displaystyle \color {Red}c_{12}} oraz c 33 {\displaystyle \color {Blue}c_{33}} macierzy wynikowej C 4 × 3 , {\displaystyle C_{4\times 3},} będącej iloczynem macierzy A 4 × 2 {\displaystyle A_{4\times 2}} i B 2 × 3 . {\displaystyle B_{2\times 3}.}

Przykładowo, element c 12 {\displaystyle \color {Red}c_{12}} powstaje z sumy iloczynów odpowiadających sobie elementów z pierwszego wiersza macierzy A {\displaystyle A} i drugiej kolumny macierzy B {\displaystyle B} (elementy macierzy składowych bierzemy zgodnie z kierunkiem strzałek). Innymi słowy, aby wyznaczyć element c 12 , {\displaystyle \color {Red}c_{12},} musimy wymnożyć pierwszy element z pierwszego wiersza macierzy A {\displaystyle A} przez pierwszy element z drugiej kolumny macierzy B , {\displaystyle B,} i do tego dodać iloczyn drugiego elementu z pierwszego wiersza macierzy A {\displaystyle A} i drugiego elementu z drugiej kolumny macierzy B . {\displaystyle B.} Opisane obliczenia poniżej:

c 12 = a 11 b 12 + a 12 b 22 . {\displaystyle \color {Red}c_{12}\color {Black}=a_{11}\cdot b_{12}+a_{12}\cdot b_{22}.}

Każdy element iloczynu macierzy jest iloczynem skalarnym odpowiedniego wiersza pierwszej macierzy i odpowiedniej kolumny drugiej macierzy

c i j = a i b j , {\displaystyle c_{ij}=a_{i}\cdot b_{j}^{\top },}

gdzie b j {\displaystyle b_{j}^{\top }} oznacza transpozycję macierzy b.

Podobnie postępujemy z wyróżnionym na niebiesko elementem macierzy C {\displaystyle C} z trzeciego wiersza i trzeciej kolumny:

c 33 = a 31 b 13 + a 32 b 23 . {\displaystyle \color {Blue}c_{33}\color {Black}=a_{31}\cdot b_{13}+a_{32}\cdot b_{23}.}

Przykładowo:

[ 1 0 2 1 3 1 ] [ 3 1 2 1 1 0 ] = [ ( 1 3 + 0 2 + 2 1 ) ( 1 1 + 0 1 + 2 0 ) ( 1 3 + 3 2 + 1 1 ) ( 1 1 + 3 1 + 1 0 ) ] = [ 5 1 4 2 ] . {\displaystyle {\begin{bmatrix}1&0&2\\-1&3&1\end{bmatrix}}\cdot {\begin{bmatrix}3&1\\2&1\\1&0\end{bmatrix}}={\begin{bmatrix}(1\cdot 3+0\cdot 2+2\cdot 1)&(1\cdot 1+0\cdot 1+2\cdot 0)\\(-1\cdot 3+3\cdot 2+1\cdot 1)&(-1\cdot 1+3\cdot 1+1\cdot 0)\end{bmatrix}}={\begin{bmatrix}5&1\\4&2\end{bmatrix}}.}

Metoda współczynniki-wektory

To mnożenie macierzy może być rozważane z nieco innego punktu widzenia: sumuje ono wektory po przemnożeniu ich uprzednio przez różne współczynniki. Jeżeli

A = [ a 1 , 1 a 1 , 2 a 2 , 1 a 2 , 2 ] {\displaystyle A={\begin{bmatrix}a_{1,1}&a_{1,2}&\ldots \\a_{2,1}&a_{2,2}&\ldots \\\vdots &\vdots &\ddots \end{bmatrix}}}   oraz   B = [ b 1 , 1 b 1 , 2 b 2 , 1 b 2 , 2 ] = [ B 1 B 2 ] , {\displaystyle B={\begin{bmatrix}b_{1,1}&b_{1,2}&\ldots \\b_{2,1}&b_{2,2}&\ldots \\\vdots &\vdots &\ddots \end{bmatrix}}={\begin{bmatrix}B_{1}\\B_{2}\\\vdots \end{bmatrix}},}

to

A B = [ a 1 , 1 B 1 + a 1 , 2 B 2 + a 2 , 1 B 1 + a 2 , 2 B 2 + ] . {\displaystyle AB={\begin{bmatrix}a_{1,1}B_{1}+a_{1,2}B_{2}+\ldots \\\\a_{2,1}B_{1}+a_{2,2}B_{2}+\ldots \\\vdots \end{bmatrix}}.}

Dla powyższych danych jest:

[ 1 0 2 1 3 1 ] [ 3 1 2 1 1 0 ] = [ 1 [ 3 1 ] + 0 [ 2 1 ] + 2 [ 1 0 ] 1 [ 3 1 ] + 3 [ 2 1 ] + 1 [ 1 0 ] ] = [ [ 3 1 ] + [ 0 0 ] + [ 2 0 ] [ 3 1 ] + [ 6 3 ] + [ 1 0 ] ] {\displaystyle {\begin{bmatrix}1&0&2\\-1&3&1\end{bmatrix}}\cdot {\begin{bmatrix}3&1\\2&1\\1&0\end{bmatrix}}={\begin{bmatrix}1{\begin{bmatrix}3&1\end{bmatrix}}+0{\begin{bmatrix}2&1\end{bmatrix}}+2{\begin{bmatrix}1&0\end{bmatrix}}\\-1{\begin{bmatrix}3&1\end{bmatrix}}+3{\begin{bmatrix}2&1\end{bmatrix}}+1{\begin{bmatrix}1&0\end{bmatrix}}\end{bmatrix}}={\begin{bmatrix}{\begin{bmatrix}3&1\end{bmatrix}}+{\begin{bmatrix}0&0\end{bmatrix}}+{\begin{bmatrix}2&0\end{bmatrix}}\\{\begin{bmatrix}-3&-1\end{bmatrix}}+{\begin{bmatrix}6&3\end{bmatrix}}+{\begin{bmatrix}1&0\end{bmatrix}}\end{bmatrix}}}
= [ 5 1 4 2 ] . {\displaystyle ={\begin{bmatrix}5&1\\4&2\end{bmatrix}}.}

Wiersze macierzy po lewej są listą współczynników. Macierz po prawej jest listą wektorów. W przykładzie pierwszy wiersz to [ 1 0 2 ] , {\displaystyle {\begin{bmatrix}1&0&2\end{bmatrix}},} czyli bierzemy 1 raz pierwszy wektor, 0 razy drugi wektor i 2 razy trzeci wektor. Równanie można jeszcze uprościć za pomocą iloczynu zewnętrznego:

A = [ A 1 A 2 ] A B = i A i B i . {\displaystyle A={\begin{bmatrix}A_{1}&A_{2}&\ldots \end{bmatrix}}\implies AB=\sum _{i}A_{i}B_{i}.}

Elementy tej sumy są macierzami tego samego kształtu, z których każda opisuje działanie jednej kolumny z A {\displaystyle A} i jednego wiersza z B {\displaystyle B} na wynik. Kolumny A {\displaystyle A} mogą być postrzegane jako układ współrzędnych przekształcenia, np. dla danego wektora x {\displaystyle x} jest A x = A 1 x 1 + A 2 x 2 + , {\displaystyle Ax=A_{1}x_{1}+A_{2}x_{2}+\dots ,} gdzie x i {\displaystyle x_{i}} są współrzędnymi wzdłuż „osi” A i . {\displaystyle A_{i}.} Wyrazy A i B i {\displaystyle A_{i}B_{i}} są analogiczne do A i x i {\displaystyle A_{i}x_{i}} z tym, że B i {\displaystyle B_{i}} zawiera i-tą współrzędną każdego wektora kolumnowego macierzy B , {\displaystyle B,} z której każda jest równocześnie przekształcana niezależnie od pozostałych.

Raz jeszcze stosując dane przykładowe, mamy:

[ 1 0 2 1 3 1 ] [ 3 1 2 1 1 0 ] = [ 1 1 ] [ 3 1 ] + [ 0 3 ] [ 2 1 ] + [ 2 1 ] [ 1 0 ] {\displaystyle {\begin{bmatrix}1&0&2\\-1&3&1\end{bmatrix}}\cdot {\begin{bmatrix}3&1\\2&1\\1&0\end{bmatrix}}={\begin{bmatrix}1\\-1\end{bmatrix}}{\begin{bmatrix}3&1\end{bmatrix}}+{\begin{bmatrix}0\\3\end{bmatrix}}{\begin{bmatrix}2&1\end{bmatrix}}+{\begin{bmatrix}2\\1\end{bmatrix}}{\begin{bmatrix}1&0\end{bmatrix}}}
= [ 1 3 1 1 1 3 1 1 ] + [ 0 2 0 1 3 2 3 1 ] + [ 2 1 2 0 1 1 1 0 ] = [ 5 1 4 2 ] . {\displaystyle ={\begin{bmatrix}1\cdot 3&1\cdot 1\\-1\cdot 3&-1\cdot 1\end{bmatrix}}+{\begin{bmatrix}0\cdot 2&0\cdot 1\\3\cdot 2&3\cdot 1\end{bmatrix}}+{\begin{bmatrix}2\cdot 1&2\cdot 0\\1\cdot 1&1\cdot 0\end{bmatrix}}={\begin{bmatrix}5&1\\4&2\end{bmatrix}}.}

Wektory [ 3 2 1 ] {\displaystyle {\begin{bmatrix}3&2&1\end{bmatrix}}^{\top }} oraz [ 1 1 0 ] {\displaystyle {\begin{bmatrix}1&1&0\end{bmatrix}}^{\top }} zostały równocześnie przekształcone na [ 5 4 ] {\displaystyle {\begin{bmatrix}5&4\end{bmatrix}}^{\top }} oraz [ 1 2 ] . {\displaystyle {\begin{bmatrix}1&2\end{bmatrix}}^{\top }.} Można je również przekształcić po kolei, czyniąc te same kroki:

[ 1 0 2 1 3 1 ] [ 3 2 1 ] = [ 1 1 ] 3 + [ 0 3 ] 2 + [ 2 1 ] 1 = [ 1 3 1 3 ] + [ 0 2 3 2 ] + [ 2 1 1 1 ] = [ 5 4 ] . {\displaystyle {\begin{bmatrix}1&0&2\\-1&3&1\end{bmatrix}}\cdot {\begin{bmatrix}3\\2\\1\end{bmatrix}}={\begin{bmatrix}1\\-1\end{bmatrix}}3+{\begin{bmatrix}0\\3\end{bmatrix}}2+{\begin{bmatrix}2\\1\end{bmatrix}}1={\begin{bmatrix}1\cdot 3\\-1\cdot 3\end{bmatrix}}+{\begin{bmatrix}0\cdot 2\\3\cdot 2\end{bmatrix}}+{\begin{bmatrix}2\cdot 1\\1\cdot 1\end{bmatrix}}={\begin{bmatrix}5\\4\end{bmatrix}}.}

Metoda list wektorowych

O zwykłym iloczynie macierzy można myśleć jak o iloczynie skalarnym listy kolumnowej wektorów przez listę wierszową wektorów. Jeżeli

A = [ a 1 , 1 a 1 , 2 a 1 , 3 a 2 , 1 a 2 , 2 a 2 , 3 a 3 , 1 a 3 , 2 a 3 , 3 ] = [ A 1 A 2 A 3 ] {\displaystyle A={\begin{bmatrix}a_{1,1}&a_{1,2}&a_{1,3}&\ldots \\a_{2,1}&a_{2,2}&a_{2,3}&\ldots \\a_{3,1}&a_{3,2}&a_{3,3}&\ldots \\\vdots &\vdots &\vdots &\ddots \end{bmatrix}}={\begin{bmatrix}A_{1}\\A_{2}\\A_{3}\\\vdots \end{bmatrix}}}   oraz   B = [ b 1 , 1 b 1 , 2 b 1 , 3 b 2 , 1 b 2 , 2 b 2 , 3 b 3 , 1 b 3 , 2 b 3 , 3 ] = [ B 1 B 2 B 3 ] , {\displaystyle B={\begin{bmatrix}b_{1,1}&b_{1,2}&b_{1,3}&\ldots \\b_{2,1}&b_{2,2}&b_{2,3}&\ldots \\b_{3,1}&b_{3,2}&b_{3,3}&\ldots \\\vdots &\vdots &\vdots &\ddots \end{bmatrix}}={\begin{bmatrix}B_{1}&B_{2}&B_{3}&\ldots \end{bmatrix}},}

gdzie:

A 1 {\displaystyle A_{1}} to wektor wierszowy wszystkich elementów postaci a 1 , x , {\displaystyle a_{1,x},} A 2 {\displaystyle A_{2}} to wektor wierszowy wszystkich elementów postaci a 2 , x {\displaystyle a_{2,x}} itd.,
a B 1 {\displaystyle B_{1}} jest wektorem kolumnowym wszystkich elementów postaci b x , 1 , {\displaystyle b_{x,1},} B 2 {\displaystyle B_{2}} wektorem kolumnowym wszystkich elementów postaci b x , 2 {\displaystyle b_{x,2}} itd.,

to wtedy

A B = [ A 1 A 2 A 3 ] [ B 1 B 2 B 3 ] = [ ( A 1 B 1 ) ( A 1 B 2 ) ( A 1 B 3 ) ( A 2 B 1 ) ( A 2 B 2 ) ( A 2 B 3 ) ( A 3 B 1 ) ( A 3 B 2 ) ( A 3 B 3 ) ] . {\displaystyle AB={\begin{bmatrix}A_{1}\\A_{2}\\A_{3}\\\vdots \end{bmatrix}}*{\begin{bmatrix}B_{1}&B_{2}&B_{3}&\ldots \end{bmatrix}}={\begin{bmatrix}(A_{1}\cdot B_{1})&(A_{1}\cdot B_{2})&(A_{1}\cdot B_{3})&\ldots \\(A_{2}\cdot B_{1})&(A_{2}\cdot B_{2})&(A_{2}\cdot B_{3})&\ldots \\(A_{3}\cdot B_{1})&(A_{3}\cdot B_{2})&(A_{3}\cdot B_{3})&\ldots \\\vdots &\vdots &\vdots &\ddots \end{bmatrix}}.}

Własności

Mnożenie macierzy nie jest w ogólności przemienne, tj. A B B A . {\displaystyle AB\neq BA.} Można zaobserwować to następująco: nie można spodziewać się, iż zmiana proporcji wektorów da ten sam wynik. Innym sposobem jest też zwrócenie uwagi na kolejność czynników – liczba kolumn w macierzy proporcji musi być równa liczbie wierszy w macierzy wektorów: muszą one reprezentować tę samą liczbę wektorów. Przypadkiem szczególnym jest np. mnożenie macierzy diagonalnych równego stopnia, które jest przemienne.

Choć mnożenie macierzy nie jest przemienne, to wyznaczniki A B {\displaystyle AB} oraz B A {\displaystyle BA} są zawsze równe (jeżeli A {\displaystyle A} i B {\displaystyle B} są macierzami kwadratowymi tego samego stopnia), co wyjaśnione jest w artykule o wyznaczniku.

Mnożenie Cauchy’ego jest istotne, ponieważ jeśli macierze A {\displaystyle A} i B {\displaystyle B} reprezentują przekształcenia liniowe (co powszechnie się czyni), to ich iloczyn A B {\displaystyle AB} odpowiada złożeniu tych przekształceń, w którym odwzorowanie B {\displaystyle B} wykonywane jest w pierwszej kolejności.

Dodatkowo wszystkie sposoby mnożenia opisane w tym artykule dzielą zestaw wspólnych własności opisanych niżej.

Algorytmy

Naiwny algorytm standardowego mnożenia macierzy typu x × y {\displaystyle x\times y} przez macierz typu y × z {\displaystyle y\times z} wymaga x y z {\displaystyle xyz} mnożeń. Dla macierzy kwadratowych daje to algorytm o złożoności Θ ( n 3 ) . {\displaystyle \Theta (n^{3}).}

Istnieją wydajniejsze algorytmy rozwiązywania tego zadania. Pierwszy z takich algorytmów podał w 1969 r. Volker Strassen – złożoność tego algorytmu to około O ( n 2,807 ) . {\displaystyle O(n^{2{,}807}).} Nie jest on jednak zwykle używany w praktyce z powodu braku numerycznej stabilności. Najlepszy obecnie znany algorytm mnożenia macierzy, podany przez Dona Coppersmitha i Shmuela Winograda, ma złożoność rzędu ok. O ( n 2,376 ) . {\displaystyle O(n^{2{,}376}).} Dolne oszacowanie złożoności mnożenia macierzy, wynikające z konieczności obliczenia n 2 {\displaystyle n^{2}} wartości, to Ω ( n 2 ) . {\displaystyle \Omega (n^{2}).}

Jeśli to możliwe, należy skorzystać z algorytmów wykorzystujących szczególne własności macierzy, np. istnieje prosty algorytm mnożenia macierzy diagonalnych klasy Θ ( n ) . {\displaystyle \Theta (n).}

Potęgowanie macierzy

Definiujemy potęgę macierzy kwadratowej A {\displaystyle A} rekurencyjnie za pomocą wzorów:

A 0 = I k {\displaystyle A^{0}=I_{k}} gdzie k {\displaystyle k} jest wymiarem macierzy A , {\displaystyle A,}
A n + 1 = A A n {\displaystyle A^{n+1}=A\cdot A^{n}} dla całkowitego nieujemnego n . {\displaystyle n.}

A zatem

A 1 = A , {\displaystyle A^{1}=A,}
A 2 = A A , {\displaystyle A^{2}=A\cdot A,}
A 3 = A A A , {\displaystyle A^{3}=A\cdot A\cdot A,}

itd.

Operacja potęgowania macierzy ma następujące własności:

  • A n + m = A n A m , {\displaystyle A^{n+m}=A^{n}\cdot A^{m},}
  • ( A n ) m = A n m . {\displaystyle (A^{n})^{m}=A^{nm}.}

Naiwny algorytm obliczenia potęgi A n {\displaystyle A^{n}} wymaga Θ ( n ) {\displaystyle \Theta (n)} mnożeń.

Za pomocą algorytmu szybkiego potęgowania potęgę A n {\displaystyle A^{n}} możemy obliczyć w czasie Θ ( log n ) . {\displaystyle \Theta (\log n).}

Możliwe jest również potęgowanie za pomocą diagonalizacji – wymaga to podniesienia macierzy diagonalnej do n {\displaystyle n} -tej potęgi (zob. złożoność obliczeniowa iloczynu macierzy); jeżeli macierz A {\displaystyle A} ma współczynniki całkowite, to macierz diagonalna nie musi zachować tej właściwości, co może spowodować błędy zaokrągleń, dlatego jest to metoda mniej ogólna.

Mnożenie macierzy n {\displaystyle n} -wskaźnikowych

Macierz n {\displaystyle n} -wskaźnikowa A {\displaystyle A} zawiera n {\displaystyle n} wskaźników przebiegających m {\displaystyle m} wartości. Taka macierz zawiera m n {\displaystyle m^{n}} elementów macierzowych o wartościach zespolonych,

a k 1 , , k n . {\displaystyle a_{k_{1},\dots ,k_{n}}.}

Dla macierzy A {\displaystyle A} zdefiniowana jest operacja transpozycji cyklicznej, T c {\displaystyle T_{c}} przesuwającej wskaźniki o jeden do przodu

( a k 1 , , k n 1 , k n ) T c = a k n , k 1 , , k n 1 . {\displaystyle (a_{k_{1},\dots ,k_{n-1},k_{n}})^{T_{c}}=a_{k_{n},k_{1},\dots ,k_{n-1}}.}

Mnożenie (iloczyn) macierzy n {\displaystyle n} -wskaźnikowych, zdefiniowane jest jako n {\displaystyle n} -arne działanie wewnętrzne dla dokładnie n {\displaystyle n} macierzy, z których każda ma n {\displaystyle n} wskaźników przebiegających m {\displaystyle m} wartości. Każda macierz zawiera m n {\displaystyle m^{n}} wartości. Wynikiem jest również macierz n {\displaystyle n} -wskaźnikowa.

Jeżeli B = A ( 1 ) A ( 2 ) A ( n 1 ) A ( n ) , {\displaystyle B=A^{(1)}A^{(2)}\ldots A^{(n-1)}A^{(n)},} a b k 1 , k 2 , , k n {\displaystyle b_{k_{1},k_{2},\dots ,k_{n}}} oznacza element B {\displaystyle B} na pozycji ( k 1 , k 2 , , k n ) , {\displaystyle (k_{1},k_{2},\dots ,k_{n}),} to

b k 1 , , k n = l 1 , , l n 1 = 1 m a k 1 , l 1 , l n 1 ( 1 ) a l n 1 , k 2 , l 1 , l n 2 ( 2 ) a l 2 , , k n 1 , l 1 ( n 1 ) a l 1 , l 2 , , k n ( n ) {\displaystyle b_{k_{1},\dots ,k_{n}}=\sum _{l_{1},\dots ,l_{n-1}=1}^{m}a_{k_{1},l_{1}\dots ,l_{n-1}}^{(1)}*a_{l_{n-1},k_{2},l_{1}\dots ,l_{n-2}}^{(2)}*\ldots *a_{l_{2},\dots ,k_{n-1},l_{1}}^{(n-1)}*a_{l_{1},l_{2},\dots ,k_{n}}^{(n)}}

dla każdego wskaźnika k i , l j {\displaystyle k_{i},l_{j}} dla których 1 k i m {\displaystyle 1\leqslant k_{i}\leqslant m} oraz 1 l j m . {\displaystyle 1\leqslant l_{j}\leqslant m.}

Własności mnożenia macierzy n {\displaystyle n} -wskaźnikowych

Mnożenie macierzy n {\displaystyle n} -wskaźnikowych nie jest działaniem łącznym, np. dla n = 3 {\displaystyle n=3} istnieje macierz A , {\displaystyle A,} taka że A A ( A A A ) A ( A A A ) A . {\displaystyle A*A*(A*A*A)\neq A*(A*A*A)*A.}

Transpozycja cykliczna iloczynu macierzy B = A ( 1 ) A ( n 1 ) A ( n ) {\displaystyle B=A^{(1)}\ldots A^{(n-1)}A^{(n)}} ma postać

B T c = ( A ( n ) ) T c ( A ( 1 ) ) T c ( A ( n 1 ) ) T c . {\displaystyle B^{T_{c}}=(A^{(n)})^{T_{c}}(A^{(1)})^{T_{c}}\ldots (A^{(n-1)})^{T_{c}}.}

Szczególne macierze n {\displaystyle n} -wskaźnikowe

Macierze jednostkowe

Macierze jednostkowe definiuje się z pomocą macierzy pomocniczej A {\displaystyle A} (numer w nawiasie oznacza położenie macierzy jednostkowych cyklicznie za macierz pomocniczą, gdy macierz pomocnicza jest w innym położeniu to przy pomocy transpozycji cyklicznej przestawić na ostatnie miejsce równania):

A = I ( 1 ) I ( n 1 ) A . {\displaystyle A=I^{(1)}\ldots I^{(n-1)}A.}

Dla macierzy binarnych (przyjmujących tylko wartości 0 i 1) równanie jest jednoznacznie rozwiązywalne.

I k 1 , , k n ( p ) = δ k p , k 2 p , {\displaystyle I_{k_{1},\dots ,k_{n}}^{(p)}=\delta _{k_{p},k_{2p}},}

gdzie δ k p , k 2 p {\displaystyle \delta _{k_{p},k_{2p}}} jest symbolem Kroneckera.

Podindeksy uważamy za cyklicznie równoważne gdy różnią się o wielokrotność n . {\displaystyle n.}

Gdy przemieścimy macierz pomocniczą o q {\displaystyle q} miejsc, to

I k 1 , , k n ( p ) = δ k p + q , k 2 p + q . {\displaystyle I_{k_{1},\dots ,k_{n}}^{(p)}=\delta _{k_{p+q},k_{2p+q}}.}

Dla pełnego zagadnienia z dowolnym położeniem macierzy pomocniczej i z uwzględnieniem symetrii symbolu Kroneckera otrzymujemy n ( n 1 ) 2 {\displaystyle {\frac {n(n-1)}{2}}} macierzy jednostkowych. Macierz jednostkowa w niewłaściwym położeniu nie musi być w nim macierzą jednostkową.

Macierze jednostkowe dla każdego położenia wyróżniają parę wskaźników. Dogodnie jest traktować macierz n {\displaystyle n} -wskaźnikową jako zbiór m n 2 {\displaystyle m^{n-2}} dwuwskaźnikowych warstw numerowanych przez pozostałe n 2 {\displaystyle n-2} wskaźniki.

Macierze diagonalne

Jeżeli każda warstwa macierzy B {\displaystyle B} jest dwuwskaźnikową macierzą diagonalną to taką macierz nazywamy macierzą diagonalną.

Macierze odwrotne

Macierze odwrotne definiuje się przez rozwiązanie poniższych dwóch równań (macierze B {\displaystyle B} i D {\displaystyle D} są w tym samym położeniu, uzupełniające macierze jednostkowe nie zostały zaznaczone)

C = B A , {\displaystyle C=\ldots B\ldots A,}
A = D C . {\displaystyle A=\ldots D\ldots C.}

Macierz D {\displaystyle D} jest macierzą odwrotną do B . {\displaystyle B.}

Każda warstwa macierzy D {\displaystyle D} jest macierzą odwrotną (dwuwskaźnikową) warstwy o tym samym numerze macierzy B . {\displaystyle B.}

Zadanie jest wykonalne jeżeli iloczyn wszystkich wyznaczników warstw macierzy B {\displaystyle B} jest różny od zera. Taki iloczyn nazwiemy wyznacznikiem macierzy B . {\displaystyle B.}

Dla macierzy diagonalnej wyznacznik jest równy iloczynowi wszystkich diagonalnych elementów macierzowych wszystkich warstw.

Macierz osobliwa

Macierz nazwiemy osobliwą, gdy jej wyznacznik jest równy zero.

Zagadnienie odwrotne

Zagadnieniem odwrotnym nazywamy wyznaczenie macierzy X {\displaystyle X} z równania

B = A ( 1 ) A ( 2 ) A ( n 1 ) X . {\displaystyle B=A^{(1)}A^{(2)}\ldots A^{(n-1)}X.}

Zagadnienie odwrotne jest rozwiązywalne gdy wspólne działanie n 1 {\displaystyle n-1} macierzy: A ( 1 ) A ( 2 ) A ( n 1 ) {\displaystyle A^{(1)}A^{(2)}\ldots A^{(n-1)}} jest nieosobliwe.

Jeżeli co najwyżej jedna macierz A ( p ) {\displaystyle A^{(p)}} jest niediagonalna to działanie jest nieosobliwe gdy wszystkie macierze są nieosobliwe.

Jeżeli co najmniej dwie macierza A ( p ) , {\displaystyle A^{(p)},} A ( q ) {\displaystyle A^{(q)}} są niediagonalne to osobliwość działania jest nieokreślona.

Mnożenie macierzy n {\displaystyle n} -wskaźnikowych jako działanie zewnętrzne

Mnożenie

Y = A ( 1 ) A ( 2 ) A ( n 1 ) X {\displaystyle Y=A^{(1)}A^{(2)}\ldots A^{(n-1)}X}

możemy traktować jako przekształcenie m n {\displaystyle m^{n}} wymiarowego wektora X {\displaystyle X} przez wspólne działanie n 1 {\displaystyle n-1} macierzy A ( 1 ) A ( 2 ) A ( n 1 ) , {\displaystyle A^{(1)}A^{(2)}\ldots A^{(n-1)},} zapisujemy to w postaci

Y = M X , {\displaystyle Y=MX,} gdzie M {\displaystyle M} jest m n × m n {\displaystyle m^{n}\times m^{n}} macierzą.

Przekształcenie macierzy A ( p ) {\displaystyle A^{(p)}} w macierz M {\displaystyle M} jest jednoznaczne, a przekształcenie odwrotne jest niejednoznaczne, a po wykonaniu przekształceń macierzy M {\displaystyle M} może być nieodwracalne.

Elementy macierzowe macierzy M {\displaystyle M} są następujące

m k , l = a k 1 , l 1 , l n 1 ( 1 ) a l n 1 , k 2 , l 1 , l n 2 ( 2 ) a l 2 , , k n 1 , l 1 ( n 1 ) δ k n , l n , {\displaystyle m_{k,l}=a_{k_{1},l_{1}\dots ,l_{n-1}}^{(1)}*a_{l_{n-1},k_{2},l_{1}\dots ,l_{n-2}}^{(2)}*\ldots *a_{l_{2},\dots ,k_{n-1},l_{1}}^{(n-1)}*\delta _{k_{n},l_{n}},}

gdzie:

k = k 1 + ( k 2 1 ) m 1 + ( k 3 1 ) m 2 + + ( k n 1 ) m n 1 , {\displaystyle k=k_{1}+(k_{2}-1)*m^{1}+(k_{3}-1)*m^{2}+\ldots +(k_{n}-1)*m^{n-1},}
l = l 1 + ( l 2 1 ) m 1 + ( l 3 1 ) m 2 + + ( l n 1 ) m n 1 . {\displaystyle l=l_{1}+(l_{2}-1)*m^{1}+(l_{3}-1)*m^{2}+\ldots +(l_{n}-1)*m^{n-1}.}

Macierz M {\displaystyle M} ma postać quasidiagonalną zawierającą m {\displaystyle m} podmacierzy m n 1 × m n 1 . {\displaystyle m^{n-1}\times m^{n-1}.}

Jeżeli w wyrażeniu A ( 1 ) A ( 2 ) A ( n 1 ) {\displaystyle A^{(1)}A^{(2)}\ldots A^{(n-1)}} jest tylko q {\displaystyle q} macierzy niediagonalnych to przy zmianie kolejności (wskaźniki primowane) wyliczanych wskaźników (najpierw q {\displaystyle q} wskaźników macierzy niediagonalnych, a następnie n 1 q {\displaystyle n-1-q} macierzy diagonalnych)

k = k 1 + ( k 2 1 ) m 1 + ( k 3 1 ) m 2 + + ( k n 1 ) m n 1 , {\displaystyle k'=k'_{1}+(k'_{2}-1)*m^{1}+(k'_{3}-1)*m^{2}+\ldots +(k'_{n}-1)*m^{n-1},}
l = l 1 + ( l 2 1 ) m 1 + ( l 3 1 ) m 2 + + ( l n 1 ) m n 1 , {\displaystyle l'=l'_{1}+(l'_{2}-1)*m^{1}+(l'_{3}-1)*m^{2}+\ldots +(l'_{n}-1)*m^{n-1},}

macierz M {\displaystyle M} przyjmie postać quasidiagonalną zawierającą m n q {\displaystyle m^{n-q}} podmacierzy m q × m q . {\displaystyle m^{q}\times m^{q}.}

Tak wyznaczona macierz M {\displaystyle M} daje formalną podstawę do wyznaczania macierzy odwrotnych, rozwiązywania zagadnienia odwrotnego, jak również do badania zagadnienia własnego wspólnego działania jednej lub więcej macierzy A ( p ) . {\displaystyle A^{(p)}.}

Mnożenie przez skalar

 Zobacz też: mnożenie przez skalar.

Mnożenie macierzy A = ( a i j ) {\displaystyle A=(a_{ij})} przez skalar r {\displaystyle r} daje w wyniku iloczyn r A {\displaystyle rA} będący macierzą tego samego typu co A . {\displaystyle A.} Jej współczynniki dane są wzorem

( r A ) i j = r a i j . {\displaystyle (rA)_{ij}=r\cdot a_{ij}.}

Na przykład jeśli

A = [ 1 2 3 4 ] , {\displaystyle A={\begin{bmatrix}1&2\\3&4\end{bmatrix}},}

to

7 A = [ 7 1 7 2 7 3 7 4 ] = [ 7 14 21 28 ] . {\displaystyle 7A={\begin{bmatrix}7\cdot 1&7\cdot 2\\7\cdot 3&7\cdot 4\end{bmatrix}}={\begin{bmatrix}7&14\\21&28\end{bmatrix}}.}

Jeżeli jesteśmy zainteresowani macierzami nad pierścieniem, to powyższe mnożenie nazywa się czasem mnożeniem lewostronnym, podczas gdy mnożenie prawostronne definiowane jest jako

( A r ) i j = a i j r . {\displaystyle (Ar)_{ij}=a_{ij}\cdot r.}

Jeżeli pierścień jest przemienny, np. ciało liczb rzeczywistych lub zespolonych, to powyższe mnożenia są tożsame. Jednakże jeśli pierścień nie jest przemienny, jak np. kwaterniony, mogą się one różnić. Przykładowo

i [ i 0 0 j ] = [ 1 0 0 k ] [ 1 0 0 k ] = [ i 0 0 j ] i . {\displaystyle i{\begin{bmatrix}i&0\\0&j\end{bmatrix}}={\begin{bmatrix}-1&0\\0&k\end{bmatrix}}\neq {\begin{bmatrix}-1&0\\0&-k\end{bmatrix}}={\begin{bmatrix}i&0\\0&j\end{bmatrix}}i.}

Iloczyn Hadamarda

Dla dwóch macierzy tego samego typu definiuje się iloczyn Hadamarda, znany także jako iloczyn Schura lub iloczyn po współrzędnych. Może być on uogólniony także na operatory. Iloczyn Hadamarda dwóch macierzy A , B {\displaystyle A,B} typu m × n {\displaystyle m\times n} oznaczany przez A B {\displaystyle A\bullet B} jest również macierzą typu m × n {\displaystyle m\times n} daną wzorem

( A B ) i j = a i j b i j . {\displaystyle (A\bullet B)_{ij}=a_{ij}b_{ij}.}

Dla przykładu:

[ 1 2 3 1 ] [ 0 3 2 1 ] = [ 1 0 2 3 3 2 1 1 ] = [ 0 6 6 1 ] . {\displaystyle {\begin{bmatrix}1&2\\3&1\end{bmatrix}}\bullet {\begin{bmatrix}0&3\\2&1\end{bmatrix}}={\begin{bmatrix}1\cdot 0&2\cdot 3\\3\cdot 2&1\cdot 1\end{bmatrix}}={\begin{bmatrix}0&6\\6&1\end{bmatrix}}.}

Zauważmy, że iloczyn Hadamarda jest podmacierzą iloczynu Kroneckera (zob. niżej). Iloczyn Hadamarda badany jest w teorii macierzy i pojawia się w algorytmach kompresji stratnej takiej jak JPEG, jednak właściwie nie pojawia się w algebrze liniowej[wymaga weryfikacji?]. Dyskusja na ten temat zawarta jest w Horn & Johnson, 1994, rozdz. 5.

Iloczyn Kroneckera

 Osobny artykuł: iloczyn Kroneckera.

Dla dowolnych dwóch macierzy A {\displaystyle A} oraz B {\displaystyle B} definiuje się iloczyn prosty lub iloczyn Kroneckera (od nazwiska Leopolda Kroneckera) jako

A B = [ a 11 B a 12 B a 1 n B a m 1 B a m 2 B a m n B ] . {\displaystyle A\otimes B={\begin{bmatrix}a_{11}B&a_{12}B&\ldots &a_{1n}B\\\vdots &\vdots &\ddots &\vdots \\a_{m1}B&a_{m2}B&\ldots &a_{mn}B\end{bmatrix}}.}

Zauważmy, że jeśli A {\displaystyle A} jest macierzą typu m × n , {\displaystyle m\times n,} zaś B {\displaystyle B} macierzą typu p × r , {\displaystyle p\times r,} to A B {\displaystyle A\otimes B} jest macierzą typu m p × n r . {\displaystyle mp\times nr.} To mnożenie również nie jest przemienne.

Na przykład

[ 1 2 3 1 ] [ 0 3 2 1 ] = [ 1 0 1 3 2 0 2 3 1 2 1 1 2 2 2 1 3 0 3 3 1 0 1 3 3 2 3 1 1 2 1 1 ] = [ 0 3 0 6 2 1 4 2 0 9 0 3 6 3 2 1 ] . {\displaystyle {\begin{bmatrix}1&2\\3&1\end{bmatrix}}\otimes {\begin{bmatrix}0&3\\2&1\end{bmatrix}}={\begin{bmatrix}1\cdot 0&1\cdot 3&2\cdot 0&2\cdot 3\\1\cdot 2&1\cdot 1&2\cdot 2&2\cdot 1\\3\cdot 0&3\cdot 3&1\cdot 0&1\cdot 3\\3\cdot 2&3\cdot 1&1\cdot 2&1\cdot 1\end{bmatrix}}={\begin{bmatrix}0&3&0&6\\2&1&4&2\\0&9&0&3\\6&3&2&1\end{bmatrix}}.}

Jeżeli A {\displaystyle A} i B {\displaystyle B} reprezentują przekształcenia liniowe, odpowiednio V 1 W 1 {\displaystyle V_{1}\to W_{1}} oraz V 2 W 2 , {\displaystyle V_{2}\to W_{2},} to A B {\displaystyle A\otimes B} reprezentuje iloczyn tensorowy dwóch odwzorowań, V 1 V 2 W 1 W 2 . {\displaystyle V_{1}\otimes V_{2}\to W_{1}\otimes W_{2}.}

Wspólne własności

Wszystkie rodzaje mnożenia macierzy są łączne:

A ( B C ) = ( A B ) C , {\displaystyle A(BC)=(AB)C,}

rozdzielne względem dodawania:

A ( B + C ) = A B + A C {\displaystyle A(B+C)=AB+AC}

oraz

( A + B ) C = A C + B C {\displaystyle (A+B)C=AC+BC}

i zgodne z mnożeniem przez skalar:

c ( A B ) = ( c A ) B , {\displaystyle c(AB)=(cA)B,}
( A c ) B = A ( c B ) , {\displaystyle (Ac)B=A(cB),}
( A B ) c = A ( B c ) . {\displaystyle (AB)c=A(Bc).}

Należy wspomnieć, że w powyższe trzy wyrażenia będą sobie tożsame, jeśli mnożenie i dodawanie w ciele skalarów będzie przemienne, np. będzie ono pierścieniem przemiennym. Zobacz sekcję mnożenie przez skalar wyżej, aby zobaczyć kontrprzykład dla ciała skalarów kwaternionów.

Iloczyn wewnętrzny Frobeniusa

Iloczyn Frobeniusa, oznaczany czasem A : B , {\displaystyle A:B,} jest iloczynem wewnętrznym po składowych dwóch macierzy traktowanych jako wektory. Innymi słowy jest to suma elementów iloczynu Hadamarda, czyli

A : B = i j A i j B i j = tr ( A B ) = tr ( A B ) . {\displaystyle A:B=\sum _{i}\sum _{j}A_{ij}B_{ij}=\operatorname {tr} (A^{\top }B)=\operatorname {tr} (AB^{\top }).}

Ten iloczyn skalarny indukuje normę Frobeniusa.

Zobacz też

Linki zewnętrzne

  • PrzemysławP. Kiciak PrzemysławP., Schemat Falka, [w:] pismo „Delta”, deltami.edu.pl, luty 2014, ISSN 0137-3005 [dostęp 2022-07-19]  (pol.).
  • p
  • d
  • e
Niektóre
typy macierzy
Cechy niezależne
od bazy
Cechy zależne
od bazy
Operacje
na macierzach
jednoargumentowe
dwuargumentowe
Niezmienniki
liczbowe
inne
Inne pojęcia