Mathematica Stack Exchange is a question and answer site for users of Mathematica. Join them; it only takes a minute:

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

Is there any faster way than using Eigensystem to diagonalize (get all the eigenvectors and eigenvalues) of a Hermitian (self-adjoint) matrix?

That would be amazing :).


share|improve this question
You are talking about matrices with numbers as elements, right? – halirutan Jan 21 '14 at 14:34
@halirutan , yes indeed, complex numbers in general. – Mencia Jan 21 '14 at 14:35
In the case where it is positive definite, possibly diagonalizing, via eigensystem, a Cholesky factor might give a speed boost. – Daniel Lichtblau Jan 21 '14 at 15:33
up vote 8 down vote accepted

I think the answer is no. Eigensystem already uses faster algorithms for Hermitian matrices. See what happens when I add a small non-Hermitian matrix:

n = 1000;

m = RandomComplex[1 + I, {n, n}];
h = m + ConjugateTranspose[m];
d = 10^-10 RandomComplex[1 + I, {n, n}];

Eigensystem[h]; // AbsoluteTiming
(* {2.971269, Null} *)

Eigensystem[h + d]; // AbsoluteTiming
(* {14.567275, Null} *)
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.