You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nmWATI/Include/iAlg/iAlgMath/zxAlgMatrixPsInvNew.h

45 lines
896 B
C

#pragma once
#include "Defines.h"
#include "iAlgMath_global.h"
// <20><><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2B7BD>֮һ<D6AE><D2BB><EFBFBD>ȶ<EFBFBD><C8B6><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤
// <20><><EFBFBD>ߣ<EFBFBD><DFA3>ش<EFBFBD>ѧ<EFBFBD><D1A7> wangjr
//<2F>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//6*7<><37>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>Լ1.0
//100*90<39><30>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>Լ0.3
//200*90<39><30>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD>ԼΪ0.015
class I_ALGMATH_EXPORT zxAlgMatrixPsInvNew
{
public:
zxAlgMatrixPsInvNew();
~zxAlgMatrixPsInvNew();
#ifdef QT_DEBUG
void test();
#endif
public:
// <20><><EFBFBD><EFBFBD>α<EFBFBD><CEB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
VVecDouble pseudoInverse(VVecDouble& A);
private:
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
void transpose(const VVecDouble& src, VVecDouble& dst);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˷<EFBFBD> result = A * B
void matrixMultiply(const VVecDouble& A, const VVecDouble& B, \
VVecDouble& result);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6A3A8><EFBFBD>޷<EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҽٶ<D2BC><D9B6><EFBFBD><EFBFBD>
bool matrixInverse(const VVecDouble& src, VVecDouble& dst);
// <20><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD>
void printMatrix(const VVecDouble& matrix);
};