« Mathc initiation/Fichiers c : c41cb » : différence entre les versions

Contenu supprimé Contenu ajouté
petit correction
(Aucune différence)

Version du 29 juillet 2021 à 22:14


Sommaire

La méthode des disques, est une méthode de calcul du volume d'un solide de révolution par intégration selon un axe «parallèle» à l'axe de révolution. [wikipedia]

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

c05b.c
/* ---------------------------------- */
/* save as c05b.c                     */
/* ---------------------------------- */
#include "x_hfile.h"
#include       "fb.h"
/* ---------------------------------- */
int main(void)
{
   int    n =  2*10;
double    a =   -1.;
double    b =    1.;

 clrscrn();
 printf(" Compute the volume V of the solid of revolution          \n");
 printf(" generated by revolving R about the x-axis              \n\n");
 
 printf(" Draw the region R bounded by the graph of f,             \n");
 printf("  the graph of g, and the vertical lines x = a and x = b\n\n");
 
 printf(" Let  f and g be continous on [%.3f,%.3f].\n\n", a, b);
 printf(" f : x-> %s\n",   feq);
 printf(" g : x-> %s\n\n", geq);
 stop();

 clrscrn();
 printf(" Draw a typical vertical rectangle. \n\n");

 printf(" The thickness of washer :  dx\n\n");
 printf(" The outer radius        :  %s        \n",feq);
 printf(" The inner radius        :  %s      \n\n",geq);
 printf(" The volume              : Pi [(%s)**2 - (%s)**2] dx\n\n", feq, geq);
 
 printf(" Volume of a washer = Pi [(outer radius)**2 - (inner radius)**2] (thickness)");
 printf(" \n\n\n");
 stop();

 clrscrn();
 printf(" If we apply \n\n");
 printf("    (%.3f\n", b);
 printf(" int(      \n");
 printf("    (%.3f\n\n", a);

 printf(" to  : Pi [(%s)**2 - (%s)**2] dx\n\n", feq, geq);
 printf(" We obtain a limit of sums of volumes of washers.\n\n");

 printf("    (%.3f\n", b);
 printf(" int(     Pi[(%s)**2 - (%s)**2] dx = %.3f\n", feq,  geq, simpson(Vwasher,a,b,n));
 printf("    (%.3f\n\n\n", a);
 stop();

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


Exemple de sortie écran :

 Compute the volume V of the solid of revolution          
 generated by revolving R about the x-axis              

 Draw the region R bounded by the graph of f,             
  the graph of g, and the vertical lines x = a and x = b

 Let  f and g be continous on [-1.000,1.000].

 f : x-> -2.*x**2 + 2.
 g : x-> -x**2 + 1.

 Press return to continue.


Dessinons avec gnuplot les deux fonctions f et g :

 set zeroaxis lt 8
 set grid
 plot [-1.000:1.000] [-2.000:2.000] -2.*x**2 + 2.,\
 -x**2 + 1.
 reset

Exemple de sortie écran :

 Draw a typical vertical rectangle. 

 The thickness of washer :  dx

 The outer radius        :  -2.*x**2 + 2.        
 The inner radius        :  -x**2 + 1.      

 The volume              : Pi [(-2.*x**2 + 2.)**2 - (-x**2 + 1.)**2] dx

 Volume of a washer = Pi [(outer radius)**2 - (inner radius)**2] (thickness) 


 Press return to continue.


Dessinons un rectangle pour construire l'équation du volume:

 set zeroaxis lt 8
 set grid
 set object 3 rect from 0.5,-0.5**2 + 1. to 0.54,-2.*0.54**2 + 2.
 plot [-1.000:1.000] [-2.000:2.000] -2.*x**2 + 2.,\
 -x**2 + 1.
 reset


Exemple de sortie écran :

 If we apply 

    (1.000
 int(      
    (-1.000

 to  : Pi [(-2.*x**2 + 2.)**2 - (-x**2 + 1.)**2] dx

 We obtain a limit of sums of volumes of washers.

    (1.000
 int(     Pi[(-2.*x**2 + 2.)**2 - (-x**2 + 1.)**2] dx = 10.053
    (-1.000


 Press return to continue.


Vérifier le résultat avec Octave 5.2 :

I = quad (f, a, b) 
>> I = quad (@(x) pi*((-2.*x**2 + 2.).*(-2.*x**2 + 2.)-(-x**2 + 1.).*(-x**2 + 1.)),-1,1)
I =  10.053