How to calculate eigenvectors without using eig
16 ビュー (過去 30 日間)
古いコメントを表示
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
0 件のコメント
回答 (2 件)
Matt J
2019 年 2 月 6 日
Hint: use the null command to find non-zero solutions to the eigenvector equation.
4 件のコメント
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)
v2 = v2 ./ norm(v2, 2)
3 件のコメント
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)
v2 = v2 ./ norm(v2, 2)
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)
That looks good to me.
Walter Roberson
2023 年 11 月 9 日
The question is about calculation of eigenvectors knowing the eigenvalues
参考
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!