desir.doc 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373
  1. ***************************************************************
  2. * *
  3. * DESIR *
  4. * ===== *
  5. * *
  6. * SOLUTIONS FORMELLES D'EQUATIONS DIFFERENTIELLES *
  7. * *
  8. * LINEAIRES ET HOMOGENES *
  9. * *
  10. * AU VOISINAGE DE POINTS SINGULIERS REGULIERS ET IRREGULIERS *
  11. * *
  12. ***************************************************************
  13. Differential linear homogenous Equation Solutions in the
  14. neighbourhood of Irregular and Regular singular points
  15. Version 3.1 - Septembre 89
  16. Groupe de Calcul Formel de Grenoble
  17. laboratoire TIM3
  18. (C. Dicrescenzo, F. Richard-Jung, E. Tournier)
  19. E-mail: dicresc@afp.imag.fr
  20. 1) Introduction
  21. 2) Form of solutions
  22. 3) Interactive use
  23. 4) Direct use
  24. 5) Useful functions
  25. 6) Limitations
  26. 7) Implementation
  27. 1) INTRODUCTION
  28. ************
  29. This software enables the basis of formal solutions to be computed for an
  30. ordinary homogeneous differential equation with polynomial coefficients
  31. over Q of any order, in the neighbourhood of zero ( regular or irregular
  32. singular point, or ordinary point ).
  33. Tools have been added to deal with equations with a polynomial right-hand
  34. side, parameters and a singular point not to be found at zero.
  35. This software can be used in two ways : * direct ( DELIRE procedure )
  36. * interactive ( DESIR procedure)
  37. The basic procedure is the DELIRE procedure which enables the solutions of
  38. a linear homogeneous differential equation to be computed in the neigh-
  39. bourhood of zero.
  40. The DESIR procedure is a procedure without argument whereby DELIRE can be
  41. called without preliminary treatment to the data, that is to say, in an
  42. interactive autonomous way. This procedure also proposes some transfor-
  43. mations on the initial equation. This allows one to start confortably
  44. with an equation which has a non zero singular point, a polynomial
  45. right-hand side and parameters.
  46. This document is a succint user manual. For more details on the underlying
  47. mathematics and the algorithms used, the reader can refer to :
  48. E. Tournier : Solutions formelles d'equations differentielles - Le
  49. logiciel de calcul formel DESIR.
  50. These d'Etat de l'Universite Joseph Fourier (Grenoble - avril 87).
  51. He will find more precision on use of parameters in :
  52. F. Richard-Jung : Representation graphique de solutions d'equations
  53. differentielles dans le champ complexe.
  54. These de l'Universite Louis Pasteur (Strasbourg - septembre 88).
  55. 2) FORMS OF SOLUTIONS
  56. ******************
  57. We have tried to represent solutions in the simplest form possible. For
  58. that, we have had to choose different forms according to the complexity
  59. of the equation (parameters) and the later use we shall have of these
  60. solutions.
  61. "general solution" = {......, { split_sol , cond },....}
  62. ------------------
  63. cond = list of conditions or empty list (if there is no condition)
  64. that parameters have to verify such that split_sol is in the
  65. basis of solutions. In fact, if there are parameters, basis of
  66. solutions can have different expressions according to the values
  67. of parameters. ( Note : if cond={}, the list "general solution"
  68. has one element only.
  69. split_sol = { q , ram , polysol , r }
  70. ( " split solution " enables precise information on the solution
  71. to be obtained immediately )
  72. The variable in the differential operator being x, solutions are expressed in
  73. respect to a new variable xt, which is a fractional power of x, in the
  74. following way :
  75. q : polynomial in 1/xt with complex coefficients
  76. ram : xt = x**ram (1/ram is an integer)
  77. polysol : polynomial in log(xt) with formal series in xt coefficients
  78. r : root of a complex coefficient polynomial ("indicial
  79. equation").
  80. qx r*ram
  81. "standard solution" = e x polysolx
  82. -----------------
  83. qx and polysolx are q and polysol expressions in which xt has been
  84. replaced by x**ram
  85. N.B. : the form of these solutions is simplified according to the nature of
  86. the point zero.
  87. - si 0 is a regular singular point : the series appearing in polysol are
  88. convergent, ram = 1 and q = 0.
  89. - if 0 is a regular point, we also have : polysol is constant in log(xt)
  90. (no logarithmic terms).
  91. 3) INTERACTIVE USE
  92. ***************
  93. To call the procedure : desir();
  94. solution:=desir();
  95. The DESIR procedure computes formal solutions of a linear homogeneous
  96. differential equation in an interactive way.
  97. In this equation the variable must be x.
  98. ---------
  99. The procedure requires the order and the coefficients of the equation, the
  100. names of parameters if there are any, then if the user wants to transform
  101. this equation and how ( for example to bring back a singular point to zero
  102. - see procedures changehom, changevar, changefonc - ).
  103. This procedure DISPLAYS the solutions and RETURNS a list of general term
  104. { lcoeff, {....,{ general_solution },....}}. The number of elements in
  105. this list is linked to the number of transformations requested :
  106. * lcoeff : list of coefficients of the differential equation
  107. * general_solution : solution written in the general form
  108. 4) DIRECT USE
  109. **********
  110. procedure delire(x,k,grille,lcoeff,param);
  111. ==========================================
  112. This procedure computes formal solutions of a linear homogeneous differen-
  113. tial equation with polynomial coefficients over Q and of any order, in the
  114. neighborhood of zero, regular or irregular singular point. In fact it
  115. initializes the call of the NEWTON procedure that is a recursive procedure
  116. (algorithm of NEWTON-RAMIS-MALGRANGE)
  117. x : variable
  118. k : "number of desired terms".
  119. For each formal series in xt appearing in polysol,
  120. a_0+a_1 xt+a_2 xt**2+...+a_n xt**n+..., we compute the k+1 first
  121. coefficients a_0, a_1,...a_k.
  122. grille : the coefficients of the differential operator are polynomial in
  123. x**grille (in general grille=1)
  124. lcoeff : list of coefficients of the differential operator (in increasing
  125. order of differentiation)
  126. param : list of parameters
  127. This procedure RETURNS the list of general solutions.
  128. ----
  129. 5) USEFUL FUNCTIONS
  130. *****************
  131. -1) Reading of equation coefficients
  132. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  133. procedure lectabcoef( ) ;
  134. ========================;
  135. This procedure is called by DESIR to read the coefficients of an equation,
  136. in increasing order of differentiation, but can be used independently.
  137. -----------------------------------
  138. reading of n : order of the equation.
  139. reading of parameters (only if a variable other than x appears in the
  140. coefficients)
  141. this procedure returns the list { lcoeff , param } made up of the list of
  142. coefficients and the list of parameters (which can be empty).
  143. -2) verification of results
  144. ~~~~~~~~~~~~~~~~~~~~~~~
  145. procedure solvalide(solutions,solk,k);
  146. =====================================;
  147. This procedure enables the validity of the solution number solk in the list
  148. "solutions" to be verify.
  149. solutions = {lcoeff,{....,{general_solution},....}} is any element of the
  150. list returned by DESIR or is {lcoeff,sol} where sol is the list returned by
  151. DELIRE.
  152. qx r*ram
  153. If we carry over the solution e x polysolx in the equation, the
  154. qx r*ram
  155. result has the form e x reste, where reste is a polynomial in
  156. log(xt), with polynomial coefficients in xt. This procedure computes the
  157. minimal valuation V of reste as polynomial in xt, using k "number of
  158. desired terms" asked for at the call of DESIR or DELIRE, and DISPLAYS the
  159. ram*(r+v)
  160. "theoretical" size order of the regular part of the result : x .
  161. On the other hand, this procedure carries over the solution in the equation
  162. and DISPLAYS the significative term of the result. This is of the form :
  163. qx a
  164. e x polynomial(log(xt)), with a>=ram*(r+v).
  165. Finally this procedure RETURNS the complete result of the carry over of the
  166. solution in the equation.
  167. This procedure cannot be used if the solution number solk is linked to a
  168. condition.
  169. -3) writing of different forms of results
  170. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  171. procedure standsol(solutions);
  172. ==============================
  173. This procedure enables the simplified form of each solution to be obtained
  174. from the list "solutions", {lcoeff,{...,{general_solution},....}} which is
  175. one of the elements of the list returned by DESIR, or {lcoeff,sol} where
  176. sol is the list returned by DELIRE.
  177. This procedure RETURNS a list of 3 elements : { lcoeff, solstand, solcond }
  178. * lcoef = list of differential equation coefficients
  179. * solstand = list of solutions written in standard form
  180. * solcond = list of conditional solutions that have not been written in
  181. standard form. This solutions remain in general form.
  182. This procedure has no meaning for "conditional" solutions. In case, a value
  183. has to be given to the parameters, that can be done either by calling the
  184. procedure SORPARAM that displays and returns these solutions in the
  185. standard form, either by calling the procedure SOLPARAM which returns
  186. these solutions in general form.
  187. procedure sorsol(sol);
  188. ======================
  189. This procedure is called by DESIR to write the solution sol, given in
  190. general form, in standard form with enumeration of different conditions (if
  191. there are any).
  192. It can be used independently.
  193. -4) Writing of solutions after the choice of parameters
  194. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  195. procedure sorparam(solutions,param);
  196. ====================================
  197. This is an interactive procedure which displays the solutions evaluated :
  198. the value of parameters is requested.
  199. * solutions : {lcoeff,{....,{general_solution},....}}
  200. * param : list of parameters.
  201. It returns the list formed of 2 elements :
  202. * list of evaluated coefficients of the equation
  203. * list of standard solutions evaluated for the value of parameters.
  204. procedure solparam(solutions,param,valparam);
  205. =============================================
  206. This procedure evaluates the general solutions for the value of parameters
  207. given by valparam and returns these solutions in general form.
  208. * solutions : {lcoeff,{....,{general_solution},....}}
  209. * param : list of parameters
  210. * valparam : list of parameters values
  211. It returns the list formed of 2 elements :
  212. * list of evaluated coefficients of the equation
  213. * list of solutions in general form, evaluated for the value of
  214. parameters.
  215. -5) Transformations
  216. ~~~~~~~~~~~~~~~
  217. procedure changehom(lcoeff,x,secmember,id);
  218. ===========================================
  219. Differentiation of an equation with right-hand side.
  220. * lcoeff : list of coefficients of the equation
  221. * x : variable
  222. * secmember : right-hand side
  223. * id : order of the differentiation.
  224. It returns the list of coefficients of the differentiated equation.
  225. It enables an equation with polynomial right-hand side to be transformed
  226. into a homogeneous equation by differentiating id times,
  227. id = degre(secmember) + 1.
  228. procedure changevar(lcoeff,x,v,fct);
  229. ====================================
  230. Changing of variable in the homogeneous equation defined by the list,lcoeff
  231. of its coefficients : the old variable x and the new variable v are linked
  232. by the relation x = fct(v).
  233. It returns the list of coefficients in respect to the variable v of the new
  234. equation.
  235. examples of use :
  236. ---------------
  237. - translation enabling a rational singularity to be brought back to zero.
  238. - x = 1/v brings the infinity to 0.
  239. procedure changefonc(lcoeff,x,q,fct);
  240. =====================================
  241. Changing of unknown function in the homogeneous equation defined by the
  242. list lcoeff of its coefficients :
  243. * lcoeff : list of coefficients of the initial equation
  244. * x : variable
  245. * q : new unknown function
  246. * fct : y being the unknown function y = fct(q)
  247. It returns the list of coefficients of the new equation.
  248. example of use :
  249. --------------
  250. this procedure enables the computation,in the neighbourhood of an irregular
  251. singularity, of the "reduced" equation associated to one of the slopes (the
  252. Newton polygon having a null slope of no null length). This equation gives
  253. much informations on the associated divergent series.
  254. -6) Optional writing of intermediary results
  255. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  256. switch trdesir : when it is ON, at each step of the Newton algorithm, a
  257. =======
  258. description of the Newton polygon is displayed (it is possible to follow
  259. the break of slopes), and at each call of the FROBENIUS procedure ( case of
  260. a null slope ) the corresponding indicial equation is displayed.
  261. By default, this switch is OFF.
  262. 6) LIMITATIONS
  263. ***********
  264. -1) This DESIR version is limited to differential equations leading
  265. to indicial equations of degree <= 3. To pass beyond this limit, a further
  266. version written in the D5 environment of the computation with algebraic
  267. numbers has to be used.
  268. -2) The computation of a basis of solutions for an equation depending on
  269. parameters is assured only when the indicial equations are of degree <= 2.
  270. 7) IMPLEMENTATION
  271. **************
  272. This software uses the 3.3 version of REDUCE.