article

Mnożenie macierzy to działanie, które parze macierzy A, B o wymiarach odpowiednio x×y i y×z przyporządkowuje macierz C o wymiarach x×z o współczynnikach:

c_{ij}=\sum_{k=1}^y a_{ik}\cdot b_{kj}

Zbiór macierzy kwadratowych o wymiarach n×n z działaniami dodawania i mnożenia tworzy pierścień.

Własności mnożenia macierzy:

  • łączność: (AB)C = A(BC) dla wszystkich macierzy A, B, C (gdzie: dim(A)= k×m, dim(B)= m×n, dim(C)= n×p)
  • rozdzielność:
    • (A + B)C = AC + BC (gdzie: dim(A)= dim(B)= m×n, dim(C)= n×k)
    • C(A + B) = CA + CB (gdzie: dim(A)= dim(B)= m×n, dim(C)= k×m).

Mnożenie macierzy na ogół nie jest przemienne, nawet gdy oba mnożenia AB i BA są wykonalne, jak w przypadku macierzy kwadratowych.

Wykonanie mnożenia można zilustrować następująco:

Matrix_multiplication_diagram.PNG

Przykład


\begin{bmatrix} 1 & 2 \\ 4 & 3 \end{bmatrix}\times \begin{bmatrix} 1 & 2 & 3 \\ 3 & -4 & 7 \end{bmatrix} = \begin{bmatrix} 1\times1+2\times3 & 1\times2+2\times(-4) & 1\times3+2\times7 \\ 4\times1+3\times3 & 4\times2+3\times(-4) & 4\times3+3\times7 \end{bmatrix} = \begin{bmatrix} 7 & -6 & 17 \\ 13 & -4 & 33 \end{bmatrix}

W programowaniu


Naiwny algorytm mnożenia macierzy o wymiarach x×y i y×z wymaga x×y×z mnożeń. Dla macierzy kwadratowych daje to algorytm klasy O(n3). 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(n2,807). Nie jest on jednak zwykle używany w praktyce, bo brakuje mu stabilności numerycznej. Najlepszy obecnie znany algorytm mnożenia macierzy, podany przez Dona Coppersmitha i Shmuela Winograda, ma złożoność rzędu O(n2,376). Dolne oszacowanie złożoności mnożenia macierzy, wynikające stąd, że musimy obliczyć n2 wartości, to Ω(n2).

Jeśli to możliwe, należy skorzystać z algorytmów wykorzystujących szczególne własności macierzy - na przykład mnożenie macierzy diagonalnych jest klasy O(n).

Zobacz też


Macierze

Násobení matic | Matrix multiplication | Producto de matrices | Produit matriciel | Moltiplicazione di matrici | כפל מטריצות | Matrixvermenigvuldiging

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Mnożenie macierzy".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld