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 Matrix
Q()
Gets Q, such that Q * A * Q = T.TridiagonalMatrix
T()
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
-
-