Open CASCADE Technology 7.8.0
|
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. | |
Standard_Boolean | IsDone () const |
Returns true if the computations are successful, otherwise returns false. | |
void | Solve (const math_Vector &B, math_Vector &X, const Standard_Real Eps=1.0e-6) |
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. | |
void | PseudoInverse (math_Matrix &Inv, const Standard_Real Eps=1.0e-6) |
Computes the inverse Inv of matrix A such as A * Inverse = Identity. 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 | Dump (Standard_OStream &o) const |
Prints information on the current state of the object. Is used to redefine the operator <<. | |
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 |
||
) |
Computes the inverse Inv of matrix A such as A * Inverse = Identity. 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 |
||
) |
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.