Open CASCADE Technology  7.0.0
Public Member Functions | Protected Attributes

math_GaussLeastSquare Class Reference

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. More...

#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. More...
 
Standard_Boolean IsDone () const
 Returns true if the computations are successful, otherwise returns false.e. More...
 
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. More...
 
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 <<. More...
 

Protected Attributes

Standard_Boolean Singular
 
math_Matrix LU
 
math_Matrix A2
 
math_IntegerVector Index
 
Standard_Real D
 

Detailed Description

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.

Constructor & Destructor Documentation

math_GaussLeastSquare::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.

Member Function Documentation

void math_GaussLeastSquare::Dump ( Standard_OStream o) const

Prints on the stream o information on the current state of the object. Is used to redefine the operator <<.

Standard_Boolean math_GaussLeastSquare::IsDone ( ) const

Returns true if the computations are successful, otherwise returns false.e.

void math_GaussLeastSquare::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.

Field Documentation

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

The documentation for this class was generated from the following file: