Matrice de Hankel

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

c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **U   =       r_mR(    i_mR(R1,r),9);
double **V   =       r_mR(    i_mR(r,C1),9);	
double **A   = rHankel_mR(U,V,i_mR(r,r)   );

                            
double **Norm   =  normalize_mR(A,   i_mR(r,r));
double **Norm_T =  transpose_mR(Norm,i_mR(r,r));    

  clrscrn();
  printf(" A :");
  p_mR(A, S8,P4, C6); 
  stop();
  
  clrscrn();
  printf(" Norm :");
  p_mR(Norm, S8,P4, C6);  
  
  printf(" Norm_T :");
  p_mR(Norm_T, S8,P4, C6); 
  
  printf(" Norm_T * Norm  :");
  mul_mR(Norm_T,Norm, A);
  p_mR(A, S10,P4, C6);  
    
  f_mR(U);
  f_mR(V);
  f_mR(A);
  f_mR(Norm);
  f_mR(Norm_T);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

do
{
  fun(rp_I(R3)+R2);
} while(stop_w());

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


Matrice de Hankel. Normaliser une matrice non orthogonale.

Exemple de sortie écran :

 A :
 -7.0000  +7.0000  -1.0000  +8.0000 
 +7.0000  -1.0000  +8.0000  -7.0000 
 -1.0000  +8.0000  -7.0000  -7.0000 
 +8.0000  -7.0000  -7.0000  +8.0000 

 Press return to continue. 


 Norm :
 -0.5483  +0.5483  -0.0783  +0.5322 
 +0.5483  -0.0783  +0.6266  -0.4656 
 -0.0783  +0.6266  -0.5483  -0.4656 
 +0.6266  -0.5483  -0.5483  +0.5322 

 Norm_T :
 -0.5483  +0.5483  -0.0783  +0.6266 
 +0.5483  -0.0783  +0.6266  -0.5483 
 -0.0783  +0.6266  -0.5483  -0.5483 
 +0.5322  -0.4656  -0.4656  +0.5322 

 Norm_T * Norm  :
   +1.0000    -0.7362    +0.0859    -0.1771 
   -0.7362    +1.0000    -0.1350    -0.2553 
   +0.0859    -0.1350    +1.0000    -0.3699 
   -0.1771    -0.2553    -0.3699    +1.0000 


 Press   return to continue
 Press X return to stop