public class BiDiagonalizationByHouseholder extends Object implements BiDiagonalization
Constructor and Description |
---|
BiDiagonalizationByHouseholder(Matrix A)
Runs the Householder bi-diagonalization for a tall matrix.
|
Modifier and Type | Method and Description |
---|---|
BidiagonalMatrix |
B()
Gets B, which is the square upper part of
U.t().multiply(A).multiply(V) . |
Matrix |
U()
Gets U, where
U' = Uk * ...
|
Matrix |
V()
Gets V, where
V' = Vk * ...
|
public BiDiagonalizationByHouseholder(Matrix A)
A
- a tall matrixIllegalArgumentException
- if A is not tallpublic BidiagonalMatrix B()
U.t().multiply(A).multiply(V)
.
The dimension of B is n x n.B
in interface BiDiagonalization
public Matrix U()
k = A.nCols()
(or
k = A.nCols() - 1
for square A).
The dimension of U is m x m.
To compute U,
instead of explicitly doing this multiplication, this implementation improves the performance
by applying Ui's repeatedly on an identity matrix.
We take the transpose afterward.U
in interface BiDiagonalization
public Matrix V()
k = A.nCols() - 2
.
The dimension of V is n x n.
To compute V,
instead of explicitly doing this multiplication, this implementation improves the performance
by applying Vi's repeatedly on an identity matrix.
We take the transpose afterward.V
in interface BiDiagonalization
Copyright © 2010-2020 NM FinTech Ltd.. All Rights Reserved.