MATLAB: Question about number format

eigenvectorsnumber format

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?

Best Answer

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.