Produto de matrices

miniatura| Para a multiplicación de matrices, o número de columnas da primeira matriz debe ser igual ao número de filas da segunda matriz. A matriz de resultados ten o número de filas da primeira e o número de columnas da segunda.

En matemáticas, particularmente en álxebra lineal, **a multiplicación de matrices** é unha operación binaria que produce unha matriz a partir de dúas matrices. Para a multiplicación de matrices, o número de columnas da primeira matriz debe ser igual ao número de filas da segunda matriz. A matriz resultante, coñecida como **produto matricial**, ten o número de filas da primeira e o número de columnas da segunda matriz. O produto das matrices  e  denotase como .

O cálculo de produtos matriciales é unha operación central en todas as aplicacións computacionais da álxebra lineal.

## Definicións 
### Produto de matrices 
Se  é unha matriz  e  é unha matriz , \mathbf{A}=\begin{pmatrix}
 a_{11} & a_{12} & \cdots & a_{1n} \\
 a_{21} & a_{22} & \cdots & a_{2n} \\
 \vdots & \vdots & \ddots & \vdots \\
 a_{m1} & a_{m2} & \cdots & a_{mn} \\
\end{pmatrix},\quad\mathbf{B}=\begin{pmatrix}
 b_{11} & b_{12} & \cdots & b_{1p} \\
 b_{21} & b_{22} & \cdots & b_{2p} \\
 \vdots & \vdots & \ddots & \vdots \\
 b_{n1} & b_{n2} & \cdots & b_{np} \\
\end{pmatrix} o *produto matricial*  (indicado sen signos ou puntos de multiplicación) defínese como a matriz  
:\mathbf{C} = \begin{pmatrix}
 c_{11} & c_{12} & \cdots & c_{1p} \\
 c_{21} & c_{22} & \cdots & c_{2p} \\
 \vdots & \vdots & \ddots & \vdots \\
 c_{m1} & c_{m2} & \cdots & c_{mp} \\
\end{pmatrix} tal que 
: c_{ij} = a_{i1} b_{1j} + a_{i2} b_{2j} + \cdots + a_{in} b_{nj} = \sum_{k=1}^n a_{ik} b_{kj},  para ;  e  .

É dicir, o elemento {{Math|c_{ij}}} do produto obtense multiplicando termo por termo as entradas da -ésima fila de  e a -ésima  columna de , e sumando estes  produtos. Noutras palabras, {{Math|c_{ij}}} é o produto escalar da -ésima fila de  e a  -ésima columna de .

Por tanto, o produto  defínese se e só se o número de columnas en  é igual ao número de filas en , neste caso . 

A figura seguinte mostra como calcular os coeficientes c_{12} e c_{33} da matriz produto AB se A é unha matriz de tipo (4, 2), et B é unha matriz de tipo (2, 3).

left
{\color{BrickRed}c_{12}} = \sum_{r=1}^2 a_{1r}b_{r2} = a_{11}b_{12}+a_{12}b_{22}

{\color{NavyBlue}c_{33}} = \sum_{r=1}^2 a_{3r}b_{r3} = a_{31}b_{13}+a_{32}b_{23}

### Exemplos 
:
  \begin{pmatrix}
     1 & 0 \\ 
     2 & -1
  \end{pmatrix}
\times 
  \begin{pmatrix} 
    3 & 4 \\ 
    -2 & -3 \\ 
      \end{pmatrix}

:
=
\begin{pmatrix} 
   (1 \times 3+0 \times -2) & (1 \times 4+0 \times -3) \\
   (2 \times 3+-1 \times -2) & (2 \times 4+-1 \times -3) \end{pmatrix}
= 
\begin{pmatrix} 3 & 4 \\ 8 & 11 \end{pmatrix}.

En xeral, o produto des matrices non é conmutativa, Isto é, AB non é igual a BA, como mostra o seguinte exemplo:
:
\begin{pmatrix}
1 & 2 & 0 \\
4 & 3 & -1 \\
\end{pmatrix}
\times 
\begin{pmatrix}
5 & 1 \\
2 & 3 \\
3 & 4 \\
\end{pmatrix}
=
\begin{pmatrix}
9 & 7 \\
23 & 9 \\
\end{pmatrix}
,
:mentres que,
:
\begin{pmatrix}
5 & 1 \\
2 & 3 \\
3 & 4 \\
\end{pmatrix}
\times 
\begin{pmatrix}
1 & 2 & 0 \\
4 & 3 & -1 \\
\end{pmatrix}
=
\begin{pmatrix}
9 & 13 & -1 \\
14 & 13 & -3 \\
19 & 18 & -4 \\
\end{pmatrix}

### Produto escalar 
O produto escalar \mathbf a\cdot\mathbf b de dous vectores \mathbf a e \mathbf b de igual lonxitude é igual a un elemento único (sería unha matriz 1\times 1)  resultante de multiplicar estes vectores como un vector fila por un vector columna, así: \mathbf{a}^\mathrm{T}\mathbf{b} (ou \mathbf{b}^\mathrm{T}\mathbf{a}).

O produto escalar dos dous vectores
:a = \begin{pmatrix}1 \\ 2 \\ 3\end{pmatrix}&nbsp;&nbsp;e&nbsp;&nbsp;b = \begin{pmatrix}-7 \\ 8 \\ 9 \end{pmatrix}
calcúlase como
: a \cdot   b = \begin{pmatrix}1 & 2 & 3\end{pmatrix} \begin{pmatrix}-7 \\ 8 \\ 9 \end{pmatrix} = 1 \cdot (-7) + 2 \cdot 8 + 3 \cdot 9 = 36.

## Potencia dunha matriz cadrada 
A potencia dunha matriz sería unha multiplicación repetida, o que pode realizarse cando a matriz é cadrada.

Cando unha matriz A cadrada é diagonalizábel
esta diagonalización A = PDP^{-1}, onde D é unha matriz diagonal, pódese usar para calcular eficientemente as potencias dunha matriz:

: \begin{align}
 A^k &= \left(PDP^{-1}\right)^k = \left(PDP^{-1}\right) \left(PDP^{-1}\right) \cdots \left(PDP ^{-1}\right) \\
 &= PD\left(P^{-1}P\right) D \left(P^{-1}P\right) \cdots \left(P^{-1}P\right) D P^{-1 } = PD^kP^{-1},
\end{align}

e isto último é doado de calcular xa que só implica as potencias dunha matriz diagonal. Por exemplo, para a matriz A
:A=\left[\begin{array}{rrr}
0 & 1 & \!\!\!-2\\
0 & 1 & 0\\
1 & \!\!\!-1 & 3
\end{array}\right].
con valores propios \lambda = 1,1,2 temos a diagonalización:
P to get:
P^{-1}AP =
\left[\begin{array}{rrr}
1 & 0 & 1\\
1 & 2 & 0\\
0 & 1 & \!\!\!\!-1
\end{array}\right]^{-1}

\left[\begin{array}{rrr}
0 & 1 & \!\!\!-2\\
0 & 1 & 0\\
1 & \!\!\!-1 & 3
\end{array}\right]

\left[\begin{array}{rrr}
1 & \,0 & 1\\
1 & 2 & 0\\
0 & 1 & \!\!\!\!-1
\end{array}\right]
=
\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 2 \end{bmatrix} = D .
e agora calculamos:

: \begin{align}
  A^k = PD^kP^{-1}
  &= \left[\begin{array}{rrr}
       1 & \,0 &          1 \\
       1 &   2 &          0 \\
       0 &   1 & \!\!\!\!-1
     \end{array}\right]
     \begin{bmatrix} 1^k & 0 & 0 \\ 0 & 1^k & 0 \\ 0 & 0 & 2^k \end{bmatrix}
     \left[\begin{array}{rrr}
       1 & \,0 &          1 \\
       1 &   2 &          0 \\
       0 &   1 & \!\!\!\!-1
     \end{array}\right]^{-1} \\[1em]
  &= \begin{bmatrix}
         2 - 2^k & -1 + 2^k &  2 - 2^{k + 1} \\
               0 &        1 &              0 \\
        -1 + 2^k &  1 - 2^k & -1 + 2^{k + 1}
      \end{bmatrix}.
\end{align}

## Aplicacións fundamentais 
Historicamente, a multiplicación matricial foi introducida para facilitar e aclarar os cálculos en álxebra linear. 

### Mapas lineares 
Un mapa linear  dun espazo vectorial de dimensión  nun espazo vectorial de dimensión  mapea un vector columna

: \mathbf x=\begin{pmatrix}x_1 \\ x_2 \\ \vdots \\ x_n\end{pmatrix}

sobre o vector columna

: \mathbf y= A(\mathbf x)= \begin{pmatrix}a_{11}x_1+\cdots + a_{1n}x_n\\ a_{21}x_1+\cdots + a_{2n}x_n \\ \vdots \\ a_{m1}x_1+\cdots + a_{mn}x_n\end{pmatrix}.

O mapa linear  está así definido pola matriz

: \mathbf{A}=\begin{pmatrix}
 a_{11} & a_{12} & \cdots & a_{1n} \\
 a_{21} & a_{22} & \cdots & a_{2n} \\
\vdots & \vdots & \ddots & \vdots \\
 a_{m1} & a_{m2} & \cdots & a_{mn} \\
\end{pmatrix}, 

e mapea o vector columna \mathbf x no produto matricial

: \mathbf y = \mathbf {Ax}.

#### Rotacións xeométricas 
Usando un sistema de coordenadas cartesianas nun plano euclidiano, a rotación dun ángulo \alpha arredor da orixe é un mapa linear. Máis precisamente, 
: \begin{bmatrix} x' \\ y' \end{bmatrix} =
 \begin{bmatrix} \cos \alpha & - \sin \alpha \\ \sin \alpha & \cos \alpha \end{bmatrix} \begin{bmatrix} x \\ y \end{bmatrix},
onde o punto de orixe (x,y) e a súa imaxe (x',y') escríbense como vectores columna.

### Sistema de ecuacións lineares 
A forma xeral dun sistema de ecuacións lineares é

: \begin{matrix}a_{11}x_1+\cdots + a_{1n}x_n=b_1,
\\ a_{21}x_1+\cdots + a_{2n}x_n =b_2,
\\ \vdots
\\ a_{m1}x_1+\cdots + a_{mn}x_n =b_m. \end{matrix}

Usando a mesma notación anterior, tal sistema é equivalente á ecuación matricial única

: \mathbf{Ax}=\mathbf b.

### Produto escalar, forma bilinear e forma sesquilinear 
O produto escalar de dous vectores columna é o único elemento do produto matricial

: \mathbf x^\mathsf T \mathbf y,

onde \mathbf x^\mathsf T é o vector fila obtido mediante a transposición de \mathbf x.

Máis xeralmente, calquera forma bilinear sobre un espazo vectorial de dimensión finita pode expresarse como un produto matricial

: \mathbf x^\mathsf T \mathbf {Ay},

e calquera forma sesquilinear pode expresarse como

: \mathbf x^\dagger \mathbf {Ay},

onde \mathbf x^\dagger denota a transposta conxugada de \mathbf x (conxugada da transposta, ou equivalentemente transposta da conxugada).

## Multiplicación matricial por bloque 
Se consideramos as matrices M = \left(\begin{smallmatrix} A & B \\ C & D \end{smallmatrix}\right) e N = \left(\begin{smallmatrix} A' & B' \\ C' & D' \end{smallmatrix}\right), onde A,A', B,B', C,C' e D,D' son matrices que verifican:
* O número de columnas en A e C é igual ao número de filas en A' e B'
* O número de columnas en B e D é igual ao número de filas en C' e D'

entón temos a igualdade
: M N = \begin{pmatrix} A A' + B C'& A B' + B D' \\ C A' + D C' & C B' + D D' \end{pmatrix}

Observe a analoxía entre o produto da matriz de bloques e o produto de dúas matrices cadradas de orde 2. por tanto isto non define unha nova forma de produto de matrices. Este é simplemente un método de cálculo de produto matricial común que pode simplificar os cálculos.

## Produto de Hadamard 
Para dúas matrices do mesmo tipo, temos o "produto Hadamard" ou produto compoñente por compoñente. O produto de Hadamard de dúas matrices A=(a_{ij}) e B=(b_{ij}) de tipo  (m, n), denotado  , é unha matriz de tipo (m, n) dada por
:c_{ij}=a_{ij}\times b_{ij}.
Por exemplo:
:
  \begin{pmatrix}
    1 & 3 & 2 \\ 
    1 & 0 & 0 \\ 
    1 & 2 & 2
  \end{pmatrix}
\cdot
  \begin{pmatrix} 
    0 & 0 & 2 \\ 
    7 & 5 & 0 \\ 
    2 & 1 & 1
  \end{pmatrix}
=
  \begin{pmatrix} 
    1 \times 0 & 3 \times 0 & 2 \times 2 \\ 
    1 \times 7 & 0 \times 5 & 0 \times 0 \\ 
    1 \times 2 & 2 \times 1 & 2 \times 1
  \end{pmatrix}
=
  \begin{pmatrix} 
    0 & 0 & 4 \\ 
    7 & 0 & 0 \\ 
    2 & 2 & 2
  \end{pmatrix}.

Este produto é unha submatriz do produto de Kronecker.

## Produto de Kronecker 
Para dúas matrices arbitrarias A=(a_{ij}) e B, temos o **produto tensor** ou **produto de Kronecker**  que se define por
:
  \begin{pmatrix} 
    a_{11}B & a_{12}B & \cdots & a_{1n}B \\ 
    \vdots & \vdots & \ddots & \vdots \\ 
    a_{m1}B & a_{m2}B & \cdots & a_{mn}B
  \end{pmatrix}

Se A é unha matriz de tipo (m, n) e B é unha matriz de tipo (p, r) daquela  é unha matriz de tipo (mp, nr). De novo esta multiplicación non é conmutativa.

Por exemplo 
:
  \begin{pmatrix} 
    1 & 2 \\ 
    3 & 1 \\ 
  \end{pmatrix}
\otimes
  \begin{pmatrix} 
    0 & 3 \\ 
    2 & 1 \\ 
  \end{pmatrix}
=
  \begin{pmatrix} 
    1\times 0 & 1\times 3 & 2\times 0 & 2\times 3 \\ 
    1\times 2 & 1\times 1 & 2\times 2 & 2\times 1 \\ 
    3\times 0 & 3\times 3 & 1\times 0 & 1\times 3 \\ 
    3\times 2 & 3\times 1 & 1\times 2 & 1\times 1 \\ 
  \end{pmatrix}
=
  \begin{pmatrix} 
    0 & 3 & 0 & 6 \\ 
    2 & 1 & 4 & 2 \\
    0 & 9 & 0 & 3 \\
    6 & 3 & 2 & 1
  \end{pmatrix}
.

Se A e B son as matrices de mapas lineares  e , respectivamente, logo  representa o produto tensorial dos dous mapas, .

## Propiedades comúns 
Os tres produtos de matrices anteriores, e tamén o produto común de matrices,  son asociativos

:A \times (B \times C) = (A \times B) \times C,
distributivos en relación coa suma:
:A \times (B + C) = A \times B + A \times C
:(A + B) \times C = A \times C + B \times C
e compatíbeis coa multiplicación por un escalar:
:c(A \times B) = (cA) \times B = A \times (cB)

## Multiplicación por un escalar 
O produto por un escalar r dunha matriz A=(a_{ij}) dá o resultado
: rA=(ra_{ij}).

Se estamos a traballar con matrices nun anel, a multiplicación por un escalar ás veces chámase "multiplicación á esquerda" mentres que "multiplicación á dereita" defínese por:
: Ar=(a_{ij} r).

Cando o anel é un anel conmutativo, por exemplo, o corpo dos reais ou dos complexos, as dúas multiplicacións son idénticas.

Porén, se o anel non é conmutativo, como o dos quaternións, entón poden ser diferentes. Por exemplo
:
 i\begin{pmatrix}
 i & 0 \\
 0 & j \\
 \end{pmatrix}
= \begin{pmatrix}
 -1 & 0 \\
 0 & k \\
 \end{pmatrix}
\ne \begin{pmatrix}
 -1 & 0 \\
 0 & -k \\
 \end{pmatrix}
= \begin{pmatrix}
 i & 0 \\
 0 & j \\
 \end{pmatrix}i

## Outros tipos de produto de matrices 
Outros tipos de produtos de matrices, a maiores dos xa vistos, inclúen:

* Produto cracoviano, definido como 
* Produto interno de Frobenius, o produto escalar das matrices consideradas vectores ou, equivalentemente, a suma das entradas do produto de Hadamard
* Produto Khatri-Rao e produto Face-splitting
* Produto exterior, tamén chamado produto diádico ou produto tensor de matrices de dúas columnas, que é \mathbf{a}\mathbf{b}^\mathsf{T}

## Notas 
## Véxase tamén 
### Bibliografía 
* Henry Cohn, Robert Kleinberg, Balázs Szegedy, and Chris Umans. Group-theoretic Algorithms for Matrix Multiplication. . *Proceedings of the 46th Annual Symposium on Foundations of Computer Science*, 23–25 outubro 2005, Pittsburgh, PA, IEEE Computer Society, pp.&nbsp;379–388.
* Henry Cohn, Chris Umans. A Group-theoretic Approach to Fast Matrix Multiplication. . *Proceedings of the 44th Annual IEEE Symposium on Foundations of Computer Science*, 11–14 outubro 2003, Cambridge, MA, IEEE Computer Society, pp.&nbsp;438–449.
* 
* 
* Knuth, D.E., *The Art of Computer Programming Volume 2: Seminumerical Algorithms*. Addison-Wesley Professional; 3 edition (novembro 14, 1997). . pp.&nbsp;501.
* .
* Ran Raz. On the complexity of matrix product. In Proceedings of the thirty-fourth annual ACM symposium on Theory of computing. ACM Press, 2002. .
* Robinson, Sara, *Toward an Optimal Algorithm for Matrix Multiplication,* SIAM News 38(9), novembro 2005. PDF
* Strassen, Volker, *Gaussian Elimination is not Optimal*, Numer. Math. 13, p.&nbsp;354–356, 1969.
* 
* 
### Outros artigos 
* Matriz (matemáticas).
* Suma de matrices.
* Produto tensorial.
* Produto de Kronecker.
### Ligazóns externas 
* Multiplicateur de matrices