Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library
- Generalized Eigenvalue Problem

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

JBervel

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-28-2012
06:57 AM

94 Views

Generalized Eigenvalue Problem

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.

Link Copied

4 Replies

Victor_K_Intel1

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

02-28-2012
09:35 PM

94 Views

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

JBervel

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

03-13-2012
07:56 AM

94 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,

Victor_K_Intel1

Employee

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

03-22-2012
04:09 AM

94 Views

Yes, this should work.

But there might be issues if A is ill-conditioned.

WBR

Victor

JBervel

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

03-27-2012
03:36 AM

94 Views

Yes, it worked.

Thanks very much.

Thanks very much.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

For more complete information about compiler optimizations, see our Optimization Notice.