Calculadora de descomposición polar
La matriz de filas (2, 1) y (0, 3) se descompone en una rotación U y un estiramiento simétrico P, con A = U P. Escriba una matriz cuadrada de hasta 16 por 16 y obtenga los dos factores, los valores singulares y el residuo. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
La descomposición polar factoriza una matriz real cuadrada A como el producto de una matriz ortogonal U y una matriz simétrica semidefinida positiva única P, escrita A = U P. El factor de estiramiento P es la raíz cuadrada matricial de A traspuesta por A; el factor ortogonal U es la rotación o reflexión más próxima a A en la norma de Frobenius y procede de los vectores singulares izquierdos y derechos. Los códigos de mecánica del continuo recuperan así una rotación a partir de un gradiente de deformación; las tuberías de robótica y de infografía extraen un movimiento rígido de una aplicación lineal; los analistas numéricos proyectan una matriz calculada de vuelta sobre SO(n) u O(n). Este extremo acepta un arreglo n por n de números finitos, ejecuta una descomposición en valores singulares de Jacobi determinista sin red y sin azar, y devuelve ambas matrices factor más los valores singulares, det(U), un residual de A menos U P y un indicador de invertibilidad.
Qué significa A = U P y cómo ambos factores son únicos
La descomposición polar derecha de una matriz real cuadrada A es la factorización A = U P en la que U es ortogonal (U traspuesta por U iguala la identidad) y P es simétrica y semidefinida positiva. El factor de estiramiento P es único para toda A cuadrada: es la única raíz cuadrada semidefinida positiva de la matriz de Gram A traspuesta A. Cuando A es invertible, el factor ortogonal también es único e iguala A por la inversa de P.
Cuando A es singular, U sigue siendo una matriz ortogonal más próxima a A en la norma de Frobenius, obtenida de una descomposición en valores singulares A = W Σ V-traspuesta mediante el producto U = W V-traspuesta, mientras que P iguala V Σ V-traspuesta. Geométricamente U es una rotación o una rotación compuesta con una reflexión, y P estira a lo largo de un conjunto ortonormal de ejes según los valores singulares de A.
Por eso la mecánica del continuo escribe un gradiente de deformación como R U (o V R) y por eso el problema ortogonal de Procrustes se resuelve con el factor polar de una covarianza cruzada. La descomposición polar izquierda A = P_left U usa el mismo factor ortogonal y la raíz cuadrada de A A-traspuesta; esta calculadora devuelve la forma derecha A = U P, que es el convenio que adoptan la mayoría de los manuales y códigos de producción.
Para una matriz uno por uno los factores se reducen al signo de la entrada y a su valor absoluto, tomando el signo de cero como más uno. Para una matriz ya ortogonal el estiramiento es la identidad y U iguala A. Para una matriz ya simétrica semidefinida positiva el factor ortogonal es la identidad y P iguala A.
Esas tres comprobaciones son el modo más rápido de confirmar una implementación antes de confiar en un gradiente de deformación tres por tres procedente de un volcado de simulación.
Dónde resulta útil la descomposición polar
Las aulas y los cuadernos de álgebra lineal usan una calculadora de descomposición polar para que el alumnado compruebe que U-traspuesta U iguala la identidad y que P iguala P-traspuesta con autovalores no negativos, sin levantar un sistema de álgebra computacional completo para una matriz de tarea tres por tres.
Los posprocesadores de mecánica del continuo y de elementos finitos recuperan un tensor de rotación a partir de un gradiente de deformación F leyendo el factor ortogonal y un tensor de estiramiento a partir del factor positivo, que es exactamente la descomposición polar derecha F = R U enseñada en todo curso de continuos.
Las tuberías de robótica, visión por computador e infografía resuelven el problema ortogonal de Procrustes —hallar la rotación más próxima a una aplicación tres por tres calculada— tomando el factor polar de esa aplicación, lo cual es más barato y estable en un worker de borde que ensamblar una biblioteca SVD densa explícita. Los códigos de control e identificación que deben proyectar una matriz casi ortogonal de vuelta sobre O(n) tras una actualización ruidosa hacen la misma proyección en una sola llamada. La validación fallida no consume saldo.
Mantenga n como máximo dieciséis, fije los factores redondeados en las pruebas y obtendrá U y P reproducibles para tareas, complementos LMS y workers de borde sin importar una biblioteca propia de álgebra lineal densa.
Qué puede hacer con ella
Del gradiente de deformación a rotación y estiramiento
Separe un gradiente de deformación de mecánica del continuo F = R U en una rotación ortogonal y un estiramiento semidefinido positivo único para posproceso o comprobaciones constitutivas.
Matriz ortogonal más próxima (Procrustes)
Proyecte una aplicación cuadrada ruidosa sobre O(n) leyendo el factor polar ortogonal, la rotación o reflexión única más cercana en la norma de Frobenius.
Comprobaciones de aula y de cuaderno
Permita que el alumnado envíe una matriz n por n y verifique U-traspuesta U = I, P = P-traspuesta y A = U P frente a los métodos del manual.
Preguntas frecuentes
¿Qué ocurre si la matriz es singular?
La descomposición polar sigue existiendo. P permanece como la raíz cuadrada PSD única de A-traspuesta A.
¿Y si la entrada no es una matriz numérica cuadrada?
Las cargas rectangulares, irregulares, vacías, ausentes o no numéricas se rechazan y no se facturan.
¿En qué se diferencia la descomposición polar de SVD o QR?
SVD escribe A = W Σ V-traspuesta con dos ortogonales y una diagonal. La descomposición polar lo pliega en A = U P con una ortogonal y un estiramiento PSD (U = W V-traspuesta, P = V Σ V-traspuesta). QR usa un factor triangular, no uno PSD.
¿Qué significan geométricamente los dos factores?
U es una rotación, o una rotación combinada con una reflexión, y P estira el espacio a lo largo de ejes perpendiculares según los valores singulares. Aplicar primero P y después U reproduce la matriz original.
¿Es la descomposición polar por la derecha o por la izquierda?
Por la derecha, A = U P, la que usan la mayoría de los libros. La forma por la izquierda coloca el estiramiento a la izquierda de U, calculado a partir de A por su traspuesta, y comparte el mismo factor ortogonal.
Herramientas relacionadas
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"matrix": [
[
2,
1
],
[
0,
3
]
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.polar_decomposition",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Límites
max_n | 16 |
max_abs_entry | 1000000000000000 |
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |
Notas técnicas
Una carga no cuadrada o no numérica falla con invalid_input y no se factura.
Contrato de entrada, camino SVD de Jacobi y forma de la respuesta
Un entero opcional precision entre cero y quince (diez por defecto) fija los decimales al redondear cada campo numérico de la respuesta. En el interior el solver construye la matriz de Gram G = A-traspuesta A, ejecuta una eigen-descomposición cíclica de Jacobi de G para obtener G = V Λ V-traspuesta, toma los valores singulares como las raíces cuadradas de los autovalores recortados, forma P = V diag(σ) V-traspuesta, construye los vectores singulares izquierdos W aplicando A a cada vector derecho y dividiendo por su valor singular, completa el núcleo con Gram-Schmidt modificado frente a la base canónica, y fija U = W V-traspuesta. Empareje las dos matrices factor con su propio gráfico si necesita una figura; este extremo devuelve solo números y no emite prosa paso a paso más allá del campo formula. Envíe un cuerpo JSON cuyo campo obligatorio matrix sea un arreglo cuadrado de filas de números finitos: n filas, cada una con exactamente n columnas, con n al menos uno y como máximo dieciséis. Se aceptan los alias a, A y mat. La ausencia de matrix, un no arreglo, un diseño irregular o rectangular, filas vacías, entradas no finitas, entradas de magnitud mayor que diez a la quince, o un n por encima del límite publicado fallan con invalid_input nombrando el campo; esos fallos no se facturan. La respuesta ecoa n, la matriz analizada, el factor ortogonal, el factor semidefinido positivo, los valores singulares descendentes, det_orthogonal (más o menos uno para una U bien condicionada), un booleano is_invertible, el residual de Frobenius de A menos U P, la precisión usada y una cadena breve de fórmula.
Preguntas técnicas
¿Cómo se calcula la descomposición polar de una matriz cuadrada?
Envíe un arreglo cuadrado de números finitos en matrix (alias a, A, mat). La API devuelve U ortogonal y P semidefinida positiva de modo que A = U P, más los valores singulares, det(U) y un residual de Frobenius.
¿Cuánto cuesta la calculadora de descomposición polar?
La herramienta del navegador es gratuita. Las solicitudes de API usan saldo prepago KIT a $0.002 por llamada exitosa; la entrada inválida no se factura.