Mathc matrices/a09
Bibliothèque
Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes :
Exemple pour tester la bibliothèque :

Mathc matrices/h09a
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : v_g.h */
/* ------------------------------------ */ 
/* Gauss jordan */
/* ------------------------------------ */
 Déclaration des fichiers h.

Mathc matrices/h09b
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : v_d.h */
/* ------------------------------------ */
 Déclaration des fichiers h.

Mathc matrices/h09c
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : vdsvdf.h */
/* ------------------------------------ */
double **svd_f_uv_mR(
double **M,
double (*P_f)(double x),
double **fM
int r;
 dif_sizes_mR(M,fM,"svd_f_mR();","(M or fM");
 for ( r=R1; r<M[R_SIZE][C0]; r++)
 if(M[r][r]>0)
 fM[r][r] = (*P_f)(M[r][r]);
 else
 fM[r][r] = -(*P_f)(fabs(M[r][r]));
 return(fM);
/* ------------------------------------ */
 Déclaration des fichiers h.

Mathc matrices/h09d
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : vdfreecn.h */
/* ------------------------------------ */
void gj_free_V_Cn_value0_uv_mR(
double **Ab,
double **eignV
double **new_Ab;
//int r_not_0 = rsize_R(Ab) -((csize_R(Ab) - csize_A_R(Ab)-C1) -C1);
int r_not_0 = 2*rsize_R(Ab) - csize_R(Ab) + C2;
int r;
 new_Ab = i_Abr_Ac_bc_mR(rsize_R(Ab),
 csize_A_R(Ab),
 csize_R(Ab)-rsize_R(Ab)); 
 c_mR(Ab,new_Ab);
 zero4_under_all_pivot_mR(new_Ab); 
 put_freevariable_mR(new_Ab,r_not_0);
 r=Ab[C_SIZE_A][C0]-C1;
 while( r>R1 )
 zero_below_pivot_gj1Ab_mR(new_Ab,r--);
 sort_c_mR(new_Ab);
 sort_r_mR(new_Ab); 
 c_Ab_b_mR(new_Ab,eignV); 
 f_mR(new_Ab);
/* ------------------------------------ */
 Déclaration des fichiers h.

Mathc matrices/h09e
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : vg_i.h */
double **i_Abr_Ac_bc_mR(
int Ab_r,
int A_c,
int b_c
double **Ab;
 if( Ab_r < R2 || A_c<C2 || b_c<C1)
 printf(" Error : double **i_Abr_Ac_bc_mR(); \n\n");
 printf(" A_c, b_c must be : Ab_r < R2 || A_c<C2 || b_c<C1 \n\n");
 printf(" This matrix is to study linear sytem.\n\n");
 fflush(stdout);
 getchar();
 exit(EXIT_FAILURE);
 Ab = i_mR( Ab_r,A_c+b_c); 
 /* size of A into Ab */ 
 Ab[C_SIZE_A][C0] = A_c+C1; 
return(Ab);
/* ------------------------------------ */ 
/* ------------------------------------ */
double **Ab = i_Abr_Ac_bc_mR(RAb,CA,Cb); créé une nouvelle matrice Ab de 
Vous pouvez donner directement le nombre de lignes et de colonnes souhaités.
double **Ab = i_Abr_Ac_bc_mR(R4, C4, C1 ); 
double **Ab = i_Abr_Ac_bc_mR(rsize_R(A)_, csize_R(A), C1 );

Mathc matrices/h09f
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : vgel_op.h */
double **swapcoefR0_mR(
double **A,
int c1,
int c2)
double T;
 T = A[R0][c1];
 A[R0][c1] = A[R0][c2];
 A[R0][c2] = T;
return(A);
/* ------------------------------------ */
double **swapC_withR0_mR(
double **A,
int c1,
int c2)
double T;
int r;
 for ( r=R0; r<A[R_SIZE][C0]; r++)
 T = A[r][c1];
 A[r][c1] = A[r][c2];
 A[r][c2] = T;

return(A);
/* ------------------------------------ */

Mathc matrices/h09g
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : vgc_m.h */
double **c_withR0_mR(
double **A,
double **B
int r;
int c;
 for (r=R0; r<A[R_SIZE][C0]; r++)
 for (c=C1; c<A[C_SIZE][C0]; c++)
 B[r][c] = A[r][c];
 return(B);
/* ------------------------------------ */
double **c_onlyR0_mR(
double **A,
double **B
int c;
 for(c=C1; c<A[C_SIZE][C0]; c++)
 B[R0][c] = A[R0][c];
 return(B);
/* ------------------------------------ */
double **c_c_withR0_mR(
double **A,
int cA,
double **B,
int cB
int r;
 for(r=R0; r<A[R_SIZE][C0]; r++)
 B[r][cB] = A[r][cA];
 return(B);
/* ------------------------------------ */
double **c_r1r2_mR(
double **A,
int r1,
int r2)
int c;
 for ( c=C1; c<A[C_SIZE][C0]; c++)
 A[r2][c] = A[r1][c];
 return(A);
/* ------------------------------------ */
double **c_r1sr2_mR(
double **A,
int r1,
int r2,
double s)
int c;
 for ( c=C1; c<A[C_SIZE][C0]; c++)
 A[r2][c] = s*A[r1][c];
 return(A);
/* ------------------------------------
 cld01.c cld02.c pcld.zip
void c_c1_cL_mR(
double **A
int r;
int c = A[C_SIZE][C0]-C1;
 for(r=R1; r<A[R_SIZE][C0]; r++)
 A[r][c] = A[r][C1];
/* ------------------------------------ */
double **c_nr_mR(
double **A,
int r_n,
double **B
int r;
int c;
 for (r=R1; r<=r_n; r++)
 for (c=C1; c<A[C_SIZE][C0]; c++)
 B[r][c] = A[r][c];
 return(B);
/* ------------------------------------ */
 Ce sont des fonctions qui copie des lignes et des colonnes.

Mathc matrices/h09h
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : vgc_ab.h */
double **c_A_b_Ab_mR(
double **A,
double **b,
double **Ab
int r;
int c;
int c_A;
 for (r=R1; r<A[R_SIZE][C0]; r++)
 for (c=C1; c<A[C_SIZE][C0]; c++)
 Ab[r][c] = A[r][c];
 c_A = --c;
 for (r=R1; r<A[R_SIZE][C0]; r++)
 for (c=C1; c<b[C_SIZE][C0]; c++)
 Ab[r][c+c_A] = b[r][c];
return(Ab);
/* ------------------------------------ */
double **c_Ab_A_mR(
double **Ab,
double **A
int r;
int c;
 for (r=R1; r<Ab[R_SIZE][C0]; r++)
 for (c=C1; c<Ab[C_SIZE_A][C0]; c++)
 A[r][c] = Ab[r][c];
return(A);
/* ------------------------------------ */
double **c_Ab_b_mR(
double **Ab,
double **b
int r;
int c;
int b_c;
 for (r=R1; r<Ab[R_SIZE][C0]; r++)
 for (c=Ab[C_SIZE_A][C0],b_c=C1; c<Ab[C_SIZE][C0]; c++,b_c++)
 b[r][b_c] = Ab[r][c];
return(b);
/* ------------------------------------ */
double **c_Ab_subArxr_mR(
double **Ab,
double **subA
int r;
int c;
 for (r=R1; r<Ab[R_SIZE][C0]; r++)
 for (c=C1; c<Ab[R_SIZE][C0]; c++)
 subA[r][c] = Ab[r][c];
return(subA);
/* ------------------------------------ */
 Avec ses fonctions on copie A et B dans Ab ou l'inverse.

Mathc matrices/h09i
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : vgc_inv.h */
void c_Inv_A_mR(
double **AID,
double **A
int r;
int c;
int T;
 T = A[R_SIZE][C0];
 --T;
 for (r=R1; r<A[R_SIZE][C0]; r++)
 for (c=C1; c<A[C_SIZE][C0]; c++)
 A[r][c] = AID[r][c+T];
/* ------------------------------------ */
 Déclaration des fichiers h.

Mathc matrices/h09j
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : vgc_coef.h */
/* ------------------------------------ */
int c_index_R(
double **A,
int c
 return( A[R0][c] );
/* ------------------------------------ */
void c_s_mR(
double s,
double **A,
int r,
int c
 if( r<R1 ||
 c<C1 ||
 r>A[R_SIZE][C0] ||
 c>A[C_SIZE][C0] )
 printf("\n Error : c_coef_R(); \n\n");
 printf("\n r = %d; c = %d; \n",r,c);
 printf("\n r and c must be : \n");
 printf("\n r>=1; c>=1;\n r=<%.0f; c=<%.0f;\n",
 A[R_SIZE][C0],
 A[C_SIZE][C0]);
 printf("\n Press return to continue. \n");
 fflush(stdout);
 getchar();
 exit(EXIT_FAILURE);
 A[r][c] = s;
/* ------------------------------------ */
 Déclaration des fichiers h.

Mathc matrices/h09k
Bibliothèque
Installer ce fichier dans votre répertoire de travail.
/* Save as : vgsort.h */
/* ------------------------------------ */
double **sort_c_mR(
double **Ab
double **T = i_RC_mR(Ab[R_SIZE][C0],Ab[C_SIZE][C0]);
int c;
 for(c=C1; c<Ab[C_SIZE][C0]; c++)
 c_c_withR0_mR( Ab, c,
 T, Ab[R0][c]);
 c_withR0_mR(T,Ab);
 f_mR(T);
 return(Ab);
/* ------------------------------------ */
double **sort_r_mR(
double **Ab
double pivot;
int c;
int r;
int r_pivot = R1;
 for ( c=C1; c<Ab[C_SIZE_A][C0]; c++)
 r = r_pivot;
 pivot = 0.;
 while( (pivot<ERROR_E) && r<Ab[R_SIZE][C0] )
 pivot = fabs( Ab[r][c] );
 if(pivot>ERROR_E) 
 swapR_mR(Ab, r, r_pivot);
 r_pivot++;
 r++;
 return(Ab);
/* ------------------------------------ */
 Déclaration des fichiers h.