RDNumeric::EigenSolvers Namespace Reference


Functions

bool powerEigenSolver (unsigned int numEig, DoubleSymmMatrix &mat, DoubleVector &eigenValues, DoubleMatrix *eigenVectors=0, int seed=-1)
static bool powerEigenSolver (unsigned int numEig, DoubleSymmMatrix &mat, DoubleVector &eigenValues, DoubleMatrix &eigenVectors, int seed=-1)


Function Documentation

static bool RDNumeric::EigenSolvers::powerEigenSolver ( unsigned int  numEig,
DoubleSymmMatrix &  mat,
DoubleVector &  eigenValues,
DoubleMatrix &  eigenVectors,
int  seed = -1 
) [static]

Definition at line 54 of file PowerEigenSolver.h.

References powerEigenSolver().

bool RDNumeric::EigenSolvers::powerEigenSolver ( unsigned int  numEig,
DoubleSymmMatrix &  mat,
DoubleVector &  eigenValues,
DoubleMatrix *  eigenVectors = 0,
int  seed = -1 
)

Compute the numEig largest eigenvalues and, optionally, the corresponding eigenvectors.

Parameters:
numEig the number of eigenvalues we are interested in
mat symmetric input matrix of dimension N*N
eigenValues Vector used to return the eigenvalues (size = numEig)
eigenVectors Optional matrix used to return the eigenvectors (size = N*numEig)
seed Optional values to seed the random value generator used to initialize the eigen vectors
Returns:
a boolean indicating whether or not the calculation converged.
Notes:
  • The matrix, mat, is changed in this function

Algorithm:

We use the iterative power method, which works like this:

     u = arbitrary unit vector
     tol = 0.001
     currEigVal = 0.0;
     prevEigVal = -1.0e100
     while (abs(currEigVal - prevEigVal) > tol) :
         v = Au
         prevEigVal = currEigVal
         currEigVal = v[i] // where i is the id os the largest absolute component
         u = c*v
    

Referenced by powerEigenSolver().


Generated on Fri Apr 3 06:03:04 2009 for RDCode by  doxygen 1.5.6