MFsym_sqrt
| MDsym_sqrt |
MEsym_sqrt |
|
Function | Square root of a symmetric, positive definite matrix |
|
Syntax C/C++ | #include <MFstd.h>
int MFsym_sqrt( fMatrix MB, fMatrix MA, ui len ); |
C++ MatObj | #include <OptiVec.h>
void matrix<T>::sqrt( const matrix<T>& MA ); |
Pascal/Delphi | uses MFstd;
function MFsym_sqrt( MB, MA:fMatrix; len:UIntSize ):IntBool; |
|
Description | The square-root of a symmetric, positive definite matrix is calculated, so that MB * MB = MA is satisfied. Please note that non-symmetric matrices or matrices which are not positive definite may or may not have existing square-roots, too. The present algorithm, however, is restricted to the most simple case where a square-root always exists. It uses eigenvalues and eigenvectors and fails whenever a negative eigenvalue is encountered, indicating an input matrix which is not positive definite. In the latter case, an error message is displayed and the result is calculated with zero substituted for the negative eigenvalue. This result may still be useful, namely if the negative eigenvalue is very small.
A return value of FALSE or 0 indicates success, whereas a non-zero return value indicates that the input matrix did not meet the condition of being symmetric and positive definite. |
|
Return value | FALSE (0), if the matrix square-root could be calculated; otherwise TRUE (1) |
|
|