|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
|
+--matrixsolution.MatrixSolver
|
+--matrixsolution.IterativeMatrixSolver
|
+--matrixsolution.EigenDirectIterationSolver
Busca los Eigen valores y Eigen vectores (propios o caracteristicos) de una matriz cuadrada por el metodo de Iteracion Directa (o de Potencia). 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[][] |
eigenVectors
Vectores propios. |
private int |
indexMaxAbs
Indice del primer maximo valor absoluto. |
private SquaredMatrix |
matrIden
Matriz identidad solo inicializarla una vez. |
private int |
n
Dimension de la matriz. |
private boolean |
solverFoundedSolution
Comunicacion entre el Solver y find(). |
| Fields inherited from class matrixsolution.MatrixSolver |
found |
| Constructor Summary | |
EigenDirectIterationSolver()
Vacio. |
|
| Method Summary | |
private double |
calculateAprEigVal(SquaredMatrix A,
double[] x)
Calcula el aproximado iterativo del Eigen valor. |
double[] |
find(SquaredMatrix A,
double[] x,
double tolerance,
int iterations)
Busca los Eigen valores y Eigen vectores (propios o caracteristicos) de una matriz cuadrada simetrica por el metodo de Iteracion Directa (o de Potencia). |
double |
findOneEigen(double[] eigX,
int iEig,
int indexMaxAbs,
SquaredMatrix A,
double[] x,
double tolerance,
int iterations)
Encuentra un Eigen valor y Eigen vector. |
double[] |
getEigenVector(int i)
Regresa un vector propio. |
private double[] |
quitEigenContribution(double[] eigX,
int iEig)
Reduce las contribuciones de los Eigen vectores para reducir el error de redondeo numerico. |
double[] |
solve(MatrixDouble A,
double[] b,
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[][] eigenVectors
private double[] eigenValues
private int n
private int indexMaxAbs
private SquaredMatrix matrIden
private boolean solverFoundedSolution
| Constructor Detail |
public EigenDirectIterationSolver()
| Method Detail |
private double[] quitEigenContribution(double[] eigX,
int iEig)
private double calculateAprEigVal(SquaredMatrix A,
double[] x)
throws java.lang.ArithmeticException
public double findOneEigen(double[] eigX,
int iEig,
int indexMaxAbs,
SquaredMatrix A,
double[] x,
double tolerance,
int iterations)
throws java.lang.ArithmeticException,
java.lang.RuntimeException
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[] solve(MatrixDouble A,
double[] b,
double tolerance,
int iterations)
solve in class IterativeMatrixSolverfind(abstractmatrix.matrixdouble.SquaredMatrix, double[], double, int)
public double[] find(SquaredMatrix A,
double[] x,
double tolerance,
int iterations)
A - Matriz cuadrada (n x n).x - Vector columna (n x 1) inicial (no debe ser cero y
de preferencia de norma 1).tolerance - Precision aceptable del error (ejemplo: 0.01)iterations - Numero maximo de veces a ejecutar
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||