Mathc complexes/a135
Apparence
Installer et compiler ces fichiers dans votre répertoire de travail.
c00a.c |
|---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
void xr_commute2_mZ(
double **A,
double **B,
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);
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);
r_commute2_mZ(A,B,9);
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,P9,S5,P9,C6);
printf(" BA : ");
p_mZ(mul_mZ(B,A,T),S5,P9,S5,P9,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 :
-3.763+0.057i -1.230+2.116i +0.492-1.656i
-0.122+4.716i +2.925+1.445i -1.735-0.646i
-4.178-0.767i -1.551+1.872i +1.495-1.503i
B :
-0.926-0.147i -0.558+0.393i +0.023-0.497i
+0.684+0.308i +0.444-0.438i -0.131+0.691i
+0.810-0.704i -0.054-1.381i +0.404+0.585i
AB :
+1.231167760-0.120443220i +0.145471439-0.622551969i -0.189999240+0.362760492i
+0.499950406-1.760261351i -0.652251892-0.889354324i +0.635886630+0.723048262i
+2.270908997-0.143466735i +0.609902338-1.685986769i -0.083612191+1.009797544i
BA :
+1.231167760-0.120443220i +0.145471439-0.622551969i -0.189999240+0.362760492i
+0.499950406-1.760261351i -0.652251892-0.889354324i +0.635886630+0.723048262i
+2.270908997-0.143466735i +0.609902338-1.685986769i -0.083612191+1.009797544i
Press return to continue
Press X return to stop