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