Jump to content

LOBPCG: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Added {{confusing}} and {{one source}} tags to article using Friendly
explanations added, tags removed
Line 1: Line 1:
'''Locally Optimal Block Preconditioned Conjugate Gradient Method''' ('''LOBPCG''') is an algorithm, proposed in (Knyazev, 2001), for finding the largest (or smallest) [[eigenvalues]] and the corresponding [[eigenvectors]] of a symmetric positive definite [[generalized eigenvalue problem]]
{{confusing|date=May 2010}}

{{one source|date=May 2010}}
:<math>A x= \lambda B x,</math>
'''Locally Optimal Block Preconditioned Conjugate Gradient Method''' ('''LOBPCG''') is an algorithm for finding the largest (or smallest) [[eigenvalues]] and the corresponding [[eigenvectors]] of a symmetric positive definite [[generalized eigenvalue problem]], proposed in (Knyazev, 2001). The method performs an [[iterative]] maximization (or minimization) of the [[Rayleigh quotient]] in the direction of the steepest accent (or descent) within a three-term [[recurrence relation]]. It is one of possible generalization of the [[preconditioned]] [[conjugate gradient]] linear solvers to the case of [[eigenvalue]] problems. The LOBPCG is a block method, iterating several approximate [[eigenvectors]] together, which makes it [[cluster robust]].

for a given pair <math>(A, B)</math> of complex [[Hermitian matrix|Hermitian]] or real [[Symmetric matrix|symmetric]] matrices, where
the matrix <math>B</math> is also assumed [[positive-definite matrix|positive-definite]].

The method performs an [[iterative]] maximization (or minimization) of the generalized [[Rayleigh quotient]]

:<math>\rho(x) := \rho(A,B; x) :=\frac{x^T A x}{x^T B x},</math>

which results in finding largest (or smallest) eigenpairs of <math>A x= \lambda B x.</math>

The direction of the steepest accent, which is the [[gradient]], of the generalized [[Rayleigh quotient]] is positively proportional to the vector

:<math>r := Ax - \rho(x) Bx,</math>

called the eigenvector [[Residual_(numerical_analysis)|residual]]. If a [[preconditioner]] <math>T</math> is available, it is applied to the residual giving vector

:<math>w := Tr,</math>

called the preconditioned residual. Without preconditioning, we set
<math>T := I</math> and so <math>w := r,</math>. An iterative method

:<math>x^{i+1} := x^i + \alpha^i T(Ax^i - \rho(x^i) Bx^i),</math>

or, in short,

:<math>x^{i+1} := x^i + \alpha^i w^i,\,
w^i := Tr^i,\,
r^i := Ax^i - \rho(x^i) Bx^i,</math>

is known as precondiitoned steepest accent (or descent), where the scalar
<math>\alpha^i</math> is called the step size. The optimal step size can be determined by maximizing the Rayleigh quotient, i.e.,

:<math>x^{i+1} := agrmax_{y\in span\{x^i,w^i\}} \rho(y)</math>

(use <math>argmin</math> in case of minimizing),
in which case the method is called locally optimal. To further accelerate the convergence of the locally optimal precondiitoned steepest accent (or descent), one can add one extra vector to the two-term [[recurrence relation]] to make it three-term:

:<math>x^{i+1} := agrmax_{y\in span\{x^i,w^i,x^{i-1}\}} \rho(y)</math>

(use <math>argmin</math> in case of minimizing).

This is a single-vector version of the LOBPCG method. It is one of possible generalization of the [[preconditioned]] [[conjugate gradient]] linear solvers to the case of symmetric [[eigenvalue]] problems.
Iterating several approximate [[eigenvectors]] together in a block in a similar locally optimal fashion, gives the full block version of the LOBPCG. It allows robust computation of eigenvectors corresponding to nearly-multiple eigenvalues.


An implementation of [[LOBPCG]] is available in the public software package [[BLOPEX]], maintained by [[Andrei_Knyazev_(mathematician)| Andrew Knyazev]]. The [[LOBPCG]] algorithm is also implemented in many other libraries, e.g.,: [[ABINIT]], [[PESCAN]], Anasazi [[Trilinos]], [[SciPy]], [[NGSolve]], and [[PYFEMax]].
An implementation of [[LOBPCG]] is available in the public software package [[BLOPEX]], maintained by [[Andrei_Knyazev_(mathematician)| Andrew Knyazev]]. The [[LOBPCG]] algorithm is also implemented in many other libraries, e.g.,: [[ABINIT]], [[PESCAN]], Anasazi [[Trilinos]], [[SciPy]], [[NGSolve]], and [[PYFEMax]].

Revision as of 21:55, 27 May 2010

Locally Optimal Block Preconditioned Conjugate Gradient Method (LOBPCG) is an algorithm, proposed in (Knyazev, 2001), for finding the largest (or smallest) eigenvalues and the corresponding eigenvectors of a symmetric positive definite generalized eigenvalue problem

for a given pair of complex Hermitian or real symmetric matrices, where the matrix is also assumed positive-definite.

The method performs an iterative maximization (or minimization) of the generalized Rayleigh quotient

which results in finding largest (or smallest) eigenpairs of

The direction of the steepest accent, which is the gradient, of the generalized Rayleigh quotient is positively proportional to the vector

called the eigenvector residual. If a preconditioner is available, it is applied to the residual giving vector

called the preconditioned residual. Without preconditioning, we set and so . An iterative method

or, in short,

is known as precondiitoned steepest accent (or descent), where the scalar is called the step size. The optimal step size can be determined by maximizing the Rayleigh quotient, i.e.,

(use in case of minimizing), in which case the method is called locally optimal. To further accelerate the convergence of the locally optimal precondiitoned steepest accent (or descent), one can add one extra vector to the two-term recurrence relation to make it three-term:

(use in case of minimizing).

This is a single-vector version of the LOBPCG method. It is one of possible generalization of the preconditioned conjugate gradient linear solvers to the case of symmetric eigenvalue problems. Iterating several approximate eigenvectors together in a block in a similar locally optimal fashion, gives the full block version of the LOBPCG. It allows robust computation of eigenvectors corresponding to nearly-multiple eigenvalues.

An implementation of LOBPCG is available in the public software package BLOPEX, maintained by Andrew Knyazev. The LOBPCG algorithm is also implemented in many other libraries, e.g.,: ABINIT, PESCAN, Anasazi Trilinos, SciPy, NGSolve, and PYFEMax.

References

Knyazev, A.V. (2001), "Toward the Optimal Preconditioned Eigensolver: Locally Optimal Block Preconditioned Conjugate Gradient Method", SIAM Journal on Scientific Computing, 23 (2): 517–541, doi:10.1137/S1064827500366124