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.
|
|
|
|
#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);
|
|
|
|
|
};
|