Suppose I have the following input

a = Import["d:\am.txt", "Table"];

b = Import["d:\bm.txt", "Table"];

c = Eigenvalues[N[{a, b}, 5]];


where am.txt is

3.0 2.0

2.0 3.0

bm.txt is

1.0 0.8

0.8 1.0

Mathematica gives me 2.77778

My question is, how to obtain the eigenvector correspond to this eigenvalue? I can figure it out by hand for 2*2 problem. But for general case, it is not so simple..

  • 1
    $\begingroup$ You may use Eigensystem to get the eigenvalues together with their corresponding eigenvectors. For example, Eigensystem[N[{a, b}, 5], -1] for the smallest eigenvalue. $\endgroup$ Commented Mar 4, 2015 at 14:58
  • $\begingroup$ Good thing I updated the window; almost posted same a minute later. $\endgroup$ Commented Mar 4, 2015 at 15:00
  • $\begingroup$ @Oleksandr R The tricky point is, Eigensystem choose the smallest absolute of eigenvalues, Min choose the smallest eigenvalue. If there are -1.0 and 0.1 two eigenvalues, Eigensystem will choose 0.1, while Min choose -1.0 (this is what I want) $\endgroup$
    – user26143
    Commented Mar 4, 2015 at 15:40
  • 1
    $\begingroup$ If the matrix is Hermitian so all real eigenvalues, then you can do an estimate for the maximal eigenvalue norm, call it m, and use Eigensystem[mat-IdentityMatrix[Length[mat]]*m, 1]. Note that we now are taking the largest, not smallest. $\endgroup$ Commented Mar 4, 2015 at 22:11
  • 1
    $\begingroup$ Re duplicate, I think the correct one is here (which is referenced from the one provided). $\endgroup$ Commented Mar 4, 2015 at 22:12


Browse other questions tagged or ask your own question.