• Nenhum resultado encontrado

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.

Documentos relacionados