return(A);
/* ------------------------------------ */ 
void p_Det_mR(
double **A,
int e,
int d
 int r;
 int c;
 for(r=R2;r<A[R_SIZE][C0];r++)
 printf("\n");
 for (c=C1;c<A[C_SIZE][C0];c++)
 printf("%+*.*f",e,d,A[r][c]);
 printf("\n\n");
/* ------------------------------------ */ 
void verify_eq_circle_mR(
double **A,
double x,
double y
double eq = cofactor_R(A,R1,C1)*(pow(x,2)+pow(y,2)) 
 + cofactor_R(A,R1,C2)*(x) 
 + cofactor_R(A,R1,C3)*(y) 
 + cofactor_R(A,R1,C4);
 printf(" With x=%+5.1f y=%+5.1f eq=%+5.5f\n",x,y,eq); 
/* --------------------------------- */
 Déclaration des fichiers h.

Mathc matrices/c25d1
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c01.c */
int main(void)
double p[R3*C3] ={ 6, 2, 
 0, 2, 
 3, 5};
double **Ap = ca_A_mR( p, i_mR(R3,C2));
double **A = m_circle_A_mR(Ap, i_mR(R4,C4));
int r;
 clrscrn();
 printf(" Theorem.\n\n");
 printf(" A homogeneous linear system with as many equations\n");
 printf(" as unknowns has a nontrivial solution if and only\n");
 printf(" if the determinant of the coefficient matrix is\n");
 printf(" zero.\n\n");
 printf(" Equation of a circle: \n\n");
 printf(" c1(x^2 +y^2) + c2 x + c3 y + c4 = 0\n\n"); 
 printf(" The same equation with the values of the three points:\n\n");
 for(r=R1;r<Ap[R_SIZE][C0];r++)
 printf(" c1(x%d^2+y%d^2)"
 " + c2 x%d + c3 y%d + c4 = 0\n",r,r,r,r); 
 printf(" The four equation:\n\n");
 printf(" c1(x^2 + y^2) + c2 x + c3 y + c4 = 0\n"); 
 for(r=R1;r<Ap[R_SIZE][C0];r++)
 printf(" c1(x%d^2+y%d^2)"
 " + c2 x%d + c3 y%d + c4 = 0\n",r,r,r,r); 
 stop();
 clrscrn();
 printf(" The three points:\n\n");
 for(r=R1;r<Ap[R_SIZE][C0];r++)
 printf(" P%d(%+.0f,%+.0f)",r,Ap[r][C1],Ap[r][C2]);
 printf(" The determinant :\n\n (cofactor expansion along the first row)\n\n");
 printf(" x^2+y^2 x y 1");
 p_Det_mR(A,6,0);
 printf(" The equation of the circle : \n\n");
 printf(" %+.0f(x^2+y^2) %+.0f x %+.0f y %+.0f = 0\n\n",
 cofactor_R(A,R1,C1),
 cofactor_R(A,R1,C2),
 cofactor_R(A,R1,C3),
 cofactor_R(A,R1,C4));
 printf(" Verify the result : \n\n"); 
 for(r=R1;r<Ap[R_SIZE][C0];r++)
 verify_eq_circle_mR(A, Ap[r][C1],
 Ap[r][C2]);
 stop();
 f_mR(A);
 f_mR(Ap);
 return 0;
/* --------------------------------- */

Exemple de sortie écran :
 Theorem.
 A homogeneous linear system with as many equations
 as unknowns has a nontrivial solution if and only
 if the determinant of the coefficient matrix is
 zero.
 Equation of a circle: 
 c1(x^2 +y^2) + c2 x + c3 y + c4 = 0
 The same equation with the values of the three points:
 c1(x1^2+y1^2) + c2 x1 + c3 y1 + c4 = 0
 c1(x2^2+y2^2) + c2 x2 + c3 y2 + c4 = 0
 c1(x3^2+y3^2) + c2 x3 + c3 y3 + c4 = 0
 The four equation:
 c1(x^2 + y^2) + c2 x + c3 y + c4 = 0
 c1(x1^2+y1^2) + c2 x1 + c3 y1 + c4 = 0
 c1(x2^2+y2^2) + c2 x2 + c3 y2 + c4 = 0
 c1(x3^2+y3^2) + c2 x3 + c3 y3 + c4 = 0
 Press return to continue. 
 The three points:
 P1(+6,+2) P2(+0,+2) P3(+3,+5) The determinant :
 (cofactor expansion along the first row)
 x^2+y^2 x y 1
 +40 +6 +2 +1
 +4 +0 +2 +1
 +34 +3 +5 +1
 The equation of the circle : 
 -18(x^2+y^2) +108 x +72 y -72 = 0
 Verify the result : 
 With x= +6.0 y= +2.0 eq=+0.00000
 With x= +0.0 y= +2.0 eq=+0.00000
 With x= +3.0 y= +5.0 eq=+0.00000
 Press return to continue.

Mathc matrices/c25d2
Application
Installer et compiler ces fichiers dans votre répertoire de travail.
/* ------------------------------------ */
/* Save as : c02.c */
int main(void)
double p[R3*C3] ={ 1, 7, 
 6, 2, 
 4, 6};
double **Ap = ca_A_mR( p, i_mR(R3,C2));
double **A = m_circle_A_mR(Ap, i_mR(R4,C4));
int r;
 clrscrn();
 printf(" Theorem.\n\n");
 printf(" A homogeneous linear system with as many equations\n");
 printf(" as unknowns has a nontrivial solution if and only\n");
 printf(" if the determinant of the coefficient matrix is\n");
 printf(" zero.\n\n");
 printf(" Equation of a circle: \n\n");
 printf(" c1(x^2 +y^2) + c2 x + c3 y + c4 = 0\n\n"); 
 printf(" The same equation with the values of the three points:\n\n");
 for(r=R1;r<Ap[R_SIZE][C0];r++)
 printf(" c1(x%d^2+y%d^2)"
 " + c2 x%d + c3 y%d + c4 = 0\n",r,r,r,r); 
 printf(" The four equation:\n\n");
 printf(" c1(x^2 + y^2) + c2 x + c3 y + c4 = 0\n"); 
 for(r=R1;r<Ap[R_SIZE][C0];r++)
 printf(" c1(x%d^2+y%d^2)"
 " + c2 x%d + c3 y%d + c4 = 0\n",r,r,r,r); 
 stop();
 clrscrn();
 printf(" The three points:\n\n");
 for(r=R1;r<Ap[R_SIZE][C0];r++)
 printf(" P%d(%+.0f,%+.0f)",r,Ap[r][C1],Ap[r][C2]);
 printf(" The determinant :\n\n (cofactor expansion along the first row)\n\n");
 printf(" x^2+y^2 x y 1");
 p_Det_mR(A,6,0);
 printf(" The equation of the circle : \n\n");
 printf(" %+.0f(x^2+y^2) %+.0f x %+.0f y %+.0f = 0\n\n",
 cofactor_R(A,R1,C1),
 cofactor_R(A,R1,C2),
 cofactor_R(A,R1,C3),
 cofactor_R(A,R1,C4));
 printf(" Verify the result : \n\n"); 
 for(r=R1;r<Ap[R_SIZE][C0];r++)
 verify_eq_circle_mR(A, Ap[r][C1],
 Ap[r][C2]);
 stop();
 f_mR(A);
 f_mR(Ap);
 return 0;
/* --------------------------------- */

Exemple de sortie écran :
 Theorem.
 A homogeneous linear system with as many equations
 as unknowns has a nontrivial solution if and only
 if the determinant of the coefficient matrix is
 zero.
 Equation of a circle: 
 c1(x^2 +y^2) + c2 x + c3 y + c4 = 0
 The same equation with the values of the three points:
 c1(x1^2+y1^2) + c2 x1 + c3 y1 + c4 = 0
 c1(x2^2+y2^2) + c2 x2 + c3 y2 + c4 = 0
 c1(x3^2+y3^2) + c2 x3 + c3 y3 + c4 = 0
 The four equation:
 c1(x^2 + y^2) + c2 x + c3 y + c4 = 0
 c1(x1^2+y1^2) + c2 x1 + c3 y1 + c4 = 0
 c1(x2^2+y2^2) + c2 x2 + c3 y2 + c4 = 0
 c1(x3^2+y3^2) + c2 x3 + c3 y3 + c4 = 0
 Press return to continue. 
 The three points:
 P1(+1,+7) P2(+6,+2) P3(+4,+6) The determinant :
 (cofactor expansion along the first row)
 x^2+y^2 x y 1
 +50 +1 +7 +1
 +40 +6 +2 +1
 +52 +4 +6 +1
 The equation of the circle : 
 +10(x^2+y^2) -20 x -40 y -200 = 0
 Verify the result : 
 With x= +1.0 y= +7.0 eq=-0.00000
 With x= +6.0 y= +2.0 eq=-0.00000
 With x= +4.0 y= +6.0 eq=-0.00000
 Press return to continue.

Mathc matrices/25e
Application
Copier la bibliothèque dans votre répertoire de travail avec les fichiers des parties précédentes :
Ne pas conserver le fichier d.h avec la librairie après avoir testé les exemples. 
 Présentation :
 Un système linéaire homogène avec autant d'équation
 que d'inconnus a une solution non trivial si et 
 seulement le déterminant de cette matrice est nul.
 Calculons l'équation d'une sphère passant par les points P Q R S : 
 c1(x^2 +y^2 +z^2) +c2x +c3y +c4z +c5 = 0
 Cette même équation avec les points P(x1,y1,z1) 
 Q(x2,y2,z2) R(x3,y3,z3) et S(x4,y4,z4):

c1(x1^2+y1^2+z1^2)+c2x1+c3y1+c4z1+c5 = 0 
 c1(x2^2+y2^2+z2^2)+c2x2+c3y2+c4z2+c5 = 0 
 c1(x3^2+y3^2+z3^2)+c2x3+c3y3+c4z3+c5 = 0 
 c1(x4^2+y4^2+z4^2)+c2x4+c3y4+c4z4+c5 = 0
 Le système de cinq équations :
 c1(x^2 +y^2 +z^2) +c2x +c3y +c4z +c5 = 0
 c1(x1^2+y1^2+z1^2)+c2x1+c3y1+c4z1+c5 = 0 
 c1(x2^2+y2^2+z2^2)+c2x2+c3y2+c4z2+c5 = 0 
 c1(x3^2+y3^2+z3^2)+c2x3+c3y3+c4z3+c5 = 0 
 c1(x4^2+y4^2+z4^2)+c2x4+c3y4+c4z4+c5 = 0

Le déterminant du système :
 |(x ^2+y ^2+z ^2) x y z 1|
 |(x1^2+y1^2+z1^2) x1 y1 z1 1|
 |(x2^2+y2^2+z1^2) x2 y2 z2 1| = 0
 |(x3^2+y3^2+z3^2) x3 y3 z3 1|
 |(x4^2+y4^2+z4^2) x4 y4 z4 1|
 Le déterminant du système en langage C : 
 | 1 1 1 1 1|
 |(x1^2+y1^2+z1^2) x1 y1 z1 1|
 |(x2^2+y2^2+z1^2) x2 y2 z2 1| = 0
 |(x3^2+y3^2+z3^2) x3 y3 z3 1|
 |(x4^2+y4^2+z4^2) x4 y4 z4 1|
 c1 (x^2 +y^2 +z^2) +
 c2 x +
 c3 y +
 c4 z +
 c5 = 0
 Pour calculer les coefficients de l'équation 
 de la sphère on utilise le développement sur 
 la première ligne en calculant les cofacteurs.
 cof(R1,C1) (x ^2+y ^2+z ^2)+
 cof(R1,C2) x+
 cof(R1,C3) y+
 cof(R1,C4) z+
 cof(R1,C5) = 0
Cette équation nous donnes l'équation de la sphère
 qui passe par les quatre points P Q R et S.
Deux exemples :