Generalized eigenvalue problem

Generalized eigenvalue problem

shrinivas@thirdwavesys.com's picture

Hi

Is there any example code available that shows the solution of the generalized eigenvalue problem using functions from the library. Please let me know. Thanks,

Shrini

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
shrinivas@thirdwavesys.com's picture

I am using the following sequence of function calls to solve the problem K x = lambda Mx. K and M are stored in banded format.
I want only selected eigenvalues and eigenvectors.


(1)dpbstf (to compute the split Cholesky factorization)

(2) dsbgst ( to reduce to standard form C y = lambda y)

(3) dsbtrd (to reduce C to tridiagonal form T)

(4) dstebz ( compute selected eigen values of T)

(5) dstein ( compute selected eigen vectors)

(6) Don't find a routine to transform eigenvectors of T to that of C. 'dormtr' requires Q to be computed by 'dsytrd'


Am I missing something ? Any help would be greatly appreciated. Thanks.

Sergey Kuznetsov (Intel)'s picture

Ithink that it's better to use DSBEVX for computing selected eigenvalues and eigenvectors of real band matrix C intead of steps 3-5. It should help you, if matrix C in your notations is a band matrix.

If you don't want to use this routine, you should use the folowingoperators

DO J = 1, M


CALL DCOPY( N, Z( 1, J ), 1, WORK( 1 ), 1 )


CALL DGEMV( 'N', N, N, ONE, Q, LDQ, WORK, 1, ZERO,


$ Z( 1, J ), 1 )


ENDDO


after the call to DSTEIN where M is thetotal number found,array Zis returned by DSTEIN (the 8th parameter for DSTEIN) and the first M columns of Z arethe eigenvector of T, array Q is returned by DSBTRD (the 9th parameter)and it containsthe orthonormal matrix Q such that Q**T * S* Q = T.


I hope it helps.

Login to leave a comment.