Mathc matrices/c11a2
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
void fun(void)
double **A = rsymmetric_mR(i_mR(RA,RA),999.);
double **EigsVector = i_mR(RA,RA);
double **T_EigsVector = i_mR(RA,RA);
double **EigsValues = i_mR(RA,RA);
double **T_EigsVectorA = i_mR(RA,RA);
 clrscrn();
 printf(" A :"); 
 p_mR(A,S10,P4,C6);
 printf(" EigsValues = T_EigsVector * A * EigsVector"); 
 eigs_V_uv_mR(A,EigsVector); 
 transpose_mR(EigsVector,T_EigsVector); 
 mul_mR(T_EigsVector,A,T_EigsVectorA);
 mul_mR(T_EigsVectorA,EigsVector,EigsValues);
 p_mR(EigsValues,S10,P4,C6); 
 printf(" det_R(A) \t\t= %10.1f\n", det_R(A));
 printf(" det_R(EigsValues) \t= %10.1f\n",det_R(EigsValues)); 
 f_mR(A);
 f_mR(EigsVector);
 f_mR(T_EigsVector); 
 f_mR(EigsValues);
 f_mR(T_EigsVectorA);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */
Attention la valeur des déterminants peux croître très rapidement, par exemple ici le déterminant à neuf chiffres !

Exemple de sortie écran :
 A :
 -946.0000 +738.0000 +46.0000 
 +738.0000 +421.0000 -815.0000 
 +46.0000 -815.0000 +512.0000 
 EigsValues = T_EigsVector * A * EigsVector
+1387.2394 +0.0000 -0.0000 
 +0.0000 -1352.6159 -0.0000 
 -0.0000 -0.0000 -47.6235 
 det_R(A) = 89360854.0
 det_R(EigsValues) = 89360854.0
 Press return to continue
 Press X to stop

Mathc matrices/c11a3
Trace ... ... Determinant
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00b.c */
void fun(void)
double **A = rsymmetric_mR(i_mR(RA,RA),999.);
double **EigsVector= i_mR(RA,RA);
double **T_EigsVector= i_mR(RA,RA);
double **EigsValues= i_mR(RA,RA);
double **T_EigsVectorA= i_mR(RA,RA);
 clrscrn(); 
 printf(" A :");
 p_mR(A,S10,P4,C6);
 eigs_V_uv_mR(A,EigsVector); 
 transpose_mR(EigsVector,T_EigsVector);
 mul_mR(T_EigsVector,A,T_EigsVectorA);
 mul_mR(T_EigsVectorA,EigsVector,EigsValues);
 printf(" EigsValues = T_EigsVector * A * EigsVector");
 p_mR(EigsValues,S10,P4,C6); 
 printf(" trace_R(A) \t\t= %10.1f\n", trace_R(A));
 printf(" trace_R(EigsValues) \t= %10.1f\n",trace_R(EigsValues)); 
 f_mR(A);
 f_mR(EigsVector);
 f_mR(T_EigsVector);
 f_mR(EigsValues);
 f_mR(T_EigsVectorA);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun();
} while(stop_w());
 return 0;
/* ------------------------------------ */

Exemple de sortie écran :
 A :
 +698.0000 -951.0000 -800.0000 
 -951.0000 +995.0000 +868.0000 
 -800.0000 +868.0000 +11.0000 
 EigsValues = T_EigsVector * A * EigsVector
+2393.3218 -0.0000 -0.0000 
 -0.0000 -576.4242 +0.0000 
 -0.0000 -0.0000 -112.8977 
 trace_R(A) = 1704.0
 trace_R(EigsValues) = 1704.0
 Press return to continue
 Press X to stop

Mathc matrices/c11a4
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00a.c */
/* ------------------------------------ */
void fun(int r,int c)
double **A = r_mR(i_mR(r,c),99.);
double **B = i_mR(r,c);
 clrscrn(); 
 printf(" A :");
 p_mR(A,S5,P0,C10); 
 printf(" B : c_mR(A,B);");
 c_mR(A,B);
 p_mR(B,S5,P0,C10);
// p_mR(c_mR(A,B),S5,P0,C10); 
 f_mR(A);
 f_mR(B); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
int i;
do
 i = rp_I(R3)+R1;
 fun(i,i+C1);
} while(stop_w());
 return 0;
/* ------------------------------------ */

Copier une matrice A dans une matrice B :

Exemple de sortie écran :
 A :
 -94 -69 +28 
 +74 -53 +90 
 B : c_mR(A,B);
 -94 -69 +28 
 +74 -53 +90 
 Press return to continue
 Press X to stop

Mathc matrices/c11a5
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00b.c */
/* ------------------------------------ */
void fun(int r,int c)
double **A = r_mR(i_mR(r,c),99.);
double **B = i_mR(r,c);
 clrscrn(); 
 printf(" A :");
 p_mR(A,S5,P0,C10); 
 printf(" B : c_c_mR(A,C1,B,C2);");
 c_c_mR(A,C1,B,C2);
 p_mR(B,S5,P0,C10);
// p_mR(c_c_mR(A,C1,B,C2),S5,P0,C10);
 f_mR(A);
 f_mR(B); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
int i;
do
 i = rp_I(R3)+R1;
 fun(i,i+C1);
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Copier une colonne de la matrice A dans la matrice B :

Exemple de sortie écran :
 A :
 +73 -42 -69 
 +3 +67 +79 
 B : c_c_mR(A,C1,B,C2);
 +0 +73 +0 
 +0 +3 +0 
 Press return to continue
 Press X to stop

Mathc matrices/c11a6
Application 
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c00c.c */
/* ------------------------------------ */
void fun(int r,int c)
double **A = r_mR(i_mR(r,c),99.);
double **B = i_mR(r,c);
 clrscrn(); 
 printf(" A :");
 p_mR(A,S5,P0,C10); 
 printf(" B : c_r_mR(A,R1,B,R2);");
 c_r_mR(A,R1,B,R2);
 p_mR(B,S5,P0,C10);
// p_mR(c_r_mR(A,R1,B,R2),S5,P0,C10);
 f_mR(A);
 f_mR(B); 
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
int i;
do
 i = rp_I(R3)+R1;
 fun(i,i+C1);
} while(stop_w());
 return 0;
/* ------------------------------------ */
 Copier une ligne de la matrice A dans la matrice B :

Exemple de sortie écran :
 A :
 +30 -51 -52 -43 -70 
 +60 -57 -91 -27 -63 
 -50 -59 +64 +63 -12 
 +4 +18 +71 +10 -42 
 B : c_r_mR(A,R1,B,R2);
 +0 +0 +0 +0 +0 
 +30 -51 -52 -43 -70 
 +0 +0 +0 +0 +0 
 +0 +0 +0 +0 +0 
 Press return to continue
 Press X to stop

Mathc matrices/c11an
Fonctions de bases
Installer et compiler ces fichiers dans votre répertoire de travail.
/* Save as : c0an.c */
void fun(int r)
double **A = rsymmetric_mR(i_mR(r,r),999.);
double **EigsVector= i_mR(r,r);
double **EigsValue = i_mR(r,C1);
 clrscrn();
 printf(" Copy/Past into the octave windows \n\n");
 p_Octave_mR(A,"a",P0);
 printf(" [V, E] = eigs (a,10) \n\n");
 stop();
 clrscrn(); 
 eigs_V_uv_mR(A,EigsVector); 
 printf(" EigsVector:");
 p_mR(EigsVector,S5,P6,C6);
 eigs_value_uv_mR(A,EigsValue);
 printf(" EigsValue :");
 p_mR(EigsValue,S13,P6,C1); 
 f_mR(A);
 f_mR(EigsVector);
 f_mR(EigsValue);
/* ------------------------------------ */
int main(void)
time_t t;
 srand(time(&t));
do
 fun(rp_I(R4)+R2);
} while(stop_w());
 return 0;
/* ------------------------------------ */
Je veux calculer les valeurs propres de la matrice M.
Je copie M dans T pour ne pas modifier M. Puis j'applique 1000 fois l'algorithme vue plus haut. 
c_mR(M,T);
 for(i=0;i<1000;i++)
 QR_uv_mR(T,Q,R); 
 mul_mR(R,Q,T);

for(rc=R1;rc<=r;rc++)
 EigsValue[rc][C1] = T[rc][rc];
 Exemple de sortie écran :
 Copy/Past into the octave windows 
 a=[
-445,-853,+194;
-853,-911,-921;
+194,-921,-977]
 [V, E] = eigs (a,10) 
 Press return to continue. 
/* ------------------------------------ */
 EignVector:
+0.326731 +0.713242 -0.620106 
+0.738677 +0.216582 +0.638317 
+0.589579 -0.666616 -0.456091 
 EigsValue :
 -2023.400085 
 -885.338473 
 +575.738557 
 Press return to continue
 Press X to stop