Aller au contenu

Mathc matrices/00a

Un livre de Wikilivres.


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 **Inv =                i_mR(r,r);
double **ID  =                i_mR(r,r);

  clrscrn();
  printf(" Copy/Past into the octave window.\n\n");
  p_Octave_mR(A,"A",P0);
  printf(" inv(A)\n");
  p_mR(inv_mR(A,Inv),S5,P6,C7);;
  stop();
  
  clrscrn();
  printf(" inv(A)*A\n");  
  p_mR(mul_mR(Inv,A,ID),S5,P6,C7);
  printf(" A*inv(A)\n");  
  p_mR(mul_mR(A,Inv,ID),S5,P6,C7);

  f_mR(U);
  f_mR(V);   
  f_mR(A);
  
  f_mR(ID);
  f_mR(Inv);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));
do
{
  fun(rp_I(RC5)+C2);

} while(stop_w());


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


Matrice de Hankel.

Exemple de sortie écran :

 Copy/Past into the octave window.

 A=[
+6,+2,+5,+1,-5;
+2,+5,+1,-5,+4;
+5,+1,-5,+4,-8;
+1,-5,+4,-8,+7;
-5,+4,-8,+7,-1]

 inv(A)

+0.305510 -0.020617 +0.087967 +0.376484 +0.321629 
-0.020617 +0.117956 -0.036611 -0.129701 -0.040110 
+0.087967 -0.036611 -0.110459 -0.046608 -0.028864 
+0.376484 -0.129701 -0.046608 +0.350244 +0.423341 
+0.321629 -0.040110 -0.028864 +0.423341 +0.425715 

 Press return to continue. 


 inv(A)*A

+1.000000 +0.000000 +0.000000 +0.000000 -0.000000 
-0.000000 +1.000000 +0.000000 -0.000000 +0.000000 
-0.000000 -0.000000 +1.000000 -0.000000 +0.000000 
-0.000000 +0.000000 +0.000000 +1.000000 +0.000000 
+0.000000 -0.000000 +0.000000 -0.000000 +1.000000 

 A*inv(A)

+1.000000 +0.000000 -0.000000 -0.000000 +0.000000 
-0.000000 +1.000000 -0.000000 +0.000000 -0.000000 
+0.000000 +0.000000 +1.000000 -0.000000 +0.000000 
-0.000000 -0.000000 -0.000000 +1.000000 -0.000000 
+0.000000 +0.000000 +0.000000 +0.000000 +1.000000 


 Press   return to continue
 Press X return to stop