Calculadora de decomposição polar
A matriz de linhas (2, 1) e (0, 3) se decompõe em uma rotação U e um estiramento simétrico P, com A = U P. Digite uma matriz quadrada de até 16 por 16 e receba os dois fatores, os valores singulares e o resíduo. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
A decomposição polar fatoreia uma matriz real quadrada A como o produto de uma matriz ortogonal U e uma matriz simétrica semidefinida positiva única P, escrita A = U P. O fator de estiramento P é a raiz quadrada matricial de A transposta vezes A; o fator ortogonal U é a rotação ou reflexão mais próxima de A na norma de Frobenius e vem dos vetores singulares esquerdo e direito. Códigos de mecânica do contínuo recuperam assim uma rotação a partir de um gradiente de deformação; pipelines de robótica e de computação gráfica extraem um movimento rígido de um mapa linear; analistas numéricos projetam uma matriz calculada de volta sobre SO(n) ou O(n).
O que A = U P significa e como os dois fatores são únicos
A decomposição polar direita de uma matriz real quadrada A é a fatoração A = U P em que U é ortogonal (U transposta vezes U iguala a identidade) e P é simétrica e semidefinida positiva. O fator de estiramento P é único para toda A quadrada: é a única raiz quadrada semidefinida positiva da matriz de Gram A transposta A. Quando A é invertível, o fator ortogonal também é único e iguala A vezes a inversa de P.
Quando A é singular, U continua sendo uma matriz ortogonal mais próxima de A na norma de Frobenius, obtida de uma decomposição em valores singulares A = W Σ V-transposta pelo produto U = W V-transposta, enquanto P iguala V Σ V-transposta. Geometricamente U é uma rotação ou uma rotação composta com uma reflexão, e P estica ao longo de um conjunto ortonormal de eixos pelos valores singulares de A.
É por isso que a mecânica do contínuo escreve um gradiente de deformação como R U (ou V R) e por isso o problema ortogonal de Procrustes se resolve com o fator polar de uma covariância cruzada. A decomposição polar esquerda A = P_left U usa o mesmo fator ortogonal e a raiz quadrada de A A-transposta; esta calculadora devolve a forma direita A = U P, que é a convenção da maioria dos livros e códigos de produção.
Para uma matriz um por um os fatores se reduzem ao sinal da entrada e ao seu valor absoluto, tomando o sinal de zero como mais um. Para uma matriz já ortogonal o estiramento é a identidade e U iguala A. Para uma matriz já simétrica semidefinida positiva o fator ortogonal é a identidade e P iguala A.
Essas três conferências são o jeito mais rápido de validar uma implementação antes de confiar em um gradiente de deformação três por três vindo de um dump de simulação.
Onde a decomposição polar é útil
Salas de aula e cadernos de álgebra linear usam uma calculadora de decomposição polar para que os alunos confiram que U-transposta U iguala a identidade e que P iguala P-transposta com autovalores não negativos, sem levantar um sistema de álgebra computacional completo para uma matriz de lição de casa três por três.
Pós-processadores de mecânica do contínuo e de elementos finitos recuperam um tensor de rotação a partir de um gradiente de deformação F lendo o fator ortogonal e um tensor de estiramento a partir do fator positivo, que é exatamente a decomposição polar direita F = R U ensinada em todo curso de contínuos.
Pipelines de robótica, visão computacional e gráficos resolvem o problema ortogonal de Procrustes — achar a rotação mais próxima de um mapa três por três calculado — tomando o fator polar desse mapa, o que é mais barato e estável em um worker de borda do que montar uma biblioteca SVD densa explícita. Códigos de controle e identificação que precisam projetar uma matriz quase ortogonal de volta sobre O(n) depois de uma atualização ruidosa fazem a mesma projeção em uma única chamada. Validação que falha não consome saldo.
Mantenha n no máximo dezesseis, fixe os fatores arredondados nos testes e você obtém U e P reproduzíveis para lição de casa, plugins LMS e workers de borda sem importar uma biblioteca própria de álgebra linear densa.
Casos de uso
Do gradiente de deformação à rotação e ao estiramento
Separe um gradiente de deformação da mecânica do contínuo F = R U em uma rotação ortogonal e um estiramento semidefinido positivo único para pós-processamento ou checagens constitutivas.
Matriz ortogonal mais próxima (Procrustes)
Projete um mapa quadrado ruidoso sobre O(n) lendo o fator polar ortogonal, a rotação ou reflexão única mais próxima na norma de Frobenius.
Conferências de sala e de caderno
Deixe os alunos enviarem uma matriz n por n e verificar U-transposta U = I, P = P-transposta e A = U P contra os métodos do livro.
Perguntas frequentes
Como calcular a decomposição polar de uma matriz quadrada?
Envie um array quadrado de números finitos em matrix (apelidos a, A, mat).
O que acontece se a matriz for singular?
A decomposição polar ainda existe. P permanece a raiz quadrada PSD única de A-transposta A.
E se a entrada não for uma matriz numérica quadrada?
Cargas retangulares, irregulares, vazias, ausentes ou não numéricas são rejeitadas e não são cobradas.
Em que a decomposição polar difere de SVD ou QR?
SVD escreve A = W Σ V-transposta com duas ortogonais e uma diagonal. A decomposição polar dobra isso em A = U P com uma ortogonal e um estiramento PSD (U = W V-transposta, P = V Σ V-transposta). QR usa um fator triangular, não um PSD.
O que os dois fatores significam geometricamente?
U é uma rotação, ou uma rotação combinada com uma reflexão, e P estica o espaço ao longo de eixos perpendiculares segundo os valores singulares. Aplicar primeiro P e depois U reproduz a matriz original.
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/polar-decomposition \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"matrix":[[2,1],[0,3]]}'const res = await fetch("https://api.kit.forhosting.com/math/polar-decomposition", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"matrix": [
[
2,
1
],
[
0,
3
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/polar-decomposition",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"matrix": [
[
2,
1
],
[
0,
3
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/polar-decomposition", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"matrix":[[2,1],[0,3]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"matrix":[[2,1],[0,3]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/polar-decomposition", 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
],
[
0,
3
]
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.polar_decomposition",
"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 | 16 |
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
Este endpoint aceita um array n por n de números finitos, executa uma decomposição em valores singulares de Jacobi determinística sem rede e sem aleatoriedade, e devolve as duas matrizes fator mais os valores singulares, det(U), um residual de A menos U P e um indicador de invertibilidade. Uma carga não quadrada ou não numérica falha com invalid_input e não é cobrada.
Contrato de entrada, caminho SVD de Jacobi e forma da resposta
Os apelidos a, A e mat são aceitos. Um inteiro opcional precision entre zero e quinze (dez por padrão) define as casas decimais ao arredondar cada campo numérico da resposta. Por dentro o solver monta a matriz de Gram G = A-transposta A, executa uma eigen-decomposição cíclica de Jacobi de G para obter G = V Λ V-transposta, toma os valores singulares como as raízes quadradas dos autovalores recortados, forma P = V diag(σ) V-transposta, constrói os vetores singulares esquerdos W mapeando cada vetor direito por A e dividindo pelo seu valor singular, completa o núcleo com Gram-Schmidt modificado contra a base canônica, e define U = W V-transposta. Envie um corpo JSON cujo campo obrigatório matrix seja um array quadrado de linhas de números finitos: n linhas, cada uma com exatamente n colunas, com n pelo menos um e no máximo dezesseis. Matrix ausente, um não array, um layout irregular ou retangular, linhas vazias, entradas não finitas, entradas com magnitude maior que dez elevado a quinze, ou n acima do limite publicado falham com invalid_input nomeando o campo; essas falhas não são cobradas. A resposta ecoa n, a matriz analisada, o fator ortogonal, o fator semidefinido positivo, os valores singulares descendentes, det_orthogonal (mais ou menos um para uma U bem condicionada), um booleano is_invertible, o residual de Frobenius de A menos U P, a precisão usada e uma string curta de fórmula. Emparelhe as duas matrizes fator com o seu próprio gráfico se precisar de uma figura; este endpoint devolve só números e não emite prosa passo a passo além do campo formula.
Perguntas técnicas
Quanto custa a calculadora de decomposição polar?
A ferramenta do navegador é gratuita. Pedidos de API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.