Eigenvector calculation; to get dominant eigen vector

조회 수: 7 (최근 30일)
Yunus Emre Bülbül
Yunus Emre Bülbül 2017년 10월 27일
편집: Yunus Emre Bülbül 2017년 10월 27일
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
Birdman
Birdman 2017년 10월 27일
Are you trying to verify
k*V=m*V*D
Yunus Emre Bülbül
Yunus Emre Bülbül 2017년 10월 27일
편집: Yunus Emre Bülbül 2017년 10월 27일
No actually. I need eigenvectors also to be calculated from the eigenvalues obtained from the analysis which are correct. But at the end k*V=m*V*D will be verified.

댓글을 달려면 로그인하십시오.

답변 (1개)

John D'Errico
John D'Errico 2017년 10월 27일
편집: John D'Errico 2017년 10월 27일
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.

카테고리

Help CenterFile Exchange에서 Linear Algebra에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by