Diagonalizar una matriz
Para la matriz con filas (2, 1) y (1, 2) obtiene los autovalores 3 y 1, la matriz diagonal D y la matriz de autovectores P, de modo que A = P·D·P⁻¹. Si una matriz no se puede diagonalizar, se lo indica con claridad. Gratis en su navegador.
- Gratis
- Funciona en su navegador
- Sin registro
- Sus datos no salen de su equipo
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
La calculadora de diagonalización de matrices toma una matriz cuadrada y devuelve su descomposición propia completa: los autovalores, la matriz diagonal D construida a partir de ellos y la matriz de cambio de base P cuyas columnas son los autovectores correspondientes, de modo que A = P·D·P⁻¹. La diagonalización convierte problemas difíciles en sencillos: las potencias de matrices, las exponenciales, las ecuaciones diferenciales y las cadenas de Markov se reducen a operaciones elemento a elemento una vez que la matriz está escrita en su base propia. En lugar de resolver el polinomio característico a mano o instalar una biblioteca numérica, usted envía los elementos y recibe la descomposición en una sola llamada determinista, con cada valor redondeado a la precisión que elija. El mismo código se ejecuta gratis en su navegador en esta página, de modo que puede comprobar una matriz pegándola y solo paga cuando automatiza el flujo de trabajo.
Qué significa diagonalizar una matriz
Una matriz cuadrada A es diagonalizable cuando tiene suficientes autovectores independientes para formar una base: n de ellos para una matriz n×n. En ese caso se puede escribir A = P·D·P⁻¹, donde D es una matriz diagonal que contiene los autovalores y P es la matriz de cambio de base cuyas columnas son los autovectores, en el mismo orden.
Esta descomposición es uno de los resultados centrales del álgebra lineal porque las matrices diagonales son triviales de manejar: elevar D a la quincuagésima potencia simplemente eleva cada elemento de la diagonal a la quincuagésima potencia. La calculadora de diagonalización de matrices calcula esta factorización directamente a partir de los elementos que usted proporciona.
Devuelve los autovalores ordenados de mayor a menor, la matriz diagonal D y la matriz P completa, de modo que puede verificar por sí mismo la identidad A·P = P·D o alimentar con las piezas el siguiente paso de su cálculo. Si la matriz no es cuadrada, la solicitud se rechaza, y si tiene autovalores complejos o carece de un conjunto completo de autovectores reales, la herramienta lo indica claramente en lugar de devolver números que parecen plausibles pero son incorrectos.
Cómo funciona el cálculo
El algoritmo es totalmente determinista —sin puntos de partida aleatorios ni números de iteraciones que cambien de una ejecución a otra—, de modo que la misma matriz produce siempre la misma descomposición. Las matrices simétricas, que aparecen constantemente en estadística, física y optimización, se tratan con barridos cíclicos de Jacobi: una secuencia de rotaciones planas que anula los elementos fuera de la diagonal mientras acumula las rotaciones en la matriz de autovectores.
Jacobi es lento en teoría para matrices enormes, pero resulta extremadamente preciso para los tamaños pequeños y medianos que acepta esta herramienta, y maneja sin problemas los autovalores repetidos, donde otros métodos fallan. Las matrices generales no simétricas se procesan con una iteración QR con desplazamiento de Wilkinson para extraer los autovalores, seguida de iteración inversa para recuperar un autovector para cada uno.
Antes de responder, la herramienta comprueba que la matriz de autovectores P sea invertible; si las columnas son casi paralelas, la matriz es defectuosa —como la clásica [[1,1],[0,1]]— y no puede diagonalizarse, por lo que la solicitud falla con un error claro en lugar de una respuesta silenciosamente rota. Cada valor de salida se redondea a la precisión decimal que usted solicite, de 0 a 15 decimales, con diez como valor predeterminado.
Dónde la utilizan los equipos
La diagonalización aparece en cualquier lugar donde un sistema lineal evoluciona con el tiempo. Los ingenieros que calculan el comportamiento a largo plazo de una cadena de Markov necesitan los autovalores para saber si la cadena converge y con qué rapidez; el autovalor dominante y su autovector dan el estado estacionario directamente. Los desarrolladores que trabajan con relaciones de recurrencia o ecuaciones en diferencias acopladas diagonalizan la matriz de transición para obtener una solución en forma cerrada en lugar de iterar.
En gráficos y geometría, descomponer una transformación revela los ejes a lo largo de los cuales estira el espacio. Los equipos de datos la usan como pieza fundamental: el análisis de componentes principales es la descomposición propia de una matriz de covarianza, y los métodos espectrales de grafos parten de los autovectores de un laplaciano.
Qué puede hacer con ella
Calcular potencias de matrices rápidamente
Obtenga P y D una sola vez y luego calcule A^k como P·D^k·P⁻¹: cada autovalor simplemente se eleva a la k-ésima potencia.
Analizar una cadena de Markov
Extraiga el autovalor dominante y su autovector para hallar la distribución estacionaria y la velocidad de convergencia.
Revisar tareas y trabajos de curso
Verifique una diagonalización resuelta a mano contra una referencia determinista antes de entregarla.
Preguntas frecuentes
¿Cuánto cuesta?
También es gratis ejecutarla en su navegador en esta página, con resultados idénticos.
¿Qué matrices se aceptan?
Cualquier matriz cuadrada de números reales y finitos hasta 50×50.
¿Qué pasa si mi matriz no se puede diagonalizar?
Las matrices con autovalores complejos, o las matrices defectuosas sin n autovectores reales independientes, se rechazan con un error claro en lugar de una respuesta aproximada.
¿Cómo se ordenan los resultados?
Los autovalores se devuelven de mayor a menor, y las columnas de la matriz de cambio de base P siguen el mismo orden.
¿Cómo verifico la respuesta?
Multiplique A·P y P·D: deben ser iguales. Para matrices simétricas, las columnas de P además son ortonormales, por lo que P⁻¹ es igual a la transpuesta de P.
¿Se almacena mi matriz en algún lugar?
No. Se procesa en memoria y se descarta; solo se devuelve la descomposición.
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/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)Ejemplo de solicitud
{
"matrix": [
[
2,
1
],
[
1,
2
]
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.diagonalize_matrix",
"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 | 50 |
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
Dónde la utilizan los equipos
Como la capacidad se ejecuta en nuestra red global de borde sin almacenar nada tras la respuesta, también encaja limpiamente en pipelines automatizados: un script puede enviar matrices como parte de un trabajo nocturno por $0.002 por llamada, mientras una persona comprueba las mismas matrices gratis en el navegador con resultados idénticos byte a byte. Esa paridad entre la herramienta web gratuita y la API de pago es deliberada: el mismo módulo impulsa ambas.