Mathc matrices/c05m

Un livre de Wikilivres.
Aller à la navigation Aller à la recherche


Sommaire


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

Crystal Clear mimetype source c.png c05m.c
'
/* ------------------------------------ */
/*  Save as :   c05m.c                   */
/* ------------------------------------ */
#include "v_a.h"

/* ------------------------------------ */
void fun(int r)
{
double **U      = r_mR(i_mR(r,r),9.);
double **T      =      i_mR(r,r);
double **Orth   =      i_mR(r,r);
double **Orth_T =      i_mR(r,r);

  clrscrn();
  
  printf(" U :");
  p_mR(U,S3,P0,C6);
  
  orth_uv_mR(U,Orth);
    
  printf(" Orth :");
  p_mR(Orth,S3,P5,C6);
  
  printf(" OrthT * Orth  :");
  transpose_mR(Orth,Orth_T);
  mul_mR(Orth_T,Orth, T);  
  p_mR(T,S15,P9,C6); 
  
  printf(" NormT * Norm  :");
  Normalize_uv_mR(Orth);  
  transpose_mR(Orth,Orth_T);
  mul_mR(Orth_T,Orth, T);  
  p_mR(T,S15,P9,C6);
   
  f_mR(U);
  f_mR(T);
  f_mR(Orth);
  f_mR(Orth_T);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

do
{
  fun(rp_I(R2)+R2);

} while(stop_w());

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


Nous voyons ici le produit scalaire : dotuv_R(u,v);



Exemple de sortie écran :
 U :
 -9  +8  +2  +8 
 -9  +4  +4  +8 
 -5  -7  -7  -5 
 +8  +2  -1  +6 

 Orth :
-9.00000 +5.95618 -2.58326 -1.70410 
-9.00000 +1.95618 +1.84456 +4.00360 
-5.00000 -8.13546 -2.59999 +1.31400 
+8.00000 +3.81673 -2.45603 +3.40820 

 OrthT * Orth  :
 +251.000000000    +0.000000000    +0.000000000    +0.000000000 
   +0.000000000  +120.055776892    -0.000000000    -0.000000000 
   +0.000000000    -0.000000000   +22.867657795    +0.000000000 
   +0.000000000    -0.000000000    +0.000000000   +32.275213541 

 NormT * Norm  :
   +1.000000000    +0.000000000    +0.000000000    -0.000000000 
   +0.000000000    +1.000000000    -0.000000000    -0.000000000 
   +0.000000000    -0.000000000    +1.000000000    +0.000000000 
   -0.000000000    -0.000000000    +0.000000000    +1.000000000 


 Press return to continue
 Press X      to stop