Eigenvalues of unitary matrices

1.3k Views Asked by At

I have a sparse unitary matrix with complex entries and want to compute all its eigenvalues. Unfortunately, matlab doesn't like this. If I try do enter eigs(A, N) (A the matrix, N its size), it tells me that I should use eig(full(A)) instead. This is awfully slow ... comparred to the computation for self-adjoint sparse matrices.

Is there any way to do this quicker?

1

There are 1 best solutions below

4
On

An unitary matrix $A$ is normal, i.e. $A^HA=AA^H$. Let's define $\operatorname{Re}(A):=(A+A^H)/2$ and $\operatorname{Im}(A):=(A-A^H)/(2i)$. Note that $\operatorname{Re}(A)$ and $\operatorname{Im}(A)$ are self adjoint (sparse) matrices, and satisfy $\operatorname{Re}(A)\operatorname{Im}(A)=\operatorname{Im}(A)\operatorname{Re}(A)$, i.e. they commute.

So you can compute the real and imaginary parts of the eigenvalues separately. To match corresponding real and imaginary parts together, you have to look at the mutual eigenspaces.