I have a matrix with many complex eigenvalues, but I only need a few near a particular complex number. I am only looking at the imaginary parts, so I need the few closest on the imaginary scale to my reference complex number.

Here is sample code I tried, using the Arnoldi method of Eigenvalues. I am attempting to obtain the 2 closest eigenvalues to the complex number s on the imaginary scale from the matrix X.

d = {1 - 2 I, 3 + 0.5 I, 2 + 3 I, 1.5 - 3 I}
X = DiagonalMatrix[d]; 
s = -2.5 I; 
f = Eigenvalues[X, 2, Method -> {"Arnoldi", "Criteria" -> "ImaginaryPart","Shift" -> s}]

Separately, the Criteria and the Shift options work; but together, I am not getting the expected results. I expect to get,

f = {1 - 2 I, 1.5 - 3 I}

But I am getting,

f = {2. + 3. I, 1.5 - 3. I}

Is there some compatibility issue with these options?


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.