Aller au contenu

Mathc initiation/Fichiers c : c61cc

Un livre de Wikilivres.


Sommaire


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


c00c.c
/* ---------------------------------- */
/* save as c00c.c                     */
/* ---------------------------------- */
#include "x_hfile.h"
#include      "fc.h"
/* ---------------------------------- */
int main(void)
{
double  m = IntFlux_simpson_dydz( M,  N,  P,
                                  k,
                                  u,  v,LOOP,
                                  az,bz,LOOP);
 clrscrn();

 printf(" Let S be the part of the graph of x = %s.  \n\n", keq);
 printf(" If F(x,y,z) = %si %sj %sk, find the flux of F through S\n\n\n",
          Meq,Neq,Peq);
 printf(" Consider k(y,z) = (%s)\n\n",keq);
 printf("          n      = grad(k(y,z)) / ||grad(k(y,z))||\n\n\n");
                           
 printf(" The flux of F through S is \n\n");
 printf("     //                  \n");
 printf("    ||                   \n");
 printf("    || F.n  dS = %.3f\n",m);
 printf("    ||                   \n");
 printf("   //                    \n");
 printf("   S                 \n\n\n");
 stop();

  clrscrn();
 printf("    Formula : \n\n");
 printf("     //                  \n");
 printf("    ||                   \n");
 printf("    || F.n  dS = %.3f\n",m);
 printf("    ||                   \n");
 printf("   //                    \n");
 printf("   S                 \n\n\n");

 printf("     //\n");
 printf("    ||              (n)\n");
 printf("    || \n");
 printf("    ||     F  .  (+i-k_yj-k_zk)    dS = %.3f\n",m);
 printf("    ||            ------------    \n");
 printf("    ||          [1+k_y**2+k_z**2]**1/2\n");
 printf("   //  \n");
 printf("   S \n\n\n");
 stop();

 clrscrn();
 printf("    Formula :\n\n");
 printf("     //\n");
 printf("    || \n");
 printf("    ||     F  .  (+i-k_yj-k_zk)    dS = %.3f\n",m);
 printf("    ||            ------------   \n");
 printf("    ||           [1+k_y**2+k_z**2]**1/2\n");
 printf("    || \n");
 printf("   //  \n");
 printf("   S \n\n\n");

 printf("     //\n");
 printf("    ||    (F)       (n)                  (dS)\n");
 printf("    || \n");
 printf("    ||     F  .  (+i-k_yj-k_zk)   [1+k_y**2+k_z**2]**1/2 dA = %.3f\n",m);
 printf("    ||            -----------     \n");
 printf("    ||           [1+k_y**2+k_z**2]**1/2\n");
 printf("   //  \n    ");
 printf("   Rxy \n\n\n");
 stop();

 clrscrn();
 printf("     / b   / v(z)\n");
 printf("    |     |      \n");
 printf("    |     |     F.(+i-k_yj-k_zk)    [1+k_y**2+k_z**2]**1/2 dy dz = %.3f\n",m);
 printf("    |     |        -----------     \n");
 printf("    |     |      [1+k_y**2+k_z**2]**1/2\n");
 printf("    |     |      \n");
 printf("   /  a  /   u(z)\n\n\n");

 printf(" With.\n\n\n");
 printf(" F : (x,y,z)-> %si %sj %sk \n\n",Meq,Neq,Peq);
 printf(" k :   (y,z)-> %s    \n\n", keq);

 printf(" v :     (z)-> %s       \n", veq);
 printf(" u :     (z)-> %s     \n\n", ueq); 
 printf(" b = %+.1f\n a = %+.1f\n\n",bz,az);

 stop();

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


L'algorithme consiste à adapter la fonction qui calcule les intégrales doubles au calcul des flux.

Remarque :

 Dans cette version nous utilisons cet algorithme pour l'intégrale.

     / b   / v(y)
    |     |      
    |     |     F.(-f_xi-f_yj+k)    [f_x^2+f_y^2+1]^1/2 dx dy = 
    |     |        -----------     
    |     |     [f_x^2+f_y^2+1]^1/2
    |     |      
   /  a  /   u(y)
   
   
   Dans la prochaine version nous utiliserons la version simplifiée.
   
     / b   / v(y)
    |     |      
    |     |     F.(-f_xi-f_yj+k)    dx dy = 
    |     |      
   /  a  /   u(y)


Exemple de sortie écran :
     / b   / v(z)
    |     |      
    |     |     F.(+i-k_yj-k_zk)    [1+k_y**2+k_z**2]**1/2 dy dz = 4.000
    |     |        -----------     
    |     |      [1+k_y**2+k_z**2]**1/2
    |     |      
   /  a  /   u(z)


 With.


 F : (x,y,z)-> x+yi + zj  + xzk 

 k :   (y,z)-> 1    

 u :     (z)-> -1      
 v :     (z)-> +1    

 a = -1.0   b = +1.0 
 Press return to continue.