golib
0.5
|
#include <gosvd.h>
Public Member Functions | |
ThinSVD (const goMath::Matrix< Real > &Arg) | |
void | getU (goMath::Matrix< Real > &A) |
void | getV (goMath::Matrix< Real > &A) |
goMath::Matrix< Real > & | getU () |
const goMath::Matrix< Real > & | getU () const |
goMath::Matrix< Real > & | getV () |
const goMath::Matrix< Real > & | getV () const |
void | getSingularValues (goMath::Vector< Real > &x) |
goMath::Vector< Real > & | getSingularValues () |
const goMath::Vector< Real > & | getSingularValues () const |
void | getS (goMath::Matrix< Real > &A) |
double | norm2 () |
double | cond () |
int | rank () |
Singular Value Decomposition. This is taken from the JAMA toolkit. JAMA is free of copyright. The classes are renamed to fit in the go... naming conventions.
For an m-by-n matrix A with m >= n, the singular value decomposition is an m-by-n orthogonal matrix U, an n-by-n diagonal matrix S, and an n-by-n orthogonal matrix V so that A = U*S*V'.
The singular values, sigma[k] = S(k,k), are ordered so that sigma[0] >= sigma[1] >= ... >= sigma[n-1].
The singular value decompostion always exists, so the constructor will never fail. The matrix condition number and the effective numerical rank can be computed from this decomposition.
(Adapted from JAMA, a Java Matrix Library, developed by jointly by the Mathworks and NIST; see http://math.nist.gov/javanumerics/jama).
double goMath::ThinSVD< Real >::cond | ( | ) |
Two norm of condition number (max(S)/min(S))
void goMath::ThinSVD< Real >::getS | ( | goMath::Matrix< Real > & | A | ) |
Return the diagonal matrix of singular values
void goMath::ThinSVD< Real >::getSingularValues | ( | goMath::Vector< Real > & | x | ) |
Return the one-dimensional array of singular values
double goMath::ThinSVD< Real >::norm2 | ( | ) |
Two norm (max(S))
int goMath::ThinSVD< Real >::rank | ( | ) |
Effective numerical matrix rank