|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.ejml.alg.dense.decomposition.eig.EigenPowerMethod
public class EigenPowerMethod
The power method is an iterative method that can be used to find dominant eigen vector in a matrix. Computing Anq for larger and larger values of n, where q is a vector. Eventually the dominant (if there is any) eigen vector will "win".
Shift implementations find the eigen value of the matrix B=A-pI instead. This matrix has the same eigen vectors, but can converge much faster if p is chosen wisely.
See section 5.3 in "Fundamentals of Matrix Computations" Second Edition, David S. Watkins.
WARNING: These functions have well known conditions where they will not converge or converge very slowly and are only used in special situations in practice. I have also seen it converge to none dominant eigen vectors.
| Constructor Summary | |
|---|---|
EigenPowerMethod(int size)
|
|
| Method Summary | |
|---|---|
boolean |
computeDirect(DenseMatrix64F A)
This method computes the eigen vector with the largest eigen value by using the direct power method. |
boolean |
computeShiftDirect(DenseMatrix64F A,
double alpha)
Computes the most dominant eigen vector of A using a shifted matrix. |
boolean |
computeShiftInvert(DenseMatrix64F A,
double alpha)
Computes the most dominant eigen vector of A using an inverted shifted matrix. |
DenseMatrix64F |
getEigenVector()
|
void |
setOptions(int maxIterations,
double tolerance)
|
void |
setSeed(DenseMatrix64F seed)
Sets the value of the vector to use in the start of the iterations. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public EigenPowerMethod(int size)
size - The size of the matrix which can be processed.| Method Detail |
|---|
public void setSeed(DenseMatrix64F seed)
seed - The initial seed vector in the iteration.
public void setOptions(int maxIterations,
double tolerance)
maxIterations - tolerance - public boolean computeDirect(DenseMatrix64F A)
A - The matrix. Not modified.
public boolean computeShiftDirect(DenseMatrix64F A,
double alpha)
A - The matrix.alpha - Shifting factor.
public boolean computeShiftInvert(DenseMatrix64F A,
double alpha)
A - An invertible square matrix matrix.alpha - Shifting factor.
public DenseMatrix64F getEigenVector()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||