|
Open CASCADE Technology 6.5.2
|
This class implements the least square solution of a set of
n linear equations of m unknowns (n >= m) using the gauss LU
decomposition algorithm.
This algorithm is more likely subject to numerical instability
than math_SVD.
#include <math_GaussLeastSquare.hxx>
Public Member Functions | |
| void * | operator new (size_t, void *anAddress) |
| void * | operator new (size_t size) |
| void | operator delete (void *anAddress) |
| math_GaussLeastSquare (const math_Matrix &A, const Standard_Real MinPivot=1.0e-20) | |
| Given an input n X m matrix A with n >= m this constructor performs the LU decomposition with partial pivoting (interchange of rows) of the matrix AA = A.Transposed() * A; This LU decomposition is stored internally and may be used to do subsequent calculation. If the largest pivot found is less than MinPivot the matrix is considered as singular. | |
| Standard_Boolean | IsDone () const |
| Returns true if the computations are successful, otherwise returns false.e | |
| void | Solve (const math_Vector &B, math_Vector &X) const |
| Given the input Vector 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 Inv is not equal to the rowrange of A. Exception DimensionError is raised if the range of X Inv is not equal to the colrange of A. | |
| void | Dump (Standard_OStream &o) const |
| Prints on the stream o information on the current state of the object. Is used to redefine the operator <<. | |
Protected Attributes | |
| Standard_Boolean | Singular |
| math_Matrix | LU |
| math_Matrix | A2 |
| math_IntegerVector | Index |
| Standard_Real | D |
| math_GaussLeastSquare::math_GaussLeastSquare | ( | const math_Matrix & | A, |
| const Standard_Real | MinPivot = 1.0e-20 |
||
| ) |
| void math_GaussLeastSquare::Dump | ( | Standard_OStream & | o | ) | const |
| Standard_Boolean math_GaussLeastSquare::IsDone | ( | ) | const |
| void math_GaussLeastSquare::operator delete | ( | void * | anAddress | ) | [inline] |
| void* math_GaussLeastSquare::operator new | ( | size_t | size | ) | [inline] |
| void* math_GaussLeastSquare::operator new | ( | size_t | , |
| void * | anAddress | ||
| ) | [inline] |
| void math_GaussLeastSquare::Solve | ( | const math_Vector & | B, |
| math_Vector & | X | ||
| ) | const |
math_Matrix math_GaussLeastSquare::A2 [protected] |
Standard_Real math_GaussLeastSquare::D [protected] |
math_IntegerVector math_GaussLeastSquare::Index [protected] |
math_Matrix math_GaussLeastSquare::LU [protected] |
Standard_Boolean math_GaussLeastSquare::Singular [protected] |
1.7.4