ER1.23. Forma canónica de Jordan para un modelo con raíces reales y complejas

Introducción (planteamiento)

Dada la siguiente ecuación de estado de orden 7 obtener la forma canónica de Jordan utilizando MATLAB y analizar los resultados:

˙x=[1000000110300410200001210115130140211030241414119]x

Método (plan de solución)

Pasos (todos con MATLAB): i) calcular los valores y vectores propios con MATLAB, (ii) hallar la matriz de transformación compleja y obtener la forma canónica de Jordan, (iii) hallar la matriz de transformación real y obtener la forma canónica de Jordan, (iv) analizar los resultados.

Resultados (solución)

Cálculo de los valores y vectores propios con MATLAB:

A = [-1 0 0 0 0 0 0; -1 -1 0 -3 0 0 -4; -1 0 -2 0 0 0 0; 1 -2 1 0 1 1 5;1 -3 0 1 -4 0 2; 1 -1 0 3 0 -2 4; -1 4 -1 -4 1 -1 -9];
[V, L] =  eig(A) 

Los siete valores propios son: λ={4±2i,3,3,2,2,1}. Se tienen dos valores propios complejos, dos valores reales que se repite cada uno dos veces y un valor real sin repetir. El resultado anterior de MATLAB no permite determinar si a las raíces múltiples le corresponden o no vectores propios linealmente independientes, pero si se puede saber matemáticamente: 

mg=nrank(λIA)

Con MATLAB:

mg3 = 7 - rank(-3*eye(7) - A)
mg2 = 7 - rank(-2*eye(7) - A)

Los resultados son: mg(3)=1,mg(2)=2. Por lo tanto, para λ=3 se tiene un bloque de Jordan (con 1 arriba de la diagonal principal) y para λ=2 se tiene un bloque diagonal. 

Para obtener los vectores propios generalizados se debe utilizar la siguiente función de MATLAB, la cual entrega los vectores propios (incluyendo los generalizados) y la matriz A en la FCJ:

[VPG, AJ ] = jordan(A)

Resultado de MATLAB 1

La matriz compleja en la FCJ entregada por MATLAB es similar a la siguiente:

A=[4+2i000000042i0000000310000003000000020000000200000001]

La matriz real en la FCJ se obtiene con el siguiente código, la cual permite obtener la matriz real de transformación lineal T:

VPG2 = VPG; 
VPG2(:,3) = real(VPG(:,3)); 
VPG2(:,4) = imag(VPG(:,3));
T = inv(VPG2); 
AJ2 = T*A*inv(T) 

A=[4200000240000000310000003000000020000000200000001]

Discusión y verificación

Los resultados anteriores concuerdan con la teoría expuesta. En particular, si se quiere obtener la forma canónica de Jordan y la matriz de transformación lineal en los números reales es necesario utilizar la parte real y la parte imaginaria de los vectores propios complejos. 

Al principio la función eig de MATLAB entrega un resultado incorrecto (no detectable a simple vista) al no dar el vector propio generalizado para el caso de una raíz con multiplicidad geométrica menor que la multiplicidad algebraica, por lo que fue necesario calcular el vector propio generalizado. Para dicho cálculo se utilizó la función jordan de MATLAB. En definitiva, la función eig de MATLAB no entrega un resultado final en el cual se puede confiar.

Comentarios