My purpose is to find a eigenvectors of a matrix. In Matlab, there is a [V,D] = eig(M)
to get the eigenvectors of matrix by using: [V,D] = eig(M)
.
As woodchips points out (+1), eigenvectors are unique only up to a linear transformation. This fact is readily apparent from the definition, ie an eigenvector/eigenvalue pair solve the characteristic function A*v = k*v, where A is the matrix, v is the eigenvector, and k is the eigenvalue.
Let's consider a much simpler example than your (horrendous looking) question:
M = [1, 2, 3; 4, 5, 6; 7, 8, 9];
[EigVec, EigVal] = eig(M);
Matlab yields:
EigVec =
-0.2320 -0.7858 0.4082
-0.5253 -0.0868 -0.8165
-0.8187 0.6123 0.4082
while Mathematica yields:
EigVec =
0.2833 -1.2833 1
0.6417 -0.1417 -2
1 1 1
From the Matlab documentation:
"For eig(A), the eigenvectors are scaled so that the norm of each is 1.0.".
Mathematica on the other hand is clearly scaling the eigenvectors so that so the final element is unity.
Even just eyeballing the outputs I've given, you can start to see the relationships emerge (in particular, compare the third eigenvector from both outputs).
By the way, I suggest you edit your question to have a more simple input matrix M
, such as the one I've used here. This will make it much more readable for anyone who visits this page in the future. It is actually not that bad a question, but the way it is currently formatted will likely cause it to be down-voted.