I have an eigenvalue problem (of a very large (n~1000000) but sparse complex system) wherein I need to determine all the eigenvalues in a certain region(a rectangle) in the positive half plane.
I am currently using the traditional shift invert strategy , where I take a shift point in the center of the rectangle and compute some eigenvalues (say 100) to cover the rectangle. However there are always some eigenvalues that are not covered
Now I have two ways to do it. 1) take a single shift at the center and compute large no of eigenvalues (say 1000), but this method is very costly(in time). 2) take many shifts in the rectangle and compute a few eigenvalues(say 10) for each shift.
The strategy 2 works good but I need to optimize on choosing the shifts so as to cover the maximum area in minimum shifts. My question is how to choose shifts ? Is there an algorithm to do it. Taking random shift based on heuristics is like bruteforce.
Please suggest your ideas! thanks for reading through that lot!