Solving First Order ODEs by Matching Them to ODE Families Invariant under Certain Symmetry Groups - Maple Programming Help

Home : Support : Online Help : Mathematics : Differential Equations : dsolve : dsolve/first_order_symmetry_patterns

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);
 ${f}{→}{\mathrm{ξ}}{}\left(\frac{{\partial }}{{\partial }{x}}{}{f}\right){+}{\mathrm{η}}{}\left(\frac{{\partial }}{{\partial }{y}}{}{f}\right)$ (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);
 ${\mathrm{ODE1}}{:=}\frac{{ⅆ}}{{ⅆ}{x}}{}{y}{}\left({x}\right){=}\left(\frac{\left(\frac{{ⅆ}}{{ⅆ}{x}}{}{F}{}\left({x}\right)\right){}\left({{∫}}_{{}}^{{y}{}\left({x}\right)}\frac{{1}}{{G}{}\left({\mathrm{_a}}\right)}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{ⅆ}{\mathrm{_a}}\right)}{{F}{}\left({x}\right)}{+}{\mathrm{_F1}}{}\left({x}\right)\right){}{G}{}\left({y}{}\left({x}\right)\right)$ (2)
 > ODE3 := DEtools[equinv](X3, y(x));
 ${\mathrm{ODE3}}{:=}\frac{{ⅆ}}{{ⅆ}{x}}{}{y}{}\left({x}\right){=}\left({{∫}}_{{}}^{{y}{}\left({x}\right)}\frac{\frac{{ⅆ}}{{ⅆ}{x}}{}{F}{}\left({x}\right)}{{\left({F}{}\left({x}\right){+}{G}{}\left({\mathrm{_a}}\right)\right)}^{{2}}}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{ⅆ}{\mathrm{_a}}{+}{\mathrm{_F1}}{}\left({x}\right)\right){}\left({F}{}\left({x}\right){+}{G}{}\left({y}{}\left({x}\right)\right)\right)$ (3)
 > ODE5 := DEtools[equinv](X5, y(x));
 ${\mathrm{ODE5}}{:=}\frac{{ⅆ}}{{ⅆ}{x}}{}{y}{}\left({x}\right){=}\frac{{J}{}\left({y}{}\left({x}\right)\right)}{{G}{}\left({y}{}\left({x}\right)\right){+}{\mathrm{_F1}}{}\left({-}\left({{∫}}_{{}}^{{y}{}\left({x}\right)}\frac{{G}{}\left({\mathrm{_a}}\right)}{{J}{}\left({\mathrm{_a}}\right)}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{ⅆ}{\mathrm{_a}}\right){+}{x}\right)}$ (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.

 > ${\mathrm{infolevel}}_{\mathrm{dsolve}}≔2$
 ${{\mathrm{infolevel}}}_{{\mathrm{dsolve}}}{:=}{2}$ (5)
 > ${\mathrm{ode}}_{1}≔\frac{ⅆ}{ⅆx}y\left(x\right)=-\frac{{\left(y\left(x\right)+b\right)}^{2}}{\left(x+a\right)\left(1+\mathrm{sin}\left(y\left(x\right)\right){\left(y\left(x\right)+b\right)}^{2}\left(x+a\right)\right)}$
 ${{\mathrm{ode}}}_{{1}}{:=}\frac{{ⅆ}}{{ⅆ}{x}}{}{y}{}\left({x}\right){=}{-}\frac{{\left({y}{}\left({x}\right){+}{b}\right)}^{{2}}}{\left({x}{+}{a}\right){}\left({1}{+}{\mathrm{sin}}{}\left({y}{}\left({x}\right)\right){}{\left({y}{}\left({x}\right){+}{b}\right)}^{{2}}{}\left({x}{+}{a}\right)\right)}$ (6)
 > $\mathrm{DEtools}[\mathrm{symgen}]\left({\mathrm{ode}}_{1},\mathrm{way}=\mathrm{patterns}\right)$
 -> Computing symmetries using: way = patterns
 $\left[{\mathrm{_ξ}}{=}{{ⅇ}}^{{-}\frac{{1}}{{y}{+}{b}}}{}{\left({x}{+}{a}\right)}^{{2}}{,}{\mathrm{_η}}{=}{0}\right]$ (7)
 > $\mathrm{collect}\left(\mathrm{dsolve}\left({\mathrm{ode}}_{1},\mathrm{way}=\mathrm{patterns},\mathrm{implicit}\right),\mathrm{Intat}\right)$
 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
 $\left[{{ⅇ}}^{{-}\frac{{1}}{{y}{+}{b}}}{}{\left({x}{+}{a}\right)}^{{2}}{,}{0}\right]$
 ${{∫}}_{{}}^{{y}{}\left({x}\right)}{\mathrm{sin}}{}\left({\mathrm{_a}}\right){}{{ⅇ}}^{\frac{{1}}{{\mathrm{_a}}{+}{b}}}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{ⅆ}{\mathrm{_a}}{-}\frac{{{ⅇ}}^{\frac{{1}}{{y}{}\left({x}\right){+}{b}}}}{{x}{+}{a}}{-}{\mathrm{_C1}}{=}{0}$ (8)

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

 > $\mathrm{odetest}\left(,{\mathrm{ode}}_{1}\right)$
 ${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

 > ${\mathrm{ode}}_{2}≔\frac{ⅆ}{ⅆx}y\left(x\right)=3\left(\frac{{y\left(x\right)}^{2}}{{y\left(x\right)}^{2}}+\frac{{x}^{2}}{{y\left(x\right)}^{2}}\right)\mathrm{arctan}\left(\frac{1y\left(x\right)}{x}\right)-\frac{-1+2y\left(x\right)}{x}-\frac{\left(-1+3y\left(x\right)\right)x}{{y\left(x\right)}^{2}}$
 ${{\mathrm{ode}}}_{{2}}{:=}\frac{{ⅆ}}{{ⅆ}{x}}{}{y}{}\left({x}\right){=}{3}{}\left({1}{+}\frac{{{x}}^{{2}}}{{{y}{}\left({x}\right)}^{{2}}}\right){}{\mathrm{arctan}}{}\left(\frac{{y}{}\left({x}\right)}{{x}}\right){-}\frac{{-}{1}{+}{2}{}{y}{}\left({x}\right)}{{x}}{-}\frac{\left({-}{1}{+}{3}{}{y}{}\left({x}\right)\right){}{x}}{{{y}{}\left({x}\right)}^{{2}}}$ (10)
 > $\mathrm{dsolve}\left({\mathrm{ode}}_{2}\right)$
 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
 ${y}{}\left({x}\right){=}{\mathrm{tan}}{}\left({\mathrm{RootOf}}{}\left({-}{2}{}{{x}}^{{3}}{}{\mathrm{tan}}{}\left({\mathrm{_Z}}\right){+}{2}{}{\mathrm{_Z}}{}{{x}}^{{3}}{+}{{x}}^{{2}}{+}{\mathrm{_C1}}\right)\right){}{x}$ (11)

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

 > ${\mathrm{ode}}_{3}≔\frac{ⅆ}{ⅆx}y\left(x\right)-{x}^{a-1}{y\left(x\right)}^{1-b}H\left(\frac{{x}^{a}}{a}+\frac{{y\left(x\right)}^{b}}{b}\right)=0$
 ${{\mathrm{ode}}}_{{3}}{:=}\frac{{ⅆ}}{{ⅆ}{x}}{}{y}{}\left({x}\right){-}{{x}}^{{a}{-}{1}}{}{{y}{}\left({x}\right)}^{{1}{-}{b}}{}{H}{}\left(\frac{{{x}}^{{a}}}{{a}}{+}\frac{{{y}{}\left({x}\right)}^{{b}}}{{b}}\right){=}{0}$ (12)
 > $\mathrm{dsolve}\left({\mathrm{ode}}_{3}\right)$
 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
 ${y}{}\left({x}\right){=}{\left({-}\frac{{-}{\mathrm{RootOf}}{}\left(\left({{∫}}_{{}}^{{\mathrm{_Z}}}\frac{{1}}{{\left({{a}}^{\frac{{1}}{{a}}}\right)}^{{a}}{}{H}{}\left(\frac{{\left({{a}}^{\frac{{1}}{{a}}}\right)}^{{a}}{}{b}{+}{\left({\left({-}{b}{+}{\mathrm{_a}}\right)}^{\frac{{1}}{{b}}}\right)}^{{b}}{}{a}}{{a}{}{b}}\right){}{\left({\left({-}{b}{+}{\mathrm{_a}}\right)}^{\frac{{1}}{{b}}}\right)}^{{-}{b}}{}{\mathrm{_a}}{-}{\left({{a}}^{\frac{{1}}{{a}}}\right)}^{{a}}{}{H}{}\left(\frac{{\left({{a}}^{\frac{{1}}{{a}}}\right)}^{{a}}{}{b}{+}{\left({\left({-}{b}{+}{\mathrm{_a}}\right)}^{\frac{{1}}{{b}}}\right)}^{{b}}{}{a}}{{a}{}{b}}\right){}{\left({\left({-}{b}{+}{\mathrm{_a}}\right)}^{\frac{{1}}{{b}}}\right)}^{{-}{b}}{}{b}{+}{a}}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{ⅆ}{\mathrm{_a}}\right){}{{a}}^{{2}}{+}{\mathrm{_C1}}{}{a}{}{b}{-}{{x}}^{{a}}{}{b}\right){}{a}{+}{{x}}^{{a}}{}{b}}{{a}}\right)}^{\frac{{1}}{{b}}}$ (13)

For this example

 > ${\mathrm{ode}}_{4}≔{\left(x\left(\frac{ⅆ}{ⅆx}y\left(x\right)\right)+y\left(x\right)+2x\right)}^{2}-4xy\left(x\right)-4{x}^{2}-4a=0$
 ${{\mathrm{ode}}}_{{4}}{:=}{\left(\left(\frac{{ⅆ}}{{ⅆ}{x}}{}{y}{}\left({x}\right)\right){}{x}{+}{y}{}\left({x}\right){+}{2}{}{x}\right)}^{{2}}{-}{4}{}{x}{}{y}{}\left({x}\right){-}{4}{}{{x}}^{{2}}{-}{4}{}{a}{=}{0}$ (14)
 > $\left[\mathrm{dsolve}\left({\mathrm{ode}}_{4},\mathrm{way}=\mathrm{patterns}\right)\right]$
 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
 $\left[{1}{,}{-}{2}{-}\frac{{y}}{{x}}\right]$
 $\left[{1}{,}{-}{2}{-}\frac{{y}}{{x}}\right]$
 $\left[{1}{,}{-}{2}{-}\frac{{y}}{{x}}\right]$
 $\left[{y}{}\left({x}\right){=}{-}\frac{{{x}}^{{2}}{+}{a}}{{x}}{,}{y}{}\left({x}\right){=}\frac{{{\mathrm{_C1}}}^{{2}}{-}{2}{}{\mathrm{_C1}}{}{x}{-}{a}}{{x}}\right]$ (15)

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