Calculadora de matrizes gratuita
Realize operações matriciais : adição, subtração, multiplicação, transposição, determinante e inversa.
Matriz A
Matriz B
Como funciona
Defina as dimensões das matrizes A e B, insira os valores e selecione uma operação. A calculadora verifica as dimensões e executa a operação, exibindo o resultado em uma grade matricial clara.
Operações suportadas
- Adição e subtração · exige matrizes com as mesmas dimensões
- Multiplicação · as colunas de A devem ser iguais às linhas de B
- Transposição · inverte linhas e colunas (A^T, B^T)
- Determinante · apenas matrizes quadradas (det(A), det(B))
- Inversa · matrizes quadradas com determinante diferente de zero (A^−1, B^−1)
Perguntas frequentes
Quais dimensões de matriz são suportadas ?
Matrizes até 6×6 são suportadas. Selecione o número de linhas e colunas para cada matriz antes de inserir os valores.
Quando posso calcular uma inversa ?
A inversa de uma matriz só existe para matrizes quadradas (mesmo número de linhas e colunas) com um determinante diferente de zero. As matrizes singulares (determinante = 0) não têm inversa.
Meus dados são salvos ?
Não. Todos os cálculos são executados no seu navegador. Nada é salvo nem enviado a um servidor.
O que é, de fato, uma matriz
Uma matriz é um arranjo retangular de números dispostos em linhas e colunas e tratado como um único objeto matemático. O formato é escrito como m × n, em que m é o número de linhas e n o número de colunas, sempre as linhas primeiro. Os números individuais dentro dela são entradas ou elementos; uma entrada na linha i, coluna j é referenciada como aij usando indexação começando em 1. (Um dos bugs mais comuns ao portar artigos de matemática para código é a incompatibilidade entre essa convenção começando em 1 e a indexação começando em 0 usada por C, Python e JavaScript.)
Um vetor é uma matriz com uma linha (1 × n, «vetor linha») ou uma coluna (m × 1, «vetor coluna»). Um escalar é uma matriz 1 × 1. Esse aninhamento importa: significa que toda operação em álgebra linear (produtos escalares, projeções, transformações) pode ser expressa uniformemente como aritmética de matrizes, e é por isso que as matrizes se tornaram a linguagem universal da matemática aplicada depois de 1900.
Uma breve história
O precursor mais antigo que se conhece está na obra chinesa Nove Capítulos sobre a Arte Matemática (por volta do século II a.C.), que usava um método tabular de eliminação gaussiana chamado fangcheng para resolver sistemas de equações lineares. O termo moderno «matrix» foi cunhado pelo matemático inglês James Joseph Sylvester em 1850, inspirando-se na palavra latina para «útero», uma estrutura dentro da qual os subdeterminantes podiam crescer. O artigo fundamental foi o «A Memoir on the Theory of Matrices», de 1858, de Arthur Cayley, amigo e colaborador de Sylvester, que formalizou a multiplicação de matrizes, a matriz identidade, a matriz nula e a inversa, transformando as matrizes de uma conveniência notacional em uma álgebra por direito próprio.
Ao longo do fim do século XIX e início do século XX, a eliminação de Gauss-Jordan, a teoria de autovalores e o teorema espectral consolidaram as matrizes como a ferramenta central da álgebra linear. Os pontos de virada do século XX foram a formulação da mecânica matricial da teoria quântica por Werner Heisenberg, em 1925 (que é o motivo pelo qual os físicos passaram a levar as matrizes a sério), o artigo de 1947 de John von Neumann e Herman Goldstine sobre a inversão numérica de matrizes de ordem alta, que fundou a álgebra linear numérica moderna, e o lançamento, em 1979, do BLAS (Basic Linear Algebra Subprograms) e o lançamento, em 1992, do LAPACK: as bibliotecas otimizadas que toda plataforma de computação científica, do MATLAB ao NumPy, em última instância chama.
As seis operações fundamentais, explicadas
Adição e subtração. As duas matrizes devem ter dimensões idênticas. O resultado tem o mesmo formato e cada entrada é a soma entrada a entrada: cij = aij + bij. Você não pode somar uma 2×3 com uma 3×2; a operação é indefinida. A adição de matrizes é comutativa e associativa, exatamente como a adição comum de números.
Multiplicação de matrizes. A operação que torna as matrizes poderosas, e a que a maioria das pessoas erra no primeiro contato. Para que C = A × B esteja definida, as dimensões internas devem coincidir: se A é m × n, B deve ser n × p, e o resultado C é m × p. O «n» do meio se cancela; o «m» e o «p» externos sobrevivem. Cada entrada é calculada como um produto escalar de uma linha de A com uma coluna de B: cij = Σ aik · bkj somado sobre k.
Um exemplo resolvido 2×2:
A = [1 2] B = [5 6] A·B = [1·5+2·7 1·6+2·8] = [19 22]
[3 4] [7 8] [3·5+4·7 3·6+4·8] [43 50]
A multiplicação de matrizes não é comutativa: A·B ≠ B·A em geral, e às vezes os dois produtos têm até formatos diferentes. (Se A é 2×3 e B é 3×2, A·B é 2×2, mas B·A é 3×3.) Essa não comutatividade é a fonte de boa parte da riqueza da álgebra linear e é o motivo pelo qual o artigo de Cayley de 1858 é considerado fundamental.
Transposta: escrita AT, troca linhas e colunas. A entrada que estava na linha i, coluna j passa a ser a entrada na linha j, coluna i. Então, se A é m × n, AT é n × m. Identidade útil: (A·B)T = BT·AT, com a ordem invertida.
Determinante: um único escalar que resume uma matriz quadrada. Para uma 2×2, é ad − bc; para matrizes maiores, ele se expande recursivamente via expansão por cofatores (impraticável além de 4×4) ou via decomposição LU (o algoritmo que os computadores usam, O(n³)). Geometricamente, o valor absoluto do determinante é o fator pelo qual o mapa linear escala áreas (em 2D), volumes (em 3D), e assim por diante. Um determinante de 2 significa que o quadrado unitário é mapeado em um paralelogramo de área 2; um determinante negativo significa que a orientação se inverte (uma reflexão em espelho); um determinante de zero significa que a transformação colapsa tudo sobre uma linha ou ponto, a matriz é singular (não invertível).
Inversa: escrita A⁻¹, a única matriz tal que A · A⁻¹ = A⁻¹ · A = I, em que I é a matriz identidade. A inversa «desfaz» o que A faz. Ela só existe para matrizes quadradas com determinante diferente de zero. Os computadores calculam inversas via eliminação de Gauss-Jordan ou decomposição LU. Para 2×2, a fórmula é a famosa (1/det) × [d, -b; -c, a].
Por que as matrizes importam fora da matemática dos livros didáticos
As matrizes estão em toda parte na computação moderna porque toda transformação linear é uma matriz:
- Gráficos 3D: toda posição, rotação, escala e projeção é uma matriz homogênea 4×4. A cada quadro que sua GPU renderiza, ela multiplica milhares delas. OpenGL e Direct3D ambos expõem pilhas de matrizes explícitas; os motores modernos as encapsulam, mas a matemática não muda.
- Aprendizado de máquina: toda camada de uma rede neural é uma multiplicação de matrizes. Um grande modelo de linguagem moderno com 70 bilhões de parâmetros é, estruturalmente, algumas centenas de multiplicações de matrizes por passagem para a frente. cuBLAS, cuDNN, os Tensor Cores da NVIDIA e as TPUs do Google são hardware dedicado à multiplicação de matrizes em escala: todo o boom da IA é, em uma frase, a constatação de que as GPUs tornam a multiplicação de matrizes muito, muito rápida.
- Visão computacional: a Análise de Componentes Principais (PCA) e a Decomposição em Valores Singulares (SVD) reduzem dados de pixels de alta dimensão a características de baixa dimensão. A compressão de imagem (a DCT do JPEG) é aritmética de matrizes.
- Busca na web: o algoritmo PageRank original do Google (Brin e Page, 1998) calcula o autovetor principal de uma matriz de links de 30 milhões por 30 milhões. Funciona porque as matrizes modelam cadeias de Markov com exatidão.
- Estatística: as equações normais da regressão linear são
β = (XTX)−1XTy. Todo pacote de software estatístico as resolve via decomposição QR ou SVD. - Criptografia: cifras de bloco como o AES envolvem transformações de matrizes sobre corpos finitos. As portas da computação quântica são matrizes unitárias.
- Vibrações e engenharia estrutural: a análise modal (encontrar as frequências naturais de vibração de uma ponte) é um problema de autovalores sobre as matrizes de rigidez e de massa.
Matrizes especiais que vale a pena conhecer
- Matriz identidade I: quadrada, com 1s na diagonal e 0s no restante.
A·I = I·A = A. A matriz que «não faz nada». - Diagonal: entradas diferentes de zero apenas na diagonal principal. Multiplicar por uma matriz diagonal escala cada linha ou coluna de forma independente.
- Triangular (superior ou inferior), entradas diferentes de zero apenas na diagonal ou acima (ou abaixo) dela. Fácil de inverter e de resolver sistemas lineares contra ela.
- Simétrica:
A = AT. Todos os autovalores são reais; central em otimização e estatística. - Ortogonal:
AT·A = I, ou seja, a inversa é igual à transposta. As matrizes de rotação são ortogonais; as transformações ortogonais preservam comprimento e ângulo. - Esparsa vs. densa: as matrizes esparsas têm a maioria das entradas iguais a zero (típico de matrizes de adjacência de grafos, matrizes de rigidez de elementos finitos). Armazenamento e algoritmos esparsos especializados as tornam drasticamente mais rápidas que os métodos densos ingênuos em escala.
Notas sobre estabilidade numérica
A aritmética de matrizes em ponto flutuante esconde armadilhas que não aparecem nos exemplos dos livros didáticos. O número de condição de uma matriz mede o quanto a sua inversa amplifica pequenas perturbações na entrada: para uma matriz mal condicionada, um erro de 0,1% em uma entrada pode causar um erro de 1000% no resultado. O exemplo patológico clássico é a matriz de Hilbert (entradas 1/(i+j-1)), cujo número de condição explode exponencialmente com o tamanho; uma matriz de Hilbert 6×6 já tem um número de condição em torno de 10⁷, o que significa que sete dígitos decimais de precisão se perdem na inversa.
Na prática, os cientistas da computação quase nunca calculam A⁻¹ explicitamente. Para resolver A·x = b, eles usam a decomposição LU ou QR; para usar a inversa implicitamente, multiplicam A⁻¹·b via decomposição, em vez de construir A⁻¹ primeiro. Para sistemas mal condicionados ou retangulares, prefere-se a pseudoinversa baseada em SVD (inversa de Moore-Penrose). Esta calculadora computa a inversa explícita para uso educativo, o que é adequado em tamanhos pequenos, mas que vale a pena notar ao escalar.
Escopo honesto
Esta calculadora cobre somar / subtrair / multiplicar / transpor / determinante / inversa em matrizes de até 6×6, as operações que um estudante encontra em um primeiro curso de álgebra linear. Ela não calcula autovalores, autovetores ou decomposições de matrizes (LU, QR, SVD); não exibe os passos de redução por linhas; não suporta entradas simbólicas ou fracionárias; não lida com números complexos; e não aceita expressões matriciais como A²·BT. Para esses recursos, ferramentas dedicadas (Symbolab, Wolfram Alpha, MATLAB, NumPy, Octave, SageMath) são o passo adiante certo.
Mais perguntas
Por que a multiplicação de matrizes não comuta?
Porque as matrizes representam transformações, e a ordem em que você aplica as transformações importa. Rotacionar e depois transladar não é o mesmo que transladar e depois rotacionar: a translação arrasta de forma diferente a partir de uma orientação inicial diferente. A não comutatividade da multiplicação de matrizes é a codificação algébrica desse fato físico, e é o que torna os gráficos 3D e a mecânica quântica interessantes (e complicados).
Quando uma matriz não é invertível?
Quando seu determinante é zero (de forma equivalente, quando suas linhas (ou colunas) são linearmente dependentes), ou ainda, quando a transformação linear que ela representa colapsa algum vetor não nulo a zero. Geometricamente, a matriz mapeia um espaço de dimensão mais alta sobre um subespaço de dimensão mais baixa, e você não consegue recuperar a dimensão perdida. Essas matrizes são chamadas de «singulares». Para matrizes mal condicionadas, mas tecnicamente invertíveis, a inversa existe em teoria, mas é extremamente imprecisa em ponto flutuante; veja a seção de estabilidade numérica acima.
Por que indexação começando em 1 na matemática, mas em 0 no código?
A convenção matemática remonta a séculos: a primeira linha é a linha 1 porque a contagem começa em 1. As linguagens de programação adotaram a indexação começando em 0 porque ela simplifica a aritmética de ponteiros na memória de arrays: o elemento no deslocamento i está em base + i × element_size, sem nenhum fator de ajuste de -1. As duas convenções estão profundamente enraizadas; uma das fontes de bugs mais confiáveis é traduzir um artigo que diz «linha 3» para um código que precisa de matrix[2].
Existe um algoritmo de multiplicação de matrizes mais rápido?
O algoritmo ingênuo de três laços roda em O(n³). Volker Strassen mostrou em 1969 que 7 multiplicações bastam para uma 2×2 (em vez de 8), dando um O(n^2,807) assintótico quando aplicado recursivamente. Refinamentos sucessivos ao longo das décadas empurraram o limite teórico para cerca de O(n^2,371), mas as constantes são tão grandes que, para qualquer matriz que você realmente encontraria, o O(n³) ingênuo implementado dentro do BLAS / cuBLAS vence. O limite inferior está matematicamente em aberto: é pelo menos O(n²), mas ninguém sabe a resposta exata.
Algo é enviado a um servidor?
Não. A aritmética são operações de ponto flutuante diretas em JavaScript, calculadas no seu navegador. Nada sobre as suas matrizes sai da página; a ferramenta funciona offline depois de carregada.