Aller au contenu

Mathc complexes/a123

Un livre de Wikilivres.


Application

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

c00b.c
/* ------------------------------------ */
/*  Save as :   c00b.c                  */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
void xrE_commute3_mZ(
double **A,
double **B,
double **C,
int      n,
double   E                               /*  1E-1  1E-0  1E+1 */
)
{
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);
 
    rE_mZ(P,n,E);
 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_cosh_mZ(D,Dt),T);
  mul_mZ(T,Pinv,C);
 smul_mZ(1./(C[R1][C1]),C,T);
    c_mZ(T,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);

  rE_commute3_mZ(A,B,C,999,1E-2);

  clrscrn();
  printf(" A : ");
  pE_mZ(A,S12,P3,S12,P3,C6);                                
  printf(" B : ");
  pE_mZ(B,S12,P3,S12,P3,C6);
  printf(" C : ");
  pE_mZ(C,S12,P3,S12,P3,C6);       
  stop();

  clrscrn();
  printf(" AB : ");
  pE_mZ(mul_mZ(A,B,T),S12,P3,S12,P3,C6);
  printf(" BA : ");
  pE_mZ(mul_mZ(B,A,T),S12,P3,S12,P3,C6);

  printf(" AC : ");
  pE_mZ(mul_mZ(A,C,T),S12,P3,S12,P3,C6);
  printf(" CA : ");
  pE_mZ(mul_mZ(C,A,T),S12,P3,S12,P3,C6);
  stop();

  clrscrn();
  printf(" BC : ");
  pE_mZ(mul_mZ(B,C,T),S12,P3,S12,P3,C6);
  printf(" CB : ");
  pE_mZ(mul_mZ(C,B,T),S12,P3,S12,P3,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 : 
  +2.784e+00  -8.754e-01i   +5.070e+00  +1.025e+00i   +3.531e+00  +1.275e+00i 
  +1.378e+00  +3.056e+00i   -1.317e+00  +4.551e+00i   -6.670e-01  +3.493e+00i 
  -3.170e+00  -2.042e+00i   -2.230e+00  -4.223e+00i   -2.109e+00  -3.676e+00i 

 B : 
  -3.916e+00  -8.148e-01i   -4.340e+00  -4.298e+00i   -3.663e+00  -3.516e+00i 
  -7.282e-01  -1.217e+00i   -1.235e-01  -2.118e+00i   +1.059e-02  -1.685e+00i 
  +4.090e+00  +3.242e-01i   +5.296e+00  +3.781e+00i   +4.293e+00  +2.933e+00i 

 C : 
  +1.000e+00  +3.532e-01i   +1.067e+00  +1.391e+00i   +9.632e-01  +1.101e+00i 
  +1.349e-01  +1.625e-01i   +4.035e-02  +3.468e-01i   +5.218e-02  +2.866e-01i 
  -1.140e+00  +5.953e-02i   -1.633e+00  -9.455e-01i   -1.411e+00  -7.000e-01i 

 Press return to continue. 


 AB : 
  -2.837e-02  +6.019e-01i   -4.203e-01  +1.073e+00i   -7.607e-02  +7.147e-01i 
  -2.669e-01  -7.267e-01i   +2.164e-01  -9.790e-01i   +2.449e-01  -7.313e-01i 
  -2.030e-01  +6.513e-01i   -9.615e-01  +2.941e-01i   -9.830e-01  +3.771e-01i 

 BA : 
  -2.837e-02  +6.019e-01i   -4.203e-01  +1.073e+00i   -7.607e-02  +7.147e-01i 
  -2.669e-01  -7.267e-01i   +2.164e-01  -9.790e-01i   +2.449e-01  -7.313e-01i 
  -2.030e-01  +6.513e-01i   -9.615e-01  +2.941e-01i   -9.830e-01  +3.771e-01i 

 AC : 
  -4.911e-01  -1.734e-01i   -5.240e-01  -6.831e-01i   -4.730e-01  -5.409e-01i 
  -6.624e-02  -7.980e-02i   -1.981e-02  -1.703e-01i   -2.562e-02  -1.408e-01i 
  +5.598e-01  -2.923e-02i   +8.020e-01  +4.643e-01i   +6.928e-01  +3.437e-01i 

 CA : 
  -4.911e-01  -1.734e-01i   -5.240e-01  -6.831e-01i   -4.730e-01  -5.409e-01i 
  -6.624e-02  -7.980e-02i   -1.981e-02  -1.703e-01i   -2.562e-02  -1.408e-01i 
  +5.598e-01  -2.923e-02i   +8.020e-01  +4.643e-01i   +6.928e-01  +3.437e-01i 

 Press return to continue. 


 BC : 
  +8.711e-01  +3.077e-01i   +9.294e-01  +1.212e+00i   +8.390e-01  +9.594e-01i 
  +1.175e-01  +1.416e-01i   +3.515e-02  +3.021e-01i   +4.546e-02  +2.497e-01i 
  -9.931e-01  +5.186e-02i   -1.423e+00  -8.236e-01i   -1.229e+00  -6.098e-01i 

 CB : 
  +8.711e-01  +3.077e-01i   +9.294e-01  +1.212e+00i   +8.390e-01  +9.594e-01i 
  +1.175e-01  +1.416e-01i   +3.515e-02  +3.021e-01i   +4.546e-02  +2.497e-01i 
  -9.931e-01  +5.186e-02i   -1.423e+00  -8.236e-01i   -1.229e+00  -6.098e-01i 


 Press   return to continue
 Press X return to stop