Mathc initiation/c36a4
Installer ce fichier dans votre répertoire de travail.
/* save as x_xzy.h */
double intx_dxdzdy(
double (*P_f)(double x, double y, double z),
double y,
double z,
double (*Pux)(double y, double z),
double (*Pvx)(double y, double z),
 int nx
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= nx; i++)
 M += m * (*P_f)( ((*Pux)(y,z)) + i*(((*Pvx)(y,z))-((*Pux)(y,z)))/nx, y, z);
 return( ((((*Pvx)(y,z)) -((*Pux)(y,z)))*M) / (3*nx) );
/* --------------------------------- */
double intz_dxdzdy(
double (*P_f)(double x, double y, double z),
double y,
double (*Psz)(double x),
double (*Ptz)(double x),
 int nz,
double (*Pux)(double y, double z),
double (*Pvx)(double y, double z),
 int nx
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= nz; i++)
 M += m * intx_dxdzdy((*P_f),
 y,
 (((*Psz)(y))+i*(((*Ptz)(y))-((*Psz)(y)))/nz),
 (*Pux),
 (*Pvx),
 nx);
 return( ((((*Ptz)(y)) -((*Psz)(y)))*M) / (3*nz) );
/* --------------------------------- */
double sympson_dxdzdy(
double (*P_f)(double x, double y, double z),
double ay,
double by,
 int ny,
double (*Psz)(double x),
double (*Ptz)(double x),
 int nz, 
double (*Pux)(double y, double z),
double (*Pvx)(double y, double z),
 int nx
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= ny; i++)
 M += m * intz_dxdzdy((*P_f),
 (ay+i*(by-ay)/ny),
 (*Psz),
 (*Ptz),
 nz,
 (*Pux),
 (*Pvx),
 nx);
 return( ((by -ay)*M) / (3*ny) );
/* --------------------------------- */
Les fonctions pour calculer les intégrales de la forme dxdzdy

Mathc initiation/c36a5
Installer ce fichier dans votre répertoire de travail.
/* save as x_yxz.h */
double inty_dydxdz(
double (*P_f)(double x, double y, double z),
double z,
double x,
double (*Puy)(double x, double z),
double (*Pvy)(double x, double z),
 int ny
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= ny; i++)
 M += m * (*P_f)( x, ((*Puy)(x,z)) + i*(((*Pvy)(x,z))-((*Puy)(x,z)))/ny, z);
 return( ((((*Pvy)(x,z)) -((*Puy)(x,z)))*M) / (3*ny) );
/* --------------------------------- */
double intx_dydxdz(
double (*P_f)(double x, double y, double z),
double z,
double (*Psx)(double z),
double (*Ptx)(double z),
 int nx,
double (*Puy)(double x, double z),
double (*Pvy)(double x, double z),
 int ny
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= nx; i++)
 M += m * inty_dydxdz((*P_f),
 z,
 (((*Psx)(z))+i*(((*Ptx)(z))-((*Psx)(z)))/nx),
 (*Puy),
 (*Pvy),
 ny);
 return( ((((*Ptx)(z)) -((*Psx)(z)))*M) / (3*nx) );
/* --------------------------------- */
double sympson_dydxdz(
double (*P_f)(double x, double y, double z),
double az,
double bz,
 int nz,
double (*Psx)(double x),
double (*Ptx)(double x),
 int nx,
double (*Puy)(double x, double z),
double (*Pvy)(double x, double z),
 int ny
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= nz; i++)
 M += m * intx_dydxdz((*P_f),
 (az+i*(bz-az)/nz),
 (*Psx),
 (*Ptx),
 nx,
 (*Puy),
 (*Pvy),
 ny);
 return( ((bz -az)*M) / (3*nz) );
/* --------------------------------- */

Mathc initiation/c36a6
Installer ce fichier dans votre répertoire de travail.
/* save as x_yzx.h */
double inty_dydzdx(
double (*P_f)(double x, double y, double z),
double x,
double z,
double (*Puy)(double x, double z),
double (*Pvy)(double x, double z),
 int ny
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= ny; i++)
 M += m * (*P_f)( x, ((*Puy)(x,z)) + i*(((*Pvy)(x,z))-((*Puy)(x,z)))/ny, z);
 return( ((((*Pvy)(x,z)) -((*Puy)(x,z)))*M) / (3*ny) );
/* --------------------------------- */
double intz_dydzdx(
double (*P_f)(double x, double y, double z),
double x,
double (*Psz)(double x),
double (*Ptz)(double x),
 int nz,
double (*Puy)(double x, double z),
double (*Pvy)(double x, double z),
 int ny
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= nz; i++)
 M += m * inty_dydzdx((*P_f),
 x,
 (((*Psz)(x))+i*(((*Ptz)(x))-((*Psz)(x)))/nz),
 (*Puy),
 (*Pvy),
 ny);
 return( ((((*Ptz)(x)) -((*Psz)(x)))*M) / (3*nz) );
/* --------------------------------- */
double sympson_dydzdx(
double (*P_f)(double x, double y, double z),
double ax,
double bx,
 int nx,
double (*Psz)(double x),
double (*Ptz)(double x),
 int nz,
double (*Puy)(double x, double z),
double (*Pvy)(double x, double z),
 int ny
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= nx; i++)
 M += m * intz_dydzdx((*P_f),
 (ax+i*(bx-ax)/nx),
 (*Psz),
 (*Ptz),
 nz,
 (*Puy),
 (*Pvy),
 ny);
 return( ((bx -ax)*M) / (3*nx) );
/* --------------------------------- */
Les fonctions pour calculer les intégrales de la forme dydzdx

Mathc initiation/c36a7
Installer ce fichier dans votre répertoire de travail.
/* save as x_zxy.h */
double intz_dzdxdy(
double (*P_f)(double x, double y, double z),
double y,
double x,
double (*Puz)(double x, double y),
double (*Pvz)(double x, double y),
 int nz
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= nz; i++)
 M += m * (*P_f)( x, y, ((*Puz)(x,y)) + i*(((*Pvz)(x,y))-((*Puz)(x,y)))/nz);
 return( ((((*Pvz)(x,y)) -((*Puz)(x,y)))*M) / (3*nz) );
/* --------------------------------- */
double intx_dzdxdy(
double (*P_f)(double x, double y, double z),
double y,
double (*Psx)(double y),
double (*Ptx)(double y),
 int nx,
double (*Puz)(double x, double y),
double (*Pvz)(double x, double y),
 int nz
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= nx; i++)
 M += m * intz_dzdxdy((*P_f),
 y,
 (((*Psx)(y))+i*(((*Ptx)(y))-((*Psx)(y)))/nx),
 (*Puz),
 (*Pvz),
 nz);
 return( ((((*Ptx)(y)) -((*Psx)(y)))*M) / (3*nx) );
/* --------------------------------- */
double sympson_dzdxdy(
double (*P_f)(double x, double y, double z),
double ay,
double by,
 int ny,
double (*Psx)(double y),
double (*Ptx)(double y),
 int nx,
double (*Puz)(double x, double y),
double (*Pvz)(double x, double y),
 int nz
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= ny; i++)
 M += m * intx_dzdxdy((*P_f),
 (ay+i*(by-ay)/ny),
 (*Psx),
 (*Ptx),
 nx,
 (*Puz),
 (*Pvz),
 nz);
 return( ((by -ay)*M) / (3*ny) );
/* --------------------------------- */
Les fonctions pour calculer les intégrales de la forme dzdxdy

Mathc initiation/c36a8
Installer ce fichier dans votre répertoire de travail.
/* save as x_zyx.h */
double intz_dzdydx(
double (*P_f)(double x, double y, double z),
double x,
double y,
double (*Puz)(double x, double y),
double (*Pvz)(double x, double y),
 int nz
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= nz; i++)
 M += m * (*P_f)( x, y, ((*Puz)(x,y)) + i*(((*Pvz)(x,y))-((*Puz)(x,y)))/nz);
 return( ((((*Pvz)(x,y)) -((*Puz)(x,y)))*M) / (3*nz) );
/* --------------------------------- */
double inty_dzdydx(
double (*P_f)(double x, double y, double z),
double x,
double (*Psy)(double x),
double (*Pty)(double x),
 int ny,
double (*Puz)(double x, double y),
double (*Pvz)(double x, double y),
 int nz
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= ny; i++)
 M += m * intz_dzdydx((*P_f),
 x,
 (((*Psy)(x))+i*(((*Pty)(x))-((*Psy)(x)))/ny),
 (*Puz),
 (*Pvz),
 nz);
 return( ((((*Pty)(x)) -((*Psy)(x)))*M) / (3*ny) );
/* --------------------------------- */
double sympson_dzdydx(
double (*P_f)(double x, double y, double z),
double ax,
double bx,
 int nx,
double (*Psy)(double x),
double (*Pty)(double x),
 int ny,
double (*Puz)(double x, double y),
double (*Pvz)(double x, double y),
 int nz
 int i = 0;
double m = 0.;
double M = 0.;
 for(i = 0; i <= nx; i++)
 M += m * inty_dzdydx((*P_f),
 (ax+i*(bx-ax)/nx),
 (*Psy),
 (*Pty),
 ny,
 (*Puz),
 (*Pvz),
 nz);
 return( ((bx -ax)*M) / (3*nx) );
/* --------------------------------- */
Les fonctions pour calculer les intégrales de la forme dzdydx