Size limitation for eigenvalue problem

Size limitation for eigenvalue problem


I am solving for the lowest eignevalues (only) of a generalized eigen value problem

Kx = lamda M x; with M being diagonal

I am using the following sequence of calls:

(1) call dpbstf(uplo,n,kb,dmass,ldbb,info)
(2) call dsbgst(vect,uplo,n,ka,kb,dstiffness,ldab,dmass,ldbb,x,n,
& work,info)
(3) call dsbtrd ( 'N', uplo, n, ka, dstiffness, ldab, d, e, q, n,
& work, info)
(4) call dstebz('V','E',n,vl,vu,0,0,1.0e-15,d,e,mfound,nsplit,
& evalue,iblock,isplit,work,iwork,info)

I am using VisualStudio Microsoft Development Environment Vers 7.1

I have benn able to solve for eigenvalues upto matrices of size around 5000. Beyond this, it simply takes a very loooooong time, especially the call to "dsbtrd".

Is there any limitation on the size on the matrices ? Alos, I am not assigning any space to "q" and "x" as I do not need these matrices.

Any help will be greatly appreciated...


2 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

DSBTRD could bereally slow at the big sizes. Probably, it's better to use DSYGVX forsolving generalizedproblem with whole A,B. It should be faster. Of course, you can save time taking into consideration that M is diagonal.

DSYGVX transforms the problem to standard EP, then solves it, then back transforms eigenvectors. You may look at the reference code for DSYGVX at You can simplifythe transformation step, because M is diagonal - see DSYGVX/DSYGST reference code. So the main time amount should be spend to solve a standard EP by DSYEVX. This routine is fast enough.

Login to leave a comment.