Mathc initiation/c36cg

Un livre de Wikilivres.


Sommaire


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.