DEtools[symgen]  look for a symmetry generator for a given ODE

Calling Sequence


symgen(ODE, y(x), way=xxx, HINT=...)


Parameters


ODE



ordinary differential equation

y(x)



(optional) dependent variable

way=xxx



(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





Description


>

odepde(diff(y(x),x)=Phi(x,y(x)));

 (1) 
•

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 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 .

•

The second, third and fourth algorithms consist of bivariate ansatze which are polynomial and rational in . 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 (the dgun variable mentioned above) in , 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 , 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](..).



Examples


First order ODEs
Kamke's ODE 120; for better displaying of formulas we use here the PDEtools[declare] command:
>


>


 (2) 
If infolevel is set to a greater integer (possible settings are 1 through 5), more detailed information about the computation method is displayed.
>


 (3) 
>


 (4) 
>


> Computing symmetries using: way = 2> Computing symmetries using: way = 3
> Computing symmetries using: way = 4
 
< successful computation of symmetries.
 
 (5) 
Kamke's ODE 236
>


 (6) 
>


 (7) 
>


> Computing symmetries using: way = 2
 
< successful computation of symmetries.
 
 (8) 
These symmetries can be tested using symtest.
>


 (9) 
Kamke's ODE 357 (no classification)
>


 (10) 
>


> Computing symmetries using: way = 5
 
< successful computation of symmetries.
 
 (11) 
>


 (12) 
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
 
< successful computation of symmetries.
 
 (13) 
Here is an ODE with an arbitrary function (no classification):
>


 (14) 
>


> Computing symmetries using: way = abaco2
 
< successful computation of symmetries.
 
 (15) 
Second order ODEs
Kamke's nonlinear second order example number 33; in this example, only formal methods succeed in computing a 2D symmetry group depending on an arbitrary function f(x):
>


 (16) 
>


> Computing symmetries using: way = formal
 
< successful computation of symmetries.
 
 (17) 
>


 (18) 
This example shows an ODE containing an arbitrary function :
>


 (19) 
>


 (20) 
This one has two pairs of infinitesimals for ode5 (a point and a dynamical symmetry):
>


> Computing symmetries using: way = 3
 
< successful computation of symmetries.> Computing symmetries using: way = 2
> Computing symmetries using: way = abaco1
 
< successful computation of symmetries.
 
 (21) 
>


 (22) 
>


 (23) 
>


> Computing symmetries using: way = 3
 
< successful computation of symmetries.
 
 (24) 
Below, is again an arbitrary function of its arguments (the ODE does not match any recognizable pattern).
>


 (25) 
>


 (26) 
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
 
< successful computation of symmetries.
 
 (27) 
High order ODEs
A third order example
>


 (28) 
>


 (29) 
>


> Computing symmetries using: way = 2
 
< successful computation of symmetries.> Computing symmetries using: way = 3
 
< successful computation of symmetries.
 
 (30) 
>


 (31) 
Here is how to find a solution for ode8 using these symmetries:
>


 (32) 


See Also


buildsym, canoni, DEtools, dsolve, dsolve,Lie, dsolve,references, equinv, infolevel, odeadvisor, odepde, PDEtools, pdsolve, symtest


References



ChebTerrab, E.S. "A Computational Approach for the Exact Solving of Systems of Partial Differential Equations." Submitted to Computer Physics Communications, 2001.


ChebTerrab, E.S.; Duarte, L.G.S.; and da Mota, L.A.C.P. Untitled Article. Computer Physics Communications. Vol. 101. (1997): 254.


