SuanShu, a Java numerical and statistical library

com.numericalmethod.suanshu.algebra.linear.matrix.doubles.factorization.diagonalization

Class TriDiagonalization

• java.lang.Object
• com.numericalmethod.suanshu.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 and Description
TriDiagonalization(Matrix A)
Runs the tri-diagonalization process for a symmetric matrix.
• Method Summary

All Methods
Modifier and Type Method and Description
Matrix Q()
Gets Q, such that Q * A * Q = T.
TridiagonalMatrix T()
Gets T, such that T = Q * A * Q.
• Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• 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