Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

Using the QZ eigenvalue solver

utab
Beginner
694 Views
Dear all,

I have a system like

K1 K12
0 K2

and

M1 0
M21 M2

where M21= - K12^T

If I use this model to solve the eigenvalue problem with the qz solver, I get the independent eigenvalues of the blocks, namely, the eigenvalues of (K1,M1) and (K2,M2)? The coupling blocks seem to be not taken into consideration. What could be the cause of this?

What should be the path to use the QZ nonsymmetric eigenvalue solver?

Following the documentation, I guess I should do,

+ balance to improve for performance: ggbal
+ then reduced to hessenberg format: gghrd
+ use the solver: hgeqz
+ recover: ggbak

Is this correct?

If this is correct, then there is a problem because the problem gives me eigenvalues of the blocks only as explained.

Best,
Umut
0 Kudos
3 Replies
Victor_K_Intel1
Employee
694 Views
Hi, Umut,

Usually it is much easier to help if the test is provided.
From the first glance, the sequence of calls you refer to looks OK.
But at the same time, describing the matrices you draw them as block upper triangular and block lower triangular. But for the QZ solver one of matrices should be in the upper Hessenberg form, the second - in the upper triangular form. This might be the root cause of the issue you observe.

WBR
Victor
0 Kudos
utab
Beginner
694 Views
Dear Victor,

Does not the routine of reduction to hessenberg format, namely the second line in my input, do that for me so that the input matrices are in right format?

Best,
Umut
0 Kudos
Victor_K_Intel1
Employee
694 Views
Umut,

Actually it does but assuming the second matrix is already in the form of upper triangular matrix.
Unfortunately, from your description it is not obvious.

WBR
Victor
0 Kudos
Reply