Mathc matrices/c21g
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00f.c */
void fun(void)
double u[R2*C1]={ 1,
 1}; 
double v[R2*C1]={ 3,
 2}; 
double k = 3;
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(" 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_uv_R(UmnskV,UmnskV));
 f_mR(U);
 f_mR(V);
 f_mR(kV);
 f_mR(UmnskV); 
/* ------------------------------------ */
int main(void)
 fun();
 stop();
 return 0;
/* ------------------------------------ */

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

Mathc matrices/c21h
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c00h.c */
void fun(void)
double u[R2*C1]={ 1,
 1};
double v[R2*C1]={ 3,
 2}; 
double **U = ca_A_mR(u,i_mR(R2,C1));
double **V = ca_A_mR(v,i_mR(R2,C1));
 clrscrn();
 printf(" Cosine of the Angle Between Vectors U and V :\n\n"); 
 printf(" U :");
 p_mR(U,S3,P0,C6);
 printf(" V :");
 p_mR(V,S3,P0,C6);
 printf(" <U,V> = %.0f \n\n", dot_uv_R(U,V));
 printf(" ||U|| = %.4f \n\n", norm_uv_R(U));
 printf(" ||V|| = %.4f \n\n", norm_uv_R(V));
 printf(" cos(alpha) = %.4f \n\n", 
 dot_uv_R(U,V)
 ( norm_uv_R(U) * norm_uv_R(V) )); 
 f_mR(U);
 f_mR(V);
/* ------------------------------------ */
int main(void)
 fun();
 stop();
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 Cosine of the Angle Between Vectors U and V :
 U :
 +1 
 +1 
 V :
 +3 
 +2 
 <U,V> = 5 
 ||U|| = 1.4142 
 ||V|| = 3.6056 
 cos(alpha) = 0.9806 
 Press return to continue.

Mathc matrices/c21i
Propriétés
Mathc matrices/c21j
Application ou Pseudo Inverse 
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c01b.c */
/* ------------------------------------ */
void fun(void)
double tA[RA*CA]={
/* x**0 x**1 */
 1, 5.1, 
 1, 5.3, 
 1, 5.5, 
 1, 5.7, 
 1, 6.0
double tb[RA*C1]={
/* y */
 0.19,
 0.32,
 1.04,
 2.47,
 3.74 
double **A = ca_A_mR(tA,i_mR(RA,CA));
double **b = ca_A_mR(tb,i_mR(RA,C1));
double **Pinv = i_mR(CA,RA); 
double **Pinvb = i_mR(CA,C1); 
 clrscrn();
 printf(" Fitting a linear Curve to Data :\n\n");
 printf(" A :");
 p_mR(A,S5,P1,C7);
 printf(" b :");
 p_mR(b,S5,P1,C7);
 printf(" Pinv = V * invS_T * U_T ");
 pseudo_Rn_uv_mR(A,Pinv,FACTOR_E); 
 pE_mR(Pinv,S12,P4,C10); 
 stop();
 clrscrn(); 
 printf(" Solving this system yields a unique\n"
 " least squares solution, namely \n\n"); 
 printf(" x = Pinv * b "); 
 mul_mR(Pinv,b,Pinvb); 
 p_mR(Pinvb,S10,P4,C10);
 printf(" The linear Curve to Data : \n\n"
 " s = %+.2f %+.2f*t \n\n"
 ,Pinvb[R1][C1],Pinvb[R2][C1]); 
 stop(); 
 f_mR(b); 
 f_mR(A); 
 f_mR(Pinv);
 f_mR(Pinvb); 
/* ------------------------------------ */
int main(void)

Exemple de sortie écran :
 Fitting a linear Curve to Data :
 A :
 +1.0 +5.1 
 +1.0 +5.3 
 +1.0 +5.5 
 +1.0 +5.7 
 +1.0 +6.0 
 b :
 +0.2 
 +0.3 
 +1.0 
 +2.5 
 +3.7 
 Pinv = V * invS_T * U_T 
 +4.9508 +2.6885 +0.4262 -1.8361 -5.2295 
 -0.8607 -0.4508 -0.0410 +0.3689 +0.9836 
 Press return to continue. 
 -----------------------------------
 Solving this system yields a unique
 least squares solution, namely 
 x = Pinv * b 
 -21.8492 
 +4.2393 
 The linear Curve to Data : 
 s = -21.85 +4.24*t 
 Press return to continue.

Mathc matrices/c21k
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
void fun(int r)
double **A = r_mR(i_mR(r,r ),999);
double **b = r_mR(i_mR(r,C1),999);
double **Ab = i_Abr_Ac_bc_mR(r, r, C1);
/* i_Abr_Ac_bc_mR(R_Ab, C_A, C_b)); */
 clrscrn();
 printf(" A :");
 p_mR(A,S5,P0,C7);
 printf(" b :");
 p_mR(b,S5,P0,C7);
 printf(" Ab : c_A_b_Ab_mR(A,b, Ab)");
 p_mR(c_A_b_Ab_mR(A,b, Ab),S5,P0,C7);
 f_mR(Ab);
 f_mR(b);
 f_mR(A);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(RC2)+R1); /* +R1 -> row >= R2 */
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Copier A et b dans Ab :
//La matrice Ab doit être initialiser avec la fonction :
double **Ab = i_Abr_Ac_bc_mR( RAb, CA, Cb); 
// Cette fonction installe la bonne taille pour les matrices Ab, A, b.
 Exemple de sortie écran :
 A :
 +244 -69 -300 
 +784 -568 -994 
 -668 +518 +780 
 b :
 +836 
 -126 
 -650 
 Ab : c_A_b_Ab_mR(A,b, Ab)
 +244 -69 -300 +836 
 +784 -568 -994 -126 
 -668 +518 +780 -650 
 Press return to continue
 Press X to stop

Mathc matrices/c21l
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00b.c */
void fun(int r, int c, int bc)
double **A = i_mR(r,c);
double **b = i_mR(r,bc);
double **Ab = r_mR(i_Abr_Ac_bc_mR(r,c,bc),99.); 
 clrscrn();
 printf(" Ab : Ab[R%d][C%d] \n",
 rsize_R(Ab), 
 csize_R(Ab));
 p_mR(Ab,S5,P0,C6);
 stop();
 clrscrn(); 
 printf(" A : c_Ab_A_mR(Ab,A); A[R%d][C%d] \n",
 rsize_R(Ab), 
 csize_A_R(Ab));
 p_mR(c_Ab_A_mR(Ab,A),S5,P0,C6);
 stop();
 clrscrn(); 
 printf(" b : c_Ab_b_mR(Ab,b); b[R%d][C%d] \n",
 rsize_R(Ab), 
 csize_R(Ab)-csize_A_R(Ab));
 p_mR(c_Ab_b_mR(Ab,b),S5,P0,C6);
 f_mR(Ab);
 f_mR(b);
 f_mR(A);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R5)+R1, rp_I(R4)+R2, rp_I(R3)+R1);
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Copier A de Ab dans A
 Copier b de Ab dans b:
//La matrice Ab doit être initialiser avec la fonction :
double **Ab = i_Abr_Ac_bc_mR( RAb, CA, Cb); 
//Cette fonction installe la bonne taille pour les matrices Ab, A, b.
 Exemple de sortie écran :
 Ab : Ab[R4][C8] 
 -89 +79 +91 +87 +29 -22 
 +75 -74 -41 -24 -58 +67 
 -40 +41 +58 -36 +43 +6 
 -96 +46 +86 +38 +28 -76 
 +50 -90 
 -24 -55 
 -81 -15 
 -68 -62 
 Press return to continue. 
 --------------------------------------
 A : c_Ab_A_mR(Ab,A); A[R4][C5] 
 -89 +79 +91 +87 +29 
 +75 -74 -41 -24 -58 
 -40 +41 +58 -36 +43 
 -96 +46 +86 +38 +28 
 Press return to continue. 
 --------------------------------------
 b : c_Ab_b_mR(Ab,b); b[R4][C3] 
 -22 +50 -90 
 +67 -24 -55 
 +6 -81 -15 
 -76 -68 -62 
 Press return to continue
 Press X to stop

Mathc matrices/c21m
Propriétés
.

Mathc matrices/c21n
Propriétés
det_R(A);
Matrices orthonormales :
Valeurs propres Vecteurs propres :
Matrices semblables. :

Mathc matrices/c21o
Application ou Pseudo Inverse
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c01a.c */
/* ------------------------------------ */
void fun(void)
double tA[RA*CA]={
 1, -1, 
 3, 2, 
-2, 4
double tb[RA*C1]={
 4,
 1,
 3
double **A = ca_A_mR(tA,i_mR(RA,CA)); 
double **b = ca_A_mR(tb,i_mR(RA,C1));
double **Pinv = i_mR(CA,RA); 
double **Pinvb = i_mR(CA,C1); 
 clrscrn();
 printf("Find the unique Least Squares Solution of Ax = b : \n\n");
 printf(" A :");
 p_mR(A,S5,P1,C7);
 printf(" b :");
 p_mR(b,S5,P1,C7);
 printf(" Pinv = V * invS_T * U_T ");
 pseudo_Rn_uv_mR(A,Pinv,FACTOR_E); 
 pE_mR(Pinv,S12,P4,C10); 
 printf(" x = Pinv * b "); 
 mul_mR(Pinv,b,Pinvb); 
 p_mR(Pinvb,S10,P4,C10); 
 stop(); 
 f_mR(b); 
 f_mR(A);
 f_mR(Pinv);
 f_mR(Pinvb); 
/* ------------------------------------ */
int main(void)

Exemple de sortie écran :
Find the unique Least Squares Solution of Ax = b : 
 A :
 +1.0 -1.0 
 +3.0 +2.0 
 -2.0 +4.0 
 b :
 +4.0 
 +1.0 
 +3.0 
 Pinv = V * invS_T * U_T 
 +0.0632 +0.2421 -0.1053 
 -0.0386 +0.1298 +0.1754 
 x = Pinv * b 
 +0.1789 
 +0.5018 
 Press return to continue.