Solving ODEs Matching the Patterns y=G(x,diff(y,x)), x=G(y,diff(y,x)), y=G(diff(y,x)), x=G(diff(y,x)), 0=G(x,diff(y,x)), 0=G(y,diff(y,x))
Description
Examples
See Differentialgleichungen, by E. Kamke, p. 30. The technique consists mainly of looking for a parametric solution. Consider, for instance, the case y=G(x,diff(y,x)).
ode := y=G(x,diff(y(x),x));
ode≔y=G⁡x,ⅆⅆxy⁡x
Choosing the parametrization
para := diff(y(x),x) = t;
para≔ⅆⅆxy⁡x=t
ode1 := subs(para,x=x(t),y=y(t), ode);
ode1≔y⁡t=G⁡x⁡t,t
From the equations above and using the chain rule dydx=dydt dtdx, it is possible to obtain another ODE for x⁡t as follows:
ode_draft := diff(x(t),t) = diff(rhs(ode1),t)/t:
ode2 := diff(x(t),t)=solve(ode_draft,diff(x(t),t));
ode2≔ⅆⅆtx⁡t=−D2⁡G⁡x⁡t,tD1⁡G⁡x⁡t,t−t
You should therefore solve ode2 for x⁡t and determine y⁡t by introducing the resulting x⁡t in ode1. Note that, when G does not depend on x⁡t,ode2 is a quadrature. ODEs matching the pattern x=G⁡y,ⅆyⅆx are solved using the same ideas, and ODEs matching the patterns 0=G⁡x,ⅆyⅆx,0=G⁡y,ⅆyⅆx,x=G⁡ⅆyⅆx, or y=G⁡ⅆyⅆx are just particular cases.
Although any ODE can be attempted using the scheme outlined above, generally speaking, there are four cases which can be better dealt with by looking for a parametric solution; they are:
y=G⁡x,ⅆyⅆx
x=G⁡y,ⅆyⅆx
y=G⁡ⅆyⅆx (particular case)
x=G⁡ⅆyⅆx (particular case)
Parametric solutions are available by giving the optional argument 'parametric' to dsolve. By default, when the ODE is of high degree in dydx, dsolve tries the parametric scheme, along with a set of related methods for this type of ODE. However, this scheme may also be of help in some cases in which dydx can be isolated.
1) Kamke's ODE 554: y=G(x,y')
with⁡DEtools,odeadvisor
odeadvisor
ode≔xn−1⁢diff⁡y⁡x,xn−n⁢x⁢diff⁡y⁡x,x+y⁡x
ode≔xn−1⁢ⅆⅆxy⁡xn−n⁢x⁢ⅆⅆxy⁡x+y⁡x
odeadvisor⁡ode
y=_G(x,y')
ans≔dsolve⁡ode
ans≔y⁡x=−c__1⁢xc__11nxn⁢xn−1+n⁢c__1⁢xc__11n
odetest⁡ans,ode
0
ode≔16⁢y⁡x2⁢diff⁡y⁡x,x3+2⁢x⁢diff⁡y⁡x,x−y⁡x
ode≔16⁢y⁡x2⁢ⅆⅆxy⁡x3+2⁢x⁢ⅆⅆxy⁡x−y⁡x
_1st_order,_with_linear_symmetries
dsolve⁡ode
y⁡x=−214⁢314⁢−x3143,y⁡x=214⁢314⁢−x3143,y⁡x=−I3⁢214⁢314⁢−x314,y⁡x=I3⁢214⁢314⁢−x314,y⁡x=16⁢c__13+2⁢c__1⁢x,y⁡x=−16⁢c__13+2⁢c__1⁢x
3) Kamke's ODE 568: y=G⁡y⁢' and d'Alembert type (see odeadvisor,dAlembert)
ode≔diff⁡y⁡x,x2⁢sin⁡diff⁡y⁡x,x−y⁡x
ode≔ⅆⅆxy⁡x2⁢sin⁡ⅆⅆxy⁡x−y⁡x
_quadrature
ans≔y⁡x=0,x−∫` `y⁡x1RootOf⁡sin⁡_Z⁢_Z2−_aⅆ_a−c__1=0
Implicit or explicit answers can be tested using odetest; when there are many answers one can map as follows
map⁡odetest,ans,ode
0,0
See Also
DEtools
dsolve
quadrature
linear
separable
Bernoulli
exact
homogeneous
homogeneousB
homogeneousC
homogeneousD
homogeneousG
Chini
Riccati
Abel
Abel2A
Abel2C
rational
Clairaut
dAlembert
sym_implicit
odeadvisor,types
Download Help Document