dsolve
dsolve and the Lie method of symmetries
Calling Sequence
Parameters
Description
Examples
References
dsolve(ODE,Lie)
dsolve(ODE, y(x), way=xxx, HINT=[expr1, expr2], int_scheme)
ODE
-
ordinary differential equation
Lie
request that Lie's symmetry method be used first
y(x)
dependent variable (required when not obvious)
way=xxx
(optional) use only one of symgen's algorithms: 2, 3, 4, 5, 6, abaco1, abaco2, all, exp_sym, formal, mu, patterns, and pdsolve when looking for symmetry generators
HINT = [e1, e2]
(optional) e1 and e2 indicate a possible functional form for the infinitesimals of symmetry generators
HINT = [[e1, e2], [e3, e4], ...]
(optional) list of the above
int_scheme
(optional) can be one of fat, can, can2, gon, gon2, and dif
Optional parameters can be given alone or in conjunction and in any order
Given an ODE, when using the method of symmetries, dsolve first tries to determine symmetry generators of invariance Lie groups corresponding to the given ODE, and then uses this information to integrate or at least reduce the order of the ODE. In the case of first order ODEs, the routine can determine invariant singular solutions (if any) from the knowledge of the symmetries. Although this method covers most of the standard classification methods (but at a slower speed), its usefulness is mainly related to the solving of non-classifiable ODEs, that is, for ODEs not matching any pattern for which dsolve has a solving scheme.
To determine the infinitesimals, dsolve makes calls to DEtools[symgen]. To integrate the ODE using these infinitesimals, dsolve has seven integration schemes, almost all of them explained in "Differential Equations: Their solution using symmetries", by H.Stephani, and "Symmetries and Differential Equations", by G.W. Bluman and S.Kumei. dsolve has its own defaults concerning these integration schemes, but it is possible to force the use of a given scheme by giving extra arguments as explained below. The integration schemes available are:
building an integrating factor ('fat', only for first order ODEs),
reducing the order of the ODE by one, by using the canonical coordinates of the invariance group ('can'),
reducing a second order ODE to a quadrature, by using two pairs of infinitesimals (a 2-D subalgebra) simultaneously ('can2'),
reducing a second order ODE to a quadrature, constructively, by using a normal form of the symmetry generator in the space of first integrals ('gon'),
reducing a second order ODE to a quadrature, by using two pairs of infinitesimals (a 2-D subalgebra) and normal forms of the symmetry generators in the space of first integrals ('gon2'),
using differential invariants constructively ('dif'), or
reducing a second order ODE to a quadrature, by using three pairs of infinitesimals, when no pair of them forms a 2-D subalgebra.
The integration schemes 1) and 2) can be used with first order ODEs, schemes 2) through 7) can be used with second order ODEs, and scheme 2) can be used with high order ODEs. The integration schemes 4), 5), and 6) work with both point and dynamical symmetries. That is, the methods can integrate by using symmetries even when they involve derivatives of the unknown function.
dsolve/Lie first attempts to isolate the derivative in the given ODE, then it uses restricted subsets (determined according to the given ODE) of the internal algorithms of symgen to try to calculate the infinitesimals. Finally, it applies the aforementioned integration schemes one after the other to obtain a closed form solution.
You can change the dsolve defaults for the method of symmetries. The main options are the following.
To use only symmetry methods and all symgen's algorithms for determining the infinitesimals, give the word 'Lie' as an extra argument in the calling sequence.
To avoid using the method of symmetries, give the word 'class' as extra argument.
To request the use of all symgen's algorithms for determining the infinitesimals, give the equation 'way=all' as an extra argument (equivalent to the 'Lie' extra argument; see symgen).
To request the use of only one of symgen's algorithms for determining the infinitesimals, give the equation 'way=xxx', where xxx is one of 2, 3, 4, 5, 6, abaco1, abaco2, all, exp_sym, formal, mu, patterns, and pdsolve. Note that different algorithms can lead to different symmetries for the same ODE, sometimes making the integration step easier. The option 'way=6' is to be used only if solving Riccati type ODEs. See symgen. Note also that the formal algorithm is special because it formally computes all point symmetries when they exist.
To enforce the use of only one or more of the alternative schemes for integrating a given ODE, in any desired order, after finding the infinitesimals, give one or many of the following optional arguments: fat, can, can2, gon, gon2, and dif. These optional arguments are useful to select the best integration strategy for each case.
To indicate a possible functional form for the infinitesimals, use the HINT=[e1,e2] option. This option is valuable when the solver does not meet with success, or to study the possible connection between the algebraic pattern of the given ODE and that of the symmetry generators.
The HINT=[e1,e2] option can be used is as follows.
HINT=[e1,e2], indicates to the solver that it should take e1 and e2 as the infinitesimals, where e1 and e2 can contain a maximum of two indeterminate functions. The solver tries to determine the infinitesimals to solve the problem.
HINT=[e1,`+`], where e1 represents your guess for the first infinitesimal, xi. The `+` indicates to the solver that it must consider the other infinitesimal, eta, as the sum of two indeterminate functions of one variable, depending on the independent and dependent variables, respectively.
HINT=[e1,`*`], works as in the previous case, but replacing the sum of two indeterminate functions by their product.
HINT=[[e1,e2], [e3,e4],...], where [e1,e2], [e3,e4], ... can take any of the above forms.
Finally, three global variables manage the solving process. They are automatically set by internal routines, but you can assign their values. They are {`ODEtools/dgun`, `ODEtools/ngun`, `ODEtools/sgun`}, for setting, respectively, the maximum degree of polynomials entering the ansatz for the infinitesimals, the maximum number of subproblems into which the original ODE can be mapped, and the maximum size permitted for such subproblems.
Note: When using dsolve with way=formal, the values of these three variables {`ODEtools/dgun`, `ODEtools/ngun`, `ODEtools/sgun`} have no effect on the computation of the symmetries.
The `ODEtools/dgun` variable is automatically set each time symgen is called, according to the given ODE, whereas, by default, `ODEtools/ngun` and `ODEtools/sgun` are assigned 1. Increasing the value of `ODEtools/dgun` usually helps, especially in the case of polynomial ODEs. If you assign values to the `ODEtools/ngun` or `ODEtools/sgun` variable, it may increase the power of the algorithms. However, each increase of one unit can slow the solving process geometrically.
Three first order ODEs
A Riccati type ODE:
ode1≔diff⁡y⁡x,x=y⁡x−x⁢ln⁡x2x2+ln⁡x
ode1≔ⅆⅆxy⁡x=y⁡x−x⁢ln⁡x2x2+ln⁡x
Use canonical coordinates to integrate ode[1]:
dsolve⁡ode1,can
y⁡x=−x⁢−2⁢5⁢ln⁡x+5⁢tanh⁡ln⁡x+c__1⁢52−5⁢510
The general family of ODEs having the symmetries of ode[1] is as follows. See DEtools[equinv].
ode2≔diff⁡y⁡x,x=F⁡y⁡x−x⁢ln⁡xx+ln⁡x
ode2≔ⅆⅆxy⁡x=F⁡y⁡x−x⁢ln⁡xx+ln⁡x
dsolve⁡ode2
y⁡x=ln⁡x+RootOf⁡−ln⁡x+∫` `_Z1−1+F⁡_a−_aⅆ_a+c__1⁢x
The answer above includes the solution for ode[1] for which _F := u -> u^2.
ode3≔diff⁡y⁡x,x=x+cos⁡exp⁡−x⁢1+x+exp⁡y⁡xexp⁡x+y⁡x
ode3≔ⅆⅆxy⁡x=x+cos⁡ⅇ−x⁢1+x+ⅇy⁡xⅇx+y⁡x
Infinitesimals for ode[3] can be found by using the HINT option.
with⁡DEtools,symgen
symgen
symgen⁡ode3,HINT=f⁡x,x⁢g⁡y
_ξ=ⅇx,_η=x⁢ⅇ−y
In above, 'f(x)' was determined as exp(x) and g(y) as exp(-y). This HINT can be given directly to dsolve, which calls symgen and uses the returned infinitesimals to arrive at:
dsolve⁡ode3,HINT=f⁡x,x⁢g⁡y
y⁡x=ln⁡arctan⁡1c__12⁢ⅇ1ⅇx2−11c__12⁢ⅇ1ⅇx2+1,2c__1⁢ⅇ1ⅇx⁢1c__12⁢ⅇ1ⅇx2+1⁢ⅇx−x−1−x
Three second order ODEs
ode4≔diff⁡y⁡x,x,x=1x2⁢diff⁡y⁡x,x2⁢x2−2⁢y⁡x⁢diff⁡y⁡x,x⁢x+y⁡x2
ode4≔ⅆ2ⅆx2y⁡x=ⅆⅆxy⁡x2⁢x2−2⁢y⁡x⁢ⅆⅆxy⁡x⁢x+y⁡x2x2
dsolve⁡ode4
y⁡x=ⅇc__1⁢Ei1⁡−ln⁡1x+c__1+c__2⁢x
ode5≔diff⁡y⁡x,x,x⁢diff⁡y⁡x,x⁢y⁡x⁢x6−2⁢diff⁡y⁡x,x3⁢x6+2⁢diff⁡y⁡x,x2⁢y⁡x⁢x5+y⁡x5
ode5≔ⅆ2ⅆx2y⁡x⁢ⅆⅆxy⁡x⁢y⁡x⁢x6−2⁢ⅆⅆxy⁡x3⁢x6+2⁢ⅆⅆxy⁡x2⁢y⁡x⁢x5+y⁡x5
Three pairs of infinitesimals for ode[5] above:
sym2≔symgen⁡ode5
sym2≔_ξ=0,_η=y2,_ξ=x2,_η=0,_ξ=x,_η=3⁢y2
A solution obtained using normal forms in the space of first integrals (extra argument gon2) for the generators corresponding to the infinitesimals above:
ansgon2≔dsolve⁡ode5,gon2
ansgon2≔y⁡x=3⁢x22⁢x⁢c__1⁢x+1⁢2⁢c__1⁢x−3⁢c__2⁢x2+2⁢2⁢x⁢c__1⁢x+1
A rational ODE solved by using the formal approach and integrated by using its two symmetries simultaneously:
ode6≔diff⁡y⁡x,x,x+y⁡x−9x⁢diff⁡y⁡x,x−y⁡x3−3⁢y⁡x2x+21⁢y⁡xx2=0
ode6≔ⅆ2ⅆx2y⁡x+y⁡x−9x⁢ⅆⅆxy⁡x−y⁡x3−3⁢y⁡x2x+21⁢y⁡xx2=0
ans6≔dsolve⁡ode6,way=formal,can2,implicit
ans6≔x42−x64⁢x323+2⁢c__1⁢∫` `x3y⁡x1c__1⁢RootOf⁡_a6−c__1⁢_Z18+−6⁢_a6+6⁢c__1⁢_Z12+12⁢_a6−9⁢c__1⁢_Z6−8⁢_a612−RootOf⁡_a6−c__1⁢_Z18+−6⁢_a6+6⁢c__1⁢_Z12+12⁢_a6−9⁢c__1⁢_Z6−8⁢_a612⁢_a6−4⁢c__1⁢RootOf⁡_a6−c__1⁢_Z18+−6⁢_a6+6⁢c__1⁢_Z12+12⁢_a6−9⁢c__1⁢_Z6−8⁢_a66+4⁢RootOf⁡_a6−c__1⁢_Z18+−6⁢_a6+6⁢c__1⁢_Z12+12⁢_a6−9⁢c__1⁢_Z6−8⁢_a66⁢_a6+c__1−4⁢_a6ⅆ_a−c__2=0
In above, without using way=formal the same solution is obtained, but other (unsuccessful in this case) methods are tried first and so the solving process takes a bit more of time.
Higher order ODEs
A nonlinear fifth order example (number 17 from Kamke's book) solved by reducing the order constructively using canonical coordinates.
ode7≔9⁢diff⁡y⁡x,x,x2⁢diff⁡y⁡x,x,x,x,x,x−45⁢diff⁡y⁡x,x,x⁢diff⁡y⁡x,x,x,x⁢diff⁡y⁡x,x,x,x,x+40⁢diff⁡y⁡x,x,x,x
ode7≔9⁢ⅆ2ⅆx2y⁡x2⁢ⅆ5ⅆx5y⁡x−45⁢ⅆ2ⅆx2y⁡x⁢ⅆ3ⅆx3y⁡x⁢ⅆ4ⅆx4y⁡x+40⁢ⅆ3ⅆx3y⁡x
ans7≔dsolve⁡ode7,Lie
ans7≔y⁡x=∫∫RootOf⁡−∫` `_Z1RootOf⁡−20⁢ln⁡_f+∫` `_Z_k⁢ⅇRootOf⁡81⁢_k2⁢ⅇ_Z−40⁢ⅇ_Z⁢ln⁡2−20⁢ⅇ_Z⁢ln⁡5+20⁢ⅇ_Z⁢ln⁡ⅇ_Z+27+162⁢c__1⁢ⅇ_Z−20⁢_Z⁢ⅇ_Z+2187⁢_k2−1080⁢ln⁡2−540⁢ln⁡5+540⁢ln⁡ⅇ_Z+27+4374⁢c__1−540⁢_Z−540+27ⅆ_k+20⁢c__2ⅆ_f+x+c__3ⅆxⅆx+c__4⁢x+c__5
Explicit or implicit answers can be tested, in principle, by using odetest.
map⁡odetest,ans7,ode7
0
E.S. Cheb-Terrab, L.G.S. Duarte and L.A.C.P. da Mota, "Computer Algebra Solving of First Order ODEs Using Symmetry Methods", Computer Physics Communications, 101 (1997): 254.
E.S. Cheb-Terrab, L.G.S. Duarte and L.A.C.P. da Mota, "Computer Algebra Solving of Second Order ODEs Using Symmetry Methods", Computer Physics Communications, 108 (1997): 90.
See Also
DEtools[buildsym]
DEtools[canoni]
DEtools[equinv]
DEtools[odeadvisor]
DEtools[symgen]
DEtools[transinv]
diff
dsolve,ICs
dsolve,inttrans
dsolve,numeric
dsolve,series
dsolve,system
odetest
Download Help Document