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

Generalized Eigenvalue Problem

JBervel
Beginner
667 Views

Hi,

I have the generalized eigenvalue equation: Az = LBz.

The matrix A is symmetric positive-definite but the matrix B is symmetric semipositive-definite.

There is some way to convert the generalized equation to the standard problem Cy = Ly when the B matrix is semipositive-definite instead of positive-definite?

Thanks.

0 Kudos
4 Replies
Victor_K_Intel1
Employee
667 Views

Dear JBervel,

Assuming A is symmetric positive definite you conclude it is non singular. That said, lambda=0 is not an eigenvalue of you problem. So, you can divide both sides of the equation by lambda and make change of denotations mu=1/lambda. The problem now looks like Bz=mu*Az.
If you wnat to com to the standard form, you can, for example factorize A=L*L^t (Cholesky).
Multiply the equation by L^{-1} from both sides and get the following
L^{-1}*B*L^{-t}*L^{t}*z=mu*L^t*z
Denoting C= L^{-1}*B*L^{-t} and y=L^t*z you come to the desired form
Cy=mu*y.

Is it what you were looking for?

Best regards,
Victor

0 Kudos
JBervel
Beginner
667 Views

Dear Victor,

thanks for your response.

doing the equivalence mu = 1 / lambda, it is possible to rewrite the equation like:

B*z = mu*A*z

in order to have the definite positive matrix in the correct side of the equation.

At this point, is it as simple as use the mkl function LAPACKE_dspgvx to solve the system and then make
1 / mu to obtain the lambda eigenvalues?

Thanks,

0 Kudos
Victor_K_Intel1
Employee
667 Views

Yes, this should work.
But there might be issues if A is ill-conditioned.

WBR
Victor

0 Kudos
JBervel
Beginner
667 Views
Yes, it worked.

Thanks very much.

0 Kudos
Reply