Exemple de sortie écran :
 A :
 +2 +1 
 +1 +1 
 U :
 +1 
 +1 
 V :
 +3 
 +2 
 d(U,V) = ||U-V|| = (<U-V,U-V>)^1/2 
 d(U,V) = 5.831 = sqrt(34.)
 d(V,U) = 5.831 = 5.831 
 Press return to continue.

Mathc matrices/c10e
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00f.c */
void fun(int r)
double a[R2*C2]={ 2,1,
 1,1};
double u[R2*C1]={ 1,
 1}; 
double v[R2*C1]={ 3,
 2}; 
double k = 3;
double **A = ca_A_mR(a,i_mR(R2,C2));
double **U = ca_A_mR(u,i_mR(R2,C1));
double **V = ca_A_mR(v,i_mR(R2,C1));
double **kV = smul_mR(k,V,i_mR(R2,C1));
double **UmnskV = sub_mR(U,kV,i_mR(R2,C1));
 clrscrn();
 printf(" A :");
 p_mR(A,S3,P0,C6);
 printf(" U :");
 p_mR(U,S3,P0,C6);
 printf(" V :");
 p_mR(V,S3,P0,C6);
 printf(" kV :");
 p_mR(kV,S3,P0,C6); 
 printf(" U-kV :");
 p_mR(UmnskV,S3,P0,C6); 
 printf(" ||U-kV|| = sqrt(%.0f) \n\n", 
 dot_Au_R(A,UmnskV,UmnskV));
 f_mR(A);
 f_mR(U);
 f_mR(V);
 f_mR(kV);
 f_mR(UmnskV); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
 fun(rp_I(R3)+R1);
 stop();
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A :
 +2 +1 
 +1 +1 
 U :
 +1 
 +1 
 V :
 +3 
 +2 
 kV :
 +9 
 +6 
 U-kV :
 -8 
 -5 
 ||U-kV|| = sqrt(610) 
 Press return to continue.

Mathc matrices/a230
Application
Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes :
Dans l'espace des matrices carrées de dimension n à coefficients réels, le produit scalaire usuel est :
 a b c A B C
 A = d e f B = D E F (A|B) = trace(At B) = (aA + bB + cC) + (dD + eE + fF) + (gG + hH + iI)
 g h i G H I
 a d g
 At = b e h Il suffit de ne calculer que les coefficients de la diagonale pour retrouver les calculs.
 c f i 
Exemple à modifier :

Mathc matrices/c20t
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00a.c */
void fun(void)
double a[R2*C2]={ 1,2,
 3,4}; 
double b[R2*C2]={-1,0,
 3,2}; 
double **A = ca_A_mR(a,i_mR(R2,C2));
double **B = ca_A_mR(b,i_mR(R2,C2));
 clrscrn();
 printf(" A :");
 p_mR(A,S3,P0,C6);
 printf(" B :");
 p_mR(B,S3,P0,C6);
 printf(" <A,B> = %.0f \n\n", dot_TR_R(A,B));
 printf(" <B,A> = %.0f \n\n", dot_TR_R(B,A));
 f_mR(A);
 f_mR(B);
/* ------------------------------------ */
int main(void)
 fun();
 stop();
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A :
 +1 +2 
 +3 +4 
 B :
 -1 +0 
 +3 +2 
 <A,B> = 16 
 <B,A> = 16 
 Press return to continue.

Mathc matrices/c20u
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00b.c */
void fun(void)
double a[R2*C2]={ 1,2,
 3,4}; 
double b[R2*C2]={-1,0,
 3,2}; 
double k = 3; 
double **A = ca_A_mR(a,i_mR(R2,C2));
double **B = ca_A_mR(b,i_mR(R2,C2));
double **kB = smul_mR(k,B,ca_A_mR(b,i_mR(R2,C2)));
 clrscrn();
 printf(" A :");
 p_mR(A,S3,P0,C6);
 printf(" B :");
 p_mR(B,S3,P0,C6);
 printf(" %.0f B :",k);
 p_mR(kB,S3,P0,C6);
 printf(" <A,kB> = k<A,B> [Homogeneity axiom] \n\n");
 printf(" <A,kB> = %.0f \n", dot_TR_R(A,kB));
 printf(" k<A,B> = %.0f \n\n", k* dot_TR_R(A,B));
 f_mR(A);
 f_mR(B);
 f_mR(kB);
/* ------------------------------------ */
int main(void)
 fun();
 stop();
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A :
 +1 +2 
 +3 +4 
 B :
 -1 +0 
 +3 +2 
 3 B :
 -3 +0 
 +9 +6 
 <A,kB> = k<A,B> [Homogeneity axiom] 
 <A,kB> = 48 
 k<A,B> = 48 
 Press return to continue.

Mathc matrices/c20v
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00c.c */
void fun(void)
double a[R2*C2]={ 1,2,
 3,4}; 
double b[R2*C2]={-1,0,
 3,2};
double c[R2*C2]={-5,3,
 4,2}; 
double **A = ca_A_mR(a,i_mR(R2,C2));
double **B = ca_A_mR(b,i_mR(R2,C2));
double **C = ca_A_mR(c,i_mR(R2,C2));
double **AplsB = add_mR(A,B,i_mR(R2,C2));
 clrscrn();
 printf(" A :");
 p_mR(A,S3,P0,C6);
 printf(" B :");
 p_mR(B,S3,P0,C6); 
 printf(" C :");
 p_mR(C,S3,P0,C6); 
 printf(" AplsB :");
 p_mR(AplsB,S3,P0,C6); 
 stop();
 clrscrn(); 
 printf(" <A+B,C> = <A,C>+<B,C> [Additivity axiom] \n\n");
 printf(" <A+B,C> = %.0f \n", dot_TR_R(AplsB,C));
 printf(" <A,C>+<B,C> = %.0f \n\n", dot_TR_R(A,C)+
 dot_TR_R(B,C));
 f_mR(A);
 f_mR(B);
 f_mR(C);
 f_mR(AplsB); 
/* ------------------------------------ */
int main(void)
 fun();
 stop();
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A :
 +1 +2 
 +3 +4 
 B :
 -1 +0 
 +3 +2 
 C :
 -5 +3 
 +4 +2 
 AplsB :
 +0 +2 
 +6 +6 
 Press return to continue. 
 <A+B,C> = <A,C>+<B,C> [Additivity axiom] 
 <A+B,C> = 42 
 <A,C>+<B,C> = 42 
 Press return to continue.

Mathc matrices/c20w
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00d.c */
void fun(void)
double a[R2*C2]={ 1,2,
 3,4}; 
double **A = ca_A_mR(a,i_mR(R2,C2));
 clrscrn();
 printf(" A :");
 p_mR(A,S3,P0,C6);
 printf(" <A,A>^(1/2) = %.4f \n", pow(dot_TR_R(A,A),(1./2.)));
 printf(" ||A|| = %.4f \n\n", norm_TR_R(A));
 f_mR(A);
/* ------------------------------------ */
int main(void)
 fun();
 stop();
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A :
 +1 +2 
 +3 +4 
 <A,A>^(1/2) = 5.4772 
 ||A|| = 5.4772 
 Press return to continue.

Mathc matrices/c20x
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00e.c */
void fun(void)
double a[R2*C2]={ 1,2,
 3,4}; 
double b[R2*C2]={-1,0,
 3,2};
double **A = ca_A_mR(a,i_mR(R2,C2));
double **B = ca_A_mR(b,i_mR(R2,C2)); 
double **AmnsB = sub_mR(A,B,i_mR(R2,C2));
 clrscrn();
 printf(" A :");
 p_mR(A,S3,P0,C6);
 printf(" B :");
 p_mR(B,S3,P0,C6);
 sub_mR(A,B,AmnsB);
 printf(" d(A,B) = ||u-v||^(1/2) \n\n");
 printf(" d(A,B) = %.4f norm_TR_R(AmnsB)\n\n",norm_TR_R(AmnsB));
 printf(" d(A,B) = %.4f dist_TR_R(A,B)\n", dist_TR_R(A,B));
 printf(" d(B,A) = %.4f dist_TR_R(B,A)\n\n", dist_TR_R(B,A));
 f_mR(A);
 f_mR(B);
 f_mR(AmnsB);
/* ------------------------------------ */
int main(void)
 fun();
 stop();
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A :
 +1 +2 
 +3 +4 
 B :
 -1 +0 
 +3 +2 
 d(A,B) = ||u-v||^(1/2) 
 d(A,B) = 3.4641 norm_TR_R(AmnsB)
 d(A,B) = 3.4641 dist_TR_R(A,B)
 d(B,A) = 3.4641 dist_TR_R(B,A)
 Press return to continue.

Mathc matrices/c20y
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00f.c */
void fun(void)
double a[R2*C2]={ 1,2,
 3,4}; 
double b[R2*C2]={-1,0,
 3,2}; 
double k = 3; 
double **A = ca_A_mR(a,i_mR(R2,C2));
double **B = ca_A_mR(b,i_mR(R2,C2));
double **kB = smul_mR(k,B,ca_A_mR(b,i_mR(R2,C2)));
double **AmnskB = sub_mR(A,kB, i_mR(R2,C2));
 clrscrn();
 printf(" A :");
 p_mR(A,S3,P0,C6);
 printf(" B :");
 p_mR(B,S3,P0,C6);
 printf(" %.0f B :",k);
 p_mR(kB,S3,P0,C6); 
 printf(" A-kB :");
 p_mR(AmnskB,S3,P0,C6); 
 printf(" ||A-kB|| = %.0f \n\n", norm_TR_R(AmnskB));
 f_mR(A);
 f_mR(B);
 f_mR(kB);
/* ------------------------------------ */
int main(void)
 fun();
 stop();
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A :
 +1 +2 
 +3 +4 
 B :
 -1 +0 
 +3 +2 
 3 B :
 -3 +0 
 +9 +6 
 A-kB :
 +4 +2 
 -6 -2 
 ||A-kB|| = 8 
 Press return to continue.