Mathc initiation/Fichiers c : c60ca


Sommaire


Installer et compiler ces fichiers dans votre répertoire de travail. .

Crystal Clear mimetype source c.png c18a.c
/* ---------------------------------- */
/* save as c18a.c                   */
/* ---------------------------------- */
#include "x_hfile.h"
#include       "fa.h"
/* ---------------------------------- */
int main(void)
{
double ay = 0;
double by = 2.;
int    ny = 2*50;

int    nx = 2*50;

double  m = 0;

 clrscrn();
 m = surface_dxdy(  g,f,
                            u,v,
                            nx,   
                            ay,by,ny,
                            H);

 printf(" Evaluate this surface integrals equation.\n\n");
 printf("     //                  \n");
 printf("    ||                   \n");
 printf("    || g(x,y,f(x,y))* sqrt[ f_x(x,y)^2 + f_y(x,y)^2 + 1 ] dA = %.3f\n",m);
 printf("    ||                   \n");
 printf("   //                    \n");
 printf("   Rxy               \n\n\n");
 printf(" With.\n\n\n");
 printf(" g : (x,y,z)-> %s\n\n", geq);
 printf(" f :   (x,y)-> %s\n\n", feq);
 printf(" u :     (y)-> %s  \n", ueq);
 printf(" v :     (y)-> %s\n\n", veq);
 printf(" a = %+.1f   b = %+.1f \n",ay,by);
 stop();

 return 0;
}
/* ---------------------------------- */
/* ---------------------------------- */


L'algorithme consiste à adapter la fonction qui calcule les intégrales doubles au calcul des surfaces en 3d.


Exemple de sortie écran :
 Evaluate this surface integrals equation.

     //                  
    ||                   
    || g(x,y,f(x,y))* sqrt[ f_x(x,y)^2 + f_y(x,y)^2 + 1 ] dA = 18.708
    ||                   
   //                    
   Rxy               


 With.


 g : (x,y,z)-> x+y

 f :   (x,y)-> 6-2*x-3*y

 u :     (y)-> 0  
 v :     (y)-> (6-3*y)/2

 a = +0.0   b = +2.0 
 Press return to continue.
Sortie écran d'un CAS :
> restart:
> 
> g := (x,y,z)->x+y:
> 
> f := (x,y)->6-2*x-3*y:
> Int(
> Int(
>       g(x,y,f(x,y))*
>    sqrt( diff(f(x,y),x)^2 + diff(f(x,y),y)^2 + 1),
> 
> x = 0 .. (6-3*y)/2),
> y = 0 .. 2);

                  2    3 - 3/2 y
                 /    /
                |    |
                |    |           (x + y) sqrt(14) dx dy
                |    |
               /    /
                 0    0

> evalf(value(%));
> 

                             18.70828694

>