Functions | |
int | JacobiRot (Matrix< REAL > &A, Matrix< REAL > &Q, Vector< REAL > &v) |
Jacobi Transformation of a Symmetric Matrix<REAL>. |
int LinAlg::Sym::JacobiRot | ( | Matrix< REAL > & | A, | |
Matrix< REAL > & | Q, | |||
Vector< REAL > & | v | |||
) | [inline] |
Jacobi Transformation of a Symmetric Matrix<REAL>.
Jacobi Transformation of a Symmetric Matrix<REAL> The Jacobi method consists of a sequence of orthogonal similarity transformations. Each transformation (a Jacobi rotation) is just a plane rotation designed to annihilate one of the off-diagonal matrix elements. Successive transformations undo previously set zeros, but the off-diagonal elements nevertheless get smaller and smaller. Accumulating the product of the transformations as you go gives the matrix of eigenvectors (Q), while the elements of the final diagonal matrix (A) are the eigenvalues. The Jacobi method is absolutely foolproof for all real symmetric matrices. For matrices of order greater than about 10, say, the algorithm is slower, by a significant constant factor, than the QR method.
A | In/Out: is the matrix we seek for the eigenvalues (SYMMETRIC and square, i.e. Rows=Cols) | |
Q | Out: is a matrix which columns are the eigenvectors | |
v | Out: is a vector with the eigenvalues |
Definition at line 73 of file jacobirot.h.