Mathc complexes/a332
Les matrices orthonormales, orthogonales
Installer et compiler ces fichiers dans votre répertoire de travail.
c00c.c |
---|
/* ------------------------------------ */
/* Save as : c00c.c */
/* ------------------------------------ */
#include "w_a.h"
/* ------------------------------------ */
/* ------------------------------------ */
#define RA R3
#define CA C3
#define CB C1
/* ------------------------------------ */
/* ------------------------------------ */
void fun(void)
{
double **A = r_q_mZ(i_mZ(RA,CA),99);
double **B = r_mZ(i_mZ(RA,CB),99.);
double **Ab = i_Abr_Ac_bc_mZ(RA,CA,CB);
double **b = i_mZ(RA,C1);
double **a = i_mZ(RA,C1);
clrscrn();
printf(" A : Orthogonal");
p_mZ(A, S8,P3, S8,P3, C4);
printf(" b :");
p_mZ(B, S8,P3, S8,P3, C4);
printf(" Ab :");
c_A_b_Ab_mZ(A,B,Ab);
p_mZ(Ab, S8,P3, S8,P3, C4);
printf(" gj_mZ(Ab) :");
gj_mZ(Ab);
p_mZ(Ab, S8,P3, S8,P3, C4);
stop();
clrscrn();
c_c_mZ(B,C1,b,C1);
a = c_c_mZ(A,C1,a,C1);
printf("\n <b,a[C1]> / ||a[C1]||**2 = ");
p_Z( div_Z(dot_Z(b,a), dot_Z(a,a)),S8,P4,S8,P4);
a = c_c_mZ(A,C2,a,C1);
printf("\n <b,a[C2]> / ||a[C2]||**2 = ");
p_Z( div_Z(dot_Z(b,a), dot_Z(a,a)),S8,P4,S8,P4);
a = c_c_mZ(A,C3,a,C1);
printf("\n <b,a[C3]> / ||a[C3]||**2 = ");
p_Z( div_Z(dot_Z(b,a), dot_Z(a,a)),S8,P4,S8,P4);
printf("\n\n\n gj_mZ(Ab) :");
p_mZ(Ab, S8,P4, S8,P4, C4);
f_mZ(a);
f_mZ(b);
f_mZ(Ab);
f_mZ(B);
f_mZ(A);
}
/* ------------------------------------ */
int main(void)
{
time_t t;
srand(time(&t));
do
{
fun();
} while(stop_w());
return 0;
}
/* ------------------------------------ */
/* ------------------------------------ */
Exemple de sortie écran :
A : Orthogonal
+88.000 -97.000i +42.000 +44.493i +24.342 +15.959i
+95.000 +79.000i +64.339 -35.947i -9.586 -18.022i
+8.000 -58.000i +2.411 +46.066i -43.495 -36.005i
b :
+64.000 +93.000i
-14.000 -96.000i
+47.000 -87.000i
Ab :
+88.000 -97.000i +42.000 +44.493i +24.342 +15.959i +64.000 +93.000i
+95.000 +79.000i +64.339 -35.947i -9.586 -18.022i -14.000 -96.000i
+8.000 -58.000i +2.411 +46.066i -43.495 -36.005i +47.000 -87.000i
gj_mZ(Ab) :
+1.000 +0.000i +0.000 +0.000i +0.000 +0.000i -0.192 +0.235i
+0.000 +0.000i +1.000 +0.000i +0.000 +0.000i +0.485 -0.707i
-0.000 +0.000i -0.000 +0.000i +1.000 +0.000i +1.346 +1.659i
Press return to continue.
<b,a[C1]> / ||a[C1]||**2 = -0.1920 +0.2346i
<b,a[C2]> / ||a[C2]||**2 = +0.4850 -0.7074i
<b,a[C3]> / ||a[C3]||**2 = +1.3465 +1.6592i
gj_mZ(Ab) :
+1.0000 +0.0000i +0.0000 +0.0000i +0.0000 +0.0000i -0.1920 +0.2346i
+0.0000 +0.0000i +1.0000 +0.0000i +0.0000 +0.0000i +0.4850 -0.7074i
-0.0000 +0.0000i -0.0000 +0.0000i +1.0000 +0.0000i +1.3465 +1.6592i
Press return to continue
Press X return to stop