Class 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.

    See Also:
    Schur Decomposition - MathWorld, Schur Decomposition - Wikipedia, Householder Transformations
    • 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 transform
        epsilon - 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