Mathc initiation/Fichiers c : c60ca


Sommaire


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

c00a.c
/* ---------------------------------- */
/* save as c00a.c                     */
/* ---------------------------------- */
#include "x_hfile.h"
#include      "fa.h"
/* ---------------------------------- */
int main(void)
{
double   m = surface_dxdy(  f,  g,
                            u,  v,LOOP,   
                            ay,by,LOOP);
 clrscrn();
 
 printf(" Evaluate this surface integrals equation.\n\n");
 printf("     //                  \n");
 printf("    ||                   \n");
 printf("    || f(x,y,g(x,y))* sqrt[ g_x(x,y)^2 + g_y(x,y)^2 + 1 ] dA = %.3f\n",m);
 printf("    ||                   \n");
 printf("   //                    \n");
 printf("   Rxy               \n\n\n");
 
 printf(" With.\n\n\n");
 
 printf(" f : (x,y,z)-> %s\n\n", feq);
 printf(" g :   (x,y)-> %s\n\n", geq);
 
 printf(" v :     (y)-> %s  \n", veq); 
 printf(" u :     (y)-> %s\n\n", ueq);
 printf(" b = %+.1f\n a = %+.1f\n\n\n",by,ay);
 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.

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


 With.


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

 g :   (x,y)-> x+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:
> 
> f := (x,y,z)->x+y:
> 
> g := (x,y)->6-2*x-3*y:
> Int(
> Int(
>       f(x,y,g(x,y))*
>    sqrt( diff(g(x,y),x)^2 + diff(g(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

>