How to calculate eigenvectors without using eig

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일

0 개 추천

Hint: use the null command to find non-zero solutions to the eigenvector equation.

댓글 수: 4

can you explain further please, i don't understand what you mean
Matt J
Matt J 2019년 2월 6일
편집: Matt J 2019년 2월 6일
There is a Matlab command called null (documentation here) which will find vectors in the null space of a matrix.
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

You're still using eig builtin function.
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.
The question is about calculation of eigenvectors knowing the eigenvalues

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

카테고리

도움말 센터File Exchange에서 Linear Algebra에 대해 자세히 알아보기

질문:

2019년 2월 6일

댓글:

2023년 11월 9일

Community Treasure Hunt

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

Start Hunting!

Translated by