/*************************************************************************************************************************************/
/* */
/* D E F I N I T I O N S D E S F O N C T I O N S N E C E S S A I R E S */
/* A L ' E T U D E D E L ' A T O M E D ' H Y D R O G E N E : */
/* */
/* */
/* Author of '$xrq/Laguerre.21$I' : */
/* */
/* Jean-Francois COLONNA (LACTAMME, 1993??????????). */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* P O L Y N O M E S D E L A G U E R R E : */
/* */
/* */
/* definition du polynome de Laguerre d'ordre (p,k) : */
/* */
/* k [ p+k ] */
/* k k d [ x d [ -x p+k]] */
/* L (x) = (-1) .-----[e .-------[e .x ]] */
/* p k [ p+k ] */
/* dx [ dx ] */
/* */
/* avec : */
/* */
/* k = 0,1,2,...,+infini */
/* p = 0,1,2,...,+infini */
/* */
/* Ceci est l'une des trois formules de Rodrigue. */
/* */
/* */
/* definition du polynome de Laguerre d'ordre (p,k) : */
/* */
/* s=p */
/* _____ */
/* \ 2 */
/* k \ s [(p+k)!] s */
/* L (x) = / (-1) .------------------.x */
/* p /____ (p-s)!.(k+s)!.s! */
/* */
/* s=0 */
/* */
/*************************************************************************************************************************************/
/*===================================================================================================================================*/
/*************************************************************************************************************************************/
/* */
/* C A L C U L D ' U N P O L Y N O M E D E L A G U E R R E D E T Y P E P(p,k,x) : */
/* */
/*************************************************************************************************************************************/
BFonctionF
DEFV(Local,DEFV(FonctionF,polynome_de_Laguerre_p_k(ordre_p,ordre_k,variable)))
DEFV(Argument,DEFV(Int,ordre_p));
/* Ordre 'p' du polynome de Laguerre. */
DEFV(Argument,DEFV(Int,ordre_k));
/* Ordre 'k' du polynome de Laguerre. */
DEFV(Argument,DEFV(Float,variable));
/* Variable pour laquelle evaluer le polynome de Laguerre. */
/*-----------------------------------------------------------------------------------------------------------------------------------*/
Bblock
DEFV(Float,INIT(valeur_du_polynome,FZERO));
/* Valeur courante du polynome lors du processus iteratif... */
INIT_ERROR;
/*..............................................................................................................................*/
Test(IFOU(IZLT(ordre_p),IZLT(ordre_k)))
Bblock
PRINT_ERREUR("l'ordre 'p' et/ou l'ordre 'k' sont negatifs, une valeur nulle est renvoyee");
Eblock
ATes
Bblock
DEFV(Int,INIT(indice_du_polynome,UNDEF));
/* Indice 's' de calcul du polynome... */
DoIn(indice_du_polynome,ZERO,ordre_p,I)
Bblock
INCR(valeur_du_polynome
,MUL3(MONX(NEGA(FU),indice_du_polynome)
,DIVI(EXP2(FACT(ADD2(ordre_p,ordre_k)))
,MUL3(FACT(SOUS(ordre_p,indice_du_polynome))
,FACT(ADD2(ordre_k,indice_du_polynome))
,FACT(indice_du_polynome)
)
)
,MONX(variable,indice_du_polynome)
)
);
/* Calcul (non optimise...) et cumul des differents monomes du polynome de Laguerre : */
/* */
/* s=p */
/* _____ */
/* \ 2 */
/* k \ s [(p+k)!] s */
/* L (x) = / (-1) .------------------.x */
/* p /____ (p-s)!.(k+s)!.s! */
/* */
/* s=0 */
/* */
Eblock
EDoI
Eblock
ETes
RETU(valeur_du_polynome);
Eblock
EFonctionF