![]() |
RDKit
Open-source cheminformatics and machine learning.
|
Functions | |
| bool | powerEigenSolver (unsigned int numEig, DoubleSymmMatrix &mat, DoubleVector &eigenValues, DoubleMatrix *eigenVectors=0, int seed=-1) |
Compute the numEig largest eigenvalues and, optionally, the. More... | |
| static bool | powerEigenSolver (unsigned int numEig, DoubleSymmMatrix &mat, DoubleVector &eigenValues, DoubleMatrix &eigenVectors, int seed=-1) |
| 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.
eigenvectors.
| 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 |
Notes:
mat, is changed in this functionAlgorithm:
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().
|
inlinestatic |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 59 of file PowerEigenSolver.h.
References powerEigenSolver().