look for a symmetry generator for a given ODE
symgen(ODE, y(x), way=xxx, HINT=...)
ordinary differential equation
(optional) dependent variable
(optional) algorithm where xxx is one of 2, 3, 4, 5, 6, abaco1, abaco2, all, exp_sym, formal, mu, patterns, and pdsolve; forces the use of only one xxx of the nine internal algorithms for determining the coefficients of the symmetry generator (infinitesimals)
HINT = [e1, e2]
(optional) e1 and e2 indicate a possible functional form for the infinitesimals
HINT = [[e1, e2], [e3, e4], ...]
(optional) list of possible functional forms for the infinitesimals
The symgen command looks for the infinitesimals ξ⁡x,y and η⁡x,y of a one-parameter Lie group that make the given ODE invariant (see odepde). For instance, in the case of a first order ODE of the form y⁢' =Φ⁡x,y, symgen looks for a pair of functions η,ξ that satisfies the following:
The symgen command is the engine that implements symmetry methods in dsolve (see dsolve,Lie). All nine of symgen's schemes assume that the highest derivative present in the given ODE can be isolated. By default, symgen looks for as many pairs of infinitesimals as the differential order of the ODE. However, you can change the number of symmetries by assigning the environment variable _Env_ODE_syms to a positive integer (the number of desired symmetries); symgen then returns an answer as soon as these symmetries are found, or when it has tried all nine schemes.
Although in the framework of symgen, the definition of a symmetry includes dynamical symmetries -- that is: derivatives of the dependent variable can be present in the infinitesimals -- when using the optional argument way = formal, symgen will compute only point symmetries -- that is: infinitesimals depending only on the independent and dependent variables.
The options available for this command are the same way=xxx and HINT=xxx options of dsolve,Lie. The HINT option is particularly useful since it enables you to try your own heuristics for finding the infinitesimals if none of symgen's schemes are successful.
A brief summary of symgen's schemes is as follows:
The first algorithms, called formal, formulates a linear PDE system for the infinitesimals ξ,η, then formally triangularize this system - using differential algebra techniques - finally tacking the resulting uncoupled system. When successful, this algorithm returns the complete set of point symmetries admitted by a given ODE of order 2 or higher. NOTE: this algorithm is advantageous mainly for 2nd and higher order ODEs. The algorithm works as well in the case of first order ODEs, but in this case the subproblems it will need to solve to find the symmetries are as difficult to solve as the first order ODE itself.
The second algorithm, called abaco1, consists of two sets of four schemes each. The first four schemes look for xi, eta taking one of the infinitesimals as 0, and the other as a function of only one variable, namely ξ=0,η=f⁡x, ξ=0,η=f⁡y, ξ=f⁡x,η=0, ξ=f⁡y,η=0.
The possible success of each case is determined by algebraic factorization of the PDE above, and when this possibility is confirmed, an auxiliary ODE is built and sent to dsolve to determine the explicit resulting form for f.
The second sequence of schemes looks for xi, eta taking one of the infinitesimals as 0, and the other one as an expression containing both x and y, namely ξ=0,η=f⁡x⁢g⁡y,ξ=f⁡x⁢g⁡y,η=0, where g is an algebraic expression built by extracting factors from the numerator and denominator of the ODE to be solved, and f is an unknown function determined by solving auxiliary ODEs as in the first four schemes.
The second, third and fourth algorithms consist of bivariate ansatze which are polynomial and rational in x,y. You can set the maximum degree of the polynomials by assigning the global 'dgun' variable; otherwise, it is set automatically by an internal routine.
The fifth algorithm looks for a solution for xi and eta as follows:
1) a basis of functions and algebraic objects is built by taking, from the given ODE, all the known functions (their derivative rules are known by the Maple system) and composite algebraic objects, together with their derivatives, as well as all the unknown functions;
2) a polynomial of degree two in such objects is built; its coefficients, in turn, are polynomials of degree d (the dgun variable mentioned above) in x,y, with undetermined coefficients.
This ansatz is introduced into a PDE equivalent to the PDE for xi, eta above, resulting in a system of algebraic equations for the undetermined coefficients mentioned above.
The sixth algorithm looks for a solution for xi and eta when the ODE is of first order and of Riccati type. This algorithm consists of three different schemes for finding the infinitesimals, exploring changes of variables, and tackling the PDE for the infinitesimals using separation of variables.
The seventh algorithm, called pdsolve, tries to solve a PDE equivalent to the PDE for xi, eta using the pdsolve command from the PDEtools package.
The eighth algorithm, called abaco2, consists of four schemes for determining the infinitesimals xi, eta, making use of the HINT option of symgen, with two indeterminate functions of only one variable each, namely
This function is part of the DEtools package, and so it can be used in the form symgen(..) only after executing the command with(DEtools). However, it can always be accessed through the long form of the command by using DEtools[symgen](..).
First order ODEs
Kamke's ODE 120; for better displaying of formulas we use here the PDEtools[declare] command:
y⁡x⁢will now be displayed as⁢y
derivatives with respect to⁢x⁢of functions of one variable will now be displayed with '
If infolevel is set to a greater integer (possible settings are 1 through 5), more detailed information about the computation method is displayed.
infolevelsymgen ≔ 2
ode1 ≔ x⁢ⅆⅆx⁢y⁡x−y⁡x⁢x⁢ln⁡x2y⁡x+2=0
-> Computing symmetries using: way = 2-> Computing symmetries using: way = 3
-> Computing symmetries using: way = 4
<- successful computation of symmetries.
Kamke's ODE 236
ode2 ≔ x⁢y⁡x+4⁢ⅆⅆx⁢y⁡x−y⁡x2−2⁢y⁡x−2⁢x=0
_rational,_Abel,2nd type,class B
sym2 ≔ symgen⁡ode2
-> Computing symmetries using: way = 2
These symmetries can be tested using symtest.
Kamke's ODE 357 (no classification)
ode3 ≔ x⁢ⅆⅆx⁢y⁡x⁢ln⁡x⁢sin⁡y⁡x+cos⁡y⁡x⁢1−x⁢cos⁡y⁡x=0
sym3 ≔ symgen⁡ode3,way=5
-> Computing symmetries using: way = 5
The answer is returned by dsolve using the first of these symmetries:
-> Computing symmetries using: way = 3-> Computing symmetries using: way = 4
-> Computing symmetries using: way = 5
Here is an ODE with an arbitrary function F⁡x,y (no classification):
ode4 ≔ ⅆⅆx⁢y⁡x=F⁡y⁡x32−3⁢ⅇx2⁢ⅇxy⁡x12
-> Computing symmetries using: way = abaco2
Second order ODEs
Kamke's nonlinear second order example number 33; in this example, only formal methods succeed in computing a 2-D symmetry group depending on an arbitrary function f(x):
k33 ≔ ⅆ2ⅆx2⁢y⁡x+y⁡x+3⁢f⁡x⁢ⅆⅆx⁢y⁡x−y⁡x3+y⁡x2⁢f⁡x+y⁡x⁢ⅆⅆx⁢f⁡x+2⁢f⁡x2=0
sym33 ≔ symgen⁡k33,y⁡x,way=formal
-> Computing symmetries using: way = formal
This example shows an ODE containing an arbitrary function G:
ode5 ≔ ⅆ2ⅆx2⁢y⁡x=−4⁢ⅆⅆx⁢y⁡x24⁢y⁡x−G⁡ⅆⅆx⁢y⁡x⁢x−1⁢y⁡x2
This one has two pairs of infinitesimals for ode5 (a point and a dynamical symmetry):
sym5 ≔ symgen⁡ode5
-> Computing symmetries using: way = 3
<- successful computation of symmetries.-> Computing symmetries using: way = 2
-> Computing symmetries using: way = abaco1
ode6 ≔ ⅆ2ⅆx2⁢y⁡x=1⁢ⅆⅆx⁢y⁡x2⁢x2−2⁢y⁡x⁢ⅆⅆx⁢y⁡x⁢x+y⁡x2x2
Below, G is again an arbitrary function of its arguments (the ODE does not match any recognizable pattern).
ode7 ≔ ⅆ2ⅆx2⁢y⁡x=1⁢ⅆⅆx⁢y⁡x2−y⁡x⁢ln⁡y⁡x⁢ⅆⅆx⁢y⁡x+y⁡x⁢ln⁡y⁡x2⁢ⅇ−2⁢x⁢G⁡ⅆⅆx⁢y⁡x⁢ⅇxln⁡y⁡xln⁡y⁡x⁢y⁡x
Two point symmetries for ode7. Although symgen succeeds in finding these symmetries without extra arguments, specifying a way might save some time.
-> Computing symmetries using: way = abaco1
High order ODEs
A third order example
ode8 ≔ ⅆ3ⅆx3⁢y⁡x=13⁢y⁡x8⁢x3−1⁢−20⁢ⅆ2ⅆx2⁢y⁡x⁢x2+26⁢ⅆⅆx⁢y⁡x⁢x8⁢x3−1⁢24⁢ⅆⅆx⁢y⁡x⁢x3⁢ⅆ2ⅆx2⁢y⁡x−20⁢ⅆⅆx⁢y⁡x2⁢x28⁢x3⁢y⁡x
sym8 ≔ symgen⁡ode8
<- successful computation of symmetries.-> Computing symmetries using: way = 3
Here is how to find a solution for ode8 using these symmetries:
ans8 ≔ dsolve⁡ode8
Cheb-Terrab, E.S. "A Computational Approach for the Exact Solving of Systems of Partial Differential Equations." Submitted to Computer Physics Communications, 2001.
Cheb-Terrab, E.S.; Duarte, L.G.S.; and da Mota, L.A.C.P. Untitled Article. Computer Physics Communications. Vol. 101. (1997): 254.
Download Help Document