trait SVDecomp extends Factorization
The SVDDecomp
trait specifies the major methods for Singular Value
Decomposition implementations:
------------------------------------------------------------------------------
SVD - Golub-Kahan-Reinsch Algorithm translated from Algol code
SVD2 - Compute 'a.t * a', 'a * a.t' and use Eigenvalue
and Eigenvector
SVD3 - Implicit Zero-Shift 'QR' Algorithm
SVD4 - Golub-Kahan-Reinsch Algorithm coded from psuedo-code in Matrix Computations
The last three are still under development.
- Alphabetic
- By Inheritance
- SVDecomp
- Factorization
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
Value Members
-
def
conditionNum: Double
Compute the condition number of 'this' matrix, i.e., the ratio of the largest singular value to the smallest.
Compute the condition number of 'this' matrix, i.e., the ratio of the largest singular value to the smallest. Note, if not of full rank, it will be infinity.
-
def
factor(): SVDecomp
Factor/deflate the matrix by iteratively turning elements not in the main diagonal to zero.
Factor/deflate the matrix by iteratively turning elements not in the main diagonal to zero.
- Definition Classes
- SVDecomp → Factorization
-
def
factor1(): MatriD
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t', returning only the first matrix.
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t', returning only the first matrix.
- Definition Classes
- Factorization
-
def
factor12(): (MatriD, MatriD)
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t' or a = q * r, returning both the first and second matrices.
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t' or a = q * r, returning both the first and second matrices.
- Definition Classes
- Factorization
-
def
factor123(): FactorType
Factor/deflate the matrix by iteratively turning elements not in the main diagonal to zero.
Factor/deflate the matrix by iteratively turning elements not in the main diagonal to zero. Then return the vector of singular values (i.e., the main diagonal), along with the left and right singular matrices.
-
def
factor2(): MatriD
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t', returning only the second matrix.
Factor a matrix into the product of two matrices, e.g., 'a = l * l.t', returning only the second matrix.
- Definition Classes
- Factorization
-
def
factors: (MatriD, MatriD)
Return the two factored matrices.
Return the two factored matrices.
- Definition Classes
- SVDecomp → Factorization
-
def
flip(u: MatriD, v: MatriD): Unit
Flip negative main diagonal elements in the singular vectors to positive.
Flip negative main diagonal elements in the singular vectors to positive.
- u
the left orthongonal matrix
- v
the right orthongonal matrix
-
def
flip(u: MatriD, s: VectoD): Unit
Flip negative singular values to positive and set singular values close to zero to zero.
Flip negative singular values to positive and set singular values close to zero to zero.
- u
the left orthongonal matrix
- s
the vector of singular values
-
def
reorder(ft: FactorType): Unit
Reorder the singular values to be in non-increasing order.
Reorder the singular values to be in non-increasing order. Must swap singular vectors in lock step with singular values. To minimize the number of swaps, selection sort is used.
- ft
the factored matrix (u, s, v)
-
def
solve(b: VectoD): VectoD
Solve for 'x' in 'a^t*a*x = b' using
SVD
.Solve for 'x' in 'a^t*a*x = b' using
SVD
.- b
the constant vector
- Definition Classes
- SVDecomp → Factorization