Mathc complexes/a269
Installer et compiler ces fichiers dans votre répertoire de travail.
c00b.c |
---|
/* ------------------------------------ */
/* Save as : c00a.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
#define FACTOR_E +1.E-2
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r)
{
double **A = r_mZ(i_mZ(r,r),99);
double **A_T = ctranspose_mZ(A,i_mZ(r,r));
double **V = i_mZ(r,r);
double **U = i_mZ(r,r);
double **U_T = i_mZ(r,r);
double **U_TA = i_mZ(r,r);
double **S = i_mZ(r,r);
double **V_T = i_mZ(r,r);
double **VS = i_mZ(r,r);
double **P = i_mZ(r,r);
double **Q = i_mZ(r,r);
double **QP = i_mZ(r,r);
clrscrn();
printf(" A :");
p_mZ(A, S10,P2, S8,P2, C3);
X_U_mZ(A_T,U,FACTOR_E);
printf(" U :");
p_mZ(U, S10,P4, S8,P4, C3);
X_V_mZ(A_T,V,FACTOR_E);
printf(" V :");
p_mZ(V, S10,P4, S8,P4, C3);
ctranspose_mZ(U,U_T);
/* S = U_T * A * V */
mul_mZ( U_T, A, U_TA);
mul_mZ(U_TA, V, S);
printf(" S = U_T * A * V :");
p_mZ(S, S10,P4, S9,P4, C3);
stop();
clrscrn();
ctranspose_mZ(V,V_T);
/* A = (U * V_T) *(V * S * V_T) */
mul_mZ(V,S,VS);
mul_mZ(VS,V_T, P);
mul_mZ(U,V_T, Q);
mul_mZ(Q,P, QP);
printf(" P = V * S * V_T");
p_mZ(P, S10,P2, S8,P2, C3);
printf(" Q = U * V_T");
p_mZ(Q, S10,P2, S8,P2, C3);
printf(" A :");
p_mZ(A, S10,P2, S8,P2, C3);
printf(" A = QP (U * V_T) (V * S * V_T)");
p_mZ(QP, S10,P2, S8,P2, C3);
f_mZ(A);
f_mZ(A_T);
f_mZ(V);
f_mZ(V_T);
f_mZ(U);
f_mZ(U_T);
f_mZ(U_TA);
f_mZ(S);
f_mZ(VS);
f_mZ(P);
f_mZ(Q);
f_mZ(QP);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(RC3);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
----------------------------------
A :
+28.00 -57.00i +33.00 -68.00i -75.00 +23.00i
+57.00 -34.00i +11.00 +66.00i -68.00 +16.00i
-62.00 +84.00i -47.00 +66.00i +8.00 +58.00i
U :
-0.5635 +0.2927i +0.1468 +0.0415i +0.6211 -0.4335i
-0.2822 -0.1639i +0.8234 +0.2432i -0.3954 -0.0082i
+0.7003 +0.0000i +0.4895 +0.0000i +0.5196 +0.0000i
V :
-0.1836 -0.6926i -0.1256 +0.0052i +0.3527 +0.5885i
-0.2794 -0.4787i +0.4478 +0.4523i -0.4525 -0.2879i
+0.4234 +0.0000i +0.7609 +0.0000i +0.4916 -0.0000i
S = U_T * A * V :
+168.0554 +80.1647i -0.0000 -0.0000i +0.0000 -0.0000i
+0.0000 +0.0000i -76.5330 +84.8788i +0.0000 -0.0000i
+0.0000 +0.0000i -0.0000 +0.0000i -52.1518 +10.2219i
Press return to continue.
----------------------------------
P = V * S * V_T
+60.54 +47.32i +73.82 +44.57i +5.42 -77.26i
+97.43 +0.94i +5.62 +61.96i -45.88 -35.86i
-35.01 +52.11i -22.84 +70.19i -26.79 +65.99i
Q = U * V_T
-0.15 -0.97i -0.05 -0.02i +0.18 -0.06i
-0.08 +0.03i +0.82 -0.46i +0.31 +0.11i
-0.01 +0.18i -0.21 +0.26i +0.92 +0.00i
A :
+28.00 -57.00i +33.00 -68.00i -75.00 +23.00i
+57.00 -34.00i +11.00 +66.00i -68.00 +16.00i
-62.00 +84.00i -47.00 +66.00i +8.00 +58.00i
A = QP (U * V_T) (V * S * V_T)
+28.00 -57.00i +33.00 -68.00i -75.00 +23.00i
+57.00 -34.00i +11.00 +66.00i -68.00 +16.00i
-62.00 +84.00i -47.00 +66.00i +8.00 +58.00i
Press return to continue
Press X return to stop