BRZEN
Produto de matrizes
Texto da Wikipédia (pt), licença CC BY-SA. O BETARUBI mostra o verbete inteiro nesta página — a leitura não continua fora do site.

Em matemática, especificamente em álgebra linear, a multiplicação de matrizes é uma operação binária que produz uma matriz a partir de duas matrizes. Para a multiplicação de matrizes, o número de colunas na primeira matriz deve ser igual ao número de linhas na segunda matriz. A matriz resultante, conhecida como produto matricial, tem o número de linhas da primeira e o número de colunas da segunda matriz. O produto das matrizes A e B é denotado como AB.[1]
A multiplicação de matrizes foi descrita pela primeira vez pelo matemático francês Jacques Philippe Marie Binet em 1812,[2] para representar a composição de aplicações lineares que são representadas por matrizes. A multiplicação de matrizes é, portanto, uma ferramenta básica da álgebra linear e, como tal, tem inúmeras aplicações em muitas áreas da matemática, bem como na matemática aplicada, estatística, física, economia e engenharia.[3][4] Calcular produtos de matrizes é uma operação central em todas as aplicações computacionais da álgebra linear.
Notação
Este artigo usará as seguintes convenções de notação: matrizes são representadas por letras maiúsculas em negrito, e.g. A; vetores em minúsculas em negrito, e.g. a; e as entradas de vetores e matrizes são itálicas (são números de um corpo), e.g. A e a. A notação de índices é frequentemente a maneira mais clara de expressar definições e é usada como padrão na literatura. A entrada na linha i, coluna j da matriz A é indicada por (A)ij, Aij ou aij. Em contraste, um único subscrito, e.g. A1, A2, é usado para selecionar uma matriz (não uma entrada de matriz) de uma coleção de matrizes.
Definições
Matriz vezes matriz
Se A é uma matriz m × n e B é uma matriz n × p, o produto matricial C = AB (denotado sem sinais de multiplicação ou pontos) é definido como a matriz m × p[5][6][7][8] tal que para i = 1, ..., m e j = 1, ..., p.
Isto é, a entrada do produto é obtida multiplicando termo a termo as entradas da i-ésima linha de A e da j-ésima coluna de B, e somando esses n produtos. Em outras palavras, é o produto escalar da i-ésima linha de A e da j-ésima coluna de B.
Portanto, AB também pode ser escrito como
Assim, o produto AB é definido se e somente se o número de colunas em A for igual ao número de linhas em B,[1] neste caso n.
Na maioria dos cenários, as entradas são números, mas podem ser qualquer tipo de objetos matemáticos para os quais uma adição e uma multiplicação são definidas, que são associativas, e tais que a adição é comutativa, e a multiplicação é distributiva em relação à adição. Em particular, as entradas podem ser próprias matrizes (ver matriz bloco).
Matriz vezes vetor
Um vetor de comprimento pode ser visto como um vetor coluna, correspondendo a uma matriz cujas entradas são dadas por Se é uma matriz , o produto matriz-vetor denotado por é então o vetor que, visto como um vetor coluna, é igual à matriz Em notação de índices, isso equivale a:
Uma maneira de ver isso é que as mudanças de vetor "simples" para vetor coluna e vice-versa são assumidas e deixadas implícitas.
Vetor vezes matriz
Similarmente, um vetor de comprimento pode ser visto como um vetor linha, correspondendo a uma matriz . Para deixar claro que um vetor linha é pretendido, é costume neste contexto representá-lo como a transposta de um vetor coluna; assim, ver-se-ão notações como A identidade é válida. Em notação de índices, se é uma matriz , equivale a:
Vetor vezes vetor
Um vetor com n componentes pode ser representado como uma matriz 1 × n (um vetor linha) ou como uma matriz n × 1 (um vetor coluna). Supondo que e são ambos vetores coluna, o produto escalar (ou produto interno) é igual à única entrada da matriz resultante da multiplicação matricial do vetor linha com o vetor coluna , i.e. .
A multiplicação matricial entre o vetor coluna e o vetor linha , também conhecida como produto externo , dará, em vez disso, uma matriz n × n.
Ilustração

A figura à direita ilustra diagramaticamente o produto de duas matrizes A e B, mostrando como cada interseção na matriz produto corresponde a uma linha de A e uma coluna de B.
Os valores nas interseções, marcados com círculos na figura à direita, são:
Aplicações fundamentais
Historicamente, a multiplicação de matrizes foi introduzida para facilitar e esclarecer cálculos em álgebra linear. Esta forte relação entre multiplicação de matrizes e álgebra linear permanece fundamental em toda a matemática, bem como na física, química, engenharia e ciência da computação.
Aplicações lineares
Se um espaço vetorial tem uma base finita, seus vetores são cada um representados de forma única por uma sequência finita de escalares, chamada de vetor de coordenadas, cujos elementos são as coordenadas do vetor na base. Esses vetores de coordenadas formam outro espaço vetorial, que é isomorfo ao espaço vetorial original. Um vetor de coordenadas é comumente organizado como uma matriz coluna (também chamada de vetor coluna), que é uma matriz com apenas uma coluna. Assim, um vetor coluna representa tanto um vetor de coordenadas quanto um vetor do espaço vetorial original.
Uma aplicação linear A de um espaço vetorial de dimensão n para um espaço vetorial de dimensão m aplica um vetor coluna
no vetor coluna
A aplicação linear A é, portanto, definida pela matriz
e aplica o vetor coluna no produto matricial
Se B é outra aplicação linear do espaço vetorial precedente de dimensão m para um espaço vetorial de dimensão p, ela é representada por uma matriz Um cálculo direto mostra que a matriz da aplicação composta é o produto matricial A fórmula geral ) que define a composição de funções é instanciada aqui como um caso específico da associatividade do produto matricial (ver § Associatividade abaixo):
Rotações geométricas
Usando um sistema de coordenadas cartesianas em um plano euclidiano, a rotação por um ângulo em torno da origem é uma aplicação linear. Mais precisamente, onde o ponto de origem e sua imagem são escritos como vetores coluna.
A composição da rotação por e por corresponde então ao produto matricial onde identidades trigonométricas apropriadas são empregadas para a segunda igualdade. Ou seja, a composição corresponde à rotação pelo ângulo , como esperado.
Alocação de recursos em economia

Como exemplo, uma fábrica fictícia usa 4 tipos de bens básicos, para produzir 3 tipos de bens intermediários, , que por sua vez são usados para produzir 3 tipos de produtos finais, . As matrizes
- e
fornecem a quantidade de bens básicos necessários para uma dada quantidade de bens intermediários, e a quantidade de bens intermediários necessários para uma dada quantidade de produtos finais, respectivamente. Por exemplo, para produzir uma unidade do bem intermediário , uma unidade do bem básico , duas unidades de , nenhuma unidade de e uma unidade de são necessárias, correspondendo à primeira coluna de .
Usando a multiplicação de matrizes, calcula-se
esta matriz fornece diretamente as quantidades de bens básicos necessários para determinadas quantidades de bens finais. Por exemplo, a entrada inferior esquerda de é calculada como , refletindo que unidades de são necessárias para produzir uma unidade de . De fato, uma unidade de é necessária para , uma para cada uma das duas , e para cada uma das quatro unidades de que entram na unidade de , veja a figura.
Para produzir, por exemplo, 100 unidades do produto final , 80 unidades de e 60 unidades de , as quantidades necessárias de bens básicos podem ser calculadas como
isto é, unidades de , unidades de , unidades de , unidades de são necessárias. Da mesma forma, a matriz produto pode ser usada para calcular as quantidades necessárias de bens básicos para outros dados de quantidade de produtos finais.[9]
Sistema de equações lineares
A forma geral de um sistema de equações lineares é
Usando a mesma notação acima, tal sistema é equivalente à única equação matricial
Produto escalar, forma bilinear e forma sesquilinear
O produto escalar de dois vetores coluna é a única entrada do produto matricial
onde é o vetor linha obtido por transpondo . (Como de costume, uma matriz 1×1 é identificada com sua única entrada.)
Mais geralmente, qualquer forma bilinear sobre um espaço vetorial de dimensão finita pode ser expressa como um produto matricial
e qualquer forma sesquilinear pode ser expressa como
onde denota a transposta conjugada de (conjugado da transposta, ou equivalentemente transposta do conjugado).
Propriedades gerais
A multiplicação de matrizes compartilha algumas propriedades com a multiplicação usual. No entanto, a multiplicação de matrizes não é definida se o número de colunas do primeiro fator difere do número de linhas do segundo fator, e é não comutativa,[10] mesmo quando o produto permanece definido após mudar a ordem dos fatores.[11][12]
Não comutatividade
Uma operação é comutativa se, dados dois elementos A e B tais que o produto é definido, então também é definido, e
Se A e B são matrizes de tamanhos respectivos e , então é definido se , e é definido se . Portanto, se um dos produtos é definido, o outro não precisa ser definido. Se , os dois produtos são definidos, mas têm tamanhos diferentes; portanto, não podem ser iguais. Somente se , isto é, se A e B são matrizes quadradas do mesmo tamanho, ambos os produtos são definidos e do mesmo tamanho. Mesmo neste caso, tem-se em geral
Por exemplo
mas
Este exemplo pode ser expandido para mostrar que, se A é uma matriz com entradas em um corpo F, então para toda matriz B com entradas em F, se e somente se onde , e I é a matriz identidade. Se, em vez de um corpo, as entradas devem pertencer a um anel, então deve-se adicionar a condição de que c pertence ao centro do anel.
Um caso especial onde a comutatividade ocorre é quando D e E são duas matrizes diagonais (do mesmo tamanho); então DE = ED.[10] Novamente, se as matrizes são sobre um anel geral em vez de um corpo, as entradas correspondentes em cada uma também devem comutar entre si para que isso seja válido.
Distributividade
O produto matricial é distributivo em relação à adição de matrizes. Isto é, se A, B, C, D são matrizes de tamanhos respectivos m × n, n × p, n × p e p × q, respectivamente, tem-se (distributividade à esquerda)
e (distributividade à direita)
Isso resulta da distributividade para coeficientes por
Produto com um escalar
Se A é uma matriz e c um escalar, então as matrizes e são obtidas multiplicando à esquerda ou à direita todas as entradas de A por c. Se os escalares têm a propriedade comutativa, então
Se o produto é definido (isto é, o número de colunas de A é igual ao número de linhas de B), então
- e
Se os escalares têm a propriedade comutativa, então todas as quatro matrizes são iguais. Mais geralmente, todas as quatro são iguais se c pertence ao centro de um anel contendo as entradas das matrizes, porque neste caso, cX = Xc para todas as matrizes X.
Essas propriedades resultam da bilinearidade do produto de escalares:
Transposição
Se os escalares têm a propriedade comutativa, a transposta de um produto de matrizes é o produto, na ordem inversa, das transpostas dos fatores. Isto é
onde T denota a transposta, isto é, a troca de linhas e colunas.
Esta identidade não é válida para entradas não comutativas, pois a ordem entre as entradas de A e B é invertida, quando se expande a definição do produto matricial.
Conjugado complexo
Se A e B têm entradas complexas, então
onde * denota o conjugado complexo entrada a entrada de uma matriz.
Isso resulta da aplicação à definição de produto matricial do fato de que o conjugado de uma soma é a soma dos conjugados das parcelas e o conjugado de um produto é o produto dos conjugados dos fatores.
A transposição atua sobre os índices das entradas, enquanto a conjugação atua independentemente sobre as próprias entradas. Resulta que, se A e B têm entradas complexas, tem-se
onde † denota a transposta conjugada (conjugado da transposta, ou equivalentemente transposta do conjugado).
Associatividade
Dadas três matrizes A, B e C, os produtos (AB)C e A(BC) são definidos se e somente se o número de colunas de A for igual ao número de linhas de B, e o número de colunas de B for igual ao número de linhas de C (em particular, se um dos produtos é definido, então o outro também é definido). Neste caso, tem-se a propriedade associativa
Como para qualquer operação associativa, isso permite omitir parênteses e escrever os produtos acima como
Isso se estende naturalmente ao produto de qualquer número de matrizes, desde que as dimensões coincidam. Isto é, se A1, A2, ..., An são matrizes tais que o número de colunas de Ai é igual ao número de linhas de Ai + 1 para i = 1, ..., n – 1, então o produto
é definido e não depende da ordem das multiplicações, se a ordem das matrizes for mantida fixa.
Essas propriedades podem ser provadas por manipulações de somatório diretas, embora complicadas. Este resultado também segue do fato de que as matrizes representam aplicações lineares. Portanto, a propriedade associativa das matrizes é simplesmente um caso específico da propriedade associativa da composição de funções.
A complexidade computacional depende do parêntese
Embora o resultado de uma sequência de produtos de matrizes não dependa da ordem das operações (desde que a ordem das matrizes não seja alterada), a complexidade computacional pode depender dramaticamente dessa ordem.
Por exemplo, se A, B e C são matrizes de tamanhos respectivos 10×30, 30×5, 5×60, calcular (AB)C precisa de 10×30×5 + 10×5×60 = 4.500 multiplicações, enquanto calcular A(BC) precisa de 30×5×60 + 10×30×60 = 27.000 multiplicações.
Algoritmos foram projetados para escolher a melhor ordem de produtos; veja Multiplicação de cadeia de matrizes. Quando o número n de matrizes aumenta, foi mostrado que a escolha da melhor ordem tem uma complexidade de [13][14]
Aplicação à similaridade
Qualquer matriz invertível define uma transformação de similaridade (sobre matrizes quadradas do mesmo tamanho que )
Transformações de similaridade mapeiam produtos em produtos, isto é
De fato, tem-se
Matrizes quadradas
Denotemos o conjunto de matrizes quadradas n×n com entradas em um anel R, que, na prática, é frequentemente um corpo.
Em , o produto é definido para cada par de matrizes. Isso torna um anel, que tem a matriz identidade I como um elemento identidade (a matriz cujas entradas diagonais são iguais a 1 e todas as outras entradas são 0). Este anel é também uma R-álgebra associativa.
Se n > 1, muitas matrizes não têm um inverso multiplicativo. Por exemplo, uma matriz tal que todas as entradas de uma linha (ou coluna) são 0 não tem inverso. Se existir, o inverso de uma matriz A é denotado A−1 e, portanto, verifica
Uma matriz que tem um inverso é uma matriz invertível. Caso contrário, é uma matriz singular.
Um produto de matrizes é invertível se e somente se cada fator é invertível. Neste caso, tem-se
Quando R é comutativo, e, em particular, quando é um corpo, o determinante de um produto é o produto dos determinantes. Como os determinantes são escalares, e os escalares comutam, tem-se assim
Os outros invariantes matriciais não se comportam tão bem com produtos. No entanto, se R é comutativo, AB e BA têm o mesmo traço, o mesmo polinômio característico e os mesmos autovalores com as mesmas multiplicidades. No entanto, os autovetores são geralmente diferentes se AB ≠ BA.
Potências de uma matriz
Pode-se elevar uma matriz quadrada a qualquer potência inteira não negativa multiplicando-a por si mesma repetidamente da mesma forma que para números ordinários. Isto é,
Calcular a k-ésima potência de uma matriz precisa de k – 1 vezes o tempo de uma única multiplicação de matrizes, se for feito com o algoritmo trivial (multiplicação repetida). Como isso pode ser muito demorado, geralmente se prefere usar a exponenciação por quadratura, que requer menos de 2 log2 k multiplicações de matrizes e é, portanto, muito mais eficiente.
Um caso fácil para a exponenciação é o de uma matriz diagonal. Como o produto de matrizes diagonais equivale simplesmente a multiplicar os elementos diagonais correspondentes entre si, a k-ésima potência de uma matriz diagonal é obtida elevando as entradas à potência k:
Álgebra abstrata
A definição de produto matricial requer que as entradas pertençam a um semianel e não exige que a multiplicação de elementos do semianel seja comutativa. Em muitas aplicações, os elementos da matriz pertencem a um corpo, embora o semianel tropical também seja uma escolha comum para problemas de caminho mais curto em grafos.[15] Mesmo no caso de matrizes sobre corpos, o produto não é comutativo em geral, embora seja associativo e seja distributivo sobre a adição de matrizes. As matrizes identidades (que são as matrizes quadradas cujas entradas são zero fora da diagonal principal e 1 na diagonal principal) são elementos identidade do produto matricial. Segue-se que as matrizes n × n sobre um anel formam um anel, que é não comutativo, exceto se n = 1 e o anel de base for comutativo.
Uma matriz quadrada pode ter um inverso multiplicativo, chamado de matriz inversa. No caso comum em que as entradas pertencem a um anel comutativo R, uma matriz tem um inverso se e somente se seu determinante tem um inverso multiplicativo em R. O determinante de um produto de matrizes quadradas é o produto dos determinantes dos fatores. As matrizes n × n que têm um inverso formam um grupo sob a multiplicação de matrizes, cujos subgrupos são chamados de grupos matriciais. Muitos grupos clássicos (incluindo todos os grupos finitos) são isomorfos a grupos matriciais; este é o ponto de partida da teoria das representações de grupos.
As matrizes são os morfismos de uma categoria, a categoria de matrizes. Os objetos são os números naturais que medem o tamanho das matrizes, e a composição de morfismos é a multiplicação de matrizes. A fonte de um morfismo é o número de colunas da matriz correspondente, e o alvo é o número de linhas.
Complexidade computacional

O algoritmo de multiplicação de matrizes que resulta da definição requer, no pior caso, multiplicações e adições de escalares para calcular o produto de duas matrizes quadradas n×n. Sua complexidade computacional é, portanto, , em um modelo de computação para o qual as operações escalares levam tempo constante.
Surpreendentemente, essa complexidade não é ótima, como mostrado em 1969 por Volker Strassen, que forneceu um algoritmo, agora chamado de algoritmo de Strassen, com uma complexidade de [16] O algoritmo de Strassen pode ser paralelizado para melhorar ainda mais o desempenho.[17] Desde janeiro de 2024[update], o melhor algoritmo de multiplicação de matrizes revisado por pares é de Virginia Vassilevska Williams, Yinzhan Xu, Zixuan Xu e Renfei Zhou e tem complexidade O(n2.371552).[18][19] Não se sabe se a multiplicação de matrizes pode ser realizada em tempo n2 + o(1).[20] Isso seria ótimo, pois deve-se ler os elementos de uma matriz para multiplicá-la por outra matriz.
Como a multiplicação de matrizes forma a base para muitos algoritmos, e muitas operações sobre matrizes têm até a mesma complexidade que a multiplicação de matrizes (a menos de uma constante multiplicativa), a complexidade computacional da multiplicação de matrizes aparece em toda a álgebra linear numérica e na ciência da computação teórica.
Generalizações
Outros tipos de produtos de matrizes incluem:
- Operações com matrizes bloco
- Produto de Cracóvia, definido como A ∧ B = BTA
- Produto interno de Frobenius, o produto escalar de matrizes consideradas como vetores, ou, equivalentemente, a soma das entradas do produto de Hadamard
- Produto de Hadamard de duas matrizes do mesmo tamanho, resultando em uma matriz do mesmo tamanho, que é o produto entrada por entrada
- Produto de Kronecker ou produto tensorial, a generalização para qualquer tamanho do precedente
- Produto de Khatri–Rao e produto de divisão de faces
- Produto externo, também chamado de produto diádico ou produto tensorial de duas matrizes coluna, que é
- Multiplicação escalar
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 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 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[21], e é muito útil para matrizes grandes sobre domínios exatos tais como corpos finitos, em que a estabilidade numérica não é um problema.
Ver também
- Cálculo matricial, para a interação da multiplicação de matrizes com operações do cálculo
Referências
- 1 2 Nykamp, Duane. «Multiplying matrices and vectors». Math Insight. Consultado em 6 de setembro de 2020
- ↑ O'Connor, John J.; Robertson, Edmund F., «Jacques Philippe Marie Binet», MacTutor History of Mathematics archive (em inglês), Universidade de St. Andrews
- ↑ Lerner, R. G.; Trigg, G. L. (1991). Encyclopaedia of Physics 2ª ed. [S.l.]: VHC publishers. ISBN 978-3-527-26954-9
- ↑ Parker, C. B. (1994). McGraw Hill Encyclopaedia of Physics 2ª ed. [S.l.]: McGraw-Hill. ISBN 978-0-07-051400-3
- ↑ Lipschutz, S.; Lipson, M. (2009). Linear Algebra. Col: Schaum's Outlines 4ª ed. [S.l.]: McGraw Hill (EUA). pp. 30–31. ISBN 978-0-07-154352-1
- ↑ Riley, K. F.; Hobson, M. P.; Bence, S. J. (2010). Mathematical methods for physics and engineering. [S.l.]: Cambridge University Press. ISBN 978-0-521-86153-3
- ↑ Adams, R. A. (1995). Calculus, A Complete Course 3ª ed. [S.l.]: Addison Wesley. p. 627. ISBN 0-201-82823-5
- ↑ Horn, Johnson (2013). Matrix Analysis 2ª ed. [S.l.]: Cambridge University Press. p. 6. ISBN 978-0-521-54823-6
- ↑ Peter Stingl (1996). Mathematik für Fachhochschulen – Technik und Informatik (em alemão) 5ª ed. Munique: Carl Hanser Verlag. ISBN 3-446-18668-9 Aqui: Exm.5.4.10, p.205-206
- 1 2 3 Weisstein, Eric W. «Matrix Multiplication». mathworld.wolfram.com (em inglês). Consultado em 6 de setembro de 2020
- ↑ Lipcshutz, S.; Lipson, M. (2009). «2». Linear Algebra. Col: Schaum's Outlines 4ª ed. [S.l.]: McGraw Hill (EUA). ISBN 978-0-07-154352-1
- ↑ Horn, Johnson (2013). «Capítulo 0». Matrix Analysis 2ª ed. [S.l.]: Cambridge University Press. ISBN 978-0-521-54823-6
- ↑ Hu, T. C.; Shing, M.-T. (1982). «Computation of Matrix Chain Products, Part I» (PDF). SIAM Journal on Computing. 11 (2): 362–373. CiteSeerX 10.1.1.695.2923
. ISSN 0097-5397. doi:10.1137/0211028. Consultado em 2 de agosto de 2024. Arquivado do original (PDF) em 4 de agosto de 2016 - ↑ Hu, T. C.; Shing, M.-T. (1984). «Computation of Matrix Chain Products, Part II» (PDF). SIAM Journal on Computing. 13 (2): 228–251. CiteSeerX 10.1.1.695.4875
. ISSN 0097-5397. doi:10.1137/0213017. Consultado em 2 de agosto de 2024. Arquivado do original (PDF) em 4 de agosto de 2016 - ↑ Motwani, Rajeev; Raghavan, Prabhakar (1995). Randomized Algorithms. [S.l.]: Cambridge University Press. p. 280. ISBN 9780521474658
- ↑ Volker Strassen (ago de 1969). «Gaussian elimination is not optimal». Numerische Mathematik. 13 (4): 354–356. doi:10.1007/BF02165411
- ↑ C.-C. Chou and Y.-F. Deng and G. Li and Y. Wang (1995). «Parallelizing Strassen's Method for Matrix Multiplication on Distributed-Memory MIMD Architectures» (PDF). Computers Math. Applic. 30 (2): 49–69. doi:10.1016/0898-1221(95)00077-C
- ↑ Vassilevska Williams, Virginia; Xu, Yinzhan; Xu, Zixuan; Zhou, Renfei. New Bounds for Matrix Multiplication: from Alpha to Omega. Proceedings of the 2024 Annual ACM-SIAM Symposium on Discrete Algorithms (SODA). pp. 3792–3835. arXiv:2307.07970
. doi:10.1137/1.9781611977912.134 - ↑ Nadis, Steve (7 de março de 2024). «New Breakthrough Brings Matrix Multiplication Closer to Ideal». Consultado em 9 de março de 2024
- ↑ isto é, em tempo n2+f(n), para alguma função f com f(n)→0 quando n→∞
- ↑ Press 2007, p. 108.
Bibliografia
- Henry Cohn, Robert Kleinberg, Balázs Szegedy, and Chris Umans. Group-theoretic Algorithms for Matrix Multiplication. Arxiv. Proceedings of the 46th Annual Symposium on Foundations of Computer Science, 23–25 October 2005, Pittsburgh, PA, IEEE Computer Society, pp. 379–388.
- Henry Cohn, Chris Umans. A Group-theoretic Approach to Fast Matrix Multiplication. Arxiv. Proceedings of the 44th Annual IEEE Symposium on Foundations of Computer Science, 11–14 October 2003, Cambridge, MA, IEEE Computer Society, pp. 438–449.
- Coppersmith, D.; Winograd, S. (1990). «Matrix multiplication via arithmetic progressions». J. Symbolic Comput. 9 (3): 251–280. doi:10.1016/s0747-7171(08)80013-2

- Horn, Roger A.; Johnson, Charles R. (1991). Topics in Matrix Analysis. [S.l.]: Cambridge University Press. ISBN 978-0-521-46713-1
- Knuth, D.E., The Art of Computer Programming Volume 2: Seminumerical Algorithms. Addison-Wesley Professional; 3 edition (November 14, 1997). ISBN 978-0-201-89684-8. pp. 501.
- Press, William H.; Flannery, Brian P.; Teukolsky, Saul A.; Vetterling, William T. (2007). Numerical Recipes: The Art of Scientific Computing 3ª ed. [S.l.]: Cambridge University Press. ISBN 978-0-521-88068-8.
- Ran Raz. On the complexity of matrix product. In Proceedings of the thirty-fourth annual ACM symposium on Theory of computing. ACM Press, 2002. doi:10.1145/509907.509932.
- Robinson, Sara, Toward an Optimal Algorithm for Matrix Multiplication, SIAM News 38(9), November 2005. PDF
- Strassen, Volker, Gaussian Elimination is not Optimal, Numer. Math. 13, p. 354–356, 1969.
- Styan, George P. H. (1973). «Hadamard Products and Multivariate Statistical Analysis» (PDF). Linear Algebra and Its Applications. 6: 217–240. doi:10.1016/0024-3795(73)90023-2

- Williams, Virginia Vassilevska (19 de maio de 2012). «Multiplying matrices faster than coppersmith-winograd». Proceedings of the 44th symposium on Theory of Computing - STOC '12. [S.l.]: ACM. pp. 887–898. CiteSeerX 10.1.1.297.2680
. ISBN 9781450312455. doi:10.1145/2213977.2214056
Ligações externas
- «Multiplicação de matrizes». - implementações em várias linguagens de programação, no Rosetta Code


