DEtools
FindODE
find an ODE for a given expression
Calling Sequence
Parameters
Options
Description
Examples
References
Compatibility
FindODE(f, y(x), maxorder, opts)
FindODE(f, D[x], maxorder, opts)
FindODE(f, [Dx,x], maxorder, opts)
f
-
differentiable expression
y(x)
dependent variable of the differential equation sought. x is the independent variable.
D[x]
derivative operator given in indexed type form with index of type name.
[Dx,x]
list of two names where Dx represents the derivative operator and x is the independent variable
maxorder
(optional) positive integer representing the maximal order of the ODE sought. Default value: 10.
opts
sequence of optional equations of the form keyword=value; possible keywords are method and destep
destep : a positive integer representing the minimum possible value of the difference between two derivative orders appearing in the computed ODE. Default value: 1.
method : one of default, holonomic, linear or quadratic; specifies the method to be used. method=holonomic looks for a holonomic differential equation; method=linear looks for a linear differential equation with possibly elementary functions as coefficients; method=quadratic looks for a quadratic differential equation.
The DEtools[FindODE] command searches for a homogeneous differential equation of order at most maxorder (at least 10) satisfied by f. There are three general purpose methods applied by default: a method to compute a holonomic ODE, i.e. a linear differential equation with polynomial coefficients. If the maxorder is reached and no holonomic ODE is found then the second method is used. The second method consists of finding a linear differential equation that may have some elementary functions as coefficients. If such an ODE of order at most maxorder is not found then the third method is used. The latter method searches for a quadratic differential equation with polynomial coefficients, i.e. an ODE which contains at most one product of derivatives (the square of a derivative is also included) in its summands. All these three methods can be applied independently by the user through the method keyword. The input f should be a function for which Maple easily manipulates the derivatives. If no ODE is found, then FAIL is returned.
When using the FindODE(f, y(x)) calling sequence, the ODE is returned as an equation in terms of the dependent variable y⁡x, with right-hand side equal to 0.
When using one of FindODE(f,D[x]) and FindODE(f, [Dx,x]) calling sequences, the result is a differential operator in terms of D[x] or Dx, respectively if the underlying differential equation is linear. The differential operator cannot be obtained for quadratic ODEs.
The second argument can be omitted if the environment variable _Envdiffopdomain is assigned a list of two names or an indexed variable with index of type name, in which case the result is given in differential operator notation.
By default, FindODE incrementally searches for an ODE up to order 10. This maximal order can be overridden by specifying the optional third argument, maxorder.
with⁡DEtools:
FindODE⁡arctan⁡x32,y⁡x
5⁢x3−1⁢ⅆⅆxy⁡x+2⁢x⁢x+1⁢x2−x+1⁢ⅆ2ⅆx2y⁡x
FindODE⁡arctan⁡x32,Dx
2⁢x4+2⁢x⁢Dx2+5⁢x3−1⁢Dx
FindODE⁡arctan⁡x32,Dx,x
FindODE⁡cos⁡n⁢arccos⁡x,y⁡x
−n2⁢y⁡x+x⁢ⅆⅆxy⁡x+x−1⁢x+1⁢ⅆ2ⅆx2y⁡x
FindODE⁡hypergeom⁡a,b,c,x,y⁡x
a⁢b⁢y⁡x+x⁢a+x⁢b−c+x⁢ⅆⅆxy⁡x+x⁢x−1⁢ⅆ2ⅆx2y⁡x
FindODE⁡KummerM⁡14,1,x+KummerM⁡−14,1,x,Dx,x
16⁢x2⁢Dx4+−32⁢x2+64⁢x⁢Dx3+16⁢x2−80⁢x+32⁢Dx2+16⁢x−16⁢Dx−1
FindODE⁡LegendreP⁡14,x⁢LegendreP⁡12,x,y⁡x
−495⁢y⁡x+1440⁢x⁢ⅆⅆxy⁡x+5600⁢x2−1504⁢ⅆ2ⅆx2y⁡x+2560⁢x−1⁢x+1⁢x⁢ⅆ3ⅆx3y⁡x+256⁢x−12⁢x+12⁢ⅆ4ⅆx4y⁡x
Differential equations for Mathieu's functions can be computed.
FindODE⁡MathieuC⁡a,q,x,y⁡x
−2⁢q⁢cos⁡2⁢x+a⁢y⁡x+ⅆ2ⅆx2y⁡x
FindODE⁡xexp⁡x−1,y⁡x
x−1⁢y⁡x+y⁡x2+x⁢ⅆⅆxy⁡x
The following example is a generating function from the Online Encyclopedia of Integer Sequences (http://oeis.org/A151357).
ogf≔Int⁡Int⁡2⁢hypergeom⁡34,54,2,64⁢x3⁢1+x−4⁢x2+12−4⁢x2+132,x,xx2
ogf≔∫∫2⁢hypergeom⁡34,54,2,64⁢x3⁢x+1−4⁢x2+12−4⁢x2+132ⅆxⅆxx2
L≔FindODE⁡ogf,Dx,x
L≔192⁢x10+640⁢x9+880⁢x8+656⁢x7+244⁢x6+16⁢x5−7⁢x4−3⁢x3⁢Dx4+3072⁢x9+9792⁢x8+13344⁢x7+10016⁢x6+3632⁢x5+244⁢x4−86⁢x3−36⁢x2⁢Dx3+13824⁢x8+42048⁢x7+56832⁢x6+42816⁢x5+15072⁢x4+1068⁢x3−264⁢x2−108⁢x⁢Dx2+18432⁢x7+53376⁢x6+71616⁢x5+53952⁢x4+18336⁢x3+1416⁢x2−180⁢x−72⁢Dx+4608⁢x6+12672⁢x5+16896⁢x4+12672⁢x3+4128⁢x2+360⁢x
DFactor⁡L,Dx,x
192⁢x10+640⁢x9+880⁢x8+656⁢x7+244⁢x6+16⁢x5−7⁢x4−3⁢x3⁢Dx2+2⁢1152⁢x7+3616⁢x6+4912⁢x5+3696⁢x4+1328⁢x3+90⁢x2−29⁢x−12⁢Dxx⁢192⁢x7+640⁢x6+880⁢x5+656⁢x4+244⁢x3+16⁢x2−7⁢x−3+2⁢2880⁢x7+8480⁢x6+11408⁢x5+8592⁢x4+2956⁢x3+222⁢x2−37⁢x−15x2⁢192⁢x7+640⁢x6+880⁢x5+656⁢x4+244⁢x3+16⁢x2−7⁢x−3,Dx+2x,Dx+2x
map⁡degree,,Dx
2,1,1
FindODE⁡hypergeom⁡13,23,1,x2−hypergeom⁡13,−13,1,x⁢hypergeom⁡43,23,1,x,Dx,x
9⁢x5−27⁢x3+18⁢x2⁢Dx3+45⁢x4+54⁢x3−135⁢x2+36⁢x⁢Dx2+38⁢x3+110⁢x2−94⁢x⁢Dx+2⁢x2+18⁢x−2
FindODE⁡BesselI⁡0,x+x⁢BesselI⁡2,x,y⁡x
−x⁢x+1⁢x2+x+3⁢y⁡x+−x3+x+4⁢ⅆⅆxy⁡x+x⁢x+2⁢x2+1⁢ⅆ2ⅆx2y⁡x
_Envdiffopdomain≔Dx:
FindODE⁡BesselI⁡0,sqrt⁡x⁢BesselI⁡3,sqrt⁡x
24⁢x4+64⁢x3⁢Dx3+84⁢x3+288⁢x2⁢Dx2+−24⁢x3−130⁢x2+16⁢x⁢Dx−24⁢x2−179⁢x−216
Illustration for the destep option. A useful feature to generate many ODEs for the same holonomic expression.
FindODE⁡exp⁡x⁢cos⁡x,y⁡x
2⁢y⁡x−2⁢ⅆⅆxy⁡x+ⅆ2ⅆx2y⁡x
FindODE⁡exp⁡x⁢cos⁡x,y⁡x,destep=4
ⅆ4ⅆx4y⁡x+4⁢y⁡x
FindODE⁡1+xα,y⁡x
x+1⁢ⅆⅆxy⁡x−α⁢y⁡x
FindODE⁡1+xα,y⁡x,destep=2
x+12⁢ⅆ2ⅆx2y⁡x−α⁢α−1⁢y⁡x
Illustration for the method option. All the outputs below can be obtained by the default option. However, using a non-default method is usually more efficient.
FindODE⁡MathieuFloquet⁡a,q,x2,y⁡x,method=linear
−4⁢x3⁢2⁢q⁢cos⁡2⁢x2−a⁢y⁡x−ⅆⅆxy⁡x+x⁢ⅆ2ⅆx2y⁡x
FindODE⁡sqrt⁡arctan⁡x,y⁡x,method=quadratic
2⁢x⁢ⅆⅆxy⁡x⁢y⁡x+x2+1⁢ⅆⅆxy⁡x2+x2+1⁢ⅆ2ⅆx2y⁡x⁢y⁡x
FindODE⁡exp⁡sin⁡x,y⁡x,method=linear
−cos⁡x⁢y⁡x+ⅆⅆxy⁡x
The tangent function is not holonomic but satisfies both linear and quadratic ODEs.
FindODE⁡tan⁡x,y⁡x,method=linear
−sec⁡x⁢csc⁡x⁢y⁡x+ⅆⅆxy⁡x
FindODE⁡tan⁡x,y⁡x,method=quadratic
−2⁢ⅆⅆxy⁡x⁢y⁡x+ⅆ2ⅆx2y⁡x
FindODE⁡tan⁡xn,y⁡x,method=linear
−n⁢sec⁡x⁢csc⁡x⁢y⁡x+ⅆⅆxy⁡x
FindODE⁡tan⁡xn,y⁡x,method=quadratic
20⁢n2−24⁢ⅆⅆxy⁡x2+4⁢n2⁢ⅆ2ⅆx2y⁡x⁢y⁡x+3⁢n−2⁢n+2⁢ⅆ2ⅆx2y⁡x2+−4⁢n2+6⁢ⅆ3ⅆx3y⁡x⁢ⅆⅆxy⁡x+n2⁢ⅆ4ⅆx4y⁡x⁢y⁡x
sec⁡xn does not satisfy a linear ODE with polynomial coefficients but satisfies a quadratic one.
FindODE⁡sec⁡xn,y⁡x,method=linear
−tan⁡x⁢n⁢y⁡x+ⅆⅆxy⁡x
FindODE⁡sec⁡xn,y⁡x,method=quadratic
−n2⁢y⁡x2+−n−1⁢ⅆⅆxy⁡x2+n⁢ⅆ2ⅆx2y⁡x⁢y⁡x
Bertrand Teguia Tabuguia and Wolfram Koepf. "On the representation of non-holonomic power series".arXiv:2109.09574 [cs.SC]. September 2021.
Bertrand Teguia Tabuguia and Wolfram Koepf. Symbolic conversion of holonomic functions to hypergeometric type power series. Computer Algebra issue of the Journal of Programming and Computer Software. February 2022.
Bertrand Teguia Tabuguia. "Power Series Representations of Hypergeometric Type and Non-Holonomic Functions in Computer Algebra". Ph.D. thesis. University of Kassel, Germany. May 2020.
The DEtools[FindODE] command was introduced in Maple 2019.
For more information on Maple 2019 changes, see Updates in Maple 2019.
The DEtools[FindODE] command was updated in Maple 2022.
The D[x] and [Dx,x] parameters were introduced in Maple 2022.
The destep and method options were introduced in Maple 2022.
For more information on Maple 2022 changes, see Updates in Maple 2022.
See Also
convert/FormalPowerSeries
gfun[holexprtodiffeq]
LinearOperators
PDEtools[dpolyform]
Download Help Document