Mathc complexes/Fichiers c : mul rot
Installer et compiler ce fichier dans votre répertoire de travail.
mul_tran.c |
---|
/* ------------------------------------ */
/* Save as : mul_tran.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
void fun(int r,int rc)
{
double **A = r_mZ(i_mZ(r,rc),99);
double **A_t = i_mZ(rc,r);
double **AA_t = i_mZ(r, r);
clrscrn();
printf(" A[R%d,C%d] : \n",rsize_Z(A),csize_Z(A));
p_mZ(A, S5,P0, S4,P0, C4);
printf(" A_t[R%d,C%d] : \n",rsize_Z(A_t),csize_Z(A_t));
p_mZ(transpose_mZ(A,A_t), S5,P0, S4,P0, C4);
printf(" AA_t[R%d,C%d] : \n",rsize_Z(AA_t),csize_Z(AA_t));
p_mZ(mul_mZ(A,A_t,AA_t), S10,P0, S6,P0, C3);
f_mZ(A);
f_mZ(A_t);
f_mZ(AA_t);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
fun(rp_I(R4),rp_I(RC4));
while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Si nous multiplions une matrice par sa transposé, l'opération est toujours possible et cela donne une matrice symétrique.
Exemple de sortie écran :
A[R4,C2] :
-99 +58i +80 -29i
-79 +96i +18 +84i
+54 +88i +88 +62i
-3 +76i +22 +52i
A_t[R2,C4] :
-99 +58i -79 +96i +54 +88i -3 +76i
+80 -29i +18 +84i +88 +62i +22 +52i
AA_t[R4,C4] :
+11996-16124i +6129 -7888i -1612 -3172i
+6129 -7888i -9707-12144i -16338 +6740i
-1612 -3172i -16338 +6740i -928+20416i
-843 -4176i -11031 -3508i -8138 +9780i
-843 -4176i
-11031 -3508i
-8138 +9780i
-7987 +1832i
Press return to continue
Press X to stop