An issue with eigenvectors...
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
When i execute this it only shows the last vector, not the first or second one.
clc
clear variables;
prompt = ("Ingrese su matriz de coeficientes ");
w=input(prompt);
fprintf("La matriz ingresada es\n");
disp(w)
sz=size(w);
tm=sz(1,1);
p=round(poly(w));
e = eig(w);
fprintf('**Los valores propios del sistema son: \n');
disp(e);
v1=e(1,1);
v2=e(2,1);
v3=e(3,1);
tf=isreal(e);
if(tf==1)
fprintf('**Los vectores propios del sistema son: \n');
L1=null(w-(v1*eye(tm)), 'r');
disp(L1);
L2=null(w-(v2*eye(tm)), 'r');
disp(L2);
L3=null(w-(v3*eye(tm)), 'r');
disp(L3);
0 comentarios
Respuestas (1)
Bruno Luong
el 27 de Nov. de 2022
Remove the rational option "r" (not reliable) you'll be fine
w = magic(3)
disp(w)
sz=size(w);
tm=sz(1,1);
p=round(poly(w));
e = eig(w);
fprintf('**Los valores propios del sistema son: \n');
disp(e);
v1=e(1,1);
v2=e(2,1);
v3=e(3,1);
tf=isreal(e);
if(tf==1)
fprintf('**Los vectores propios del sistema son: \n');
L1=null(w-(v1*eye(tm)));
disp(L1);
L2=null(w-(v2*eye(tm)));
disp(L2);
L3=null(w-(v3*eye(tm)));
disp(L3);
end
3 comentarios
Bruno Luong
el 27 de Nov. de 2022
Editada: Bruno Luong
el 27 de Nov. de 2022
No "r" is NOT correct in general, as stated by the offiial doc page
Z = null(A,"rational") returns a rational basis for the null space of A that is typically not orthonormal. If A is a small matrix with small integer elements, then the elements of Z are ratios of small integers. This method is numerically less accurate than null(A).
It is just a toy option forr students who works with academic examples. That's why it fails to return the eigen vector randomly.
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!