Open CASCADE Technology 7.8.2.dev
math_SVD Class Reference

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

Detailed Description

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.

Constructor & Destructor Documentation

◆ math_SVD()

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.

Member Function Documentation

◆ Dump()

void math_SVD::Dump ( Standard_OStream & o) const

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

◆ IsDone()

Standard_Boolean math_SVD::IsDone ( ) const

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

◆ PseudoInverse()

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.

◆ Solve()

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.


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