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

Online Help

All Products    Maple    MapleSim


Solving First Order ODEs by Matching Them to ODE Families Invariant under Certain Symmetry Groups

 

Description

Examples

Description

• 

The idea in the symmetry & ODE patterns is to match a given first order ODE to one of a set of ODE families which are invariant under different symmetry groups (to determine these invariant ODE families see equinv). These routines are an implementation of the algorithms presented in "Symmetries and first order ODE patterns, Computer Physics Communications 113 (1998) 239 (see dsolve's references).

• 

We define the infinitesimals xi(x,y) and eta(x,y) as the coefficients of the infinitesimal symmetry generator:

f -> xi*diff(f,x) + eta*diff(f,y);

f→ξxf+ηyf

(1)
  

where x and y represent, respectively, the independent and dependent variables. The implementation in dsolve for matching first order invariant ODE families can handle the nine symmetry patterns mentioned in that CPC article:

X1 := [xi = 0, eta = F(x)*G(y)]:

X2 := [xi = F(x)*G(y), eta = 0]:

X3 := [xi = 0, eta = F(x)+G(y)]:

X4 := [xi = F(x)+G(y), eta = 0]:

X5 := [xi = G(y), eta = J(y)]:

X6 := [xi = F(x), eta = H(x)]:

X7 := [xi = F(x), eta = G(y)]:

X8 := [xi = G(y), eta = F(x)]:

X9 := [xi = a*x + b*y + c, eta = e*x + f*y + g]:

  

where the patterns X2, X4, X6 can be obtained from X1, X3, X5 by interchanging the roles between dependent and independent variable (x <-> y).

• 

The explicit form of the invariant ODE families associated to the symmetry patterns 1 to 8 can be obtained using equinv. For instance the families invariant under X1, X3, X5 are given by

ODE1 := collect( DEtools[equinv](X1, y(x)), G, expand);

ODE1&DifferentialD;&DifferentialD;xyx=&DifferentialD;&DifferentialD;xFx` `yx1G_a&DifferentialD;_aFx+f__1xGyx

(2)

ODE3 := DEtools[equinv](X3, y(x));

ODE3&DifferentialD;&DifferentialD;xyx=` `yx&DifferentialD;&DifferentialD;xFxFx+G_a2&DifferentialD;_a+f__1xFx+Gyx

(3)

ODE5 := DEtools[equinv](X5, y(x));

ODE5&DifferentialD;&DifferentialD;xyx=JyxGyx+f__1` `yxG_aJ_a&DifferentialD;_a+x

(4)
  

As seen in above, these families depend on the arbitrary functions {F, G, J, _F1}, and the implementation of these methods means that these ODE families - as well as those associated to the patterns X2, X4, X6, X7, X8 and X9 - can be systematically solved, in principle, for any particular form of {F, G, J, _F1}

Examples

This method is in use in dsolve by default; however it can be invoked directly by giving the extra argument way=patterns (see symgen)

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

infoleveldsolve2

infoleveldsolve2

(5)

ode1diffyx&comma;x=yx+b2x+a1+sinyxyx+b2x+a

ode1&DifferentialD;&DifferentialD;xyx=yx+b2x+a1+sinyxyx+b2x+a

(6)

DEtoolssymgenode1&comma;way=patterns

   -> Computing symmetries using: way = patterns

_&xi;=&ExponentialE;1y+bx+a2&comma;_&eta;=0

(7)

collectdsolveode1&comma;way=patterns&comma;implicit&comma;Intat

symmetry methods on request--- Trying Lie symmetry methods, 1st order ---
   -> Computing symmetries using: way = patterns

   <- successful computation of symmetries.1st order, trying the canonical coordinates of the invariance group
<- 1st order, canonical coordinates successful

&ExponentialE;1y+bx+a2&comma;0

&ExponentialE;1yx+bx+a+` `yx&ExponentialE;1_a+bsin_a&DifferentialD;_ac__1=0

(8)

These implicit solutions are in principle testable, for instance using odetest

odetest&comma;ode1

0

(9)

For this example, all the other algorithms in dsolve fail until the ode is matched as a member of the invariant family ODE3 shown lines above

ode2diffyx&comma;x=3yx2yx2+x2yx2arctan1xyx1+2yxx1+3yxyx2x

ode2&DifferentialD;&DifferentialD;xyx=31+x2yx2arctanyxx1+2yxx1+3yxxyx2

(10)

dsolveode2

Methods for first order ODEs:
--- Trying classification methods ---
trying a quadrature
trying 1st order linear
trying Bernoulli
trying separable
trying inverse linear
trying homogeneous types:
trying Chini
differential order: 1; looking for linear symmetries
trying exact
Looking for potential symmetries
trying inverse_Riccati
trying an equivalence to an Abel ODE
differential order: 1; trying a linearization to 2nd order
--- trying a change of variables {x -> y(x), y(x) -> x}
differential order: 1; trying a linearization to 2nd order
trying 1st order ODE linearizable_by_differentiation
--- Trying Lie symmetry methods, 1st order ---
   -> Computing symmetries using: way = 3
   -> Computing symmetries using: way = 4
   -> Computing symmetries using: way = 5
trying symmetry patterns for 1st order ODEs
-> trying a symmetry pattern of the form [F(x)*G(y), 0]
-> trying a symmetry pattern of the form [0, F(x)*G(y)]
-> trying symmetry patterns of the forms [F(x),G(y)] and [G(y),F(x)]
-> trying a symmetry pattern of the form [F(x),G(x)]
-> trying a symmetry pattern of the form [F(y),G(y)]
-> trying a symmetry pattern of the form [F(x)+G(y), 0]
-> trying a symmetry pattern of the form [0, F(x)+G(y)]
<- symmetry pattern of the form [0, F(x)+G(y)] successful

yx=tanRootOf2x3tan_Z+2_Zx3+x2+c__1x

(11)

This is an example from Kamke's book with an arbitrary function H depending on abstract powers

ode3diffyx&comma;xxa1yx1bHxaa+yxbb=0

ode3&DifferentialD;&DifferentialD;xyxxa1yx1bHxaa+yxbb=0

(12)

dsolveode3

Methods for first order ODEs:
--- Trying classification methods ---
trying homogeneous types:
differential order: 1; looking for linear symmetries
trying exact
Looking for potential symmetries
trying an equivalence to an Abel ODE
trying 1st order ODE linearizable_by_differentiation
--- Trying Lie symmetry methods, 1st order ---
   -> Computing symmetries using: way = 3
   -> Computing symmetries using: way = 4
   -> Computing symmetries using: way = 5
trying symmetry patterns for 1st order ODEs
-> trying a symmetry pattern of the form [F(x)*G(y), 0]
-> trying a symmetry pattern of the form [0, F(x)*G(y)]
-> trying symmetry patterns of the forms [F(x),G(y)] and [G(y),F(x)]
1st order, trying the canonical coordinates of the invariance group
   -> Calling odsolve with the ODE, diff(y(x),x) = -y(x)/(y(x)^b)*x^a/x, y(x)
      *** Sublevel 2 ***
      Methods for first order ODEs:
      --- Trying classification methods ---
      trying a quadrature
      trying 1st order linear
      trying Bernoulli
      <- Bernoulli successful
<- 1st order, canonical coordinates successful
<- symmetry patterns of the forms [F(x),G(y)] and [G(y),F(x)] successful

yx=xabRootOf` `_Z1b+_a1bbHa1aab+b+_a1bbaaba1aab+b+_a1bbHa1aab+b+_a1bbaaba1aa_a+a&DifferentialD;_aa2+c__1abxabaa1b

(13)

For this example

ode4xdiffyx&comma;x+yx+2x24xyx4x24a=0

ode4&DifferentialD;&DifferentialD;xyxx+yx+2x24xyx4x24a=0

(14)

dsolveode4&comma;way=patterns

Methods for first order ODEs:*** Sublevel 2 ***
   symmetry methods on request
      -> Computing symmetries using: way = patterns

      <- successful computation of symmetries.1st order, trying reduction of order with given symmetries:

   1st order, trying the canonical coordinates of the invariance group-> Calling odsolve with the ODE, diff(y(x),x) = (-2*x-y(x))/x, y(x)
         *** Sublevel 3 ***
         Methods for first order ODEs:
         --- Trying classification methods ---
         trying a quadrature
         trying 1st order linear
         <- 1st order linear successful
   <- 1st order, canonical coordinates successful
   1st order, trying reduction of order with given symmetries:

   1st order, trying the canonical coordinates of the invariance group<- 1st order, canonical coordinates successful

1&comma;2yx

1&comma;2yx

1&comma;2yx

yx=x2+ax&comma;yx=c__122c__1xax

(15)

the symmetry pattern approach led to a simpler answer than the one which could be obtained through dsolve's default algorithms.

See Also

canoni

dsolve

dsolve,Lie

PDEtools

equinv

gensys

infgen

infolevel

invariants

odeadvisor

symgen

transinv