Dear all,
I want to calculate k smallest eigenvalues of a large sparse matrix (1e6*1e6), and the only solver I can find to finish this task is LOBPCG from MAGMA, which can solve the largest and smallest eigenvalues. However, I couldn't find some certain parameter to determine to solve whether largest or smallest k eigenvalues. Could you please tell me how to set parameters to calculate only k smallest eigenvalues of a large sparse matrix? I know that num_eigenvaluses in solver_par is the k number of EV for eigensovers, but I didn't find documation about sparse precond_par parameters. Is there some parameters that I didn't notice?
Best regards,
Shiyun
calculate k smallest eigenvalues using LOBPCG
Re: calculate k smallest eigenvalues using LOBPCG
According to viewtopic.php?f=2&t=1266&p=3677&hilit=l ... 483a#p3677 it calculates the smallest eigenvalues. The thread also explains how to trick it into computing the largest ones.
Re: calculate k smallest eigenvalues using LOBPCG
If you are a scientist/engineer you probably have a large matrix from a real problem.
You probably want the largest and smallest eigenvalues to get a condition number and bound errors.
If this is the case, then ignore the mathematicians as much as you can.
Don't find ALL the eigenvalues. It is very expensive.
Don't use a symbolic package. It is even slower.
For the largest eigenvalue start with a random unit vector, v.
iterate on w = Av, v = w/|w| (so v is a unit vector)
|w| converges to the largest eigenvalue quickly.
For the smallest. Replace A with A_inverse.
Iterate on: solve Aw = v for w, v = w/|w|
Smallest converges quickly to 1/|w| .
You probably want the largest and smallest eigenvalues to get a condition number and bound errors.
If this is the case, then ignore the mathematicians as much as you can.
Don't find ALL the eigenvalues. It is very expensive.
Don't use a symbolic package. It is even slower.
For the largest eigenvalue start with a random unit vector, v.
iterate on w = Av, v = w/|w| (so v is a unit vector)
|w| converges to the largest eigenvalue quickly.
For the smallest. Replace A with A_inverse.
Iterate on: solve Aw = v for w, v = w/|w|
Smallest converges quickly to 1/|w| .
Re: calculate k smallest eigenvalues using LOBPCG
Hello,
I have tried to calculate the smallest eigenvalues according to viewtopic.php?f=2&t=1266&p=3677&hilit=l ... 483a#p3677, but when I type ./testing_dsolver don't show anything... Do I have to type any other command before?
I have tried to calculate the smallest eigenvalues according to viewtopic.php?f=2&t=1266&p=3677&hilit=l ... 483a#p3677, but when I type ./testing_dsolver don't show anything... Do I have to type any other command before?