symgen - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


DEtools

  

symgen

  

look for a symmetry generator for a given ODE

 

Calling Sequence

Parameters

Description

Examples

References

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

• 

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:

with(DEtools):

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

x_ηx,y+y_ηx,yx_ξx,yΦx,yy_ξx,yΦx,y2_ξx,yxΦx,y_ηx,yyΦx,y

(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 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,η=fx, ξ=0,η=fy, ξ=fx,η=0, ξ=fy,η=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,η=fxgy,ξ=fxgy,η=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

  

ξ=gx,η=fx,ξ=gx,η=fy,ξ=gy,η=fx,ξ=gy,η=fy.

• 

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:

withDEtools:

PDEtoolsdeclareyx,prime=x

yxwill now be displayed asy

derivatives with respect toxof functions of one variable will now be displayed with '

(2)

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

infolevelsymgen2

infolevelsymgen2

(3)

ode1xdiffyx,xyxxlnx2yx+2=0

ode1xy'yxlnx2y+2=0

(4)

symgenode1

   -> Computing symmetries using: way = 2-> Computing symmetries using: way = 3
   -> Computing symmetries using: way = 4

   <- successful computation of symmetries.

1&comma;2yx

_&xi;=1&comma;_&eta;=2yx

(5)

Kamke's ODE 236

ode2xyx+4diffyx&comma;xyx22yx2x=0

ode2xy+4y'y22y2x=0

(6)

odeadvisorode2

_rational&comma;_Abel&comma;2nd type&comma;class B

(7)

sym2symgenode2

   -> Computing symmetries using: way = 2

   <- successful computation of symmetries.

0&comma;12x332x2y+y36x2+6xyxy+4,0&comma;12x332x2y+xy22x2+2xyxy+4

sym2_&xi;=0&comma;_&eta;=xyx2y42y+4&comma;_&xi;=0&comma;_&eta;=xyx22xy2y212x2xy+4

(8)

These symmetries can be tested using symtest.

mapsymtest&comma;sym2&comma;ode2

0&comma;0

(9)

Kamke's ODE 357 (no classification)

ode3xdiffyx&comma;xlnxsinyx+cosyx1xcosyx=0

ode3xy'lnxsiny+cosy1xcosy=0

(10)

sym3symgenode3&comma;way=5

   -> Computing symmetries using: way = 5

   <- successful computation of symmetries.

0&comma;1+cos2ylnxsiny,0&comma;2cosylnxxcos2yxlnxsiny

sym3_&xi;=0&comma;_&eta;=1+cos2ylnxsiny&comma;_&xi;=0&comma;_&eta;=2cosylnxxcos2yxlnxsiny

(11)

mapsymtest&comma;sym3&comma;ode3

0&comma;0

(12)

The answer is returned by dsolve using the first of these symmetries:

dsolveode3

   -> Computing symmetries using: way = 3-> Computing symmetries using: way = 4
   -> Computing symmetries using: way = 5

   <- successful computation of symmetries.

0&comma;1+cos2ylnxsiny,0&comma;2cosylnxxcos2yxlnxsiny

y=arcsecx+c__1lnx

(13)

Here is an ODE with an arbitrary function Fx&comma;y (no classification):

ode4diffyx&comma;x=Fyx3232expxyx12expx

ode4y'=Fy323&ExponentialE;x2&ExponentialE;xy

(14)

symgenode4&comma;way=abaco2

   -> Computing symmetries using: way = abaco2

   <- successful computation of symmetries.

&ExponentialE;x&comma;1y

_&xi;=&ExponentialE;x&comma;_&eta;=1y

(15)

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):

k33diffyx&comma;x&comma;x+yx+3fxdiffyx&comma;xyx3+yx2fx+yxdifffx&comma;x+2fx2=0

k33y''+y+3fxy'y3+y2fx+yf '+2fx2=0

(16)

sym33symgenk33&comma;yx&comma;way=formal

   -> Computing symmetries using: way = formal

   <- successful computation of symmetries.

1&ExponentialE;fx&DifferentialD;x&comma;fxy&ExponentialE;fx&DifferentialD;x,&ExponentialE;fx&DifferentialD;x&DifferentialD;x&ExponentialE;fx&DifferentialD;x&comma;&ExponentialE;fx&DifferentialD;x&DifferentialD;xfx+&ExponentialE;fx&DifferentialD;xy&ExponentialE;fx&DifferentialD;x

sym33_&xi;=&ExponentialE;fx&DifferentialD;x&comma;_&eta;=&ExponentialE;fx&DifferentialD;xfxy,_&xi;=&ExponentialE;fx&DifferentialD;x&DifferentialD;x&ExponentialE;fx&DifferentialD;x&comma;_&eta;=yfx&ExponentialE;fx&DifferentialD;x&ExponentialE;fx&DifferentialD;x&DifferentialD;x+1

(17)

mapsymtest&comma;sym33&comma;k33&comma;yx

0&comma;0

(18)

This example shows an ODE containing an arbitrary function G:

ode5diffyx&comma;x&comma;x=4diffyx&comma;x24yxGdiffyx&comma;xx12yx

ode5y''=4y'24yGxy'y2

(19)

odeadvisorode5

_2nd_order&comma;_with_linear_symmetries

(20)

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

sym5symgenode5

   -> Computing symmetries using: way = 3

   <- successful computation of symmetries.-> Computing symmetries using: way = 2
   -> Computing symmetries using: way = abaco1

   <- successful computation of symmetries.

x&comma;0

x&comma;0,0&comma;1_y1

sym5_&xi;=x&comma;_&eta;=0,_&xi;=0&comma;_&eta;=1_y1

(21)

mapsymtest&comma;sym5&comma;ode5

0&comma;0

(22)

ode6diffyx&comma;x&comma;x=1x2diffyx&comma;x2x22yxdiffyx&comma;xx+yx2

ode6y''=y'2x22yy'x+y2x2

(23)

symgenode6

   -> Computing symmetries using: way = 3

   <- successful computation of symmetries.

0&comma;x,x&comma;0

_&xi;=0&comma;_&eta;=x,_&xi;=x&comma;_&eta;=0

(24)

Below, G is again an arbitrary function of its arguments (the ODE does not match any recognizable pattern).

ode7diffyx&comma;x&comma;x=1lnyxdiffyx&comma;x2yxlnyxdiffyx&comma;x+yxlnyx2exp2xGdiffyx&comma;xlnyxexpxyx

ode7y''=y'2ylnyy'+ylny2&ExponentialE;2xGy'&ExponentialE;xlnylnyy

(25)

odeadvisorode7

NONE

(26)

Two point symmetries for ode7. Although symgen succeeds in finding these symmetries without extra arguments, specifying a way might save some time.

symgenode7&comma;way=abaco1

   -> Computing symmetries using: way = abaco1

   <- successful computation of symmetries.

0&comma;lny,&ExponentialE;x&comma;0

_&xi;=0&comma;_&eta;=lny,_&xi;=&ExponentialE;x&comma;_&eta;=0

(27)

High order ODEs

A third order example

ode8diffyx&comma;x&comma;x&comma;x=138x3yx1820diffyx&comma;x&comma;xx2+26diffyx&comma;xxx31824diffyx&comma;xx3diffyx&comma;x&comma;x20diffyx&comma;x2x2x3yx

ode8y'''=13y8x320y''x2+26xy'8x324y'x3y''20y'2x28x3y

(28)

odeadvisorode8

_3rd_order&comma;_with_linear_symmetries

(29)

sym8symgenode8

   -> Computing symmetries using: way = 2

   <- successful computation of symmetries.-> Computing symmetries using: way = 3

   <- successful computation of symmetries.

0&comma;xy

0&comma;xy,0&comma;y,x&comma;0

sym8_&xi;=0&comma;_&eta;=y,_&xi;=x&comma;_&eta;=0,_&xi;=0&comma;_&eta;=xy

(30)

mapsymtest&comma;sym8&comma;ode8

0&comma;0&comma;0

(31)

Here is how to find a solution for ode8 using these symmetries:

ans8dsolveode8

ans8y=2145c__3x94+29429145c__2x9429429841c__3x94+294841c__2x94294+1682c__1x29,y=2145c__3x94+29429145c__2x9429429841c__3x94+294841c__2x94294+1682c__1x29

(32)

References

  

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.

See Also

buildsym

canoni

DEtools

dsolve

dsolve,Lie

dsolve,references

equinv

infolevel

odeadvisor

odepde

PDEtools

pdsolve

symtest