public static void main(String[] args) { Matrix3f mat = new Matrix3f(2, 1, 1, 1, 2, 1, 1, 1, 2); Eigen3f eigenSystem = new Eigen3f(mat); logger.info("eigenvalues = "); for (int i = 0; i < 3; i++) logger.log(Level.FINE, "{0} ", eigenSystem.getEigenValue(i)); logger.info("eigenvectors = "); for (int i = 0; i < 3; i++) { Vector3f vector = eigenSystem.getEigenVector(i); logger.info(vector.toString()); mat.setColumn(i, vector); } logger.info(mat.toString()); // eigenvalues = // 1.000000 1.000000 4.000000 // eigenvectors = // 0.411953 0.704955 0.577350 // 0.404533 -0.709239 0.577350 // -0.816485 0.004284 0.577350 }
public Eigen3f(Matrix3f data) { calculateEigen(data); }
float maxMagnitude = scaleMatrix(scaledData); computeRoots(scaledData, roots); eigenValues[0] = (float) roots[0]; eigenValues[1] = (float) roots[1]; float[] val = new float[1]; val[0] = maxValues[i]; if (!positiveRank(tempMatrix, val, maxRows[i])) { case 0: maxRows[0].normalizeLocal(); computeVectors(scaledData, maxRows[0], 1, 2, 0); break; case 1: maxRows[1].normalizeLocal(); computeVectors(scaledData, maxRows[1], 2, 0, 1); break; case 2: maxRows[2].normalizeLocal(); computeVectors(scaledData, maxRows[2], 0, 1, 2); break;
compMat1.m22 = sumXX + sumYY; compEigen1.calculateEigen(compMat1); direction = compEigen1.getEigenVector(0);
compMat1.m22 = sumXX + sumYY; compEigen1.calculateEigen(compMat1); direction = compEigen1.getEigenVector(0);
float maxMagnitude = scaleMatrix(scaledData); computeRoots(scaledData, roots); eigenValues[0] = (float) roots[0]; eigenValues[1] = (float) roots[1]; float[] val = new float[1]; val[0] = maxValues[i]; if (!positiveRank(tempMatrix, val, maxRows[i])) { case 0: maxRows[0].normalizeLocal(); computeVectors(scaledData, maxRows[0], 1, 2, 0); break; case 1: maxRows[1].normalizeLocal(); computeVectors(scaledData, maxRows[1], 2, 0, 1); break; case 2: maxRows[2].normalizeLocal(); computeVectors(scaledData, maxRows[2], 0, 1, 2); break;
public static void main(String[] args) { Matrix3f mat = new Matrix3f(2, 1, 1, 1, 2, 1, 1, 1, 2); Eigen3f eigenSystem = new Eigen3f(mat); logger.info("eigenvalues = "); for (int i = 0; i < 3; i++) logger.log(Level.FINE, "{0} ", eigenSystem.getEigenValue(i)); logger.info("eigenvectors = "); for (int i = 0; i < 3; i++) { Vector3f vector = eigenSystem.getEigenVector(i); logger.info(vector.toString()); mat.setColumn(i, vector); } logger.info(mat.toString()); // eigenvalues = // 1.000000 1.000000 4.000000 // eigenvectors = // 0.411953 0.704955 0.577350 // 0.404533 -0.709239 0.577350 // -0.816485 0.004284 0.577350 }
compMat1.m22 = sumXX + sumYY; compEigen1.calculateEigen(compMat1); direction = compEigen1.getEigenVector(0);
public Eigen3f(Matrix3f data) { calculateEigen(data); }
float maxMagnitude = scaleMatrix(scaledData); computeRoots(scaledData, roots); eigenValues[0] = (float) roots[0]; eigenValues[1] = (float) roots[1]; float[] val = new float[1]; val[0] = maxValues[i]; if (!positiveRank(tempMatrix, val, maxRows[i])) { case 0: maxRows[0].normalizeLocal(); computeVectors(scaledData, maxRows[0], 1, 2, 0); break; case 1: maxRows[1].normalizeLocal(); computeVectors(scaledData, maxRows[1], 2, 0, 1); break; case 2: maxRows[2].normalizeLocal(); computeVectors(scaledData, maxRows[2], 0, 1, 2); break;
public static void main(String[] args) { Matrix3f mat = new Matrix3f(2, 1, 1, 1, 2, 1, 1, 1, 2); Eigen3f eigenSystem = new Eigen3f(mat); logger.info("eigenvalues = "); for (int i = 0; i < 3; i++) logger.log(Level.FINE, "{0} ", eigenSystem.getEigenValue(i)); logger.info("eigenvectors = "); for (int i = 0; i < 3; i++) { Vector3f vector = eigenSystem.getEigenVector(i); logger.info(vector.toString()); mat.setColumn(i, vector); } logger.info(mat.toString()); // eigenvalues = // 1.000000 1.000000 4.000000 // eigenvectors = // 0.411953 0.704955 0.577350 // 0.404533 -0.709239 0.577350 // -0.816485 0.004284 0.577350 }
public Eigen3f(Matrix3f data) { calculateEigen(data); }