🧮 Computational Mathematics

Inicio · Parte 06 — Álgebra lineal II: descomposiciones y tensores

126 — Diagonalización

intermedio-avanzado clase 6 de 20 4 horas demostración diagonalization

Diagonalizar es elegir la base donde la transformación solo escala, y ahí las potencias son triviales.

Fórmulas

A = PDP⁻¹,  D diagonal de autovalores
simétrica: A = QDQᵀ con Q ortogonal
Aᵏ = PDᵏP⁻¹

Desarrollo

Si una matriz tiene una base completa de autovectores, se puede escribir como PDP⁻¹ con D diagonal. Esa factorización es un cambio de base: pasar a la base de autovectores, escalar cada eje por su autovalor y volver.

La ganancia práctica más visible está en las potencias. A¹⁰⁰ = PD¹⁰⁰P⁻¹, y elevar una diagonal a la centésima es elevar sus entradas. De multiplicar cien matrices se pasa a elevar n números. Es lo que permite analizar el comportamiento a largo plazo de una cadena de Markov (clase 199) sin simularla.

Para matrices simétricas el resultado es aún mejor: la base de autovectores puede elegirse ortonormal, así que P es ortogonal y P⁻¹ = Pᵀ. La factorización queda A = QDQᵀ, sin necesidad de invertir nada. Es el teorema espectral, y es la razón por la que las matrices simétricas son tan cómodas.

No toda matriz es diagonalizable. Las que tienen autovalores repetidos sin suficientes autovectores independientes no lo son, y para ellas existe la forma de Jordan. En la práctica numérica ese caso es inestable y se prefiere la SVD, que siempre existe.

Ejemplo trabajado

Diagonalizar una simétrica y elevarla a la décima.

A = [[4,1],[1,3]]

D = diag(4.6180, 2.3820)
Q = matriz ortogonal de autovectores

QDQᵀ reconstruye A                         ✓

A¹⁰ vía diagonalización:
  Q·diag(4.6180¹⁰, 2.3820¹⁰)·Qᵀ
  = [[ 4 259 552, 2 632 158],
     [ 2 632 158, 1 627 394]]

Coste: 2 exponenciaciones frente a 10 productos de matrices

Qué calcula el laboratorio

A = PDP⁻¹: la base donde la transformación solo escala.

python classes/part-06-algebra-lineal-ii-descomposiciones-y-tensores/126-diagonalizacion/lab.py
compmath run 126

Salidas del laboratorio (7)

Muestra de la ejecución real

{
  "A": [
    [
      4.0,
      1.0
    ],
    [
      1.0,
      3.0
    ]
  ],
  "D_diagonal": [
    [
      4.61803399,
      0.0
    ],
    [
      0.0,
      2.38196601
    ]
  ],
  "P_ortogonal": [
    [
      0.85065081,
      -0.52573111
    ],
    [
      0.52573111,
      0.85065081
    ]
  ],
  "PDPᵀ": [
    [
      4.0,
      1.0
    ],
    [
      1.0,
      3.0
    ]
  ],
  "reconstruccion_ok": true,
  "A^10_via_D": [
    [
      3193706.0,
      1970185.0
    ],
    [
      1970185.0,
      1223521.0
    ]
  ]
}

Errores comunes

Dónde se usa

Potencias de matrices, cadenas de Markov, análisis modal, PCA y ecuaciones diferenciales lineales.

Idea rectora de la parte

Diagonalizar es elegir la base donde la transformación solo escala.

Error a evitar

Confundir el orden de los índices al reordenar un tensor.

Conexión con IA

LoRA factoriza matrices de bajo rango, la atención se define con productos tensoriales y la estabilidad del entrenamiento depende del espectro de los pesos.

Bibliografía de la clase

Archivos de la clase