# IMSL diagonalizing a general complex matrix (DEVCCG)

Tags:
1. Jul 29, 2015

### orzyszpon

Under some circumstances, whenever I call DEVCCG to diagonalize a general complex matrix, the program gets stuck inside and never returns. I do not even get out an error code so that I may continue with the rest of the program. I assume the iterative diagonalization inside the procedure does not converge in an allowed number of times. (I cannot access the innards of the code.)
Question: Are there some matrices that will not be diagonalizable with DEVCCG? Which types of matrices it cannot handle? Thank you very much.

2. Jul 30, 2015

### Dr. Courtney

3. Jul 31, 2015

### orzyszpon

Thank you, Dr. Courtney for responding to my question, for your help, and for your perceptive question. Since posting my question, I have come up with an answer. It turns out that general complex matrices are not always diagonalizable; in those cases they are called defective. This is certain to occur when there are eigenvalue degeneracies. The DEVCCG code uses similarity transformations to reduce the matrix to diagonal form. Actually, it iterates toward that form. After some 30 tries, it gives up. Unfortunately, it does not relinquish control to the outside program, so the whole execution hangs up.

I am calculating band structures of superlattices for which the bands are spin-degenerate in certain directions of the Brillouin zone. The boundary condition matrix (the offending culprit) is general complex, and its solutions will be doubly degenerate in high-symmetry situations. (It is impossible to block diagonalize the matrix.)

The problem is numerical. The way around it is to "perturb" the matrix slightly by destroying the perfect symmetry. Then the numerical procedure will produced two closely spaced eigenvalues with orthogonal wave functions.

So, these are my true confessions. I hope this is of use to the next unfortunate soul.

Best regards,
Frank

4. Aug 7, 2015

### orzyszpon

I just had a colleague use his own package to successfully diagonalize one of the matrices DEVCCG has problems with. He did it without any problems. Since DEVCCG diagonalizes most everything I have thrown at it (meaning that there are not formatting issues, etc.), it must be that there are certain matrices that DEVCCG does not abide. I am talking to the people in the company regarding this issue.