Mathc complexes/a122
Apparence
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