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

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

 (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);

 (2) 
>

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

 (3) 
>

ODE5 := DEtools[equinv](X5, y(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.
>


 (5) 
>


 (6) 
>


> Computing symmetries using: way = patterns
 
 (7) 
>


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
 
 (8) 
These implicit solutions are in principle testable, for instance using odetest
>


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


 (10) 
>


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
 
 (11) 
This is an example from Kamke's book with an arbitrary function H depending on abstract powers
>


 (12) 
>


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
 
 (13) 
For this example
>


 (14) 
>


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*xy(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
 
 (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

