DEtools - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Mathematics : Differential Equations : DEtools : Differential Operators : DEtools/formal_sol





formal solutions of a homogeneous linear ODE


Calling Sequence





Calling Sequence

formal_sol(L, domain, T, opt)

formal_sol(eqn, dvar, T, opt)




homogeneous linear differential equation



dependent variable, for instance yx



differential operator representing an homogeneous linear differential equation (see DEtools[de2diffop])



list containing two names representing the differential algebra, for instance Dx,x



(optional) name, used in the output to represent Cxx01r, where x0 is the expansion point, r is the ramification index and C some constant



(optional), any of x = x0 to expand around x0, order = n to compute the first n terms or groundfield = [RootOf(...), ...] .



The input is a differential operator L or a linear ODE (ordinary differential equation) eqn having rational function coefficients.


The output is a list of lists. Each of these lists contains one type of formal solution; those solutions that can be written with the same e (see below for a description) are grouped together in the same list.


Let x be the independent variable. If a differential operator is specified, then x is the second element of the list domain. If an ODE is specified, then x is implicitly given in dvar, which is of the form yx.


To set the notations, we first discuss formal solutions at the point x=0. Denote C x as the set of all formal power series in x. Formal power series are power series that are not necessarily convergent. If r is a positive integer, then denote C x1r as the set of all formal power series in x1r. These series can be written as i=0aixir where the ai are in C. If s is such a series, then the ramification index of s is the smallest positive integer r for which s is in C x1r.


Elements of C x1r are also called Puiseux series. However, Puiseux series are more general in the sense that there one also allows negative exponents (so then the valuation (defined below) could be negative). One denotes Cx1r as the set of all Puiseux series whose ramification index divides r.


Denote C x1r logx as the set of expressions that can be written in the form j=0Mi=0ai,jxirlogxj for some ai,j in C and some non-negative integer M. If s is such an expression, and if s is not zero, then the valuation of s is the smallest rational number ir for which the xir-term in s is not zero. So the valuation is the smallest ir for which ai,j is not zero for some j.


Denote C x1r as the set of all expressions of the form i=0Naixir where ai in C and N is a non-negative integer.


A formal solution is a solution that can be presented in the form y=sⅇexⅆx for some e in C x1r and s in C x1r logx for some integer r  (if one chooses this integer minimal, then it is called the ramification index). A homogeneous linear differential equation of order n has precisely n linearly independent formal solutions, which are computed by formal_sol.


If the ODE has a formal solution of the form y=sⅇexⅆx and if the valuation of s is zero, then the expression e is called the generalized exponent of y. This generalized exponent is an element of C x1r. Note that if the valuation of s is not zero, then one can rewrite y to the above form with valuation 0 for s. For example, if y=x2+5x3+...ⅇⅇxⅆx where e is for example e=3+1x then one can rewrite y as 1+5x+...ⅇⅇ+2xⅆx so the generalized exponent of this y would be e+2=5+1x. As another example, if y=x72+3x52+... then this can be rewritten as y=1+3x+...ⅇ721xⅆx so this y would have generalized exponent 72.


The generalized exponents of the ODE are the generalized exponents of the formal solutions of the differential equation. The number of generalized exponents equals the order if we count with multiplicity.


If a generalized exponent e is a constant (if e is in C) then it is called an exponent. The exponents are the solutions of the indicial equation.


If the ODE has a generalized exponent e that is not a constant, then the differential equation is called irregular singular. Such e has negative powers of x and so the expression ⅇexⅆx will have an essential singularity at x=0.


The name T, when specified, is used to denote xx01r times a constant, where r is the ramification index. formal_sol computes the formal solutions and expresses them in terms of T. The relation between T and x is given in the output as well, in each list containing one type of formal solution.


If the optional argument x=p where p in P1=Cunion{infinity} is given, then this procedure first applies a transformation DEtools[translate] to move the point p to the point 0, then computes the formal solutions, and then substitutes x=xp in the result (or x=1x if p=). Note that this substitution only affects the part of the output that gives the relation between T and x. If p and the ramification index is 1, the relation between x and T given in the output will be T=xp.


The formal solutions are computed only up to conjugation over the field kx, where k is the minimal field of constants over which the input is defined. A larger field k can be specified by the option groundfield = a list of RootOfs.


By default the number of terms to be computed is given by the variable Order. To obtain a different number of terms, use the optional argument order=N where N is the desired number of terms.


The argument domain describes the differential algebra. If this argument is the list Dx,x, then the differential operators are notated with the symbols Dx and x. They are viewed as elements of the differential algebra Cx Dx where C is the field of constants, and Dx denotes the differentiation operator.


If the argument domain is omitted then the differential algebra specified by the environment variable _Envdiffopdomain is used. If this environment variable is not set then the argument domain may not be omitted.


Instead of a differential operator, the input can also be a linear homogeneous ODE having rational function coefficients. In this case, the second argument dvar must be the dependent variable.


This function is part of the DEtools package, and so it can be used in the form formal_sol(..) only after executing the command with(DEtools). However, it can always be accessed through the long form of the command by using DEtools[formal_sol](..).









Giving the optional argument T, a 'name', the output is expansion in T, making more evident the structure of the series, and the equation relating T to the independent variable x indicates what the ramification index is (in this example: one)




Note also that the output is given only up to conjugation over the field of definition of the input. So, to obtain a basis of the formal solutions, the conjugate (replace RootOf_Z2+1 by RootOf_Z2+1) solution needs to be added as well. One can increase the field of definition with the option groundfield:




An example with solutions of ramification index 2, so x = some constant times T^2, as well as solutions of ramification index 3 (so x = some constant times T^3):







Compare the series structures above with the structure of the output obtained without giving the optional name T:




The next ode has (generalized) exponents 0 and 1ν at x=0. This means that the dominant term in the formal solutions at x=0 will be 1 resp. x1ν.  The variable T is x here, so the ramification index is 1.







The generalized exponents at x= are e1μ and e2νμ1T where now T=1x (since 1x is T, the ramification index is again 1). Each generalized exponent describes the dominant term in a formal solution. So the dominant term in the formal solutions at x= will be ⅇe1TⅆT resp. ⅇe2TⅆT which is Tμ resp. Tμ+νⅇ1T. Since e2 is not a constant, the ode is irregular singular at x=.




By solving the indicial equation one finds the exponents (exponents = those generalized exponents that are constants). At x=0 both generalized exponents are constant, so both are exponents. At x= one finds only one exponent, because only one of the two generalized exponents is a constant.







Note that formal_sol also allows ode's with coefficients that are not rational functions, but only if they are meromorphic at the specified point. For example, sin(x) is meromorphic at x=0 but not at x=, so the following example will fail at x=.





Error, (in `series/trig`) unable to compute series






Ince, E.L. Ordinary Differential Equations, Chap. XVI-XVII. New York: Dover Publications, 1956.


van Hoeij, M. "Formal Solutions and Factorization of Differential Operators with Power Series Coefficients." Journal of Symbolic Computation. Vol. 24, (1997): 1-30.

See Also