PDEtools - Maple Programming Help

Home : Support : Online Help : Mathematics : Differential Equations : PDEtools : PDEtools/casesplit

PDEtools

 casesplit
 split into cases and sequentially decouple a system of equations taking into account its integrability conditions

 Calling Sequence casesplit(sys, optional_1, optional_2,...)

Parameters

 sys - single DE, or list or set of DEs; any system of differential equations optional_1, optional_2, ... - (optional) arguments can be given in any order and are described as follows ranking - list or set of solving variables represented by names or functions, or list or set of them caseplot - indicates that in addition to the splitting into cases a graphical representation of the splitting is to be plotted ivars={y1, y2, ...} - indicates that {y1, y2,...} are independent variables regardless of whether they appear in the unknowns of the system ivars=[y1, y2, ...] - the right-hand side is a list; indicates the ranking ordering for the independent variables lex - useful to produce ODEs from PDEs, indicates the use of an elimination ranking for the independent variables instead of the default orderly one lex(f(y1, y2...) - indicates the elimination ranking ordering of the independent variables to be as in f parameters=P - P is a list or set of names or functions that are solving variables with lower priority than any other variable fast=boolean - if boolean = true then run only one round of computations; if false run always two, otherwise let casesplit decide singsol=false - avoid the computation of the singular cases when the system is nonlinear arbitrary=A - avoid splitting into cases with respect to elements of A, where A is a list or set of names or functions ctl=N - compute with a timelimit of N seconds per case mindim=N - discard cases with solution space of dimension less than N rankingused = ... - the right-hand side is a name that will be assigned the ranking used for the unknowns of the system ivarsused = ... - the right-hand side is a name that will be assigned the independent variables of the system with the ordering they were ranked rif - default, force splitting by using the Rif subpackage of DEtools diffalg - force splitting by using the DifferentialAlgebra package

Description

 • The casesplit function receives one DE,  or a set or a list of DEs (it is also possible to include inequations and non-differential equations) and splits the system into regular systems associated with different cases. The union of the non-singular solutions of these regular systems returned is equal to the full set of solutions, including the singular ones, of the original input system. Each regular system automatically satisfies all the integrability conditions. The splitting into cases is performed by using the Rif subpackage of DEtools (default), or using the DifferentialAlgebra package when the keyword 'diffalg' is given as an optional argument. casesplit also works with anticommutative variables set using the Physics package using the approach explained in PerformOnAnticommutativeSystem.
 • The casesplit command is useful for studying the different cases of a given DE system, uncoupling the system in different ways using different orderings for the solving variables (rankings), and determining whether the system is inconsistent. The casesplit command can also be used to remove redundancies and to make the system complete, including simplifying it by using all its integrability conditions. All these tasks are automatically performed each time casesplit is invoked.
 • Ranking is a fundamental concept related to the splitting process performed through casesplit. A ranking is basically an ordering of the variables of the problem (herein called solving variables) in the form of a list of functions or symbol variables, as in $\left[f\left(x\right),g\left(x\right),h\left(x\right),a\right]$ (one can also specify functions by using only their names as in $\left[f,g,h,a\right]$). Different rankings imply different uncoupling orderings and, hence, different manners of splitting and uncoupling the DE system (see checkrank, DifferentialAlgebra[Tools][Display], and the examples below).
 • In the case of a system of ordinary differential equations (ODEs), provided the system is not subdetermined, the default output of casesplit consists of a sequence of uncoupled ODE systems, where the uncoupling ordering used is that of the solving variables in the ranking. The ranking is provided by the user as a list or automatically set by casesplit. That means, for instance, that if a system depending on the functions $\left[f\left(x\right),g\left(x\right),h\left(x\right)\right]$ is given with this list as ranking, the equations in each returned system are of the form $[\mathrm{..}f\left(x\right)\mathrm{..}=\mathrm{..}\left(f\left(x\right),g\left(x\right),h\left(x\right)\right)\mathrm{..},\mathrm{..}g\left(x\right)=\mathrm{..}\left(g\left(x\right),h\left(x\right)\right)\mathrm{..},\mathrm{..}h\left(x\right)\mathrm{..}=\mathrm{..}\left(h\left(x\right)\right)]$. So, the last equation involves only $h\left(x\right)$, the next to the last equation involves $g\left(x\right)$ and $h\left(x\right)$, and the first equation involves the three functions. This is called sequential uncoupling.
 • In the case of a system of partial differential equations (PDEs), the situation is the same as with ODEs but the concept of sequential uncoupling requires clarification. Concretely, instead of one equation related to each function, one could receive many equations. For instance, if a system depending on the functions $\left[f\left(x,y,z\right),g\left(x,y,z\right),h\left(x,y,z\right)\right]$ is given and with this list as ranking, the equations in each returned system are of the form $[\mathrm{eqs}\left(f=\mathrm{..}\left(f,g,h\right)\mathrm{..}\right),\mathrm{eqs}\left(g=\mathrm{..}\left(g,h\right)\mathrm{..}\right),\mathrm{eqs}\left(h=\mathrm{..}\left(h\right)\mathrm{..}\right)]$, where $\mathrm{eqs}\left(h=\mathrm{..}\left(h\right)\mathrm{..}\right)$ means equations (possibly PDEs) only depending on 'h' and so on.

Input and Output

 • The first argument sys can be one DE, or a set or a list of DEs, possibly including inequations and non-differential equations (such as algebraic constraints). Equations are entered by using $\mathrm{expr1}=\mathrm{expr2}$, or expr1. In this case it is assumed that expr1 = 0. Inequations are entered by using $\mathrm{expr1}\ne \mathrm{expr2}$.
 • The output of casesplit is a sequence of expressions representing the different cases (possibly only one) and corresponding equations and inequations (these are the ones returned by the corresponding Equations and Inequations commands of DifferentialAlgebra). Each case is returned as a function of two operands and displayed as $[\mathrm{eq1},\mathrm{eq2},...]&\mathrm{where}[\mathrm{ineq1}\ne 0,\mathrm{ineq2}\ne 0,...]$. Both operands are lists. This printing is obtained, however, by using a print/foo mechanism, and the true structure of each returned case is a function casesplit/ans( [ eq1, eq2, ...], [ ineq1 <> 0, ineq2 <> 0, ...] ).
 • The actual splitting of a system obtained when calling casesplit is basically computed through various calls to different commands of the DifferentialAlgebra package, or optionally the DEtools[Rif] package. These are the two Maple differential elimination packages.
 • Apart from simplifying the steps required by a direct use of DifferentialAlgebra, casesplit radically extends the domain of computation of DifferentialAlgebra or DEtools[Rif]. Concretely, casesplit can split a system into regular cases even when this system contains non-polynomial objects, such as fractional or abstract powers, most Maple known functions (for example, exponentials, logarithms, trigonometric, and special functions) and also any arbitrary composition of these non-polynomial objects, for example, $\mathrm{exp}\left(\mathrm{sqrt}\left(\mathrm{BesselJ}\left(...\right)\right)\right)$.
 • This extension of the domain of computation is performed by rewriting all non-polynomial objects by using auxiliary functions of the form $\mathrm{_Fn}$ (n being an integer) and adding to the input system the polynomial (algebraic and differential) equations these $\mathrm{_Fn}$ functions satisfy (see dpolyform). For example, ${ⅇ}^{x}$ is replaced by $\mathrm{_F1}\left(x\right)$, and the auxiliary ODE $\frac{{ⅆ}^{2}}{ⅆ{x}^{2}}\mathrm{_F1}\left(x\right)=\mathrm{_F1}\left(x\right)$ is added to the system. These auxiliary functions, the equations they satisfy, and their consequences are removed before returning the output.

Optional arguments

 • All arguments after the first one are optional and can be included in any order.
 • When the solving variables are not specified, casesplit takes all unknown functions found in the DE system as solving variables, and uses its own heuristic methods to determine what could be the best uncoupling ordering for the given system. However, it is possible to specify a ranking, which indicates the solving variables and their order. When the ranking to be specified involves only one variable, it can be given as this variable, or its name, for example, $f$ for $f\left(x,y,z\right)$. In all cases the ranking can be specified as a list or a set of solving variables, functions can be indicated by only their names, and this set or list can include 'symbol' solving variables (equivalent to functions with all derivatives equal to zero).
 • When the ranking is given as a set or list, each of its elements can, in turn, also be a set or list of names or functions. For example, $\left[\left\{f,g\right\},h,\left[j,k\right]\right]$, $\left[\left\{f,g\right\},h,\left\{j,k\right\}\right]$, and $\left\{h,\left[f,g\right],\left\{j,k\right\}\right\}$ are valid rankings. In such cases, the solving ordering for the elements inside each set $\left\{...\right\}$ is decided by casesplit. Only one level of nested list or sets is allowed.
 • Using standard terminology, a ranking as in $\left[f,g,h\right]$ - also called lexicographic or elimination ranking - leads to a splitting using a lexicographic ordering. When a ranking is given as a nested list, for example $\left[\left[f,g,h\right]\right]$, the splitting is performed by using a total degree ordering. These rankings are also called total degree or orderly rankings. Total degree rankings, however, generally do not result in the uncoupling of the given system. They simplify the system by using integrability conditions, and so check for inconsistencies as well as lead to a version of the system with the lowest differential order. This usually leads to faster computations than when using lexicographic ordering. To understand the meaning associated with a given ranking, use the checkrank or DifferentialAlgebra[Tools][Display] commands. Input rankings in casesplit have exactly the same meaning they have in calls to commands of the DifferentialAlgebra package.
 •