Matlab - Autovectores de una matriz

 
Vista:
sin imagen de perfil

Autovectores de una matriz

Publicado por Feebas (4 intervenciones) el 11/11/2017 03:01:45
Me ha surgido el siguiente problema : Tengo una matriz asociada a una transformación lineal , y quiero determinar el caso cuando una matriz no es diagonalizable basándome en el teorema que indica que : la multiplicidad algebraica debe ser igual a la multiplicidad geométrica . Bueno el caso es que al momento de sacar los autovectores siempre me dará la misma multiplicidad geométrica en comparación con la multiplicidad algebraica. Ejemplo:
4 2 0
0 3 2
0 0 -1

valores propios : 3 -> multiplicidad algebraica = 2
-1-> multiplicidad algebraica = 1 autovectores (multiplicidad geometrica): 1.0000 -1.0000 0 0 0.0000 -0.4472 -------> pero los autovectores en este ej serian 0 0 0.8944 (1,0,0) , ( 0,1,-2) Por lo que multiplicidad algebraica = 3 es distinta a multiplicidad geométrica =2 . Por lo tanto no es diagonalizable.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
disp(' espacio vectorial de R3->R3');
str =input('Ingrese la transformación [ , , ]\n','s');
x=1;
y=0;
z=0;
a=eval(str);
x=0;
y=1;
z=0;
b=eval(str);
x=0;
y=0;
z=1;
c=eval(str);
M=vertcat(a,b,c);
M=M';
disp('La matriz de transfomación es:');
disp(M);
coef=eig(M);
disp('Los valores propios son:');
disp(coef);
[V , D ]=eig(M);
disp('Los vectores propios son:');
disp(v);
if(length(coef)==length(V))
    disp('es diagonalizable');
    disp(D);
else
    disp('no es diagonalizable');
end
break;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Autovectores de una matriz

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 11/11/2017 03:51:04
puedes buscar los casos donde el autovector de la matriz no se repite con la función unique y agregando un redondeo, ya que matlab calcula los autovectores utilizando un método numérico y por lo tanto las cifras significativas cambian y puede que dos autovectores que sean iguales en teoría en Matlab sean diferentes por unas cuantas décimas así que puedes hacer por ejemplo

1
2
3
4
5
6
a=[0 1 0
0 0 1
2 -5 4]
if length(round(eig(a),4))~=length(unique(round(eig(a),4)))
disp('no es diagonalizable')
end


y te resulta que no es diagonalizable porque tiene un autovalor que se repiten dos veces, espero te sea de alguna ayuda!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Autovectores de una matriz

Publicado por Feebas (4 intervenciones) el 12/11/2017 03:18:33
estoy probando con dos matrices:
(3 0 1)
(0 3 2) que es diagonalizable y me da los vectores correctos, <(1,0,0),(0,1,0),(-1/4,-1/2,1)>
(0 0 -1)

(3 2 1)
(0 3 2)
(0 0 -1)
que es no es diagonizable y en matlab me da vectores incorrectos <(1,0,0).(1,0,0),(0,-1/2,1))> y debería ser <(1,0,0),(0,-1/2,1))>

no sé cómo hacer que ponga los vectores correctos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Autovectores de una matriz

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 12/11/2017 19:56:29
la explicación te la puse en la respuesta inicial, MATLAB es un programa que trabaja con métodos numéricos, una cosa es que tú hagas el cálculo resolviendo la ecuación y que tengas la respuesta exacta y otra es que Matlab trabaje con métodos numéricos iterativos para darte una respuesta, por tanto estos métodos iterativos siempre te van a dar valores que tú debes interpretar, así que esos vectores no son incorrectos, ahí te está mostrando que uno de ellos se repite y para las aplicaciones en la vida real de los eigenvectores y eigenvalores es mejor expresarlos de esa forma, ya que con esa matriz expresada de esa forma se pueden hacer transformaciones lineales y otra serie de cosas utilizadas por el mismo programa para análisis avanzados
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar