Aller au contenu

Mathc complexes/a136

Un livre de Wikilivres.


Application

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

c00a.c
/* ------------------------------------ */
/*  Save as :   c00a.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
void xr_commute3_mZ(
double **A,
double **B,
double **C,
int      n
)
{
double **P; 
double **Pinv; 
double **D;
double **T;
double **Dt;

int r=rsize_Z(A);

 P    = i_mZ(r,r);
 Pinv = i_mZ(r,r);
 D    = i_mZ(r,r);
 T    = i_mZ(r,r);
 Dt   = i_mZ(r,r);
 
 r_mZ(P,n);
 rdiag_mZ(D,n);
 
 inv_mZ(P,Pinv);
 mul_mZ(P,Diag_sin_mZ(D,Dt),T);
 mul_mZ(T,Pinv,A);

 mul_mZ(P,Diag_cos_mZ(D,Dt),T);
 mul_mZ(T,Pinv,B);
 
 mul_mZ(P,Diag_sinh_mZ(D,Dt),T);
 mul_mZ(T,Pinv,C);
 
 f_mZ(P);
 f_mZ(Pinv);
 f_mZ(D);
 f_mZ(T);
 f_mZ(Dt);
}
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r)
{
double **A  = i_mZ(r,r);
double **B  = i_mZ(r,r);
double **C  = i_mZ(r,r);
double **T  = i_mZ(r,r);

   r_commute3_mZ(A,B,C,9);

  clrscrn();
  printf(" A : ");
  p_mZ(A,S10,P3,S10,P3,C6);                                
  printf(" B : ");
  p_mZ(B,S10,P3,S10,P3,C6);
  printf(" C : ");
  p_mZ(C,S10,P3,S10,P3,C6);       
  stop();

  clrscrn();
  printf(" AB : ");
  p_mZ(mul_mZ(A,B,T),S10,P5,S10,P5,C6);
  printf(" BA : ");
  p_mZ(mul_mZ(B,A,T),S10,P5,S10,P5,C6);
 
  printf(" AC : ");
  p_mZ(mul_mZ(A,C,T),S10,P5,S10,P5,C6);
  printf(" CA : ");
  p_mZ(mul_mZ(C,A,T),S10,P5,S10,P5,C6);
  stop();

  clrscrn();
  printf(" BC : ");
  p_mZ(mul_mZ(B,C,T),S10,P5,S10,P5,C6);
  printf(" CB : ");
  p_mZ(mul_mZ(C,B,T),S10,P5,S10,P5,C6);   
  
  
  f_mZ(A);
  f_mZ(B);
  f_mZ(C);
  f_mZ(T);
}
/* ------------------------------------ */
int main(void)
{
time_t t;

  srand(time(&t));

do
{
  fun(RC3);

} while(stop_w());

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

Exemple de sortie écran :

 A : 
    +0.457    -0.504i     -0.591    +0.002i     +0.327    +0.870i 
    +0.086    -0.159i     +0.694    -0.177i     -0.369    +0.023i 
    +0.474    -0.798i     -0.338    -0.610i     -0.162    +0.681i 

 B : 
    +0.226    +0.353i     +0.425    +0.146i     -0.264    -0.494i 
    +0.273    -0.106i     +0.577    -0.108i     +0.069    +0.249i 
    -0.255    +0.247i     +0.248    +0.038i     +0.559    -0.245i 

 C : 
    +0.000    -0.006i     -0.007    +0.003i     +0.003    +0.013i 
    +0.009    -0.007i     +0.015    -0.007i     -0.009    +0.006i 
    +0.007    -0.016i     -0.004    -0.016i     -0.009    +0.013i 

 Press return to continue. 


 AB : 
  -0.17836  -0.03037i   -0.02521  +0.14599i   -0.01503  +0.16736i 
  +0.33488  -0.22461i   +0.34879  -0.24045i   -0.20984  +0.26309i 
  +0.10467  -0.35696i   -0.00936  -0.42229i   -0.31437  +0.27082i 

 BA : 
  -0.17836  -0.03037i   -0.02521  +0.14599i   -0.01503  +0.16736i 
  +0.33488  -0.22461i   +0.34879  -0.24045i   -0.20984  +0.26309i 
  +0.10467  -0.35696i   -0.00936  -0.42229i   -0.31437  +0.27082i 

 AC : 
  +0.00884  +0.00210i   +0.00252  +0.00087i   -0.00157  -0.00293i 
  +0.00162  -0.00063i   +0.01093  -0.00064i   +0.00041  +0.00148i 
  -0.00152  +0.00147i   +0.00147  +0.00023i   +0.01083  -0.00146i 

 CA : 
  +0.00884  +0.00210i   +0.00252  +0.00087i   -0.00157  -0.00293i 
  +0.00162  -0.00063i   +0.01093  -0.00064i   +0.00041  +0.00148i 
  -0.00152  +0.00147i   +0.00147  +0.00023i   +0.01083  -0.00146i 

 Press return to continue. 


 BC : 
  -0.00318  -0.00203i   -0.00213  +0.00356i   +0.00047  +0.00630i 
  +0.00838  -0.00588i   +0.01027  -0.00631i   -0.00606  +0.00647i 
  +0.00376  -0.01074i   -0.00109  -0.01185i   -0.00807  +0.00834i 

 CB : 
  -0.00318  -0.00203i   -0.00213  +0.00356i   +0.00047  +0.00630i 
  +0.00838  -0.00588i   +0.01027  -0.00631i   -0.00606  +0.00647i 
  +0.00376  -0.01074i   -0.00109  -0.01185i   -0.00807  +0.00834i 


 Press   return to continue
 Press X return to stop