Mathc matrices/a231
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
void fun(int r)
double **U = r_mR(i_mR(r,r),9.);
double **Orth = i_mR(r,r);
double **Orth_Normal_T = i_mR(r,r);
 clrscrn();
 printf(" U :");
 p_mR(U, S8,P4, C6); 
 orth_uv_mR(U,Orth,NO);
 printf(" Orth :");
 p_mR(Orth, S8,P4, C6); 
 stop();
 clrscrn();
 printf(" Orth_Normal :");
 Normalize_uv_mR(Orth);
 p_mR(Orth, S8,P4, C6); 
 printf(" Orth_Normal_T :");
 transpose_mR(Orth,Orth_Normal_T);
 p_mR(Orth_Normal_T, S8,P4, C6); 
 printf(" Orth_Normal_T * Orth_Normal :");
 mul_mR(Orth_Normal_T,Orth, U);
 p_mR(U, S8,P4, C6); 
 f_mR(U);
 f_mR(Orth);
 f_mR(Orth_Normal_T);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R2)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Si i est différent de j alors : 
 <Orth_Normal_T(i), orth_Normal(j)> == 0 
 Orth_Normal * Orth_Normal_T == ID :
 +0.5065 -0.1560 -0.1689 -0.8310 +0.5065 -0.3618 +0.4341 -0.6512 
 -0.3618 -0.9212 +0.1234 -0.0727 -0.1560 -0.9212 -0.0582 +0.3517 
 +0.4341 -0.0582 +0.8941 +0.0939 * -0.1689 +0.1234 +0.8941 +0.3961 ==
 -0.6512 +0.3517 +0.3961 -0.5434 -0.8310 -0.0727 +0.0939 -0.5434 
 +1.0000 +0.0000 -0.0000 +0.0000 
 +0.0000 +1.0000 -0.0000 +0.0000 
 -0.0000 -0.0000 +1.0000 -0.0000 
 +0.0000 +0.0000 -0.0000 +1.0000

Exemple de sortie écran :
 U :
 +7.0000 -4.0000 -3.0000 -7.0000 
 -5.0000 -3.0000 -9.0000 +1.0000 
 +6.0000 -3.0000 +7.0000 +7.0000 
 -9.0000 +6.0000 +7.0000 -9.0000 
 Orth :
 +7.0000 -0.8848 -1.4231 -9.3842 
 -5.0000 -5.2251 +1.0399 -0.8205 
 +6.0000 -0.3298 +7.5346 +1.0598 
 -9.0000 +1.9948 +3.3385 -6.1365 
 Press return to continue. 
 -------------------------------
 Orth_Normal :
 +0.5065 -0.1560 -0.1689 -0.8310 
 -0.3618 -0.9212 +0.1234 -0.0727 
 +0.4341 -0.0582 +0.8941 +0.0939 
 -0.6512 +0.3517 +0.3961 -0.5434 
 Orth_Normal_T :
 +0.5065 -0.3618 +0.4341 -0.6512 
 -0.1560 -0.9212 -0.0582 +0.3517 
 -0.1689 +0.1234 +0.8941 +0.3961 
 -0.8310 -0.0727 +0.0939 -0.5434 
 Orth_Normal_T * Orth_Normal :
 +1.0000 +0.0000 -0.0000 +0.0000 
 +0.0000 +1.0000 -0.0000 +0.0000 
 -0.0000 -0.0000 +1.0000 -0.0000 
 +0.0000 +0.0000 -0.0000 +1.0000 
 Press return to continue
 Press X return to stop

Mathc matrices/a232
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
void fun(int r)
double **U = r_mR(i_mR(r,r),9.);
double **Orth = i_mR(r,r);
double **Orth_Normal = i_mR(r,r);
double **Orth_Normal_T = i_mR(r,r);
 clrscrn();
 printf(" U :");
 p_mR(U, S8,P4, C6); 
 orth_uv_mR(U,Orth,NO);
 printf(" Orth :");
 p_mR(Orth, S8,P4, C6); 
 stop();
 clrscrn();
 printf(" Orth_Normal :");
 normalize_uv_mR(Orth,Orth_Normal);
 p_mR(Orth, S8,P4, C6); 
 printf(" Orth_Normal_T :");
 transpose_mR(Orth_Normal,Orth_Normal_T);
 p_mR(Orth_Normal_T, S8,P4, C6); 
 printf(" Orth_Normal_T * Orth_Normal :");
 mul_mR(Orth_Normal_T,Orth_Normal, U);
 p_mR(U, S8,P4, C6); 
 f_mR(U);
 f_mR(Orth);
 f_mR(Orth_Normal); 
 f_mR(Orth_Normal_T);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R2)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Si i est différent de j alors : 
 <Orth_Normal_T(i), orth_Normal(j)> == 0 
 Orth_Normal * Orth_Normal_T == ID :
 +0.5065 -0.1560 -0.1689 -0.8310 +0.5065 -0.3618 +0.4341 -0.6512 
 -0.3618 -0.9212 +0.1234 -0.0727 -0.1560 -0.9212 -0.0582 +0.3517 
 +0.4341 -0.0582 +0.8941 +0.0939 * -0.1689 +0.1234 +0.8941 +0.3961 ==
 -0.6512 +0.3517 +0.3961 -0.5434 -0.8310 -0.0727 +0.0939 -0.5434 
 +1.0000 +0.0000 -0.0000 +0.0000 
 +0.0000 +1.0000 -0.0000 +0.0000 
 -0.0000 -0.0000 +1.0000 -0.0000 
 +0.0000 +0.0000 -0.0000 +1.0000

Mathc matrices/a233
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c01a.c */
void fun(int r)
double **u = r_mR( i_mR(r,C1),9.);
double **v = r_mR( i_mR(r,C1),9.);
double **umnsv = sub_mR(u, v, i_mR(r,C1) );
 clrscrn();
 printf(" u :");
 p_mR(u,S3,P0,C6);
 printf(" v :");
 p_mR(v,S3,P0,C6); 
 printf(" ||u||^2 + ||v||^2 - ||u - v||^2 = %.0f \n\n", 
 pow(norm_uv_R( u),2.)
 + pow(norm_uv_R( v),2.) 
 - pow(norm_uv_R(umnsv),2.));
 printf(" 2 * <u,v> = %.0f \n\n", 2 * dot_uv_R(u,v) );
 f_mR(u);
 f_mR(v);
 f_mR(umnsv);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R3)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Nous vérifions une des propriétés de la norme : norm_uv_R(u);

Exemple de sortie écran :
 u :
 +6 
 -2 
 +9 
 -3 
 +7 
 v :
 +1 
 -6 
 -1 
 +5 
 +7 
 ||u||^2 + ||v||^2 - ||u - v||^2 = 86 
 2 * <u,v> = 86 
 Press return to continue
 Press X return to stop

Mathc matrices/a234
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c01a.c */
void fun(int r)
double **u = r_mR( i_mR(r,C1),9.);
double **v = r_mR( i_mR(r,C1),9.);
 clrscrn();
 printf(" u :");
 p_mR(u,S3,P0,C6);
 printf(" v :");
 p_mR(v,S3,P0,C6); 
 printf(" Cauchy-Schwarz : |<u,v>| <= ||u|| ||v|| \n\n"
 " |<u,v>| = %+.0f\t ||u|| ||v|| = %+.0f\n\n\n"
 " |<u,v>|\t <= ||u|| ||v|| \n"
 " %+.0f\t <= %+.0f \n", 
 fabs( dot_uv_R(u, v)),
 norm_uv_R(u) * norm_uv_R(v),
 fabs( dot_uv_R(u, v)),
 norm_uv_R(u) * norm_uv_R(v) );
 f_mR(u);
 f_mR(v);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R3)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Nous vérifions une des propriétés de la norme : norm_uv_R(u);

Exemple de sortie écran :
 u :
 +7 
 +4 
 +9 
 +6 
 -4 
 v :
 +8 
 -2 
 +6 
 +9 
 +7 
 Cauchy-Schwarz : |<u,v>| <= ||u|| ||v|| 
 |<u,v>| = +128 ||u|| ||v|| = +215
 |<u,v>| <= ||u|| ||v|| 
 +128 <= +215 
 Press return to continue
 Press X return to stop

Mathc matrices/a235
Propriétés
u x v :
u x v == - v x u :
u x (v+w) == (uxv) + (uxw) :
(v+w) x u == (vxu) + (wxu):
s (uxv) == su x v == u x sv :
If u and v are colinear then u x v == 0 :
u.(u x v) == 0 :
u.(u x v) == det(A) == 0 :

Mathc matrices/a236
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
void fun(void)
double **U_T = r_mR(i_mR(R1, C3), 9); 
double **V_T = r_mR(i_mR(R1, C3), 9); 
double **A = rp_mR(i_mR(R3, C3), 1);
double **B = rp_mR(i_mR(R3, C3), 1);
 c_r_mR(U_T, R1, A, R2);
 c_r_mR(V_T, R1, A, R3);
 c_r_mR(V_T, R1, B, R2);
 c_r_mR(U_T, R1, B, R3);
 clrscrn(); 
 printf(" u_T :");
 p_mR(U_T, S3, P0, C6);
 printf(" v_T :");
 p_mR(V_T, S3, P0, C6);
 printf("\n u x v == -v x u C* = cofactors \n\n"
 " u x v = (C11, C12, C13) = (%+.0f, %+.0f, %+.0f) \n"
 " v x u = (C11, C12, C13) = (%+.0f, %+.0f, %+.0f)\n\n", 
 cofactor_R(A, R1, C1), 
 cofactor_R(A, R1, C2), 
 cofactor_R(A, R1, C3), 
 cofactor_R(B, R1, C1), 
 cofactor_R(B, R1, C2), 
 cofactor_R(B, R1, C3) ); 
 f_mR(U_T); 
 f_mR(V_T);
 f_mR(A);
 f_mR(B); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Les vecteurs en mathématiques sont supposés être des vecteurs colonnes, c'est pour cela que j'utilise _T pour afficher des vecteurs lignes.

Exemple de sortie écran :
 u_T :
 +4 -8 -8 
 v_T :
 +5 -9 -4 
 u x v == -v x u C* = cofactors 
 u x v = (C11, C12, C13) = (-40, -24, +4) 
 v x u = (C11, C12, C13) = (+40, +24, -4)
 Press return to continue
 Press X return to stop