org.jscience.chemistry.quantum.math.la
Class JacobiDiagonalizer

java.lang.Object
  extended by org.jscience.chemistry.quantum.math.la.Diagonalizer
      extended by org.jscience.chemistry.quantum.math.la.JacobiDiagonalizer

public class JacobiDiagonalizer
extends Diagonalizer

Jacobi diagonalization attempts to diagonalize a matrix such that after O(N3) operations, the off-diagonal elements are made zero. So, the diagonal elements now represent the eigen values.
Jacobi diagonalization becomes inefficient for higher order matrices because of use of matrix multiplications for diagonalizing the matrix. Also, the diagonal elements made zero may become non-zero in successive sweeps.
Taken from Numerical Recipes, section 11.1.


Field Summary
 
Fields inherited from class org.jscience.chemistry.quantum.math.la.Diagonalizer
eigenSort, eigenValues, eigenVectors, maximumIteration, rmsTolerance, zeroTolerance
 
Constructor Summary
JacobiDiagonalizer()
          Creates a new instance of JacobiDiagonalizer
 
Method Summary
 void diagonalize(Matrix matrix)
          the diagonalization method, for the matrix A
 
Methods inherited from class org.jscience.chemistry.quantum.math.la.Diagonalizer
getEigenValues, getEigenVectors, getMaximumIteration, getRmsTolerance, getZeroTolerance, isEigenSort, setEigenSort, setMaximumIteration, setRmsTolerance, setZeroTolerance
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JacobiDiagonalizer

public JacobiDiagonalizer()
Creates a new instance of JacobiDiagonalizer

Method Detail

diagonalize

public void diagonalize(Matrix matrix)
the diagonalization method, for the matrix A

Specified by:
diagonalize in class Diagonalizer
Parameters:
matrix - - the matrix that is to be diagonalized