Question about number format

1 次查看(过去 30 天)
When I calculate the eigenvectors of the following matrix:
mat=[1,2;2,1];
[V,D]=eig(mat)
I get:
V =
-0.7071 0.7071
0.7071 0.7071
However, this is not the correct answer, see Wolfram Alpha results or verify by yourself that the correct answer are the vectors:
[1,1] and [-1,1]
Could someone explain to be what went wrong here?

采纳的回答

Steven Lord
Steven Lord 2018-12-14
However, this is not the correct answer
You're assuming there is only one correct answer. That is not a valid assumption in this case.
Multiplying the eigenvector by any non-zero scalar just scales the eigenvector, and that scaled eigenvector still satisfies the equation that eigenvectors must satisfy. This makes sense if you look at the essential definition according to Wikipedia.
"In essence, an eigenvector v of a linear transformation T is a non-zero vector that, when T is applied to it, does not change direction. Applying T to the eigenvector only scales the eigenvector by the scalar value λ, called an eigenvalue."
See this example:
% Compute eigenvalues and eigenvectors
% A = magic(6)
[V, D] = eig(A)
% Does the first eigenvalue and eigenvector satisfy A*V = V*D?
shouldBeCloseToZeroVector1 = A*V(:, 1) - V(:, 1) * D(1, 1) % Close enough
% Multiple the first eigenvector by 2
twice = 2*V(:, 1);
% Does two times the first eigenvalue and eigenvector satisfy A*V = V*D?
shouldBeCloseToZeroVector2 = A*twice - twice * D(1, 1) % Also close enough
This is not a bug.

更多回答(1 个)

Mark Sherstan
Mark Sherstan 2018-12-14
编辑:Mark Sherstan 2018-12-14
The answer is correct, MATLAB is just outputting the unit vector answer.
, where i is either 1 or 2.

类别

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