Mathc initiation/d35

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*250, nx = 2*250, ny = 2*250;
        
double  M = trapezoid_dxdydz(f,
                             ux, vx, nx,
                             sy, ty, ny,
                             az, bz, nz);
 
 clrscrn();
 printf(" f : x,y,z -> %s\n\n", feq);

 printf(" v : y,z   -> %s  \n", veq);
 printf(" u : y,z   -> %s\n\n", ueq);
  
 printf(" t : z     -> %s  \n", teq);
 printf(" s : z     -> %s\n\n", seq);

 printf(" With the trapezoidal'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

 v : y,z   -> 1  
 u : y,z   -> 0

 t : z     -> 2  
 s : z     -> 0

 With the trapezoidal's rule.


        (+3.0  (2     (1    
 A = int(   int(    int(      cos(x)*sin(y)*z  dx dy dz = 5.362400
        (+0.0  (0     (0


 Press return to continue.