Está en la página 1de 6

diagonalizacion.

nb 1

Diagonalización de matrices
Práctica de Álgebra Lineal, E.U.A.T., Grupos 1ºA y 1ºB, 2005

à Algo de teoría

Ÿ ¿Qué es diagonalizar una matriz?

Para estudiar una matriz suele ser conveniente expresarla de forma lo más sencilla posible. Diagonalizar una matriz A es
precisamente eso: escribirla de manera simple encontrando una matriz invertible P y una diagonal D (si se puede) tales que

A = P D P-1

La matriz P se llama matriz de paso.

Puede que esto, al principio, no parezca más simple de lo que ya era A directamente. Sin embargo, lo es desde muchos
puntos de vista. Dado que las matrices suelen usarse para representar aplicaciones lineales, la expresión anterior puede verse
como un cambio de base de la aplicación representada por A; entonces, esta forma de escribirlo dice: hay una base en la que
la aplicación lineal A tiene una forma muy simple (diagonal). Esto es útil, por ejemplo, para clasificar una aplicación lineal
y estudiar sus propiedades. Las matrices se usan para representar otras cosas como cónicas, cuádricas o formas bilineales, y
en estos casos también resulta útil esta forma de expresarlas.

La relación anterior entre las matrices A y D es importante y aparece en muchos contextos, así que tiene nombre propio:

Cuando dos matrices cuadradas A y B verifican que A = P B P-1 para cierta


matriz cuadrada P (invertible, claro) decimos que A y B son semejantes.
Una matriz es diagonalizable cuando se puede diagonalizar; es decir, cuando podemos encontrar una matriz diagonal y una
invertible de forma que la matriz se escriba como dijimos antes. Dicho de otra forma: una matriz es diagonalizable cuando
es semejante a una matriz diagonal. En estas prácticas sólo consideraremos como diagonalizables las matrices que sean
semejantes a una matriz diagonal real. Entonces, más exactamente: una matriz es diagonalizable cuando es semejante a
una matriz diagonal real.

Ÿ ¿Cuándo y cómo podemos diagonalizar una matriz?

Si conseguimos escribir una matriz A como A = P D P-1 , entonces podemos poner también A P = P D. Si D es diagonal y
nos fijamos en la columna i de esta última igualdad lo que tenemos es que A xi = Λi xi (donde xi es la columna i de A y Λi
es el número en el lugar i de la diagonal de D). Esto nos dice que para diagonalizar una matriz nos hace falta conocer los
vectores a los que les pase algo así. Estos vectores también tienen nombre:
diagonalizacion.nb 2

Si un número Λ y un vector no nulo x verifican la relación A x = Λ x diremos que Λ


es un valor propio o autovalor de la matriz A y que x es un vector propio o autovec-
tor de A asociado al valor propio Λ.
Es fácil ver que diagonalizar una matriz A de tamaño n×n es lo mismo que encontrar n vectores propios linealmente indepen-
dientes asociados a valores propios reales, ya que entonces podemos ponerlos por columnas y conseguir así la matriz P
(puedes comprobar que entonces se cumple la relación que buscamos). Entonces, para diagonalizar una matriz lo que
tenemos que hacer es buscar n vectores propios suyos linealmente independientes asociados a valores propios reales.

Ÿ ¿Cómo encontrar valores y vectores propios de una matriz?

Es fundamental, pues, hallar los valores propios de A y los vectores propios asociados. Como un vector propio Λ hace que el
sistema Ax = Λx tenga solución x distinta de cero, la matriz de coeficientes A − ΛI (donde I denota la matriz identidad de
orden n) debe tener determinante no nulo. Este determinante det(A−Λ I) es un polinomio en Λ de grado n y se denomina
polinomio característico de A. Por lo tanto, los valores propios de A serán los ceros del polinomio característico de A.
Observa que una matriz puede perfectamente tener valores propios imaginarios.

Por otro lado, el conjunto de vectores propios de A asociados a un mismo valor propio Λ forman un subespacio vectorial de
Rn que se llama subespacio propio asociado al valor propio Λ, y es el nú clea de la matriz A − ΛI. Para concluir si una
matriz A es o no diagonalizable bastará pues averiguar si hay "suficientes" valores propios reales para construir D y si hay
"suficientes" vectores propios linealmente independientes asociados; esta información nos la dará la dimensión de los
subespacios propios y queda recogida en el siguiente resultado:

Una matriz real cuadrada de orden n es diagonalizable si y sólo si tiene n vectores


propios linealmente independientes asociados a valores propios reales.
Además, el teorema espectral nos confirma un caso en el que siempre es posible diagonalizar:

Toda matriz real simétrica es diagonalizable.


En este caso,se puede conseguir además que las columnas de la matriz de paso P sean una base ortonormal y por lo tanto
que P sea una matriz ortogonal.

à Diagonalizar matrices usando Mathematica


Un ordenador puede ayudarnos a encontrar los valores y vectores propios de una matriz fácilmente. Desde luego, siempre
podemos hacer las mismas cuentas que hacemos a mano (encontrar el polinomio característico, hallar sus raíces, resolver los
sistemas lineales necesarios...), pero Mathematica tiene dos órdenes útiles para esto: Eigenvalues y Eigenvectors (los
nombres de estos comandos son las palabras en inglés para valor propio y vector propio, que a su vez toman su nombre del
alemán).

In[8]:= A = 882, 2, -2<, 86, 9, -17<, 86, -3, -5<<;


B = 881, 1, 0<, 80, 1, 1<, 80, 0, 1<<;

In[10]:= A  MatrixForm

i
j
-2 y
z
Out[10]//MatrixForm=

j
j z
j 6 9 -17 z
j z
z
2 2

k 6 -3 -5 {
diagonalizacion.nb 3

In[11]:= B  MatrixForm

i1 1 0z
j y
Out[11]//MatrixForm=

j
j z
j0 1 1z
j z
z
k0 0 1{

Eigenvalues nos da los valores propios de una matriz cuadrada:

In[12]:= Eigenvalues@AD

Out[12]= 8-8, 2, 12<

In[13]:= Eigenvalues@BD

Out[13]= 81, 1, 1<

Eigenvectors da una lista formada por vectores propios independientes de una matriz n×n y posiblemente algunos vectores
nulos. Estos vectores formarán una base cuando la matriz sea diagonalizable e incluirán vectores nulos cuando no lo sea:

In[14]:= Eigenvectors@AD

Out[14]= 880, 1, 1<, 85, 3, 3<, 8-20, -91, 9<<

In[15]:= Eigenvectors@BD

Out[15]= 881, 0, 0<, 80, 0, 0<, 80, 0, 0<<

Nosotros sólo consideraremos una matriz como diagonalizable cuando sus valores propios sean todos reales: si no
aparece ningún vector nulo ni ningún vector complejo en la salida de la orden Eigenvectors, la matriz es diagonaliz-
able. Si no, no lo es.

La orden Eigensystem da los mismos resultados que Eigenvalues y Eigenvectors, pero todo junto, y además con la segu-
ridad de que los autovalores y los autovectores van en el orden correcto: el primer vector propio corresponde al primer valor
propio, el segundo al segundo...

In[16]:= Eigensystem@AD

Out[16]= 88-8, 2, 12<, 880, 1, 1<, 85, 3, 3<, 8-20, -91, 9<<<

Una última observación sobre estas órdenes: a veces es mejor escribir Eigenvalues[N[A]] en lugar de Eigenvalues[A]
para obtener resultados numéricos en lugar de resultados exactos que no podemos manejar bien.

à Ejemplos

Ÿ Una matriz diagonalizable


In[17]:= A = 8824, -10, 8<, 8-7, 33, 4<, 80, 0, 38<<;
A  MatrixForm

i 24 -10 8 z
j y
Out[18]//MatrixForm=

j
j 4 zz
j
j -7 33 z
z
k 0 0 38 {
diagonalizacion.nb 4

In[19]:= 8valorespropios, vectorespropios< = Eigensystem@AD

Out[19]= 8819, 38, 38<, 882, 1, 0<, 84, 0, 7<, 8-5, 7, 0<<<

In[20]:= vectorespropios

Out[20]= 882, 1, 0<, 84, 0, 7<, 8-5, 7, 0<<

Como el resultado son tres vectores (y ninguno de ellos es cero), sabemos que esta matriz es diagonalizable (si queréis
podéis comprobar que estos vectores son de verdad independientes).

Para diagonalizar la matriz A no tenemos más que elegir la siguiente como matriz P (los vectores propios, puestos por
columnas):

In[21]:= P = Transpose@vectorespropiosD

Out[21]= 882, 4, -5<, 81, 0, 7<, 80, 7, 0<<

Y como matriz D, la siguiente:

In[22]:= Diag = DiagonalMatrix@valorespropiosD

Out[22]= 8819, 0, 0<, 80, 38, 0<, 80, 0, 38<<

In[23]:= Diag  MatrixForm

i 19 0 0 z
j y
Out[23]//MatrixForm=

j
j z
j 0 38 0 z
j z
z
k 0 0 38 {

In[24]:= A Š P.Diag.Inverse@PD

Out[24]= True

Ÿ Una matriz no diagonalizable


In[25]:= B = 880, 1, 0<, 80, 0, 1<, 82, -5, 4<<;
MatrixForm@BD

i
j
0 1 0y
z
Out[26]//MatrixForm=

j
j z
j0 0 1z
j z
z
k 2 -5 4 {

Probemos a hacer lo mismo con la matriz B:

In[27]:= Eigenvectors@BD

Out[27]= 881, 1, 1<, 80, 0, 0<, 81, 2, 4<<

Vemos que aparece un vector nulo en la lista anterior. Esto significa que Mathematica no ha podido encontrar tres vectores
propios linealmente independientes (sólo ha encontrado dos) y que no podemos diagonalizar esta matriz.

Otro ejemplo:
diagonalizacion.nb 5

In[28]:= M = 881, 2, -3<, 84, 5, 6<, 87, 8, 9<<;


Eigenvalues@N@MDD
Out[29]= 813.2969, 0.851565 + 0.792805 ä, 0.851565 - 0.792805 ä<

Esta matriz tiene valores propios que no son reales (aparecen números imaginarios). En este caso (aunque es posible
diagonalizar estas matrices usando matrices con números complejos) diremos que esta matriz NO es diagonalizable. Si
intentáis calcular sus vectores propios veréis que también se obtienen números complejos.

Ÿ Una matriz simétrica: diagonalización con matriz de paso ortogonal


In[30]:= F = 88-1, 1, 0<, 81, -1, 0<, 80, 0, -2<<;
F  MatrixForm

i
j
0 y
z
Out[31]//MatrixForm=

j
j z
j 1 -1 0 z
j z
z
-1 1

k 0 0 -2 {

In[32]:= 8valorespropiosF, vectorespropiosF< = Eigensystem@FD

General::spell1 :
Possible spelling error: new symbol name "valorespropiosF" is similar to existing symbol "valorespropios".

General::spell1 :

Out[32]= 88-2, -2, 0<, 880, 0, 1<, 8-1, 1, 0<, 81, 1, 0<<<
Possible spelling error: new symbol name "vectorespropiosF" is similar to existing symbol "vectorespropios".

Como hay tres vectores (en la segunda parte de la lista anterior) y ninguno nulo, podemos diagonalizar esta matriz (sabemos
que siempre se puede con una matriz simétrica). Pero la matriz P obtenida no es ortogonal, y en el caso especial de una
matriz simétrica nos gustaría que la matriz de paso lo fuera:

In[33]:= P = Transpose@vectorespropiosFD

Out[33]= 880, -1, 1<, 80, 1, 1<, 81, 0, 0<<

In[34]:= H* Esto no es la identidad *L


P.Transpose@PD
Out[34]= 882, 0, 0<, 80, 2, 0<, 80, 0, 1<<

Para que además la matriz de paso sea ortogonal necesitamos conseguir tres vectores propios independientes que además
formen una base ortonormal. Para eso debemos convertir en ortonormal la base vpF de forma que además sigan siendo
vectores propios asociados a valores propios en el mismo orden. El proceso de Gram−Schmidt nos permite esto. Podemos
aplicar el proceso nosotros mismos o cargar en memoria un paquete que lo hace automáticamente (¡cuidado con las
comillas!):

In[35]:= << LinearAlgebra‘Orthogonalization‘

In[36]:= vectorespropiosF2 = GramSchmidt@vectorespropiosFD

Out[36]= 980, 0, 1<, 9- €€€€€€€€€ !!!!€ , 0=, 9 €€€€€€€€€


!!!!€ , €€€€€€€€€ !!!!€ , €€€€€€€€€
!!!!€ , 0==
1 1 1 1
2 2 2 2
diagonalizacion.nb 6

In[37]:= P = Transpose@vectorespropiosF2D

Out[37]= 990, - €€€€€€€€€ !!!!€ =, 90, €€€€€€€€€


!!!!€ , €€€€€€€€€ !!!!€ =, 81, 0, 0<=
!!!!€ , €€€€€€€€€
1 1 1 1
2 2 2 2

In[38]:= H* Comprobamos que ésta sí es ortogonal *L


P.Transpose@PD
Out[38]= 881, 0, 0<, 80, 1, 0<, 80, 0, 1<<

In[39]:= H* Definimos la matriz diagonal *L


Diag = DiagonalMatrix@valorespropiosFD
Out[39]= 88-2, 0, 0<, 80, -2, 0<, 80, 0, 0<<

In[40]:= MatrixForm@DiagD

i -2 0 0 z
j y
Out[40]//MatrixForm=

j
j z
j 0 -2 0 z
j z
z
k 0 0 0 {

(Vemos que de verdad es diagonal)

In[41]:= H* Comprobamos que de verdad diagonaliza F *L


F Š P.Diag.Inverse@PD
Out[41]= True

à Ejercicios
1− Diagonaliza la matriz A={{5,2,1},{2,7,0},{1,0,−3}}. ¿Cuál es su polinomio característico? ¿Cuáles son sus valores
propios?

2− Calcula los valores propios de la matriz A={{2, 5, 0}, {0, 3, 5}, {0, 0, 3}} y las dimensiones de los subespacios propios
asociados a cada uno. Determina si es diagonalizable.

3−Dada la matriz A={{3,0,2},{0,2,0},{2,0,0}},

a) Calcula sus valores propios y comprueba que es diagonalizable.


b) Halla una matriz de paso ortogonal que la diagonalice.
c) Obtén la expresión de An (para cualquier n).

4−Dada la matriz A={{1,−1,1},{−1,1,−1},{1,−1,1}},

a) Decide si A es diagonalizable.
b) Calcula sus valores propios y vectores propios asociados. Da una base del subespacio de vectores
propios asociado al valor propio 0.
c) Encuentra una matriz P tal que A = P D Pt , con D una matriz diagonal.

5−Diagonaliza por semejanza ortogonal la matriz simétrica


A={{1,−1,0,0},{−1,0,2,0},{0,2,4,1},{0,0,1,2}}

También podría gustarte