DEtools - Maple Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : Mathematics : Differential Equations : Lie Symmetry Method : Commands for ODEs : DEtools/FunctionDecomposition





perform rational function decomposition on overdetermined systems in the presence of parameters


Calling Sequence




Calling Sequence

FunctionDecomposition( R(f(x), x), f(x) )

FunctionDecomposition( R(f(x), x, C), f(x), C )


R(f(x), x, C)


system of equations rational in {f(x), x, C}, where f(x) is any unknown function, and {x, C} are any two variables of type, name



the unknown function of the problem



optional - the parameter C, a constant with respect to x, is an additional unknown to be determined; a solution f(x) may exist for only a particular value of C.



Given a rational function H(x), the problem of rational function decomposition is to determine two rational functions J(x) and F(x), where J'<>0, F'<>0, such that their composition satisfies J o F = H. The FunctionDecomposition command handles the following related problem:


We have a system of i equations of the form (J[i] o F)(x) = H[i](x), where all the J[i] and H[i] are known while the unknown F (F' <> 0) is always the same. The input system is expected to have at least two equations of this form.


The J[i] and H[i] may depend on one unknown parameter, C, such that a solution F exists for only one value of C, which is to be determined. When this variable C to be solved for is indicated, the input system must contain a minimum of three equations involving F, x, and C.


All of {J[i], H[i], F, C} may also depend in a rational way on an arbitrary number, say k, of symbolic parameters a[k]. FunctionDecomposition is designed to efficiently solve this problem, which appears when solving differential equations using an equivalence approach. FunctionDecomposition is used by the Maple ODE solver dsolve. This type of function decomposition problem however appears in various areas and so the command has applications beyond differential equations.


When a solution {C, F(x)} decomposing such an overdetermined rational system exists, FunctionDecomposition returns a sequence, with the value of the parameter C such that F(x) exists - only one value of C is computed - followed by a set with all the solutions F(x) found. When no C parameter is specified, only the set with solutions for F(x) - when it exists - is returned. When the input system (the first argument) contains extra parameters a[k], only solutions {C, F(x)} depending on the a[k] in a rational way are computed.



Consider the following rational system with three equations.




Each of these equations is of the form (J o F)(x) = H(x) with {J[i], H[i]} known. We want to find C, such that a solution F(x), F' <> 0 exists, and compute F. Check the degrees to determine the complexity of the task.




So the first equation is rational in x, with degree 15 in the numerator and degree 15 in the denominator, then degrees 10,10 for the second rational equation, then 12,12. The solution for this problem is:




FunctionDecomposition can quickly solve problems like the previous one. As a more involved and difficult problem, consider the following system of three equations, depending on {F(x), x, C} and in addition depending on two variables {a, b}, on which the solutions for both unknowns C and F actually depend, as shown after this large input.