|
Open CASCADE Technology
6.7.1
|
SVD implements the solution of a set of N linear equations
of M unknowns without condition on N or M. The Singular
Value Decomposition algorithm is used. For singular or
nearly singular matrices SVD is a better choice than Gauss
or GaussLeastSquare.
More...
#include <math_SVD.hxx>
Public Member Functions | |
| math_SVD (const math_Matrix &A) | |
| Given as input an n X m matrix A with n < m, n = m or n > m this constructor performs the Singular Value Decomposition. More... | |
| Standard_Boolean | IsDone () const |
| Returns true if the computations are successful, otherwise returns false. More... | |
| void | Solve (const math_Vector &B, math_Vector &X, const Standard_Real Eps=1.0e-6) const |
| Given the input Vector B this routine solves the set of linear equations A . X = B. Exception NotDone is raised if the decomposition of A was not done successfully. Exception DimensionError is raised if the range of B is not equal to the rowrange of A. Exception DimensionError is raised if the range of X is not equal to the colrange of A. More... | |
| void | PseudoInverse (math_Matrix &Inv, const Standard_Real Eps=1.0e-6) const |
Computes the inverse Inv of matrix A such as A * Inverse = Identity. <br> Exceptions | |
| void | Dump (Standard_OStream &o) const |
| Prints information on the current state of the object. Is used to redefine the operator <<. More... | |
SVD implements the solution of a set of N linear equations
of M unknowns without condition on N or M. The Singular
Value Decomposition algorithm is used. For singular or
nearly singular matrices SVD is a better choice than Gauss
or GaussLeastSquare.
| math_SVD::math_SVD | ( | const math_Matrix & | A | ) |
Given as input an n X m matrix A with n < m, n = m or n > m
this constructor performs the Singular Value Decomposition.
| void math_SVD::Dump | ( | Standard_OStream & | o | ) | const |
Prints information on the current state of the object.
Is used to redefine the operator <<.
| Standard_Boolean math_SVD::IsDone | ( | ) | const |
Returns true if the computations are successful, otherwise returns false.
| void math_SVD::PseudoInverse | ( | math_Matrix & | Inv, |
| const Standard_Real | Eps = 1.0e-6 |
||
| ) | const |
Computes the inverse Inv of matrix A such as A * Inverse = Identity. <br>
Exceptions
StdFail_NotDone if the algorithm fails (and IsDone returns false).
Standard_DimensionError if the ranges of Inv are
compatible with the ranges of A.
| void math_SVD::Solve | ( | const math_Vector & | B, |
| math_Vector & | X, | ||
| const Standard_Real | Eps = 1.0e-6 |
||
| ) | const |
Given the input Vector B this routine solves the set of linear
equations A . X = B.
Exception NotDone is raised if the decomposition of A was not done
successfully.
Exception DimensionError is raised if the range of B is not
equal to the rowrange of A.
Exception DimensionError is raised if the range of X is not
equal to the colrange of A.
1.8.5