- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello
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...
Thanks
Shrini
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...
Thanks
Shrini
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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 www.netlib.org. 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.

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