EigenPower< VECTOR > Class Template Reference
[Linear solver classes]

Inheritance diagram for EigenPower< VECTOR >:

Inheritance graph
[legend]

List of all members.

Classes

struct  AdditionalData

Public Member Functions

 EigenPower (SolverControl &cn, VectorMemory< VECTOR > &mem, const AdditionalData &data=AdditionalData())
virtual ~EigenPower ()
template<class MATRIX >
void solve (double &value, const MATRIX &A, VECTOR &x)

Protected Attributes

AdditionalData additional_data


Detailed Description

template<class VECTOR = Vector<double>>
class EigenPower< VECTOR >

Power method (von Mises) for eigenvalue computations.

This method determines the largest eigenvalue of a matrix by applying increasing powers of this matrix to a vector. If there is an eigenvalue $l$ with dominant absolute value, the iteration vectors will become aligned to its eigenspace and $Ax = lx$.

A shift parameter allows to shift the spectrum, so it is possible to compute the smallest eigenvalue, too.

Convergence of this method is known to be slow.

Author:
Guido Kanschat, 2000

Constructor & Destructor Documentation

template<class VECTOR >
EigenPower< VECTOR >::EigenPower ( SolverControl cn,
VectorMemory< VECTOR > &  mem,
const AdditionalData data = AdditionalData() 
) [inline]

Constructor.

template<class VECTOR >
EigenPower< VECTOR >::~EigenPower (  )  [inline, virtual]

Virtual destructor.


Member Function Documentation

template<class VECTOR >
template<class MATRIX >
void EigenPower< VECTOR >::solve ( double value,
const MATRIX &  A,
VECTOR &  x 
) [inline]

Power method. x is the (not necessarily normalized, but nonzero) start vector for the power method. After the iteration, value is the approximated eigenvalue and x is the corresponding eigenvector, normalized with respect to the l2-norm.

References EigenPower< VECTOR >::additional_data, VectorMemory< VECTOR >::alloc(), Assert, SolverControl::check(), Solver< VECTOR >::control(), deallog, VectorMemory< VECTOR >::free(), SolverControl::iterate, Solver< VECTOR >::memory, LogStream::pop(), LogStream::push(), EigenPower< VECTOR >::AdditionalData::shift, and SolverControl::success.


Member Data Documentation

template<class VECTOR = Vector<double>>
AdditionalData EigenPower< VECTOR >::additional_data [protected]

Shift parameter.

Referenced by EigenPower< VECTOR >::solve().


The documentation for this class was generated from the following file:

deal.II documentation generated on Sat Aug 15 16:51:52 2009 by doxygen 1.5.9