DifferentialThomas/Ranking - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : DifferentialThomas/Ranking





constructs a ranking for the dependent and independent variables used by all the DifferentialThomas commands


Calling Sequence




Calling Sequence

Ranking ([...], [...])




the first list is a list of independent variables - it can be a plain list, say as in [x, y, z], or has sublists in say [[[x], [y]], in which case it implies on an elimination ranking with respect to the independent variables



the second list is a list of dependent variables - as in the case of the first list, it can also be a plain list, say as in [f, g, h], or has sublists in say [[[f, g], [h]], in which case it implies on an elimination ranking with respect to the dependent variables



The concept of ranking in DifferentialThomas is the same one explained in the help page of PDEtools:-casesplit (see Optional arguments)



The function call Ranking ([...], [...]) constructs and ranking for the dependent and independent variables. The concept of ranking in DifferentialThomas is the same one explained in the help page of PDEtools:-casesplit (see Optional arguments)


Each dependent variable indicated in the second list can be entered as a function's name, say f, or with its dependency explicit, say, as fx,y, and can depend on all or just some of the independent variables specified in the first list (the independent variables), even on none of them, in which case if you enter it as a function use f.


Passing the dependent variables to Ranking in function notation is relevant only when some of the dependent variables do not depend on all the independent variables specified in the first list of independent variables.


Besides setting the ranking used by all the DifferentialThomas commands, the output of Ranking is a copy of the ranking set. This is useful, for instance, to use this returned ranking as an extra argument to most of the DifferentialThomas commands, so that they compute with any particular desired ranking, regardless of what is the last ranking set with Ranking. For example by calling Ranking several times with different rankings and assigning the outputs, then calling ThomasDecomposition with each of these rankings to compare results.
NOTE: nonlinear problems are rather sensitive to the ranking, sometimes changing the ranking transform a problem that seems unsolvable in practice into one that is fully solvable, and there is no conclusive way to determine in advance which ranking better serves the purpose of decoupling the nonlinear system.



Together, the lists of independent and dependent variables provide the ranking of R, that is, an ordering for the derivatives of the dependent variables with respect to the independent variables. In brief, the elements in the second list (dependent variables or sublists of them) are ranked between each other using an elimination raking and those within a sublist are ranked used an orderly ranking.


An elimination ranking is one where derivatives of leftmost dependent variables, or of all the dependent variables in a leftmost sublist within blocks, rank higher than derivatives of variables to their right. An orderly ranking is one where derivatives of higher differential order rank higher than derivatives of lower differential order, and if the order is the same, then derivatives of leftmost variables rank higher. Hence for example if the ranking passed consists of these two lists, [x,t], [u, [v, w]]



the list of second and first order derivatives ut,t,ux,x,ut,x,vt,t,vx,x,vt,x,wt,t,wx,x,wt,x,ut,ux,vt,vx,wt,wx,  rank according to ux,x,ux,t,ut,t,ux,ut,vx,x,vx,t,vt,t,wx,x,wx,t,wt,t,vx,vt,wx,wt (see also DifferentialAlgebra:-Tools:-SortByRank)


When a system of differential polynomials is handled by DifferentialThomas commands, rankings are typically used to decide which functions and derivatives are expressed in terms of which other ones. When the system is nonlinear and handled by ThomasDecomposition, taking into account the ranking will also frequently result in a splitting of the system into cases (simple differential systems), that then naturally depend on the ordering of variables within the ranking.

Typical useful rankings


When simplifying a DE system with respect to its integrability conditions one obtains a kind of normal form for the system, expressed with the lowest possible differential order, and automatically detects if the system is inconsistent (has no solution). For this purpose use an orderly ranking, for instance indicating the list of dependent variables as [[u, v, w]].


When solving a coupled ODE system, to perform a chain resolution one needs the system in triangularized form, that is, containing one subsystem that involves only one variable, say w, that subsystem is part of a larger subsystem that involves two variables, say v and w, and in turn that is part of the whole system that involves the three variables u, v and w. To accomplish this triangularized form equivalent to having decoupled the system use an elimination ranking passing the list of dependent variables as [u, v, w].


When studying a coupled ordinary differential equation (ODE) system, to express the differential equations for one variable, say, u, in terms of the other variables, say v and w, use a mixed ranking passing [u, [v, w]].


When solving a coupled partial differential equation (PDE) system, it is interesting to compute first the ODEs satisfied by the solutions of the system. For this purpose use a lexicographic ranking by enclosing the independent variables within lists to form an elimination ranking with respect to the independent variables, for example as in [[x], [y], [z]] or [[x, y], z].


For further information on rankings see the Optional arguments section of PDEtools:-casesplit and the Rankings section of the DifferentialAlgebra Glossary.


This command is part of the DifferentialThomas package. It can be called using the form Ranking(...) after executing the command with(DifferentialThomas). It can also be directly called using the form DifferentialThomas[Ranking](...).





Prior to any computations with the DifferentialThomas package, the appropriate differential indeterminates (dependent variables) and derivation variables (independent variables) with the ranking for them must be defined with the command Ranking as shown in the following examples.

Detection of inconsistencies in a differential system: orderly rankings


Consider the 3 following equations.










Before any manipulation of these equations, indicate the dependent and independent variables, and an ordering (ranking) for them variables all inside a list within a list, as in u,v




Call now the ThomasDecomposition to simplify the system taking into account all the integrability conditions implied in it (note you can pass the ranking R as a second argument, or omit it completely in which case the last ranking computed using Ranking will be used)



This result indicates that the system bears a contradiction; p1, p2, and p3 have no common solution, the system is inconsistent; see details in the Examples section of ThomasDecomposition.

Solving ordinary differential systems: elimination ranking


To perform a chain resolution of a system of ordinary differential equations, use an elimination ranking. Consider the differential system defined by the following set S of differential polynomials in the unknown functions xt,yt,zt.




Using an elimination ranking where zt>yt>xt, you rewrite the system in such a way that there is one equation in xt alone, an equation determining yt in terms of xt, and finally an equation determining zt in terms of yt and xt. To achieve this elimination use an elimination ranking, that is one where all the dependent variables are enclosed in a list in equal footing, and first the variables that you want to be expressed in terms of the next ones, so as in z,y,x.





In the result above we see three cases. The equations of the three cases satisfying this elimination ranking mentioned are










Note that the equations are returned without isolating the highest-ranked derivative (this is different from the similar command DifferentialAlgebra:-Equations)


For more details see ThomasDecomposition

See Also