Aller au contenu

Mathc complexes/a137

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_commute4_mZ(
double **A,
double **B,
double **C,
double **E,
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);

 mul_mZ(P,Diag_cosh_mZ(D,Dt),T);
 mul_mZ(T,Pinv,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);

  r_commute4_mZ(A,B,C,D,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); 
  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 : 
    +0.294    -0.785i     +0.589    +1.355i     -0.263    +0.989i 
    +1.418    -0.524i     -0.571    +1.661i     -0.570    +1.042i 
    -1.135    +0.530i     -0.260    -1.374i     -0.361    -0.876i 

 B : 
    -0.043    -0.038i     -0.025    +0.493i     -0.424    +0.627i 
    -0.251    -0.220i     +0.120    +0.019i     -0.517    -0.170i 
    +0.177    -0.271i     -0.247    +0.300i     +0.094    +0.018i 

 C : 
    -0.204    -2.576i     +2.316    +1.375i     +2.088    -0.911i 
    +6.944    -0.322i     -4.510    +5.886i     +1.638    +5.003i 
    -5.386    +3.867i     +0.827    -7.137i     -3.563    -3.310i 

 D : 
    +0.405    +2.030i     -1.786    -1.397i     -1.343    +0.293i 
    -5.237    +0.396i     +3.648    -4.593i     -0.932    -3.780i 
    +4.074    -2.829i     -0.480    +5.354i     +2.928    +2.563i 

 Press return to continue. 

 AB : 
  +0.32987  -0.20088i   +0.19206  +0.01522i   +0.25108  -0.19543i 
  +0.60993  +0.01679i   -0.04964  +0.47193i   +0.23281  +0.43737i 
  -0.46961  +0.36520i   +0.11475  -0.63507i   +0.03181  -0.27105i 

 BA : 
  +0.32987  -0.20088i   +0.19206  +0.01522i   +0.25108  -0.19543i 
  +0.60993  +0.01679i   -0.04964  +0.47193i   +0.23281  +0.43737i 
  -0.46961  +0.36520i   +0.11475  -0.63507i   +0.03181  -0.27105i 

 AC : 
  +0.03414  +2.27913i   -2.03050  -1.36404i   -1.70475  +0.60554i 
  -6.03256  +0.35172i   +3.77208  -5.18619i   -1.28034  -4.34931i 
  +4.68502  -3.31830i   -0.65058  +6.18700i   +2.94746  +2.90706i 

 CA : 
  +0.03414  +2.27913i   -2.03050  -1.36404i   -1.70475  +0.60554i 
  -6.03256  +0.35172i   +3.77208  -5.18619i   -1.28034  -4.34931i 
  +4.68502  -3.31830i   -0.65058  +6.18700i   +2.94746  +2.90706i 

 Press return to continue.