5. Implantation
5.1.6. PowerSeries
import from PowerSeries(S)
Description
PowerSeries(S) est l'anneau des series formelles entieres Pn0anxn denies par un operateur aux dierences et par les premiers termesa0;:::;am,1 2S.
Fonctions exportees
91
SI ==> SingleInteger
Z ==> Integer
SUP ==> SparseUnivariatePolynomial
POLDELTO ==> LinearOrdinaryPolynomialDierenceOperator
createPowerSeries : (List Ratio(S), POLDELTO(S)) ! %
createPowerSeries(cond;) cree une serie formelle a partir de la liste cond contenant les premiers termes et de l'operateur aux dierences , a condition que le nombre de condi- tions initiales soit superieur au degre de l'operateur.
dispose! : % ! ()
dispose!(^f) indique que la serie formelle ne sera plus utilisee.
coerce : %! Record(ic : List Ratio(S), delt : POLDELTO(S))
coerce(^f) donne la representation interne de la serie ^f. Le champic permet d'acceder a la liste des conditions initiales,delt a l'operateur aux dierences.
initcond : % !List Ratio(S)
initcond( ^f) retourne la liste des premiers termes denissant la serie.
delto : % ! POLDELTO(S)
delto( ^f) retourne l'operateur aux dierences.
coherent? : % ! Boolean
coherent?( ^f) teste si les premiers termes sont solutions de l'equation aux dierences.
coecients : (%,SI) !Partial List(Ratio(S))
coecients( ^f;n) calcule, si c'est possible, lesnbpremiers coecients de la serie et retourne la liste [a0;:::;anb,1].
coecients : (%,Z)! Partial List(Ratio(S))
coecients( ^f;n) calcule, si c'est possible, lesnbpremiers coecients de la serie et retourne la liste [a0;:::;anb,1].
coecient : (%,SI) ! Partial Ratio(S)
coecient( ^f;n) retourne le coecientanb de la serie.
coecient : (%,Z)! Partial Ratio(S)
coecient( ^f;n) retourne le coecientanb de la serie.
nextCoe : (List Ratio(S),POLDELTO(S)) ! Partial Ratio(S)
nextCoe(l ;) calcule a partir de l'operateur aux dierences et des termes de la liste l le coecient suivant.
<< : (TextWriter,%) !TextWriter 92
import from Borel(S)
Description
Borel(S) comprend les fonctions utilisees pour le calcul des transformees de Borel.
Fonctions exportees
SI ==> SingleInteger
Z ==> Integer
POLDELTO ==> LinearOrdinaryPolynomialDierenceOperator
kappasummability : List Ratio SI ! List Ratio SI
Si sum= [k1;:::;kr], kappasummability(sum) retourne la liste [1;:::;r] ou 1 = k1 et 1=l = 1=kl,1=kl,1 pour l = 2;:::;r.
split : (POLDELTO(S), SI) ! POLDELTO(S)
Si=P0(j)+P1(j)++Pr(j)r,split(;) retourne un operateur aux dierences de la formeQ0(j) +Q1(j)++Qr(j)r multiple de; si P0(j)aj +P1(j)aj+1++
P
r(j)aj+r = 0, alors Q0(j)aj +Q1(j)aj+++Qr(j)aj+r = 0 pour j assez grand.
split : (PowerSeries(S), SI) ! List PowerSeries(S)
split( ^f;) retourne la liste dessous-series de ^f. Ces sous-series n'ont pas necessairement un coecient constant nul. La serie ^f(x) est egale a
,1
X
q =0 x
qf^q(x):
borel : (PowerSeries(S), SI)! PowerSeries(S)
borel( ^f;) retourne la transformee de Borel formelle d'ordre 1= de ^f(x). Il ne s'agit pas exactement de la transformee de Borel, mais de l'application qui a ^f(x) =Pj0ajxj associe la serie formelle
borel( ^f;) = X
j0 a
,((jj+1+ 1))xj:
5.1.8. Dierential
import from Dierential(S)
Description
Dierential(S) comprend les fonctions qui permettent de passer d'une serie formelle denie par un operateur aux dierences a une equation dierentielle dont est solution cette serie.
Fonctions exportees
93
SUP ==> SparseUnivariatePolynomial
POLODO ==> LinearOrdinaryPolynomialDierentialOperator LOEDO ==> EulerLinearOrdinaryPolynomialDierentialOperator
diequation : PowerSeries(S)
! Record(eqdi : POLODO(S),sec : SUP(S,"x"))
diequation^ ( ^f) determine une equation dierentielle dont est solution la serie formelle
f; diequation( ^f):eqdi est l'operateur dierentiel, le second membre etant donne par
diequation( ^f):sec.
eulerequation : Powerseries(S)
! Record(eqdi : LOEDO(S),sec : SUP(S,"x"))
eulerequation( ^f) determine une equation dierentielledont est solution la serie formelle ^f;
eulerequation( ^f):eqdi est l'operateur dierentiel (la derivation est l'operateur d'Euler),
eulerequation( ^f):secest le second membre.
5.1.9. LagLeg
import from LagLeg
Description
LagLeg fournit les abscisses et les poids de Gauss-Laguerre et de Gauss-Legendre.
Fonctions exportees
F ==>DoubleFloat
laguerre : GeoLink ! Record(absci : List F, weight : List F)
laguerre(gl) retourne les abscisses (positives) et les poids de Laguerre utilises pour la methode de Gauss-Laguerre anlagpoints (nlagest le nombre de points associes au chemin elementairegl). Nous nous limitons pour l'instant a 32 points.
legendre : GeoLink ! Record(absci : List F, weight : List F)
legendre(gl) retourne les abscisses (comprises entre 0 et 1) et les poids de Legendre utilises pour la methode de Gauss-Legendre a nleg points (nleg est le nombre de points associes au chemin elementairegl). Nous nous limitons pour l'instant a 32 points.
5.1.10. Laplace
import from Laplace(S)
Description
Laplace(S) comprend les fonctions utiles au calcul des transformees de Laplace.
94
SI ==> SingleInteger Z ==> Integer
CF ==> Complex DoubleFloat
readpath : () ! Path(S)
readpath() est le chemin d'integration de l'integrale de Laplace. Il est constitue de mail- lons. Un maillon est un cheminelementaire(segment, arc de cercle, ...) auquel est associee une methode de calcul. Si la methode de calcul associee a un maillon est de type Serie, la fonction a integrer sera calculee iterativement par l'algorithme de Balser. Si elle est de type Runge-Kutta, le prolongement sera fait par la methode de Runge-Kutta. Nous nous limitons pour l'instant a ces deux seules methodes de calcul. Si nous ne sommes pas au dernier niveau, la methode de calcul associee au premier maillon doit ^etre de type Serie (l'origine etant generalement une singularite irreguliere). Le prolongement sur le dernier maillon du chemin sera eectue en les points de Gauss-Laguerre. Sur tous les autres maillons, on utilise les points de Gauss-Legendre.
derivee : (List Record(listBorel :Record(vi : List CF, phiqvi : List CF, wi : List CF), initerms :List Ratio(S)), SI,SI,CF,Z)! List CF
derivee(borellist;;;zr;n) calculef(zr) et les derivees jusqu'a l'ordrende la serie;borel- listcontient les prolongements des transformees de Borel d'ordre 1= des sous-series.
5.1.11. Runge Kutta
import from Runge Kutta(S)
Description
Runge Kutta(S) comprend les fonctions utilisees pour eectuer le prolongement analytique par la methode de Runge-Kutta.
Fonctions exportees
SI ==> SingleInteger F ==> DoubleFloat
CF ==> Complex DoubleFloat SUP ==> SparseUnivariatePolynomial
POLODO ==> LinearOrdinaryPolynomialDierentialOperator LOEDO ==> EulerLinearOrdinaryPolynomialDierentialOperator
generateDerivs : (POLODO(S),SUP(S,"x"), F ! CF, F !CF, CF) ! (List CF, F) ! List CF
generateDerivs(eq;sec;;0;t0) transforme l'equation dierentielleen un systeme dieren- tiel d'ordre 1 le long de la courbe x = (t) et retourne la valeur de ce vecteur derive en
t
0.
95
eulerDerivs : (LOEDO(S),SUP(S,"x"), F ! CF, F ! CF, CF) ! (List CF, F) ! List CF
eulerDerivs(eq;sec;;0;t0) transforme l'equation dierentielle en un systeme dierentiel d'ordre 1 le long de la courbex =(t) et retourne la valeur de ce vecteur derive ent0.
rk4f : (List CF, F, F, SI, (List CF, F)! List CF) ! List CF
rk4f(cond;t0;t1;nstep;derivs) retourne la valeur du vecteur ent1 connaissant sa valeurcond ent0 par une methode de Runge- Kutta a nstepetapes (nous nous limitons pour l'instant anstep= 10.) La fonctionderivs est la fonction derivee de ce vecteur.
5.1.12. Balser
import from Balser(S)
Description
Balser(S) comprend les fonctions utilisees pour le calcul des sommes de series formelles en uti- lisant l'algorithme de Balser.
Fonctions exportees
SI ==> SingleInteger Z ==> Integer
CF ==> Complex DoubleFloat
POLODO ==> LinearOrdinaryPolynomialDierentialOperator
balser : (PowerSeries(S), List Ratio SI, CF) ! CF
balser( ^f;[k1;:::;kr];zr) calcule la somme de la serie ^f(x) enzr, la serie etant (k1;:::;kr)- sommable.
balser : (PowerSeries(S), List Ratio SI, CF, Z) !List CF
balser( ^f;[k1;:::;kr];zr;n) calcule la sommef de la serie ^f(x) enzr, ainsi que toutes les derivees jusqu'a l'ordren(la serie est supposee (k1;:::;kr)-sommable), et retourne la liste [f(zr);f0(zr);:::;f(n)(zr)].
iLbalser : (PowerSeries(S), List Ratio SI, CF) ! CF
iLbalser( ^f;[1;:::;r];zr) calcule la somme de la serie ^f enzr; la serie est (1;:::;r),iL sommable.
iLbalser : (PowerSeries(S), List Ratio SI, CF, Z)! List CF
iLbalser( ^f;[1;:::;r];zr;n) calcule la sommefenzr, ainsi que toutes les derivees jusqu'a l'ordre n et retourne la liste [f(zr);f0(zr);:::;f(n)(zr)]. La serie ^f est (1;:::;r),iL sommable .
balserpath : (PowerSeries(S), List Ratio SI, Path(S)) ! Record(abscisse : List CF, sum : List CF)
Si ^f(x) est une serie (k1;:::;kr)-sommable,balserpath( ^f;[k1;:::;kr];) calcule la somme de ^f le long du chemin, aux points (equidistants sur chaque cheminelementaire) donnes
96
par le champ abscisse.
Le i-ieme terme de balserpath( ^f;[k1;:::;kr];):sum est la valeur de la somme au i-ieme point de la liste balserpath( ^f;[k1;:::;kr];):abscisse.
analytic : (PowerSeries(S), Path(S)) ! Record(abscisse : List CF, sum : List CF) analytic( ^f;) calcule le prolongement analytique de la serie a partir de l'origine, le long du chemin. La serie est supposee convergente a l'origine.