scipy / scipy

SciPy library main repository
https://scipy.org
BSD 3-Clause "New" or "Revised" License
12.94k stars 5.15k forks source link

Method for complex symmetric indefinite generalized eigenvalue problem #11845

Open dkweiss31 opened 4 years ago

dkweiss31 commented 4 years ago

I am interested in the generalized eigenvalue problem Hx=\lambda Mx where H is symmetric positive definite (and complex in general) but M is symmetric indefinite, i.e., it has negative eigenvalues. As far as I can tell, no linear combination \alpha H +\Beta M is positive definite.

I can solve for the eigenvalues using scipy.linalg.ordqz(H, M, sort=sorter) with an appropriate sorter function, but this has the disadvantage of returning all the eigenvalues. For large applications, this will not suffice, as I am only interested in the smallest eigenvalues.

I understand that there exists a symmetric indefinite Lanczos method, which is more in line with what I am interested in. I am wondering if this algorithm has been implemented somewhere I can interface with it, or if this is something new that could be added to scipy.

ilayn commented 4 years ago

As far as I know, there are no all-purpose methods that can accomplish this. As noted by the Netlib team, the user should take extra precautions to use these methods. I would be interested though if there are new possibilities in the literature.