Aller au contenu

Mathc complexes/a347

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_commute4_mZ(
double **A,
double **B,
double **C,
double **E,
int      n,
double   F                               /*  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,F);
 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);
 smul_mZ(1./(C[R1][C1]),C,T);
    c_mZ(T,C);
    
  mul_mZ(P,Diag_cosh_mZ(D,Dt),T);
  mul_mZ(T,Pinv,E);
 smul_mZ(1./(E[R2][C1]),E,T);
    c_mZ(T,E);
     
 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 **D  = i_mZ(r,r);
double **T  = i_mZ(r,r);

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

  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); 
  printf(" D : ");
  p_mZ(D,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);   

  printf(" AD : ");
  p_mZ(mul_mZ(A,D,T),S10,P5,S10,P5,C6);
  printf(" DA : ");
  p_mZ(mul_mZ(D,A,T),S10,P5,S10,P5,C6);
  stop();

  clrscrn();
  printf(" BD : ");
  p_mZ(mul_mZ(B,D,T),S10,P5,S10,P5,C6);
  printf(" DB : ");
  p_mZ(mul_mZ(D,B,T),S10,P5,S10,P5,C6); 

  printf(" CD : ");
  p_mZ(mul_mZ(C,D,T),S10,P5,S10,P5,C6);
  printf(" DC : ");
  p_mZ(mul_mZ(D,C,T),S10,P5,S10,P5,C6); 
  
  f_mZ(A);
  f_mZ(B);
  f_mZ(C);
  f_mZ(D);
  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 : 
    -1.115    -3.261i     -3.734    -0.556i     -2.992    -5.302i 
    -2.326    -1.145i     -2.116    +1.503i     -4.256    -1.597i 
    +1.329    +1.183i     +1.819    -0.582i     +2.838    +1.758i 

 B : 
    -0.250    -3.037i     -3.453    -0.587i     -2.604    -4.963i 
    -2.287    -0.911i     -1.132    +1.574i     -4.039    -1.120i 
    +1.152    +0.977i     +1.535    -0.498i     +3.077    +1.464i 

 C : 
    +1.000    -1.950i     -1.941    -1.126i     +0.306    -3.458i 
    -2.768    +1.099i     +0.976    +2.889i     -3.408    +3.261i 
    -0.193    -0.718i     -0.744    +0.159i     -0.710    -0.938i 

 D : 
    -0.361    +0.705i     +0.701    +0.407i     -0.110    +1.249i 
    +1.000    -0.397i     -0.352    -1.043i     +1.231    -1.178i 
    +0.070    +0.259i     +0.269    -0.057i     +0.257    +0.339i 

 Press return to continue. 


 AB : 
  +0.14110  -0.15591i   -0.19541  +0.01915i   -0.26383  -0.23695i 
  -0.03183  -0.15755i   +0.06018  -0.04283i   -0.15378  -0.31936i 
  +0.12051  +0.13870i   +0.19261  -0.05705i   +0.56499  +0.19874i 

 BA : 
  +0.14110  -0.15591i   -0.19541  +0.01915i   -0.26383  -0.23695i 
  -0.03183  -0.15755i   +0.06018  -0.04283i   -0.15378  -0.31936i 
  +0.12051  +0.13870i   +0.19261  -0.05705i   +0.56499  +0.19874i 

 AC : 
  +0.24525  -0.47836i   -0.47598  -0.27621i   +0.07499  -0.84797i 
  -0.67894  +0.26942i   +0.23928  +0.70846i   -0.83580  +0.79966i 
  -0.04731  -0.17602i   -0.18247  +0.03899i   -0.17424  -0.23010i 

 CA : 
  +0.24525  -0.47836i   -0.47598  -0.27621i   +0.07499  -0.84797i 
  -0.67894  +0.26942i   +0.23928  +0.70846i   -0.83580  +0.79966i 
  -0.04731  -0.17602i   -0.18247  +0.03899i   -0.17424  -0.23010i 

 Press return to continue. 


 BC : 
  +0.96946  -1.89090i   -1.88153  -1.09183i   +0.29644  -3.35196i 
  -2.68379  +1.06498i   +0.94585  +2.80048i   -3.30383  +3.16099i 
  -0.18701  -0.69578i   -0.72128  +0.15413i   -0.68877  -0.90958i 

 CB : 
  +0.96946  -1.89090i   -1.88153  -1.09183i   +0.29644  -3.35196i 
  -2.68379  +1.06498i   +0.94585  +2.80048i   -3.30383  +3.16099i 
  -0.18701  -0.69578i   -0.72128  +0.15413i   -0.68877  -0.90958i 

 AD : 
  -0.08859  +0.17280i   +0.17194  +0.09977i   -0.02709  +0.30631i 
  +0.24525  -0.09732i   -0.08643  -0.25592i   +0.30191  -0.28886i 
  +0.01709  +0.06358i   +0.06591  -0.01409i   +0.06294  +0.08312i 

 DA : 
  -0.08859  +0.17280i   +0.17194  +0.09977i   -0.02709  +0.30631i 
  +0.24525  -0.09732i   -0.08643  -0.25592i   +0.30191  -0.28886i 
  +0.01709  +0.06358i   +0.06591  -0.01409i   +0.06294  +0.08312i 

 Press return to continue. 


 BD : 
  -0.35020  +0.68305i   +0.67966  +0.39440i   -0.10708  +1.21082i 
  +0.96946  -0.38470i   -0.34167  -1.01161i   +1.19343  -1.14184i 
  +0.06755  +0.25133i   +0.26055  -0.05568i   +0.24880  +0.32856i 

 DB : 
  -0.35020  +0.68305i   +0.67966  +0.39440i   -0.10708  +1.21082i 
  +0.96946  -0.38470i   -0.34167  -1.01161i   +1.19343  -1.14184i 
  +0.06755  +0.25133i   +0.26055  -0.05568i   +0.24880  +0.32856i 

 CD : 
  -0.45702  +0.89140i   +0.88698  +0.51470i   -0.13975  +1.58016i 
  +1.26518  -0.50205i   -0.44589  -1.32019i   +1.55747  -1.49014i 
  +0.08816  +0.32800i   +0.34002  -0.07266i   +0.32469  +0.42879i 

 DC : 
  -0.45702  +0.89140i   +0.88698  +0.51470i   -0.13975  +1.58016i 
  +1.26518  -0.50205i   -0.44589  -1.32019i   +1.55747  -1.49014i 
  +0.08816  +0.32800i   +0.34002  -0.07266i   +0.32469  +0.42879i 


 Press   return to continue
 Press X return to stop