# Produto de matrizes

Em matemática, o produto de duas matrizes é definido somente quando o número de colunas da primeira matriz é igual ao número de linhas da segunda matriz. Se A é uma matriz m×n (A também pode ser denotada por $A_{m,n}$) e B é uma matriz n×p, então seu produto é uma matriz m×p definida como AB (ou por A · B). O elemento de cada entrada $c_{ij}$ da matriz AB (o qual denotaremos por $(AB)_{ij}$) é dado pelo produto da i-ésima linha de A com a j-ésima coluna de B, ou seja,
$(AB)_{ij}=\sum _{r=1}^{n}a_{ir}b_{rj}=a_{i1}b_{1j}+a_{i2}b_{2j}+\cdots +a_{in}b_{nj}$para cada par i e j com 1 ≤ i ≤ m e 1 ≤ j ≤ p.

## Calculando diretamente a partir da definição

A figura à esquerda mostra como calcular o elemento (1,2) e o elemento (3,3) de AB se A é uma matriz 4×2, e B é uma matriz 2×3. Elementos de cada matriz são postos par a par na direcção das setas; cada par é multiplicado e os produtos são somados. A posição do número resultante em AB corresponde à linha e coluna que foi considerada.
$(AB)_{1,2}=\sum _{r=1}^{2}a_{1,r}b_{r,2}=a_{1,1}b_{1,2}+a_{1,2}b_{2,2}$ $(AB)_{3,3}=\sum _{r=1}^{2}a_{3,r}b_{r,3}=a_{3,1}b_{1,3}+a_{3,2}b_{2,3}$

## Propriedades

* Multiplicação de matrizes não é em geral comutativa, ou seja, AB ≠ BA (exceto em casos especiais). Eis um exemplo:
Sejam $A=\left[{\begin{array}{cc}1&0\\0&2\end{array}}\right]$ e $B=\left[{\begin{array}{cc}0&1\\1&0\end{array}}\right].$ Note que
$A\cdot B=\left[{\begin{array}{cc}1&0\\0&2\end{array}}\right]\cdot \left[{\begin{array}{cc}0&1\\1&0\end{array}}\right]=\left[{\begin{array}{cc}0&1\\2&0\end{array}}\right]$
$B\cdot A=\left[{\begin{array}{cc}0&1\\1&0\end{array}}\right]\cdot \left[{\begin{array}{cc}1&0\\0&2\end{array}}\right]=\left[{\begin{array}{cc}0&2\\1&0\end{array}}\right]$ e AB ≠ BA.
Quando AB = BA, diz-se que A e B comutam.
* Embora a multiplicação de matrizes não seja comutativa, os determinantes de AB e BA são sempre iguais (se A e B são matrizes quadradas de dimensões iguais). Veja o artigo sobre determinantes para esclarecimento.
* O produto é associativo, ou seja:
$\left(AB\right)C=A\left(BC\right)\,.$
* O produto distribui sob a soma:
$\left(A+B\right)C=AC+BC$ $C\left(A+B\right)=CA+CB\,.$
* Sejam A uma matriz de ordem m×n, B uma matriz de ordem n×p e $\alpha$ um número real, então vale que:
$(\alpha A)B=A(\alpha B)=\alpha (AB)$.
* Se A for uma matriz de ordem m×n, então vale que:
$A=AI_{n}=I_{m}A$, pois o número de colunas de A é igual ao número de linhas de $I_{n}.$ De modo semelhante, o número de colunas de $I_{m}$ é igual ao número de linhas da matriz A.
* Propriedade de matrizes transpostas: $\left(AB\right)^{T}=B^{T}A^{T}$.
Observações:
* No caso das matrizes, se AB = 0, não necessariamente A = 0 ou B = 0, pois podemos ter
$A=\left[{\begin{array}{cc}2&1\\0&0\end{array}}\right]$ e $B=\left[{\begin{array}{cc}0&2\\0&-4\end{array}}\right]$
tais que
$A\cdot B=\left[{\begin{array}{cc}2&1\\0&0\end{array}}\right]\cdot \left[{\begin{array}{cc}0&2\\0&-4\end{array}}\right]=\left[{\begin{array}{cc}0&0\\0&0\end{array}}\right].$
Mas se tivermos A.0, então o resultado necessariamente será 0 (0 denota a matriz nula).
* A lei do cancelamento não é válida, pois se A ≠ 0 e AB = AC, pode acontecer que B ≠ C. O caso a seguir ilustra isso:
Sejam $A=\left[{\begin{array}{cc}5&3\\0&0\end{array}}\right],$ $B=\left[{\begin{array}{cc}1&0\\-1&0\end{array}}\right]$ e $C=\left[{\begin{array}{cc}-1&0\\{\frac {7}{3}}&0\end{array}}\right].$
Note que AB = AC, pois
$\left[{\begin{array}{cc}5&3\\0&0\end{array}}\right]\cdot \left[{\begin{array}{cc}1&0\\-1&0\end{array}}\right]=\left[{\begin{array}{cc}5&3\\0&0\end{array}}\right]\cdot \left[{\begin{array}{cc}-1&0\\{\frac {7}{3}}&0\end{array}}\right]$
$\Rightarrow \left[{\begin{array}{cc}2&0\\0&0\end{array}}\right]=\left[{\begin{array}{cc}2&0\\0&0\end{array}}\right]$
porém B ≠ C.

## Definições importantes de matrizes derivadas das propriedades da multiplicação

* Uma matriz quadrada A de ordem n é inversível se tiver uma inversa $A^{-1}$ de tal maneira que sua multiplicação resulte na matriz identidade, ou seja, $A*A^{-1}=I_{n}.$
* Neste caso, vale a comutatividade e $A^{-1}*A=I_{n}$.

## Algoritmos para a multiplicar matrizes eficientemente

Qual é o algoritmo mais rápido para a multiplicação de matrizes?
O tempo de execução da multiplicação de matrizes quadradas, se efetuada de forma intuitiva, é $O(n^{3}).$ O tempo de execução para a multiplicação de matrizes retangulares (uma matriz m×p e outra p×n) é O(mnp), no entanto, existem algoritmos mais eficientes, tais como o algoritmo de Strassen, concebido por Volker Strassen em 1969, e chamado frequentemente de "multiplicação rápida de matrizes". Ele baseia-se em uma forma de multiplicar matrizes 2×2 que exige apenas 7 multiplicações (em vez das 8 usuais), em troca de fazer algumas oprerações de adição e subtração. A aplicação recursiva desse método produz um algoritmo cujo custo multiplicativo é $O(n^{\log _{2}7})\approx O(n^{2.807}).$ O algoritmo de Strassen é mais complexo se comparado com o algoritmo intuitivo, e ele carece de estabilidade numérica. Mesmo assim, está disponível em diversas bibliotecas, tais como BLAS, em que sua eficiência é significativamente maior para matrizes de dimensão n > 100, e é muito útil para matrizes grandes sobre domínios exatos tais como corpos finitos, em que a estabilidade numérica não é um problema.