Expansão por cofatores
Expanda um determinante pela linha ou coluna que você escolher e veja cada termo: no exemplo 3×3, a primeira linha contribui com 4, 5 e −60, que somam −51. Compare linhas para achar o caminho mais curto. 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 expansão por cofatores, também chamada de expansão de Laplace, é a definição recursiva clássica do determinante: escolha uma linha ou coluna, multiplique cada elemento pelo seu menor com sinal e some os resultados. Esta calculadora permite que você escolha exatamente a linha ou coluna ao longo da qual expandir — uma diferença pedagógica real, pois uma linha cheia de zeros torna a aritmética trivial, enquanto uma linha densa a torna longa. Ela retorna o determinante junto com o detalhamento completo da expansão: cada elemento da linha escolhida, seu sinal alternado, seu cofator calculado a partir do menor correspondente e sua contribuição para a soma final. Matrizes não quadradas são rejeitadas com um erro de validação claro, pois o determinante só é definido para matrizes quadradas.
Como funciona a expansão por cofatores ao longo de uma linha escolhida
O resultado é idêntico, não importa a linha escolhida — exatamente o teorema que os estudantes devem verificar nos cursos de álgebra linear. Esta capacidade aplica essa recursão literalmente. Para a linha ou coluna escolhida, ela calcula cada determinante de menor expandindo novamente ao longo da primeira linha da submatriz menor, descendo recursivamente até o caso base um por um, em que o determinante é o próprio elemento, com o caso dois por dois resolvido diretamente pela forma fechada ad menos bc.
A saída expõe cada quantidade intermediária: cada elemento da linha de expansão, o sinal alternado determinado pela paridade de sua posição, o valor do cofator e a contribuição elemento vezes cofator. Somar as contribuições à mão reproduz o determinante retornado, o que torna a ferramenta útil para auditar o trabalho, e não apenas conferir um número final. Como a recursão tem custo fatorial, as dimensões são limitadas a dez por dez; os tamanhos de sala de aula e de competições estão totalmente cobertos.
Por que a escolha da linha de expansão importa
O determinante é invariante entre linhas de expansão, mas o trabalho para calculá-lo à mão não é. Expandir ao longo de uma linha ou coluna que contém zeros elimina termos por completo, pois um elemento zero não contribui em nada, por maior que seu cofator fosse; os livros didáticos ensinam os estudantes a procurar a linha mais esparsa antes de tocar em qualquer menor, e esta calculadora demonstra essa estratégia de forma concreta ao permitir comparar uma expansão por linha com uma por coluna na mesma matriz.
Professores a usam para montar soluções passo a passo: o array terms é exatamente a sequência de produtos que um estudante deve escrever, de modo que os gabaritos podem mostrar cada cofator em vez de um número final nu. Estudantes a usam para encontrar os próprios erros — quando um cálculo à mão diverge da ferramenta, o detalhamento termo a termo localiza o erro em um menor específico, em vez de forçar um refazer completo.
Programadores que verificam uma pequena rotina de determinante em contexto de competição também podem usar o caminho dos cofatores como oráculo independente frente a implementações baseadas em LU. Se você precisa de um determinante simples sem escolher linha, de inversão de matriz, de autovalores ou de menores simbólicos sobre polinômios, trate isso como intenções separadas, em vez de sobrecarregar esta página de expansão por cofatores.
Casos de uso
Soluções de dever de casa passo a passo
Expanda det(A) ao longo de uma linha ou coluna escolhida e obtenha cada elemento, sinal, cofator e contribuição, para que os gabaritos mostrem a expansão de Laplace completa, e não apenas o número final.
Treinos de estratégia com linhas de zeros
Compare expansões ao longo de diferentes linhas e colunas da mesma matriz para demonstrar por que escolher a linha com mais zeros minimiza o cálculo manual.
Localização de erros para estudantes
Quando um cálculo à mão diverge do determinante retornado, compare o detalhamento termo a termo com o trabalho do estudante para encontrar o menor exato onde o erro aconteceu.
Perguntas frequentes
A escolha da linha ou coluna muda o determinante?
Não. O teorema de Laplace garante o mesmo valor ao longo de qualquer linha ou coluna. A escolha só muda a quantidade de aritmética que a expansão exige — linhas com mais zeros são mais baratas, e é por isso que esta calculadora permite que você escolha a linha.
O que acontece se a matriz não for quadrada?
O determinante só é definido para matrizes quadradas; linhas irregulares ou contagens desiguais de linhas e colunas são rejeitadas com uma mensagem que indica a linha que falhou.
O que o array terms contém?
Um registro por posição da linha de expansão: o elemento da matriz, sua linha e coluna de base 1, o sinal alternado da paridade da posição, o cofator (determinante do menor com sinal) e a contribuição elemento vezes cofator. O determinante é a soma de todas as contribuições.
Qual é o tamanho máximo da matriz?
n ≤ 10. Os menores são expandidos recursivamente, o que tem custo fatorial; o limite mantém o caminho de análise gratuito abaixo de um milissegundo. Os tamanhos de sala de aula e de competições estão totalmente cobertos.
Quanto custa?
A ferramenta do navegador é gratuita e roda localmente.
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/cofactor-expansion-old \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"matrix":[[2,1,3],[0,4,1],[5,2,1]]}'const res = await fetch("https://api.kit.forhosting.com/math/cofactor-expansion-old", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"matrix": [
[
2,
1,
3
],
[
0,
4,
1
],
[
5,
2,
1
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/cofactor-expansion-old",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"matrix": [
[
2,
1,
3
],
[
0,
4,
1
],
[
5,
2,
1
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/cofactor-expansion-old", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"matrix":[[2,1,3],[0,4,1],[5,2,1]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"matrix":[[2,1,3],[0,4,1],[5,2,1]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/cofactor-expansion-old", 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,
3
],
[
0,
4,
1
],
[
5,
2,
1
]
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.cofactor_expansion_old",
"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.
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
Como funciona a expansão por cofatores ao longo de uma linha escolhida
O teorema da expansão de Laplace afirma que o determinante de uma matriz n por n pode ser calculado ao longo de qualquer linha ou coluna: multiplique cada elemento a_ij dessa linha pelo seu cofator C_ij, onde o cofator é (-1) elevado à potência i mais j vezes o determinante do menor obtido ao eliminar a linha i e a coluna j, e depois some todos os n produtos. Toda a aritmética é código determinístico de ponto flutuante, sem sementes aleatórias, sem carimbos de tempo e sem chamadas de rede, de modo que entradas idênticas sempre produzem JSON byte a byte idêntico.
O que você envia e o que recebe de volta
Elementos zero ainda aparecem no array terms com contribution zero, de modo que a expansão é totalmente auditável. Use o formulário gratuito do navegador para conferências rápidas e depois chame o contrato idêntico a partir de scripts para gabaritos em massa. Envie um campo obrigatório chamado matrix: um array JSON aninhado de linhas de números finitos, ou uma string JSON codificando o mesmo array aninhado. Todas as linhas devem ter o mesmo comprimento, e esse comprimento deve ser igual ao número de linhas para que a matriz seja quadrada; uma grade dois por três falha imediatamente com invalid_input e uma mensagem que indica a linha problemática. Dois campos opcionais orientam a expansão. axis, com o alias along, aceita row ou col e tem row como padrão. index, com o alias line, é a posição de base 1 da linha ou coluna ao longo da qual expandir e tem 1 como padrão; deve ser um inteiro entre um e n. Matriz ausente, formatos que não são array, linhas irregulares, células não numéricas, NaN, Infinity, grades vazias, dimensões acima de dez, um axis desconhecido ou um index fora do intervalo — tudo isso falha com invalid_input e não é cobrado. Em caso de sucesso, a resposta ecoa a matriz limpa com arredondamento estável de doze dígitos significativos, a dimensão inteira n, o axis e o index resolvidos, o determinante como número, abs_determinant, sign como menos um, zero ou mais um, um booleano is_singular, o array terms completo com entry, row, col, sign, cofactor e contribution para cada posição da linha de expansão, e uma string formula curta que nomeia a linha usada. Chamadas bem-sucedidas à API custam a base publicada de US$ 0,002 por item; falhas de validação não consomem saldo pré-pago.
Por que a escolha da linha de expansão importa
Por ser um motor de análise puro, o preço da API é a base publicada de US$ 0,002 por item bem-sucedido, e a validação malsucedida não consome saldo.