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