/*************************************************************************************************************************************/ /* */ /* 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