Diagonalizar matriz
Para a matriz com linhas (2, 1) e (1, 2) você recebe os autovalores 3 e 1, a matriz diagonal D e a matriz de autovetores P, de modo que A = P·D·P⁻¹. Se a matriz não puder ser diagonalizada, isso é dito com clareza. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
A calculadora de diagonalização de matrizes recebe uma matriz quadrada e devolve sua decomposição espectral completa: os autovalores, a matriz diagonal D construída a partir deles e a matriz de mudança de base P, cujas colunas são os autovetores correspondentes, de modo que A = P·D·P⁻¹. A diagonalização transforma problemas difíceis em problemas fáceis — potências de matrizes, exponenciais, equações diferenciais e cadeias de Markov tornam-se operações elemento a elemento quando a matriz está escrita na base dos autovetores. Em vez de resolver o polinômio característico à mão ou instalar uma biblioteca numérica, você envia os elementos e recebe a decomposição em uma única chamada determinística, com cada valor arredondado na precisão que você escolher. O mesmo código roda gratuitamente no seu navegador nesta página, então você pode conferir uma matriz simplesmente colando-a e só paga quando automatiza o fluxo de trabalho.
O que significa diagonalizar uma matriz
Uma matriz quadrada A é diagonalizável quando possui autovetores independentes suficientes para formar uma base — n deles para uma matriz n×n. Nesse caso, você pode escrever A = P·D·P⁻¹, em que D é uma matriz diagonal que contém os autovalores e P é a matriz de mudança de base cujas colunas são os autovetores, na mesma ordem. Essa decomposição é um dos resultados centrais da álgebra linear porque matrizes diagonais são triviais de manipular: elevar D à quinquagésima potência significa apenas elevar cada elemento da diagonal à quinquagésima potência.
A calculadora de diagonalização de matrizes computa essa fatoração diretamente a partir dos elementos que você fornece. Ela devolve os autovalores ordenados do maior para o menor, a matriz diagonal D e a matriz P completa, para que você mesmo possa verificar a identidade A·P = P·D ou alimentar as partes na próxima etapa do seu cálculo.
Se a matriz não for quadrada, a requisição é rejeitada, e se ela tiver autovalores complexos ou não tiver um conjunto completo de autovetores reais, a ferramenta informa isso claramente, em vez de devolver números que parecem plausíveis, mas estão errados.
Como o cálculo funciona
O algoritmo é totalmente determinístico — sem pontos de partida aleatórios, sem contagens de iterações que mudam de uma execução para outra — portanto a mesma matriz sempre produz a mesma decomposição. Matrizes simétricas, que aparecem constantemente em estatística, física e otimização, são tratadas com varreduras cíclicas de Jacobi: uma sequência de rotações planas que zera os elementos fora da diagonal enquanto acumula as rotações na matriz de autovetores.
O método de Jacobi é lento em teoria para matrizes enormes, mas é extremamente preciso para os tamanhos pequenos e médios que esta ferramenta aceita, e lida com naturalidade com autovalores repetidos, situação em que outros métodos enfrentam dificuldades. Matrizes gerais não simétricas são tratadas com uma iteração QR com deslocamento de Wilkinson para extrair os autovalores, seguida de iteração inversa para recuperar um autovetor para cada um deles.
Antes de devolver o resultado, a ferramenta verifica se a matriz de autovetores P é invertível; se as colunas forem quase paralelas, a matriz é defeituosa — como o clássico [[1,1],[0,1]] — e não pode ser diagonalizada, de modo que a requisição falha com um erro claro em vez de uma resposta silenciosamente quebrada. Cada elemento da saída é arredondado para a precisão decimal que você solicitar, de 0 a 15 casas, com dez como padrão.
Onde as equipes a utilizam
A diagonalização aparece em qualquer lugar onde um sistema linear evolui ao longo do tempo. Engenheiros que calculam o comportamento de longo prazo de uma cadeia de Markov precisam dos autovalores para saber se a cadeia converge e com que rapidez; o autovalor dominante e seu autovetor fornecem diretamente o estado estacionário. Desenvolvedores que trabalham com relações de recorrência ou equações de diferenças acopladas diagonalizam a matriz de transição para obter uma solução em forma fechada em vez de iterar.
Em computação gráfica e geometria, decompor uma transformação revela os eixos ao longo dos quais ela estica o espaço. Equipes de dados a usam como bloco de construção: a análise de componentes principais é a decomposição espectral de uma matriz de covariância, e os métodos espectrais de grafos partem dos autovetores de um laplaciano.
Casos de uso
Calcule potências de matrizes rapidamente
Obtenha P e D uma única vez e depois calcule A^k como P·D^k·P⁻¹ — cada autovalor é simplesmente elevado à k-ésima potência.
Analise uma cadeia de Markov
Extraia o autovalor dominante e seu autovetor para encontrar a distribuição estacionária e a taxa de convergência.
Confira lições de casa e trabalhos de curso
Verifique uma diagonalização feita à mão contra uma referência determinística antes de entregá-la.
Perguntas frequentes
Quanto custa?
Também é gratuito executar no seu navegador nesta página, com resultados idênticos.
Quais matrizes são aceitas?
Qualquer matriz quadrada de números reais e finitos até 50×50.
E se minha matriz não puder ser diagonalizada?
Matrizes com autovalores complexos, ou matrizes defeituosas sem n autovetores reais independentes, são rejeitadas com um erro claro em vez de uma resposta aproximada.
Como os resultados são ordenados?
Os autovalores são devolvidos do maior para o menor, e as colunas da matriz de mudança de base P seguem a mesma ordem.
Como verifico a resposta?
Multiplique A·P e P·D — eles devem ser iguais. Para matrizes simétricas, as colunas de P também são ortonormais, portanto P⁻¹ é igual à transposta de P.
Minha matriz é armazenada em algum lugar?
Não. Ela é processada em memória e descartada; apenas a decomposição é devolvida.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/math/diagonalize-matrix \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"matrix":[[2,1],[1,2]]}'const res = await fetch("https://api.kit.forhosting.com/math/diagonalize-matrix", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"matrix": [
[
2,
1
],
[
1,
2
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/diagonalize-matrix",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"matrix": [
[
2,
1
],
[
1,
2
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/diagonalize-matrix", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"matrix":[[2,1],[1,2]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"matrix":[[2,1],[1,2]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/diagonalize-matrix", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"matrix": [
[
2,
1
],
[
1,
2
]
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.diagonalize_matrix",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_n | 50 |
max_abs_entry | 1000000000000000 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Onde as equipes a utilizam
Como a capacidade roda em nossa edge global sem armazenar nada após a resposta, ela também se encaixa perfeitamente em pipelines automatizados — um script pode enviar matrizes como parte de um job noturno por US$ 0,002 por chamada, enquanto uma pessoa confere as mesmas matrizes gratuitamente no navegador com resultados byte a byte idênticos. Essa paridade entre a ferramenta web gratuita e a API paga é deliberada: o mesmo módulo alimenta ambas.