Mathc initiation/c36cg
Installer et compiler ces fichiers dans votre répertoire de travail.
c00g.c |
---|
/* ---------------------------------- */
/* save as c00g.c */
/* --------------------------------- */
#include "x_hfile.h"
#include "fg.h"
/* --------------------------------- */
int main(void)
{
double az = 0,
bz = 3,
nz = 2*20, nx = 2*20, ny = 2*20;
double M = simpson_dxdydz(f,
ux, vx, nx,
sy, ty, ny,
az, bz, nz);
clrscrn();
printf(" f : x,y,z -> %s\n\n", feq);
printf(" vx : y,z -> %s \n", veq);
printf(" ux : y,z -> %s\n\n", ueq);
printf(" ty : z -> %s \n", teq);
printf(" sy : z -> %s\n\n", seq);
printf(" With the simpson's rule.\n\n\n");
printf(" (%+.1f (%s (%s \n", bz, teq, veq);
printf(" A = int( int( int( %s dx dy dz = %.6f\n",feq, M);
printf(" (%+.1f (%s (%s\n\n\n", az, seq, ueq);
stop();
return 0;
}
/* --------------------------------- */
Vous pouvez vérifier avec Octave version 5.2 :
I = triplequad (f, xa, xb, ya, yb, za, zb)
>> triplequad (@(x, y, z) (cos(x).*sin(y).*z), 0, 1, 0, 2, 0, 3)
ans = 5.3624
Remarque :
Avec la méthode de Simpson, il faut (2*20+2*20+2*20 =) 120 itérations pour obtenir quatre chiffres exact après la virgule. Avec la méthode de trapèzes il faut (2*250+2*250+2*250) = 1500 itérations pour obtenir le même résultat.
Exemple de sortie écran :
f : x,y,z -> cos(x)*sin(y)*z
vx : y,z -> 1
ux : y,z -> 0
ty : z -> 2
sy : z -> 0
With the simpson's rule.
(+3.0 (2 (1
A = int( int( int( cos(x)*sin(y)*z dx dy dz = 5.362409
(+0.0 (0 (0
Press return to continue.