Eigenvector calculation; to get dominant eigen vector
Ältere Kommentare anzeigen
I have a question regarding to eigenvector. The below simple script results in wrong eigenvectors.
mscalar=100; %kips/g
%sqrt(k/m) is calculated as 55.187
%kscalar
kscalar=mscalar*55.187^2;
k=kscalar*[2 -1 0 0 0;-1 2 -1 0 0;0 -1 2 -1 0;0 0 -1 2 -1;0 0 0 -1 1];
m=mscalar*[1 0 0 0 0;0 1 0 0 0;0 0 1 0 0;0 0 0 1 0;0 0 0 0 1];
[V,D]=eig(k,m);
V
sqrt(D)
2 Kommentare
Birdman
am 27 Okt. 2017
Are you trying to verify
k*V=m*V*D
Yunus Emre Bülbül
am 27 Okt. 2017
Bearbeitet: Yunus Emre Bülbül
am 27 Okt. 2017
Antworten (1)
John D'Errico
am 27 Okt. 2017
Bearbeitet: John D'Errico
am 27 Okt. 2017
The immediate answer is that eigenvectors are defined only to within a constant multiplier. Multiply an eigenvector by ANY constant, and it still satisfies the classic relationship
A*v = lambda*v
eig returns eigenvectors normalized to have unit norm, which is pretty standard. But in fact, there can always be an arbitrary factor of -1 in there. Just flip the signs on some of your eigenvectors, and nothing changes. The result is still completely valid. So sometimes you just get the wrong sign. People are always confused by that.
Note: If some of the eigenvalues had multiplicity greater than 1, there are other reasons why you can get differing eigenvectors. But that does not happen here.
Kategorien
Mehr zu Eigenvalues & Eigenvectors finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!