PInv

Calcule la pseudo-inverse d'une matrice par la méthode de Moore-Penrose.

matrix matrix::PInv()

Valeur de Retour

La pseudo-inverse de matrice.

Exemple

int TestPseudoInverse(const int size_mconst int size_k)
  {
   matrix matrix_a(size_m,size_k);
   matrix matrix_inverted(size_k,size_m);
   matrix matrix_temp;
   matrix matrix_a2;
//--- remplit la matrice
   MatrixTestFirst(matrix_a);
//--- inverse
   matrix_inverted=matrix_a.PInv();
//--- vérifie l'exactitude
   int errors=0;
//--- A * A+ * A = A   (A+ est un pseudo-inverse de A)
   matrix_temp=matrix_a.MatMul(matrix_inverted);
   matrix_a2=matrix_temp.MatMul(matrix_a);
   errors=(int)matrix_a.CompareByDigits(matrix_a2,10);
 
   printf("PseudoInversion %s matrix_size  %d x %d  erreurs=%d",errors==0?"passed":"failed",size_m,size_k,errors);
//---
   return(errors);
  }