Mathc complexes/a331
Les matrices orthonormales, orthogonales
Installer et compiler ces fichiers dans votre répertoire de travail.
c00b.c |
---|
/* ------------------------------------ */
/* Save as : c00b.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
void fun(int r)
{
double **A = r_Q_mZ(i_mZ(r,r), 9);
double **B = r_Q_mZ(i_mZ(r,r), 9);
double **AB = i_mZ(r,r);
double **ABT = i_mZ(r,r);
double **T = i_mZ(r,r);
clrscrn();
printf(" A : an orthonormal matrix ");
p_mZ(A, S10,P4, S8,P4, C4);;
printf(" B : an orthonormal matrix ");
p_mZ(B, S10,P4, S8,P4, C4);
stop();
clrscrn();
printf(" A * B = AB : AB is an orthonormal matrix");
mul_mZ(A,B,AB);
p_mZ(AB, S10,P4, S8,P4, C4);
printf(" AB * ABT = id : inv(AB) = ABT ");
ctranspose_mZ(AB,ABT);
mul_mZ(AB,ABT,T);
p_mZ(T, S10,P4, S8,P4, C4);
f_mZ(A);
f_mZ(B);
f_mZ(AB);
f_mZ(ABT);
f_mZ(T);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun(R4);
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
A : an orthonormal matrix
-0.3796 +0.4339i +0.1007 -0.4840i -0.0539 +0.4905i -0.2968 -0.3028i
-0.2169 +0.3796i +0.1598 +0.3731i -0.1701 -0.5313i -0.5769 +0.0078i
+0.2169 +0.4881i +0.4279 -0.1494i +0.3129 -0.3383i +0.4773 -0.2629i
+0.4339 +0.0542i +0.2065 +0.5855i +0.0061 +0.4826i -0.1434 -0.4122i
B : an orthonormal matrix
-0.6495 +0.3608i +0.1997 -0.0811i -0.4938 -0.1318i -0.0055 +0.3745i
+0.3608 -0.1443i +0.3444 -0.6049i +0.0525 -0.4162i +0.2164 +0.3763i
+0.4330 -0.1443i -0.2744 +0.1653i -0.4567 +0.1172i -0.4608 +0.5045i
-0.0722 -0.2887i +0.4353 -0.4207i -0.2335 +0.5348i -0.3429 -0.2948i
Press return to continue.
A * B = AB : AB is an orthonormal matrix
+0.0379 -0.2803i -0.6216 -0.2607i +0.2469 -0.5499i -0.1665 -0.2733i
+0.0089 -0.2528i +0.1549 +0.4890i +0.5913 -0.2934i +0.2997 +0.3839i
-0.2079 -0.6649i +0.2070 -0.4011i -0.1566 +0.0523i -0.2498 +0.4704i
-0.1787 +0.5820i +0.1991 -0.1981i +0.2420 -0.3393i -0.5169 +0.3309i
AB * ABT = id : inv(AB) = ABT
+1.0000 +0.0000i +0.0000 +0.0000i +0.0000 -0.0000i -0.0000 +0.0000i
+0.0000 -0.0000i +1.0000 +0.0000i -0.0000 +0.0000i -0.0000 +0.0000i
+0.0000 +0.0000i -0.0000 -0.0000i +1.0000 +0.0000i -0.0000 -0.0000i
-0.0000 -0.0000i -0.0000 -0.0000i -0.0000 +0.0000i +1.0000 +0.0000i
Press return to continue
Press X return to stop