Open CASCADE Technology 6.6.0
|
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 | |
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::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] |