convert/ODE - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Programming : Data Types : Conversion : convert/ODEs


convert ODEs to other ODEs of different type


Calling Sequence




Calling Sequence

convert(ODE, TYPE, y(x), keep, simplifier = ...)

convert(ODE, y_x, implicit)




ODE (ordinary differential equation)



one of: y_x, Riccati, linearODE, NormalForm, Abel, Abel_RNF, FirstKind, SecondKind, DESol, MobiusX, MobiusY, and MobiusR



dependent variable of the ODE; required only if ODE contains more than one function that is differentiated



(optional); specify that the returned ODE contain the same independent and dependent variables as the given ODE

simplifier = ...


(optional); specifies a simplifier to be used instead of the default; two shortcuts are available: parfrac and size



avoid the automatic isolation of the highest derivative; valid only if the TYPE parameter has the value yx



The convert ODE routines provide conversion schemes for ordinary differential equations (ODEs) that are frequently used in the literature, or that may be useful for other reasons. As a convention, results are returned as a sequence of two elements: the resulting ODE and the transformation of variables used to obtain it (see the examples below).


The conversion schemes available are:


y_x - interchanges the roles between the dependent and independent variable;


NormalForm - rewrites in Normal form linear ODEs (any order) as well as first order Riccati and Abel type ODEs;


Riccati - converts a second order linear ODE to a first order one of Riccati type;


linearODE - converts a first order Riccati type ODE to a second order linear one;


Abel - converts a first order nonlinear ODE to an equivalent Abel ODE when that is possible using some transformations;


Abel_RNF - rewrites an Abel type first order ODE in Rational Normal Form;


FirstKind - rewrites Second Kind Abel ODEs in First Kind form;


SecondKind - rewrites First Kind Abel ODEs in Second Kind form;


MobiusX - converts an arbitrary ODE applying to it a Mobius transformation of the independent variable- say x;


MobiusY - converts an arbitrary ODE applying to it a Mobius transformation of the dependent variable- say yx;


MobiusR - converts a second order linear ODE into another one by sequentially applying three transformations: Riccati, MobiusY, and linearODE;


DESol - rewrites as a DESol the derivative of a DESol.


Regarding the conversion to Rational Normal Form of Abel ODEs, note that the returned ODE has rational coefficients if and only if the invariants of the given Abel ODE are rational in the independent variable. For a more powerful approach towards rational coefficients see also DEtools[power_equivalent].


Example 1. Interchanging the roles between the dependent and independent variables of an ODE

Given an ODE, where the unknown is, say, yx, you can always rewrite it considering y and x=xy as the actual independent and dependent variables, changing dydx=dydx, and so on. The resulting ODE in y,xy is the one returned by convert( ode, y_x) and is obtained by applying the transformation


followed by renaming the variables x=y,y=x. This conversion operation can in many situations transform an otherwise difficult problem into an easy one and vice versa. For instance, this nasty Abel type ODE in yx

ode := diff(y(x),x) = (a[0]+a[1]*y(x)+a[2]*y(x)^2+a[3]*y(x)^3)/((s[1]*x+s[0])*y(x)+r[1]*x+r[0]);