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