Lanczos Method: Calculating Smallest Eigenvalues

  • Thread starter Hassan2
  • Start date
  • Tags
    Method
In summary, The conversation discusses the implementation and complexity of the Lanczos algorithm compared to the subspace iteration method for calculating eigenvalues. The issue of finding the smallest eigenvalues and potential solutions for this problem are also mentioned. The conversation ends with a warning and advice on the difficulty of writing a reliable Lanczos routine and the suggestion to stick with the subspace iteration method.
  • #1
Hassan2
426
5
Having done with subspace iteration method, I think now I can understand and implement the Lanczos method. In fact the lanczos algorithm is simpler than the subspace, but it seems to me that the common Lanczos algorithms give the largest eigenvalues rather than smalles ones. That being true, does anyone have a reference for the case of calculating smallest eigenvalues?

Your help would be highly appreciated.
 
Physics news on Phys.org
  • #2
Just find the eignenvalues of the inverse of the matrix. The eigenvectors of the matrix and its inverse are the same.

You don't invert the matrix explicitly. Instead of multiplying a vector by the matrix to calculate ##y = Ax## you solve the equiations ##Ay = x##. (You want to factorize ##A = LL^T## or ##A = LDL^T## before you start the iterations, or course).

If ##A## is singular, you can add a constant multiple of the unit matrix before you factorize it. If you are finding the eigenvalues ##\lambda_i## of ##(A + cI)^{-1}##, the eigenvalues of ##A## are ##1 / \lambda_i - c##.

If you are solving a generalized eigenproblem ##Kx = \lambda Mx##, and K is singular, you add a multiple of ##M## to ##K## instead of a multiple of ##I##.
 
  • #3
Thanks. It works now, but there is a problem which I think is due to deviation from orthogonality: I have many instances of the same eigenvalue in the final list of eigenvalues. Or perhaps it's due the the numerical error introduced when solving the equation [itex]Ax_{k+1}=x_{k}[/itex] ( I use an iterative solver).
 
  • #4
Hassan2 said:
Thanks. It works now, but there is a problem which I think is due to deviation from orthogonality: I have many instances of the same eigenvalue in the final list of eigenvalues.

Remember my post when I said "you really really don't want to write your own Lanczos routine?" You are just start the adventure game of finding out why, if you keep trying!

Warning: I spent a long time on this several years ago, and gave up after several months because my code was never "100% reliable" on new problems.

If you read the literature, there are lots of ways that claim to fix this problem - but only if you can find a a paper that works for your matrices, AND you can understand it!

Have fun.
 
  • #5
Yes I remember well. I think I should give up too. Perhaps the subspace iteration is enough for my purpose.

Thanks for the advice.
 

What is the Lanczos method?

The Lanczos method is a mathematical algorithm used to calculate the smallest eigenvalues of a large, sparse matrix. It is an iterative method that approximates the eigenvalues by constructing a smaller matrix that has the same eigenvalues.

How does the Lanczos method work?

The Lanczos method works by using a process of orthogonalization and projection to construct a smaller matrix that has the same eigenvalues as the original matrix. It starts with an initial vector and iteratively applies a series of matrix-vector multiplications until the desired number of eigenvalues are obtained.

What are the applications of the Lanczos method?

The Lanczos method is commonly used in various scientific and engineering fields, such as quantum mechanics, computational chemistry, and signal processing. It is particularly useful in solving eigenvalue problems for large, sparse matrices that arise in these fields.

What are the advantages of using the Lanczos method?

Compared to other methods for calculating eigenvalues, the Lanczos method is relatively efficient and accurate. It also allows for the calculation of a select number of eigenvalues, rather than the entire spectrum, which can be useful in certain applications.

What are the limitations of the Lanczos method?

The Lanczos method may not converge or may converge to incorrect eigenvalues if the initial vector is poorly chosen or if the matrix has certain properties, such as being non-symmetric or having complex eigenvalues. It also requires a large amount of computational resources for very large matrices.

Similar threads

  • Quantum Physics
Replies
2
Views
907
  • Linear and Abstract Algebra
Replies
3
Views
3K
  • Linear and Abstract Algebra
Replies
6
Views
5K
Replies
2
Views
2K
  • MATLAB, Maple, Mathematica, LaTeX
Replies
1
Views
2K
  • Linear and Abstract Algebra
Replies
5
Views
2K
  • Quantum Physics
Replies
3
Views
807
  • Special and General Relativity
Replies
12
Views
791
  • Engineering and Comp Sci Homework Help
Replies
1
Views
2K
  • Introductory Physics Homework Help
Replies
11
Views
596
Back
Top