< Mathc matrices


Sommaire


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

cq4.c
'
/* ------------------------------------ */
/*  Save as :   cq4.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 **Qu     =      i_mR(r,C1);
double **Q      =      i_mR(r,r);

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


  printf("        T(u) = Q*u   \n\n ");
  printf(" ||T(u)||     = ||u|| \n\n ");
  printf("   %f   = %f           \n\n ",
  
  normuv_R(mul_mR(Q,u,Qu)),  normuv_R(u));
   
  f_mR(A);
  f_mR(u); 
  f_mR(Qu);
  f_mR(Q);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

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

} while(stop_w());

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


La norme d'un vecteur U n'est pas changé si on multiplie U par une matrice orthogonale :  r_Quv_mR(U,Q); 



Exemple de sortie écran :
 Q :
-0.59761 +0.34316 -0.49437 +0.52981 
-0.59761 +0.06056 -0.08724 -0.79472 
+0.47809 +0.03633 -0.83662 -0.26491 
+0.23905 +0.93662 +0.21922 -0.13245 

 u :
+6.00000 
-1.00000 
-1.00000 
-3.00000 

        T(u) = Q*u   

  ||T(u)||     = ||u|| 

    6.855655   = 6.855655           

 
 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.