Class TriDiagonalization
- java.lang.Object
-
- dev.nm.algebra.linear.matrix.doubles.factorization.diagonalization.TriDiagonalization
-
public class TriDiagonalization extends Object
A tri-diagonal matrix A is a matrix such that it has non-zero elements only in the main diagonal, the first diagonal below, and the first diagonal above. Successive Householder reflections on columns and then rows gradually transform a symmetric matrix A to the tri-diagonal form. The procedure is essentially the same as in Hessenberg decomposition, c.f.,HessenbergDecomposition, except that here we apply the procedure only to symmetric matrix. The trailing elements in rows are also zeroed out, due to symmetry.
-
-
Constructor Summary
Constructors Constructor Description TriDiagonalization(Matrix A)Runs the tri-diagonalization process for a symmetric matrix.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description MatrixQ()Gets Q, such that Q * A * Q = T.TridiagonalMatrixT()Gets T, such that T = Q * A * Q.
-
-
-
Constructor Detail
-
TriDiagonalization
public TriDiagonalization(Matrix A)
Runs the tri-diagonalization process for a symmetric matrix.- Parameters:
A- a symmetric matrix- Throws:
IllegalArgumentException- if A is not symmetric
-
-
Method Detail
-
T
public TridiagonalMatrix T()
Gets T, such that T = Q * A * Q. T is triangular. Q is orthogonal.- Returns:
- the T matrix
-
Q
public Matrix Q()
Gets Q, such that Q * A * Q = T. Q is orthogonal. T is triangular.- Returns:
- the Q matrix
-
-