< Mathc matrices


Sommaire


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

cq5.c
'
/* ------------------------------------ */
/*  Save as :   cq5.c                   */
/* ------------------------------------ */
#include "v_a.h"
/* ------------------------------------ */
void fun(int r)
{
double **A      = r_mR(i_mR(r,r),9.);
double **u      = r_mR(i_mR(r,C1),9.);
double **v      = r_mR(i_mR(r,C1),9.);
double **Qu     =      i_mR(r,C1);
double **Qv     =      i_mR(r,C1);
double **Q      =      i_mR(r,r);

  clrscrn();
  
  r_Quv_mR(A,Q);    
  printf(" Q :                an orthogonal matrix ");
  p_mR(Q,3,5,6);
  
  printf(" u :");
  p_mR(u,3,1,6);

  printf(" v :");
  p_mR(v,3,1,6);
  
  printf(" Q u . Q v    =   u . v  \n\n ");
  printf("     %.1f   = %.1f           \n\n ",
  
  dotuv_R(mul_mR(Q,u,Qu), mul_mR(Q,v,Qv)),  
  dotuv_R(u,v));
   
  f_mR(A);
  f_mR(u);
  f_mR(v); 
  f_mR(Qu);
  f_mR(Qv);
  f_mR(Q);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

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

} while(stop_w());

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


Le produit scalaire de deux vecteurs est égale au produit produit scalaire de ces mêmes vecteurs multiplié par une même matrice orthogonale :  r_Quv_mR(U,Q); 



Exemple de sortie écran :
 Q :                an orthogonal matrix 
-0.61632 -0.57442 -0.53870 
+0.70436 -0.09618 -0.70330 
+0.35218 -0.81289 +0.46388 

 u :
-9.0 
-7.0 
-7.0 

 v :
-9.0 
+6.0 
-3.0 

 Q u . Q v    =   u . v  

      60.0   = 60.0           

 
 Press return to continue
 Press X      to stop
Cet article est issu de Wikibooks. Le texte est sous licence Creative Commons - Attribution - Partage dans les Mêmes. Des conditions supplémentaires peuvent s'appliquer aux fichiers multimédias.