public class TridiagonalDecompositionHouseholder extends Object
Performs a TridiagonalSimilarDecomposition similar tridiagonal decomposition on a square symmetric input matrix. Householder vectors perform the similar operation and the symmetry is taken advantage of for good performance.
Finds the decomposition of a matrix in the form of:
A = O*T*OT
where A is a symmetric m by m matrix, O is an orthogonal matrix, and T is a tridiagonal matrix.
This implementation is based off of the algorithm described in:
David S. Watkins, "Fundamentals of Matrix Computations," Second Edition. Page 349-355
| Constructor and Description |
|---|
TridiagonalDecompositionHouseholder() |
| Modifier and Type | Method and Description |
|---|---|
boolean |
decompose(AMatrix A)
Decomposes the provided symmetric matrix.
|
void |
getDiagonal(double[] diag,
double[] off) |
AMatrix |
getQ(boolean transposed)
An orthogonal matrix that has the following property: T = QTAQ
|
AMatrix |
getQT()
Returns the internal matrix where the decomposed results are stored.
|
AMatrix |
getT()
Extracts the tridiagonal matrix found in the decomposition.
|
void |
householderSymmetric(int row,
double gamma)
Performs the householder operations on left and right and side of the matrix.
|
void |
init(AMatrix A)
If needed declares and sets up internal data structures.
|
public AMatrix getQT()
public void getDiagonal(double[] diag,
double[] off)
public AMatrix getT()
public AMatrix getQ(boolean transposed)
public boolean decompose(AMatrix A)
A - Symmetric matrix that is going to be decomposed. Not modified.public void householderSymmetric(int row,
double gamma)
row - Specifies the submatrix.gamma - The gamma for the householder operationpublic void init(AMatrix A)
A - Matrix being decomposed.Copyright © 2016. All rights reserved.