Mathc initiation/a340
Installer ce fichier dans votre répertoire de travail.
x_rzrxy.h |
---|
/* --------------------------------- */
/* save as x_rzrxy.h */
/* --------------------------------- */
double intxy_drdzrdxy(
double (*P_P)(double r, double zr, double xy),
double (*P_ar)(double zr, double xy),
double (*P_br)(double zr, double xy),
int nr,
double zr,
double xy
)
{
double r = 0;
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.;}
r = ((*P_ar)(zr,xy)) + i*(((*P_br)(zr,xy))-((*P_ar)(zr,xy)))/nr;
M += m * (*P_P)( r, zr, xy)* r*r*sin(zr);
}
return( ((((*P_br)(zr,xy)) -((*P_ar)(zr,xy)))*M) / (3*nr) );
}
/* --------------------------------- */
double intzr_drdzrdxy(
double (*P_P)(double r, double zr, double xy),
double (*P_ar)(double zr, double xy),
double (*P_br)(double zr, double xy),
int nr,
double (*P_azr)(double xy),
double (*P_bzr)(double xy),
int nzr,
double xy
)
{
int i = 0;
double m = 0.;
double M = 0.;
for(i = 0; i <= nzr; i++)
{
if(i ==0 || i== nzr){m = 1.;}
else if(fmod(i,2) == 0 ){m = 2.;}
else {m = 4.;}
M += m * intxy_drdzrdxy( (*P_P),
(*P_ar),
(*P_br),
nr,
(((*P_azr)(xy))+i*(((*P_bzr)(xy))-((*P_azr)(xy)))/nzr),
xy);
}
return( ((((*P_bzr)(xy)) -((*P_azr)(xy)))*M) / (3*nzr) );
}
/* --------------------------------- */
double simpson_drdzrdxy(
double (*P_P)(double r, double zr, double xy),
double (*P_ar)(double zr, double xy),
double (*P_br)(double zr, double xy),
int nr,
double (*P_azr)(double xy),
double (*P_bzr)(double xy),
int nzr,
double axy,
double bxy,
int nxy
)
{
int i = 0;
double m = 0.;
double M = 0.;
for(i = 0; i <= nxy; i++)
{
if(i ==0 || i== nxy){m = 1.;}
else if(fmod(i,2) == 0){m = 2.;}
else {m = 4.;}
M += m * intzr_drdzrdxy((*P_P),
(*P_ar),
(*P_br),
nr,
(*P_azr),
(*P_bzr),
nzr,
(axy+i*(bxy-axy)/nxy));
}
return( ((bxy -axy)*M) / (3*nxy) );
}
/* --------------------------------- */
/* --------------------------------- */
Déclaration des fichiers h.