Best way to compute eigenvalues of As + i Bs where As and Bs are symmetric?

I’m trying to compute the eigenvalues of a matrix M = As + im * Bs, where As and Bs are real, symmetric matrices (and don’t commute in general). I realize that the eigenvalues will be complex in general, with the real parts governed by As and the imaginary part by Bs. Without assuming anything about the structure of the matrices, is there a better way to obtain the spectrum other than zgeev (equivalently LinearAlgebra.eigen(M))? If it helps, we may assume that they are positive definite.

1 Like

There are some tricks for iterative solvers (see eg Lanczos Method for Complex Symmetric Eigenproblems   R. Freund) but I don’t think there are any for dense matrices.

with the real parts governed by As and the imaginary part by Bs .

There is probably a relationship like that, but it sounds nontrivial to me, are you thinking of something in particular?

There are some neat tricks for dense matrices too, although I’m not sure how practical they are. Specifically, the usual dense matrix algorithms for Hermitian matrices can be adapted to some extent: A Jacobi type method for complex symmetric matrices and Generalized Householder transformations for the complex symmetric eigenvalue problem. The catch is that complex symmetric matrices are not in general diagonalizable and also what used to be unitary transformations now satisfy Q^T = Q^{-1} instead of Q^H = Q^{-1}. The former isn’t sufficient to ensure that the transformations are well conditioned. So stability is potentially a problem. And without putting in a huge amount of work into an implementation, they probably aren’t saving enough computation to make up for the fact that you wouldn’t be using something as heavily optimized as zgeev.