Mathc initiation/003h
Apparence
Installer ce fichier dans votre répertoire de travail.
x_sphbra.h |
|---|
/* --------------------------------- */
/* save as x_sphbra.h */
/* --------------------------------- */
double spheric_x_dbdrda(
double (*P_f)(double a, double b, double r),
double (*Pb0)(double a, double r),
double (*Pb1)(double a, double r),
int nb,
double r,
double a
)
{
double b = 0;
int i = 0;
double m = 0.;
double M = 0.;
for(i = 0; i <= nb; i++)
{
if(i ==0 || i== nb){m = 1.;}
else if(fmod(i,2) == 0){m = 2.;}
else {m = 4.;}
b = ((*Pb0)(a,r)) + i*(((*Pb1)(a,r))-((*Pb0)(a,r)))/nb;
M += m * (*P_f)(a,b,r) * r*r * sin(b);
}
return( ((((*Pb1)(a,r)) -((*Pb0)(a,r)))*M) / (3*nb) );
}
/* --------------------------------- */
double spheric_b_dbdrda(
double (*P_f)(double a, double b, double r),
double (*Pb0)(double a, double r),
double (*Pb1)(double a, double r),
int nb,
double (*Pr0)(double a),
double (*Pr1)(double a),
int nr,
double a
)
{
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 * spheric_x_dbdrda( (*P_f),
(*Pb0),
(*Pb1),
nb,
(((*Pr0)(a))+i*(((*Pr1)(a))-((*Pr0)(a)))/nr),
a);
}
return( ((((*Pr1)(a)) -((*Pr0)(a)))*M) / (3*nr) );
}
/* --------------------------------- */
double spheric_dbdrda(
double (*P_f)(double a, double b, double r),
double (*Pb0)(double a, double r),
double (*Pb1)(double a, double r),
int nb,
double (*Pr0)(double a),
double (*Pr1)(double a),
int nr,
double a0,
double a1,
int na
)
{
int i = 0;
double m = 0.;
double M = 0.;
for(i = 0; i <= na; i++)
{
if(i ==0 || i== na){m = 1.;}
else if(fmod(i,2) == 0){m = 2.;}
else {m = 4.;}
M += m * spheric_b_dbdrda((*P_f),
(*Pb0),
(*Pb1),
nb,
(*Pr0),
(*Pr1),
nr,
(a0+i*(a1-a0)/na));
}
return( ((a1 -a0)*M) / (3*na) );
}
/* --------------------------------- */
/* --------------------------------- */