Project RIM: novel eigensolvers for (non-Hermitian) matrices

Current Version: RIMCv0.m

RIM is a general eigensolver for computing all eigenvalues in a region on the complex plane. The method tests if a region contains eigenvalues using an indicator, which is based on approximate spectral projection. Regions that contain eigenvalues are subdivided and tested until eigenvalues are isolated with a specified precision. It needs no a priori spectral information and overcomes some difficulties of existing methods. RIM is highly parallel and scalable.

Usage: lambda=RIMCv0(A,B,s)
The code computes generalized eigenvalues of
Ax = lambda Bx
in a rectangle s on the complex plane.
A -- N x N matrix
B -- N x N matrix
s -- 4 x 1 vector [xmin ymin xmax ymax]
Output: lambda -- generalized eigenvalues in s
Jiguang Sun, 05/09/2017,
Please report bugs to

Copyright (c) 2017, Jiguang Sun, all rights reserved.
Redistribution and use in source and binary forms, with or without modification, for academic purpose only are permitted.

Test Matrices:


In Matlab, load the matrices and run "E=RIMCv0(A,B,[1;-2;5;2])"


In Matlab, load the matrices and run "E=RIMCv0(A,B,[18;-6;30;6])"


[1] J. Sun and A. Zhou, Finite Element Methods for Eigenvalue Problems, CRC Press, 2016.
[2] R. Huang, A. Struthers, J. Sun and R. Zhang, Recursive integral method for transmission eigenvalues, Journal of Computational Physics, Vol. 327, 830-840, 2016.
[3] R. Huang, J. Sun and C. Yang, Recursive Integral Method with Cayley Transformation - arXiv preprint arXiv:1705.01646, 2017 -

Last updated on May 2017.