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
|
|
•
|
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));
|
|
Choosing the parametrization
|
>
|
para := diff(y(x),x) = t;
|
>
|
ode1 := subs(para,x=x(t),y=y(t), ode);
|
|
From the equations above and using the chain rule , it is possible to obtain another ODE for 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));
|
|
You should therefore solve for and determine by introducing the resulting in . Note that, when G does not depend on is a quadrature. ODEs matching the pattern are solved using the same ideas, and ODEs matching the patterns , or 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:
|
|
Parametric solutions are available by giving the optional argument 'parametric' to dsolve. By default, when the ODE is of high degree in , 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 can be isolated.
|
|
|
Examples
|
|
1) Kamke's ODE 554: y=G(x,y')
3) Kamke's ODE 568: and d'Alembert type (see odeadvisor,dAlembert)
Implicit or explicit answers can be tested using odetest; when there are many answers one can map as follows
|
|
|
|
|
|