Mathc initiation/c33cc
Installer et compiler ces fichiers dans votre répertoire de travail.
/* save as c17c.c */
int main(void)
double ay,by,n,ny,M;
 clrscrn();
 printf(" f : (x,y)-> %s\n\n\n", feq);
 printf(" u : (y)-> %s \n\n", ueq);
 printf(" v : (y)-> %s\n\n\n", veq);
 printf("\n\n\n");
 ay = 0; 
 by = 4;
 n = 2*150;
 ny = 2*150;
 M = trapezoid_dxdy(f, u,v,n, ay,by,ny);
 printf(" With the trapezoidal's rule.\n\n");
 printf(" (%.3f (%s\n", by, veq);
 printf(" int( int( %s dx dy = %.6f\n", feq, M);
 printf(" (%.3f (%s\n\n\n", ay, ueq);
 stop();
 return 0;
/* --------------------------------- */
 Même résultat que la version avec l'algorithme de Sympson à quelques décimales près.
Exemple de sortie écran :
 f : (x,y)-> x**3+4*y
 u : (y)-> y/2. 
 v : (y)-> sqrt(y)
 With the trapezoidal's rule.
 (4.000 (sqrt(y)
 int( int( x**3+4*y dx dy = 10.666577
 (0.000 (y/2.
 Press return to continue.

Mathc initiation/c33cd
Installer et compiler ces fichiers dans votre répertoire de travail.
/* save as c17d.c */
int main(void)
double ay,by,n,ny,M;
 clrscrn();
 printf(" f : (x,y)-> %s\n\n\n", feq);
 printf(" u : (y)-> %s \n\n", ueq);
 printf(" v : (y)-> %s\n\n\n", veq);
 printf("\n\n\n");
 ay = 0; 
 by = 3;
 n = 2*150;
 ny = 2*150;
 M = trapezoid_dxdy(f, u,v,n, ay,by,ny);
 printf(" With the trapezoidal's rule.\n\n");
 printf(" (%.3f (%s\n", by, veq);
 printf(" int( int( %s dx dy = %.6f\n", feq, M);
 printf(" (%.3f (%s\n\n\n", ay, ueq);
 stop();
 return 0;
/* --------------------------------- */
 Même résultat que la version avec l'algorithme de Sympson à quelques décimales près.
Exemple de sortie écran :
 f : (x,y)-> sqrt(9-y**2)
 u : (y)-> 0 
 v : (y)-> sqrt(9-y**2)
 With the trapezoidal's rule.
 (3.000 (sqrt(9-y**2)
 int( int( sqrt(9-y**2) dx dy = 17.999950
 (0.000 (0
 Press return to continue.

Mathc initiation/c34a1
Installer ce fichier dans votre répertoire de travail.
/* save as x_hfile.h */
Déclaration des fichiers h.

Mathc initiation/c34a2
Installer ce fichier dans votre répertoire de travail.
/* save as x_def.h */
void clrscrn(void)
 printf("\n\n\n\n\n\n\n\n\n\n\n"
 "\n\n\n\n\n\n\n\n\n\n\n"
 "\n\n\n\n\n\n\n\n\n\n\n");
/* ---------------------------------- */
void stop(void)
 printf(" Press return to continue. ");
 getchar();
/* --------------------------------- */
Dans ce fichier il y a les utilitaires.

Mathc initiation/c34a3
Installer ce fichier dans votre répertoire de travail.
/* save as x_dydx.h */
double int_dy(
double (*P_f)(double x, double y),
double x,
double (*P_u)(double x),
double (*P_v)(double x),
 int ny
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= ny; i++)
 M += m * (*P_f)(x, ((*P_u)(x)) + i*(((*P_v)(x))-((*P_u)(x)))/ny);
 return( ((((*P_v)(x)) -((*P_u)(x)))*M) / (3*ny) );
/* ---------------------------------- */
double simpson_dydx(
double (*P_f)(double x, double y),
double a,
double b,
 int n,
double (*P_u)(double x),
double (*P_v)(double x),
 int ny)
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= n; i++)
 M += m * int_dy((*P_f),(a + i*(b-a)/n), (*P_u),(*P_v),ny);
 return( ((b -a)*M) / (3*n) );
/* ---------------------------------- */
Les fonctions pour calculer les intégrales de la forme dydx.

Mathc initiation/c34a4
Installer ce fichier dans votre répertoire de travail.
/* save as x_dxdy.h */
double int_dx(
double (*P_f)(double x, double y),
double (*P_u)(double y),
double (*P_v)(double y),
 int n,
double y
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= n; i++)
 M += m * (*P_f)(((*P_u)(y)) + i*(((*P_v)(y))-((*P_u)(y)))/n, y);
 return( ((((*P_v)(y)) -((*P_u)(y)))*M) / (3*n) );
/* ---------------------------------- */
double simpson_dxdy(
double (*P_f)(double x, double y),
double (*P_u)(double y),
double (*P_v)(double y),
 int n,
double ay,
double by,
 int ny
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= ny; i++)
 M += m * int_dx((*P_f), (*P_u),(*P_v),n,(ay+i*(by-ay)/ny));
 return( ((by-ay)*M) / (3*ny) );
/* ---------------------------------- */
Les fonctions pour calculer les intégrales de la forme dxdy.

Mathc initiation/c34ba
Installer ce fichier dans votre répertoire de travail.
/* save as fa.h */
double f(
double x,
double y)
 return( (x*x+y*y+1) );
/* ---------------------------------- */
char feq[] = "x**2+y**2+1";
double u(
double x)
 return( ( 0) );
/* ---------------------------------- */
char ueq[] = "0";
double v(
double x)
 return( (2-2*x) );
/* ---------------------------------- */
char veq[] = "2-2*x";
Dans ce fichier il y a les fonctions pour le fichier c17a.c

Mathc initiation/c34bb
Installer ce fichier dans votre répertoire de travail.
/* save as fb.h */
double f(
double x,
double y)
 return( 1 );
/* ---------------------------------- */
char feq[] = "1";
double u(
double x)
 return( ( 2.-(x/2.) ) );
/* ---------------------------------- */
char ueq[] = "2.-(x/2.)";
double v(
double x)
 return( ( 8.-(x*x/2.) ) );
/* ---------------------------------- */
char veq[] = "8.-(x**2/2.)";
Dans ce fichier il y a les fonctions pour le fichier c17b.c

Mathc initiation/c34bc
Installer ce fichier dans votre répertoire de travail.
/* save as fc.h */
double f(
double x,
double y)
 return( (x*x*x+4*y) );
/* ---------------------------------- */
char feq[] = "x**3+4*y";
double u(
double y)
 return( (y/2.) );
/* ---------------------------------- */
char ueq[] = "y/2.";
double v(
double y)
 return( sqrt(y) );
/* ---------------------------------- */
char veq[] = "sqrt(y)";
Dans ce fichier il y a les fonctions pour le fichier c17c.c

Mathc initiation/c34bd
Installer ce fichier dans votre répertoire de travail.
/* save as fd.h */
double f(
double x,
double y)
 return( sqrt(9-y*y) );
/* ---------------------------------- */
char feq[] = "sqrt(9-y**2)";
double u(
double y)
 return( (0) );
/* ---------------------------------- */
char ueq[] = "0";
double v(
double y)
 return( (sqrt(9-y*y)) );
/* ---------------------------------- */
char veq[] = "sqrt(9-y**2)";
Dans ce fichier il y a les fonctions pour le fichier c17d.c

Mathc initiation/c34ca
Installer et compiler ces fichiers dans votre répertoire de travail.
/* save as c17a.c */
int main(void)
double a,b,n,ny,M;
 clrscrn();
 printf(" f : (x,y)-> %s\n\n", feq);
 printf(" u : (x)-> %s \n", ueq);
 printf(" v : (x)-> %s\n\n\n", veq);
 a = 0; b = 1;
 n = 2*10; ny = 2*10;
 M = simpson_dydx(f, a,b,n, u,v,ny);
 printf(" With the simpson's rule.\n\n");
 printf(" (%.3f (%s\n", b, veq);
 printf(" int( int( %s dy dx = %.6f\n", feq, M);
 printf(" (%.3f (%s\n\n\n", a, ueq);
 stop();
 return 0;
/* --------------------------------- */
 Même résultat que la version avec l'algorithme des trapèzes à quelques décimales près.
Exemple de sortie écran :
 f : (x,y)-> x**2+y**2+1
 u : (x)-> 0 
 v : (x)-> 2-2*x
 With the simpson's rule.
 (1.000 (2-2*x
 int( int( x**2+y**2+1 dy dx = 1.833333
 (0.000 (0
 Press return to continue.

Mathc initiation/c34cb
Installer et compiler ces fichiers dans votre répertoire de travail.
/* save as c17b.c */
int main(void)
double a,b,n,ny,M;
 clrscrn();
 printf(" f : (x,y)-> %s\n\n", feq);
 printf(" u : (x)-> %s \n", ueq);
 printf(" v : (x)-> %s\n\n", veq);
 printf("\n\n\n");
 a = -3; b = 4;
 n = 2*10; ny = 2*10;
 M = simpson_dydx(f, a,b,n, u,v,ny);
 printf(" With the simpson's rule.\n\n");
 printf(" (%.3f (%s\n", b, veq);
 printf(" int( int( %s dy dx = %.6f\n", feq, M);
 printf(" (%.3f (%s\n\n\n", a, ueq);
 stop();
 return 0;
/* --------------------------------- */
 Même résultat que la version avec l'algorithme des trapèzes à quelques décimales près.
Exemple de sortie écran :
 f : (x,y)-> 1
 u : (x)-> 2.-(x/2.) 
 v : (x)-> 8.-(x**2/2.)
 With the simpson's rule.
 (4.000 (8.-(x**2/2.)
 int( int( 1 dy dx = 28.583333
 (-3.000 (2.-(x/2.)
 Press return to continue.