Aller au contenu

Mathc complexes/a122

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_commute2_mZ(
double **A,
double **B,
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);
 
 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 **T  = i_mZ(r,r);

  rE_commute2_mZ(A,B,999,1E-4);

  clrscrn();
  printf(" A : ");
  p_mZ(A,S5,P3,S5,P3,C6);                                
  printf(" B : ");
  p_mZ(B,S5,P3,S5,P3,C6);       

  printf(" AB : ");
  p_mZ(mul_mZ(A,B,T),S5,P5,S5,P5,C6);
  printf(" BA : ");
  p_mZ(mul_mZ(B,A,T),S5,P5,S5,P5,C6);
    
  f_mZ(A);
  f_mZ(B);
  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.495+0.070i -0.007+0.205i -0.185+0.411i 
+0.653+0.231i -1.059+0.280i -0.355+0.499i 
-0.504-0.327i +0.115-0.223i -0.597-0.350i 

 B : 
-0.607-0.032i -0.026-0.338i +0.160-0.539i 
-0.831-0.311i +0.212-0.341i +0.511-0.645i 
+0.568+0.390i -0.100+0.225i -0.460+0.373i 

 AB : 
+0.10694-0.03353i +0.03053+0.12844i +0.01884+0.12954i 
+0.18154+0.08009i -0.14411+0.06400i -0.15405+0.14892i 
-0.07180-0.06686i -0.01096-0.00743i +0.06253-0.03048i 

 BA : 
+0.10694-0.03353i +0.03053+0.12844i +0.01884+0.12954i 
+0.18154+0.08009i -0.14411+0.06400i -0.15405+0.14892i 
-0.07180-0.06686i -0.01096-0.00743i +0.06253-0.03048i 


 Press   return to continue
 Press X return to stop