Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Without qualification, the term eigenvectors (of a matrix) refers to the column eigenvectors (of a matrix) and can be directly computed with Eigenvectors[]. To get the row eigenvectors, one can invert the transpose of the matrix returned by Eigenvectors[] (or equivalently, the inverse of JordanDecomposition[][[1]]).

This approach is usually fast enough, but sometimes computing the inverse takes an enormous amount of time compared to just computing the column eigenvectors. This can happen when the column eigenvectors are partially symbolic or involve Root[].

Is there a better way to compute the row eigenvectors of a matrix? In particular, is there a way to compute the row eigenvectors as fast as the column eigenvectors?

share|improve this question
Assuming by "row eigenvector" you mean the left eigenvector, you can calculate this by calculating the regular (right) eigenvector of Transpose[a]. – bill s Nov 12 '13 at 15:36
Just compute directly the eigenvectors of the transpose matrix. – Daniel Lichtblau Nov 12 '13 at 15:36
Or compute the SVD, which gives you both the left and right eigenvectors. – R. M. Nov 12 '13 at 15:47
@rm-rf I'm not sure. For example, eigenvectors are not orthogonal for non-Hermitian matrices (Hermitian matrices are out of our scope because they have identical set of left and right eigenvectors) but SVD always returns two orthogonal sets. For definiteness one can calculate eigenvectors and SVD of {{1, 1}, {0, 2}}. – ybeltukov Nov 12 '13 at 18:08
up vote 3 down vote accepted

To compute left eigenvectors ( = "row eigenvectors") you can use


See also Daniel's answer here.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.