I'm solving for the smallest eigenvalues in magnitude. Though is it cheaper to solve smallest in real part, as that might also work in my case? Thanks for your help.

On Thu, Jul 1, 2021, 4:08 AM Jose E. Roman <jroman@dsic.upv.es> wrote:
Smallest eigenvalue in magnitude or real part?


> El 1 jul 2021, a las 11:58, Varun Hiremath <varunhiremath@gmail.com> escribió:
>
> Sorry, no both A and B are general sparse matrices (non-hermitian). So is there anything else I could try?
>
> On Thu, Jul 1, 2021 at 2:43 AM Jose E. Roman <jroman@dsic.upv.es> wrote:
> Is the problem symmetric (GHEP)? In that case, you can try LOBPCG on the pair (A,B). But this will likely be slow as well, unless you can provide a good preconditioner.
>
> Jose
>
>
> > El 1 jul 2021, a las 11:37, Varun Hiremath <varunhiremath@gmail.com> escribió:
> >
> > Hi All,
> >
> > I am trying to compute the smallest eigenvalues of a generalized system A*x= lambda*B*x. I don't explicitly know the matrix A (so I am using a shell matrix with a custom matmult function) however, the matrix B is explicitly known so I compute inv(B)*A within the shell matrix and solve inv(B)*A*x = lambda*x.
> >
> > To compute the smallest eigenvalues it is recommended to solve the inverted system, but since matrix A is not explicitly known I can't invert the system. Moreover, the size of the system can be really big, and with the default Krylov solver, it is extremely slow. So is there a better way for me to compute the smallest eigenvalues of this system?
> >
> > Thanks,
> > Varun
>