0

I have a 16 x 16 hermitian matrix with numerical entries with 16 digits of precision (double precision on my machine). Two of my Eigenvalues are very small ($1 \times 10^{-16}$ and $7\times10^{-17}$), while all others are of order $10^{-1}$.

In theory these two eigenvalues should actually be degenerate and zero, but I can work with small, nonzero numbers. In particular, I know that all eigenvalues should come in positive/negative pairs.

Is there a way to "clean" my matrix such that these eigenvalues occur in pairs (or ideally as exactly zero)? I can afford working with lower accuracy (i.e. tweaking the last few digits of the entries of the matrix) (the matrix is being computed in c++ with lapack, and I am using mathematica for further analysis).

Thanks!

Faser
  • 185
  • The square of your matrix will have the eigenvalues as (at east) doubly degenerate. A sufficiently high power of your matrix will tend, suitably normalized, to the projector to the eigenvectors of the highest magnitude pair of eigenvalues. Eliminating/projecting-out such pairwise will reduce the rank of the matrix, where this step can be repeated. – Cosmas Zachos Jul 02 '17 at 22:13
  • For the smallest eigenvalue, square first to get all eigenvalue pairs positive, and, and then apply this obvious method. – Cosmas Zachos Jul 03 '17 at 19:56

0 Answers0