I have the following simple code to compute the eigenspectrum of a complex symmetric matrix A, and its column of eigenvectors Q:

A = {{1.0 + I, I, 0}, {I, I, I}, {0, I, I}};
eig = Eigensystem[A];
Q = Transpose[eig[[2]]]; (*column of eigenvectors, s.t. Q^-1AQ = 1*)

Let us consider two operations. Firstly

Transpose[Q].Q // MatrixForm // Chop

gives 0 along the off-diagonals but non-zero numbers along the diagonals; and

Transpose[Q].Conjugate[Q] // MatrixForm // Chop

gives 1 along the diagonals and non-zero numbers along the off-diagonals.

This means that every eigenvector is normalized using its complex conjugate version (as the second operation shows) but orthogonalized with respect to every other eigenvector without any complex conjugation (as the first operation shows).

Any idea why such a (strange) convention is chosen? I would have expected the first operation to simply give the identity matrix, which is a common convention.

  • $\begingroup$ What do you mean here by "convention"? I think is just the way things are. Dwell on the result of this: eig2 = Eigensystem@Transpose@A; Q2 = Transpose[eig2[[2]]]; Transpose[Q2].Q // Chop. $\endgroup$
    – march
    Commented Jan 6, 2017 at 22:06
  • 1
    $\begingroup$ Related (possible duplicate): Orthonormalization of non-hermitian matrix eigenvectors $\endgroup$
    – Jens
    Commented Jan 6, 2017 at 22:17
  • 1
    $\begingroup$ @Daniel, the OP did say "complex symmetric" in the first sentence; so, definitely not Hermitian. $\endgroup$ Commented Jan 7, 2017 at 8:32
  • 2
    $\begingroup$ You cannot use Orthogonalize on the eigenvectors of a general matrix unless the eigenvalues are degenerate. Otherwise you're mixing eigenvectors to different eigenvalues in the orthogonalization, and end up with results that aren't eigenvectors at all. The eigenvalues of your A are indeed non-degenerate. $\endgroup$
    – Jens
    Commented Jan 7, 2017 at 17:10
  • 3
    $\begingroup$ Everything is consistent: Mathematica sees a numerical matrix which has non-degenerate eigenvectors. There is no freedom of choice other than to multiply each by an arbitrary complex number so as to enforce normalization, which has nothing to do with the question of orthogonality or biorthogonality in that case. For normalization, it uses the unitary scalar product appropriate for a complex vector space, and that's what you're seeing. It just so happens that the eigenvectors in this case are not orthogonal under that scalar product, and cannot be made orthogonal either. $\endgroup$
    – Jens
    Commented Jan 7, 2017 at 23:43


Browse other questions tagged or ask your own question.