Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
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:
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
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:
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{
In[12]:= Eigenvalues@AD
In[13]:= Eigenvalues@BD
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
In[15]:= Eigenvectors@BD
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
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
Out[19]= 8819, 38, 38<, 882, 1, 0<, 84, 0, 7<, 8-5, 7, 0<<<
In[20]:= vectorespropios
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
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
i
j
0 1 0y
z
Out[26]//MatrixForm=
j
j z
j0 0 1z
j z
z
k 2 -5 4 {
In[27]:= Eigenvectors@BD
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
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.
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 {
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
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[37]:= P = Transpose@vectorespropiosF2D
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 {
à 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.
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.