|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
|
+--orgposada.nummethpos.matrixsolution.MatrixSolver
|
+--orgposada.nummethpos.matrixsolution.EigenSubspaceSolver
Busca los Eigen valores y Eigen vectores (propios o caracteristicos) de una matriz cuadrada simetrica por el metodo de iteracion en el subespacio. Solo se puede usar un objeto en todo el programa. Se necesitaria cambiar todos las demas clases.
| Field Summary | |
private double[] |
eigenValues
Valores propios. |
private double[][] |
eigVectCol
Vectores propios, cada columna es un Eigen vector. |
private double[][] |
eigVectRow
Vectores propios, cada columna es un Eigen vector. |
private boolean |
solverFoundedSolution
Comunicacion entre el Solver y find(). |
| Fields inherited from class orgposada.nummethpos.matrixsolution.MatrixSolver |
found |
| Constructor Summary | |
EigenSubspaceSolver()
|
|
| Method Summary | |
double[] |
find(SquaredMatrix mA,
int nEig,
double tolerance,
int iterations)
Busca los Eigen valores y Eigen vectores (propios o caracteristicos) de una matriz cuadrada simetrica por el metodo iterativo en el subespacio. |
double[] |
getEigenVector(int i)
Regresa un vector propio. |
double[][] |
getEigenVectorsAsColumns()
Regresa los Eigen vectores como una matriz, cada columna es un Eigen vector. |
double[][] |
getEigenVectorsAsRows()
Regresa los Eigen vectores como una matriz, cada columna es un Eigen vector. |
private double[] |
quitEigenContribution(double[] eigX,
int iEig)
Reduce las contribuciones de los Eigen vectores para reducir el error de redondeo numerico. |
void |
quitEigenContribution(MatrixDouble A)
Quita las contribuciones a los vectores columna. |
double[] |
solve(MatrixDouble A,
int numberEigen,
double tolerance,
int iterations)
Llama al metodo "find" para asegurar una matriz cuadrada. |
boolean |
wasFound()
Checa el exito del metodo. |
| Methods inherited from class java.lang.Object |
|
| Field Detail |
private double[][] eigVectCol
private double[][] eigVectRow
private double[] eigenValues
private boolean solverFoundedSolution
| Constructor Detail |
public EigenSubspaceSolver()
| Method Detail |
public boolean wasFound()
wasFound in class MatrixSolver
public double[] getEigenVector(int i)
throws java.lang.IndexOutOfBoundsException
java.lang.IndexOutOfBoundsException - Se se trata de acceder un Eigen
que no puede existir: menor que 0, o mayor que el orden de
la matriz.public double[][] getEigenVectorsAsColumns()
public double[][] getEigenVectorsAsRows()
public double[] solve(MatrixDouble A,
int numberEigen,
double tolerance,
int iterations)
throws java.lang.RuntimeException,
java.lang.ArithmeticException
A - Matriz cuadrada (n x n).numberEigen - Numero de eigen vectores a buscar.tolerance - Precision aceptable del error (ejemplo: 0.01).iterations - Numero maximo de veces a ejecutar.java.lang.RuntimeException - Se excedio el maximo numero de iteraciones.
No se encontro los Eigen valores y vectores.java.lang.ArithmeticException - Problemas con las operaciones
aritmeticas.find(orgposada.nummethpos.abstractmatrix.matrixdouble.SquaredMatrix, int, double, int)
public void quitEigenContribution(MatrixDouble A)
throws java.lang.ArithmeticException
java.lang.ArithmeticException - Division entre cero.
private double[] quitEigenContribution(double[] eigX,
int iEig)
public double[] find(SquaredMatrix mA,
int nEig,
double tolerance,
int iterations)
throws java.lang.RuntimeException,
java.lang.ArithmeticException
mA - Matriz cuadrada (n x n).nEig - Numero de eigen vectores a buscar.tolerance - Precision aceptable del error (ejemplo: 0.01).iterations - Numero maximo de veces a ejecutar.java.lang.RuntimeException - Se excedio el maximo numero de iteraciones.
No se encontro los Eigen valores y vectores.java.lang.ArithmeticException - Problemas con las operaciones
aritmeticas.Checar metodo "wasFound()" para verificar el exito del metodo:
false, no se encontro algun EigenVector; true,
se encontraron los requeridos.,
Checar metodo "getEigenVectors()" para obtener los eigen vectores.
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||