Aller au contenu

Mathc initiation/Fichiers h : c51a6

Un livre de Wikilivres.


Sommaire

Installer ce fichier dans votre répertoire de travail.

x_sdkr.h
/* ---------------------------------- */
/* save as x_sdkr.h                   */
/* ---------------------------------- */
double Sint_dkdr(

double (*P_g)(double r, double k),

double (*P_u)(double r),
double (*P_v)(double r),
   int    nk,
   
double     r
)
{
pt2d p;

   int i = 0;
double m = 0.;
double M = 0.;

 for(i = 0; i <= nk; i++)
 {
       if(i ==0 || i== nk){m = 1.;}
  else if(fmod(i,2) == 0 ){m = 2.;}
  else                    {m = 4.;}

 p.y =    ((*P_u)(r))+ 
       i*(((*P_v)(r))-((*P_u)(r)))/nk;
       
 p.x = r;

 M += m * (sqrt(pow(fxy_x((*P_g),H,p),2) +
                pow(fxy_y((*P_g),H,p),2) +
                                      1) * 
                                    p.x);
 }

 return( ((((*P_v)(r))-((*P_u)(r)))*M) 
                      / (3*nk) );
}
/* ---------------------------------- */
double S_dkdr(

double (*P_g)(double r, double k),

double (*P_u)(double r),
double (*P_v)(double r),
   int    nk,
   
double    ar,
double    br,
   int    nr
)
{
   int i = 0;
double m = 0.;
double M = 0.;

 for(i = 0; i <= nr; i++)
 {
       if(i ==0 || i== nr){m = 1.;}
  else if(fmod(i,2) == 0 ){m = 2.;}
  else                    {m = 4.;}

 M += m * Sint_dkdr((*P_g),
                    (*P_u),(*P_v),nk,
                    (ar + i*(br-ar)/nr));
 }

  return( ((br -ar)*M) / (3*nr) );
}
/* ---------------------------------- */
/* ---------------------------------- */