Aller au contenu

Mathc initiation/Fichiers c : c60cf

Un livre de Wikilivres.


Sommaire

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

c00f.c
/* ---------------------------------- */
/* save as c00f.c                     */
/* ---------------------------------- */
#include "x_afile.h"
#include      "ff.h"
/* ---------------------------------- */
int main(void)
{
double m = surface_dzdy( f,  k,
                         u,  v,LOOP,   
                         ay,by,LOOP);
 clrscrn();
 
 printf(" Evaluate this surface integral.\n\n");
 printf("  //                  \n");
 printf(" ||                   \n");
 printf(" ||f(k(y,z),y,z) sqrt[k_y(y,z)^2+k_z(y,z)^2+1] dzdy = %.3f\n",m);
 printf(" ||                   \n");
 printf("//                    \n");
 printf("Rzy               \n\n\n");
 
 printf(" f : (x,y,z)-> %s\n\n", feq);
 printf(" k :   (y,z)-> %s\n\n", keq);

 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 integral.

  //                  
 ||                   
 ||f(k(y,z),y,z) sqrt[k_y(y,z)^2+k_z(y,z)^2+1] dzdy = 24.926
 ||                   
//                    
Rzy               


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

 k :   (y,z)-> 1./2.(12-3*y-4*z)

 v :     (y)-> (12-3*y)/4  
 u :     (y)-> 0

 b = +4.0
 a = +0.0


 Press return to continue.


Sortie écran d'un CAS :
> restart:
> f := (x,y,z)->x*y**2*z**3:
> k := (y,z)-> 1./2.*(12-3*y-4*z):
> Int(
> Int(
>       f(k(y,z),y,z)*
>    sqrt( diff(k(y,z),y)^2 + diff(k(y,z),z)^2 + 1),
> 
> z = 0 .. (12-3*y)/4),
> y = 0 .. 4);

     4    3 - 3/4 y
    /    /
   |    |
   |    |           2.692582404
   |    |
  /    /
    0    0

                                                       2  3
        (6.000000000 - 1.500000000 y - 2.000000000 z) y  z  dz dy

> evalf(value(%));
> 

                             24.92561993

>