123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373 |
- ***************************************************************
- * *
- * DESIR *
- * ===== *
- * *
- * SOLUTIONS FORMELLES D'EQUATIONS DIFFERENTIELLES *
- * *
- * LINEAIRES ET HOMOGENES *
- * *
- * AU VOISINAGE DE POINTS SINGULIERS REGULIERS ET IRREGULIERS *
- * *
- ***************************************************************
- Differential linear homogenous Equation Solutions in the
- neighbourhood of Irregular and Regular singular points
- Version 3.1 - Septembre 89
- Groupe de Calcul Formel de Grenoble
- laboratoire TIM3
- (C. Dicrescenzo, F. Richard-Jung, E. Tournier)
- E-mail: dicresc@afp.imag.fr
- 1) Introduction
- 2) Form of solutions
- 3) Interactive use
- 4) Direct use
- 5) Useful functions
- 6) Limitations
- 7) Implementation
- 1) INTRODUCTION
- ************
- This software enables the basis of formal solutions to be computed for an
- ordinary homogeneous differential equation with polynomial coefficients
- over Q of any order, in the neighbourhood of zero ( regular or irregular
- singular point, or ordinary point ).
- Tools have been added to deal with equations with a polynomial right-hand
- side, parameters and a singular point not to be found at zero.
- This software can be used in two ways : * direct ( DELIRE procedure )
- * interactive ( DESIR procedure)
- The basic procedure is the DELIRE procedure which enables the solutions of
- a linear homogeneous differential equation to be computed in the neigh-
- bourhood of zero.
- The DESIR procedure is a procedure without argument whereby DELIRE can be
- called without preliminary treatment to the data, that is to say, in an
- interactive autonomous way. This procedure also proposes some transfor-
- mations on the initial equation. This allows one to start confortably
- with an equation which has a non zero singular point, a polynomial
- right-hand side and parameters.
- This document is a succint user manual. For more details on the underlying
- mathematics and the algorithms used, the reader can refer to :
- E. Tournier : Solutions formelles d'equations differentielles - Le
- logiciel de calcul formel DESIR.
- These d'Etat de l'Universite Joseph Fourier (Grenoble - avril 87).
- He will find more precision on use of parameters in :
- F. Richard-Jung : Representation graphique de solutions d'equations
- differentielles dans le champ complexe.
- These de l'Universite Louis Pasteur (Strasbourg - septembre 88).
- 2) FORMS OF SOLUTIONS
- ******************
- We have tried to represent solutions in the simplest form possible. For
- that, we have had to choose different forms according to the complexity
- of the equation (parameters) and the later use we shall have of these
- solutions.
- "general solution" = {......, { split_sol , cond },....}
- ------------------
- cond = list of conditions or empty list (if there is no condition)
- that parameters have to verify such that split_sol is in the
- basis of solutions. In fact, if there are parameters, basis of
- solutions can have different expressions according to the values
- of parameters. ( Note : if cond={}, the list "general solution"
- has one element only.
- split_sol = { q , ram , polysol , r }
- ( " split solution " enables precise information on the solution
- to be obtained immediately )
- The variable in the differential operator being x, solutions are expressed in
- respect to a new variable xt, which is a fractional power of x, in the
- following way :
- q : polynomial in 1/xt with complex coefficients
- ram : xt = x**ram (1/ram is an integer)
- polysol : polynomial in log(xt) with formal series in xt coefficients
- r : root of a complex coefficient polynomial ("indicial
- equation").
- qx r*ram
- "standard solution" = e x polysolx
- -----------------
- qx and polysolx are q and polysol expressions in which xt has been
- replaced by x**ram
- N.B. : the form of these solutions is simplified according to the nature of
- the point zero.
- - si 0 is a regular singular point : the series appearing in polysol are
- convergent, ram = 1 and q = 0.
- - if 0 is a regular point, we also have : polysol is constant in log(xt)
- (no logarithmic terms).
- 3) INTERACTIVE USE
- ***************
- To call the procedure : desir();
- solution:=desir();
- The DESIR procedure computes formal solutions of a linear homogeneous
- differential equation in an interactive way.
- In this equation the variable must be x.
- ---------
- The procedure requires the order and the coefficients of the equation, the
- names of parameters if there are any, then if the user wants to transform
- this equation and how ( for example to bring back a singular point to zero
- - see procedures changehom, changevar, changefonc - ).
- This procedure DISPLAYS the solutions and RETURNS a list of general term
- { lcoeff, {....,{ general_solution },....}}. The number of elements in
- this list is linked to the number of transformations requested :
- * lcoeff : list of coefficients of the differential equation
- * general_solution : solution written in the general form
- 4) DIRECT USE
- **********
- procedure delire(x,k,grille,lcoeff,param);
- ==========================================
- This procedure computes formal solutions of a linear homogeneous differen-
- tial equation with polynomial coefficients over Q and of any order, in the
- neighborhood of zero, regular or irregular singular point. In fact it
- initializes the call of the NEWTON procedure that is a recursive procedure
- (algorithm of NEWTON-RAMIS-MALGRANGE)
- x : variable
- k : "number of desired terms".
- For each formal series in xt appearing in polysol,
- a_0+a_1 xt+a_2 xt**2+...+a_n xt**n+..., we compute the k+1 first
- coefficients a_0, a_1,...a_k.
- grille : the coefficients of the differential operator are polynomial in
- x**grille (in general grille=1)
- lcoeff : list of coefficients of the differential operator (in increasing
- order of differentiation)
- param : list of parameters
- This procedure RETURNS the list of general solutions.
- ----
- 5) USEFUL FUNCTIONS
- *****************
- -1) Reading of equation coefficients
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- procedure lectabcoef( ) ;
- ========================;
- This procedure is called by DESIR to read the coefficients of an equation,
- in increasing order of differentiation, but can be used independently.
- -----------------------------------
- reading of n : order of the equation.
- reading of parameters (only if a variable other than x appears in the
- coefficients)
- this procedure returns the list { lcoeff , param } made up of the list of
- coefficients and the list of parameters (which can be empty).
- -2) verification of results
- ~~~~~~~~~~~~~~~~~~~~~~~
- procedure solvalide(solutions,solk,k);
- =====================================;
- This procedure enables the validity of the solution number solk in the list
- "solutions" to be verify.
- solutions = {lcoeff,{....,{general_solution},....}} is any element of the
- list returned by DESIR or is {lcoeff,sol} where sol is the list returned by
- DELIRE.
- qx r*ram
- If we carry over the solution e x polysolx in the equation, the
- qx r*ram
- result has the form e x reste, where reste is a polynomial in
- log(xt), with polynomial coefficients in xt. This procedure computes the
- minimal valuation V of reste as polynomial in xt, using k "number of
- desired terms" asked for at the call of DESIR or DELIRE, and DISPLAYS the
- ram*(r+v)
- "theoretical" size order of the regular part of the result : x .
- On the other hand, this procedure carries over the solution in the equation
- and DISPLAYS the significative term of the result. This is of the form :
- qx a
- e x polynomial(log(xt)), with a>=ram*(r+v).
- Finally this procedure RETURNS the complete result of the carry over of the
- solution in the equation.
- This procedure cannot be used if the solution number solk is linked to a
- condition.
- -3) writing of different forms of results
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- procedure standsol(solutions);
- ==============================
- This procedure enables the simplified form of each solution to be obtained
- from the list "solutions", {lcoeff,{...,{general_solution},....}} which is
- one of the elements of the list returned by DESIR, or {lcoeff,sol} where
- sol is the list returned by DELIRE.
- This procedure RETURNS a list of 3 elements : { lcoeff, solstand, solcond }
- * lcoef = list of differential equation coefficients
- * solstand = list of solutions written in standard form
- * solcond = list of conditional solutions that have not been written in
- standard form. This solutions remain in general form.
- This procedure has no meaning for "conditional" solutions. In case, a value
- has to be given to the parameters, that can be done either by calling the
- procedure SORPARAM that displays and returns these solutions in the
- standard form, either by calling the procedure SOLPARAM which returns
- these solutions in general form.
- procedure sorsol(sol);
- ======================
- This procedure is called by DESIR to write the solution sol, given in
- general form, in standard form with enumeration of different conditions (if
- there are any).
- It can be used independently.
- -4) Writing of solutions after the choice of parameters
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- procedure sorparam(solutions,param);
- ====================================
- This is an interactive procedure which displays the solutions evaluated :
- the value of parameters is requested.
- * solutions : {lcoeff,{....,{general_solution},....}}
- * param : list of parameters.
- It returns the list formed of 2 elements :
- * list of evaluated coefficients of the equation
- * list of standard solutions evaluated for the value of parameters.
- procedure solparam(solutions,param,valparam);
- =============================================
- This procedure evaluates the general solutions for the value of parameters
- given by valparam and returns these solutions in general form.
- * solutions : {lcoeff,{....,{general_solution},....}}
- * param : list of parameters
- * valparam : list of parameters values
- It returns the list formed of 2 elements :
- * list of evaluated coefficients of the equation
- * list of solutions in general form, evaluated for the value of
- parameters.
- -5) Transformations
- ~~~~~~~~~~~~~~~
- procedure changehom(lcoeff,x,secmember,id);
- ===========================================
- Differentiation of an equation with right-hand side.
- * lcoeff : list of coefficients of the equation
- * x : variable
- * secmember : right-hand side
- * id : order of the differentiation.
- It returns the list of coefficients of the differentiated equation.
- It enables an equation with polynomial right-hand side to be transformed
- into a homogeneous equation by differentiating id times,
- id = degre(secmember) + 1.
- procedure changevar(lcoeff,x,v,fct);
- ====================================
- Changing of variable in the homogeneous equation defined by the list,lcoeff
- of its coefficients : the old variable x and the new variable v are linked
- by the relation x = fct(v).
- It returns the list of coefficients in respect to the variable v of the new
- equation.
- examples of use :
- ---------------
- - translation enabling a rational singularity to be brought back to zero.
- - x = 1/v brings the infinity to 0.
- procedure changefonc(lcoeff,x,q,fct);
- =====================================
- Changing of unknown function in the homogeneous equation defined by the
- list lcoeff of its coefficients :
- * lcoeff : list of coefficients of the initial equation
- * x : variable
- * q : new unknown function
- * fct : y being the unknown function y = fct(q)
- It returns the list of coefficients of the new equation.
- example of use :
- --------------
- this procedure enables the computation,in the neighbourhood of an irregular
- singularity, of the "reduced" equation associated to one of the slopes (the
- Newton polygon having a null slope of no null length). This equation gives
- much informations on the associated divergent series.
- -6) Optional writing of intermediary results
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- switch trdesir : when it is ON, at each step of the Newton algorithm, a
- =======
- description of the Newton polygon is displayed (it is possible to follow
- the break of slopes), and at each call of the FROBENIUS procedure ( case of
- a null slope ) the corresponding indicial equation is displayed.
- By default, this switch is OFF.
- 6) LIMITATIONS
- ***********
- -1) This DESIR version is limited to differential equations leading
- to indicial equations of degree <= 3. To pass beyond this limit, a further
- version written in the D5 environment of the computation with algebraic
- numbers has to be used.
- -2) The computation of a basis of solutions for an equation depending on
- parameters is assured only when the indicial equations are of degree <= 2.
- 7) IMPLEMENTATION
- **************
- This software uses the 3.3 version of REDUCE.
|