How to calculate eigenvectors without using eig

조회 수: 15 (최근 30일)
IDRIS Badmus
IDRIS Badmus 2019년 2월 6일
댓글: Walter Roberson 2023년 11월 9일
I have a matrix, I need to get the eigenvectors. I already calculated the eigenvalues, Let's assume we have the eigenvalues, I wrote this
for i = 1:length(c)
syms y
cal_vec = (c-eig_Val(i)*I)*y == 0;
eigVec(:,i) = double(solve(cal_vec,y));
end
now I got zero as y, but I need to get y 1 and y2

답변 (2개)

Matt J
Matt J 2019년 2월 6일
Hint: use the null command to find non-zero solutions to the eigenvector equation.
  댓글 수: 4
Tyler Bilheimer
Tyler Bilheimer 2021년 4월 17일
I dont understand where you're even supposed to put null in this
Matt J
Matt J 2021년 4월 18일
편집: Matt J 2021년 4월 18일
Well, the eigenvectors are by definition the null vectors of the matrix , so it should be straightforward to build that matrix and apply null() to it.

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


Angelo Yeo
Angelo Yeo 2023년 7월 6일
Although this question is getting old, here is a sample solution to the question.
A=[2 1; 1, 2]; % A
lambdaA = round(eig(A)); % Finds values of A
% Note that "rational" option is used otherwise SVD is used in the
% calculation.
v1 = null(A - lambdaA(1) * eye(2), "rational");
v2 = null(A - lambdaA(2) * eye(2), "rational");
v1 = v1 ./ norm(v1, 2)
v1 = 2×1
-0.7071 0.7071
v2 = v2 ./ norm(v2, 2)
v2 = 2×1
0.7071 0.7071
  댓글 수: 3
Steven Lord
Steven Lord 2023년 11월 9일
A=[2 1; 1, 2]; % A
lambdaA = [1, 3]; % Eigenvalues calculated earlier
% Note that "rational" option is used otherwise SVD is used in the
% calculation.
v1 = null(A - lambdaA(1) * eye(2), "rational");
v2 = null(A - lambdaA(2) * eye(2), "rational");
v1 = v1 ./ norm(v1, 2)
v1 = 2×1
-0.7071 0.7071
v2 = v2 ./ norm(v2, 2)
v2 = 2×1
0.7071 0.7071
Now, to check v1 and v2, let's call eig and compare the result of the code above with the "known" answer.
[V, D] = eig(A)
V = 2×2
-0.7071 0.7071 0.7071 0.7071
D = 2×2
1 0 0 3
That looks good to me.
Walter Roberson
Walter Roberson 2023년 11월 9일
The question is about calculation of eigenvectors knowing the eigenvalues

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

카테고리

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