Interface QRDecomposition<T extends Matrix>

  • All Superinterfaces:
    DecompositionInterface<T>
    All Known Subinterfaces:
    QRPDecomposition<T>, QRPDecomposition_F32<T>, QRPDecomposition_F64<T>, QRSparseDecomposition<T>

    public interface QRDecomposition<T extends Matrix>
    extends DecompositionInterface<T>

    QR decompositions decompose a rectangular matrix 'A' such that 'A=QR'. Where A ∈ ℜ n × m , n ≥ m, Q ∈ ℜ n × n is an orthogonal matrix, and R ∈ ℜ n × m is an upper triangular matrix. Some implementations of QR decomposition require that A has full rank.

    Some features of QR decompositions:
    • Can decompose rectangular matrices.
    • Numerically stable solutions to least-squares problem, but not as stable as SVD
    • Can incrementally add and remove columns from the decomposed matrix. See org.ejml.dense.row.linsol.qr.AdjLinearSolverQr_DDRM
    Orthogonal matrices have the following properties:
    • QQT=I
    • QT=Q-1
    • Method Detail

      • getQ

        T getQ​(T Q,
               boolean compact)

        Returns the Q matrix from the decomposition. Should only be called after DecompositionInterface.decompose(org.ejml.data.Matrix) has been called.

        If parameter Q is not null, then that matrix is used to store the Q matrix. Otherwise a new matrix is created.

        Parameters:
        Q - If not null then the Q matrix is written to it. Modified.
        compact - If true an m by n matrix is created, otherwise n by n.
        Returns:
        The Q matrix.
      • getR

        T getR​(T R,
               boolean compact)

        Returns the R matrix from the decomposition. Should only be called after DecompositionInterface.decompose(org.ejml.data.Matrix) has been.

        If setZeros is true then an n × m matrix is required and all the elements are set. If setZeros is false then the matrix must be at least m × m and only the upper triangular elements are set.

        If parameter R is not null, then that matrix is used to store the R matrix. Otherwise a new matrix is created.

        Parameters:
        R - If not null then the R matrix is written to it. Modified.
        compact - If true only the upper triangular elements are set
        Returns:
        The R matrix.