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

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:

Matrizes especiais que vale a pena conhecer

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.

Ferramentas relacionadas