Application


Installer et compiler ces fichiers dans votre répertoire de travail.


ccn1g.c
/* ------------------------------------ */
/*  Save as :   ccn1g.c                 */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
#define FACTOR_E        +1.E-0         
/* ------------------------------------ */
void fun(int r,int c)
{
double **A      = r_mR(i_mR(r,c),9.);
double **Pinv   = i_mR(c,r);     
double **Ide    = i_mR(r,r);    

  clrscrn();
  printf(" Copy/Past into the octave windows \n\n\n");
  p_Octave_mR(A,"A",P2);
  printf("pinv(A)\n\n\n");
  stop();

  clrscrn();
  printf(" PseudoInverse = V * invS_T * U_T ");
  pseudo_Cn_mR(A,Pinv,FACTOR_E); 
  pE_mR(Pinv,S12,P4,C10);
  
  printf(" Ide =  A * PseudoInverse ");
  mul_mR(A,Pinv,Ide); 
  p_mR(Ide,S10,P6,C10);   
    
  f_mR(A); 
  f_mR(Pinv); 
  f_mR(Ide); 
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

int i;

do
{
  i = rp_I(R3)+R1;
  
  fun(i,i+C1);

} while(stop_w());

  return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */



Exemple de sortie écran :
 ------------------------------------ 
 Copy/Past into the octave windows 


 A=[
-1.00,+4.00,+1.00,-4.00,+9.00;
+7.00,+1.00,-8.00,+9.00,+3.00;
-4.00,-4.00,+3.00,-5.00,-4.00;
+4.00,-2.00,+1.00,+2.00,+1.00]

pinv(A)


 Press return to continue. 


 ------------------------------------ 
 PseudoInverse = V * invS_T * U_T 
 -7.5145e-03  -1.6588e-02  -3.9953e-02  +1.4664e-01 
 -5.3097e-02  -1.2708e-01  -2.6301e-01  -9.8928e-02 
 -4.8950e-02  -1.7403e-01  -1.8433e-01  +1.4597e-01 
 -6.8113e-02  -3.5897e-02  -1.2879e-01  +1.0458e-02 
 +1.0904e-01  +5.8018e-02  +7.5698e-02  +4.8691e-02 

 Ide =  A * PseudoInverse 
 +1.000000  +0.000000  -0.000000  +0.000000 
 +0.000000  +1.000000  -0.000000  +0.000000 
 -0.000000  -0.000000  +1.000000  +0.000000 
 -0.000000  -0.000000  -0.000000  +1.000000 


 Press return to continue
 Press X      to stop