Package org.hipparchus.linear
Class SchurTransformer
- java.lang.Object
-
- org.hipparchus.linear.SchurTransformer
-
public class SchurTransformer extends Object
Class transforming a general real matrix to Schur form.A m × m matrix A can be written as the product of three matrices: A = P × T × PT with P an orthogonal matrix and T an quasi-triangular matrix. Both P and T are m × m matrices.
Transformation to Schur form is often not a goal by itself, but it is an intermediate step in more general decomposition algorithms like
eigen decomposition
. This class is therefore intended for expert use. As a consequence of this explicitly limited scope, many methods directly returns references to internal arrays, not copies.This class is based on the method hqr2 in class EigenvalueDecomposition from the JAMA library.
-
-
Constructor Summary
Constructors Constructor Description SchurTransformer(RealMatrix matrix)
Build the transformation to Schur form of a general real matrix.SchurTransformer(RealMatrix matrix, double epsilon)
Build the transformation to Schur form of a general real matrix.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RealMatrix
getP()
Returns the matrix P of the transform.RealMatrix
getPT()
Returns the transpose of the matrix P of the transform.RealMatrix
getT()
Returns the quasi-triangular Schur matrix T of the transform.
-
-
-
Constructor Detail
-
SchurTransformer
public SchurTransformer(RealMatrix matrix)
Build the transformation to Schur form of a general real matrix.- Parameters:
matrix
- matrix to transform- Throws:
MathIllegalArgumentException
- if the matrix is not square
-
SchurTransformer
public SchurTransformer(RealMatrix matrix, double epsilon)
Build the transformation to Schur form of a general real matrix.- Parameters:
matrix
- matrix to transformepsilon
- convergence criteria- Throws:
MathIllegalArgumentException
- if the matrix is not square- Since:
- 3.0
-
-
Method Detail
-
getP
public RealMatrix getP()
Returns the matrix P of the transform.P is an orthogonal matrix, i.e. its inverse is also its transpose.
- Returns:
- the P matrix
-
getPT
public RealMatrix getPT()
Returns the transpose of the matrix P of the transform.P is an orthogonal matrix, i.e. its inverse is also its transpose.
- Returns:
- the transpose of the P matrix
-
getT
public RealMatrix getT()
Returns the quasi-triangular Schur matrix T of the transform.- Returns:
- the T matrix
-
-