Valores propios
Descomposición en valores propios
Un valor propio y un vector propio de una matriz cuadrada A son, respectivamente, un escalar λ y un vector distinto de cero υ que satisfacen
Aυ = λυ.
Con los valores propios en la diagonal de una matriz diagonal Λ y los correspondientes vectores propios formando las columnas de una matriz V, se tiene que
AV = VΛ.
Si V no es singular, esta expresión se convierte en la descomposición en valores propios
A = VΛV–1.
Un buen ejemplo es la matriz de coeficientes de la ecuación diferencial dx/dt = Ax:
A = 0 -6 -1 6 2 -16 -5 20 -10
La solución a esta ecuación se expresa en términos de la exponencial de matriz x(t) = etAx(0). La instrucción
lambda = eig(A)
produce un vector columna que contiene los valores propios de A
. Para esta matriz, los valores propios son complejos:
lambda = -3.0710 -2.4645+17.6008i -2.4645-17.6008i
La parte real de cada uno de los valores propios es negativa, y por eso eλt tiende a cero a medida que aumenta t. La parte imaginaria no nula de dos de los valores propios, ±ω, aporta el componente oscilatorio, sin(ωt), a la solución de la ecuación diferencial.
Con dos argumentos de salida, eig
calcula los vectores propios y almacena los valores propios en una matriz diagonal:
[V,D] = eig(A)
V = -0.8326 0.2003 - 0.1394i 0.2003 + 0.1394i -0.3553 -0.2110 - 0.6447i -0.2110 + 0.6447i -0.4248 -0.6930 -0.6930 D = -3.0710 0 0 0 -2.4645+17.6008i 0 0 0 -2.4645-17.6008i
El primer vector propio es real y los otros dos vectores son conjugados complejos entre sí. Los tres vectores están normalizados de manera que su longitud euclidiana, norm(v,2)
, es igual a uno.
La matriz V*D*inv(V)
, que se puede escribir de forma más concisa como V*D/V
, coincide con A
dentro del error de redondeo. Por su parte, inv(V)*A*V
, o V\A*V
, coincide con D
dentro del error de redondeo.
Valores propios múltiples
Algunas matrices no tienen descomposición en valores propios. Estas matrices no se pueden diagonalizar. Por ejemplo:
A = [ 1 -2 1 0 1 4 0 0 3 ]
Para esta matriz
[V,D] = eig(A)
produce
V = 1.0000 1.0000 -0.5571 0 0.0000 0.7428 0 0 0.3714 D = 1 0 0 0 1 0 0 0 3
Hay un valor propio doble en λ = 1. La primera y la segunda columna de V
son iguales. Para esta matriz, no existe un conjunto completo de vectores propios linealmente independientes.
Descomposición de Schur
Muchos cálculos matriciales avanzados no requieren descomposiciones en valores propios. En su lugar, están basados en la descomposición de Schur
A = USU ′ ,
donde U es una matriz ortogonal y S es una matriz triangular superior por bloques, con bloques de 1 por 1 y de 2 por 2 en la diagonal. Los valores propios se muestran mediante los elementos y bloques diagonales de S, mientras que las columnas de U proporcionan una base ortogonal con propiedades numéricas mucho mejores que las de un conjunto de vectores propios.
Por ejemplo, compare el valor propio y las descomposiciones Schur de esta matriz defectuosa:
A = [ 6 12 19 -9 -20 -33 4 9 15 ]; [V,D] = eig(A)
V = -0.4741 + 0.0000i -0.4082 - 0.0000i -0.4082 + 0.0000i 0.8127 + 0.0000i 0.8165 + 0.0000i 0.8165 + 0.0000i -0.3386 + 0.0000i -0.4082 + 0.0000i -0.4082 - 0.0000i D = -1.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 1.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 0.0000 + 0.0000i 1.0000 - 0.0000i
[U,S] = schur(A)
U = -0.4741 0.6648 0.5774 0.8127 0.0782 0.5774 -0.3386 -0.7430 0.5774 S = -1.0000 20.7846 -44.6948 0 1.0000 -0.6096 0 0.0000 1.0000
La matriz A
es defectuosa, ya que no tiene un conjunto completo de vectores propios linealmente independientes (la segunda y tercera columna de V
son iguales). Debido a que no todas las columnas de V
son linealmente independientes, tiene un número de condición grande de aproximadamente ~1e8
. Sin embargo, schur
puede calcular tres vectores de base diferentes en U
. En vista de que U
es ortogonal, cond(U) = 1
.
La matriz S
tiene el valor propio real como la primera entrada en la diagonal y el valor propio repetido representado por el bloque de 2 por 2 de la parte inferior derecha. Los valores propios del bloque de 2 por 2 también son valores propios de A
:
eig(S(2:3,2:3))
ans = 1.0000 + 0.0000i 1.0000 - 0.0000i