Interface BiDiagonalization

  • All Known Implementing Classes:
    BiDiagonalizationByGolubKahanLanczos, BiDiagonalizationByHouseholder

    public interface BiDiagonalization
    Given a tall (m x n) matrix A, where m ≥ n, find orthogonal matrices U and V such that U' * A * V = B. B is an upper bi-diagonal matrix. That is, \[ U'AV = \begin{bmatrix} d_1 & f_1 & ... & & & \\ 0 & d_2 & f_2 & ... & & \\ 0 & ... & & & & \\ ... & & & & d_{n-1} & f_{n-1} \\ ... & & & & & d_n \\ 0 & ... & & & & 0 \\ & ... & & & & ... \\ 0 & ... & & & & 0 \end{bmatrix} \]
    • Method Detail

      • B

        BidiagonalMatrix B()
        Gets B, which is the square upper part of U.t().multiply(A).multiply(V). The dimension of B is n x n.
        Returns:
        B
      • U

        Matrix U()
        Gets U, where U' = Uk * ... * U1, k = A.nCols(). The dimension of U is m x m.
        Returns:
        U
      • V

        Matrix V()
        Gets V, where V' = Vk * ... * V1, k = A.nCols() - 2. The dimension of V is n x n.
        Returns:
        V