checkrank - illustrate ranking to be used for a rifsimp calculation

checkrank( system , options )

checkrank( system , vars , options )

Parameters

system - list or set of polynomially nonlinear PDEs or ODEs (may contain inequations)

vars - (optional) list of the dependent variables to solve for

options - (optional) sequence of options to control the behavior of checkrank

• To simplify systems of PDEs or ODEs, a ranking must be defined over all indeterminates present in the system. The ranking allows the algorithm to select an indeterminate for which to solve algebraically when looking at an equation. The checkrank function can be used to understand how the ranking-associated options define a ranking in rifsimp . For more detailed information about rankings, please see rifsimp[ranking] .
• The checkrank function takes in the system as input along with the options:
• The output is a list that contains the derivatives in the system ordered from highest to lowest rank. If degree is given, all possible derivatives of all dependent variables up to the specified degree are used; otherwise, only the derivatives present in the input are used.
• Default Ranking
• When simplifying a system of PDEs or ODEs, you may want to eliminate higher order derivatives in favor of lower order derivatives. Do this by using a ranking by differential order, as is the default for rifsimp . Unfortunately, this says nothing about how ties are broken, for example, between two third order derivatives.
• The breaking of ties is accomplished by first looking at the differentiations of the derivative with respect to each independent variable in turn. If they are of equal order, then the dependent variable itself is examined. The independent variable differentiations are examined in the order in which they appear in the dependency lists of the dependent variables, and the dependent variables are ordered alphabetically.
• So, for example, given an input system containing f(x,y,z),g(x,y,z),h(x,z) , the following will hold:
• Note that, in the above example, the only time the dependent variable comes into play is when all differentiations are equal.
• Changing the Default
• To change the default ranking, use the vars , indep=[...] , or ranking=[...] options. The vars can be specified in two distinct ways:
• 1. Simple List
• If the vars are specified as a simple list, this option overrides the alphabetical order of the dependent variables described in the default ordering section.
• 2. Nested List
• This option gives a solving order for the dependent variables. For example, if vars were specified as [[f],[g,h]] , this would tell rifsimp to rank any derivative of f greater than all derivatives of g and h . Then, and when comparing g and h , the solving order would be differential order, then differentiations, and then dependent variable name as specified by the input [g,h] . This would help in obtaining a subset of the system that is independent of f ; that is, a smaller PDE system in g and h only.
• The indep=[...] option provides for the specification of the independent variables for the problem, as well as the order in which differentiations are examined. So if the option indep=[x,y] were used, then f[x] would be ranked higher than f[y] , but if indep=[y,x] were specified, then the opposite would be true.

> with(Rif):

The first example uses the default ranking for a simple system.

> sys:=[diff(g(x),x,x)-g(x)=0,diff(f(x),x)^3-diff(g(x),x)=0];

> checkrank(sys);

By default, the first equation would be solved for the second order derivative in g(x) , while the second equation would be solved for the first order derivative in f(x). Suppose instead that we always want to solve for g(x) before f(x) . We can use vars .

> checkrank(sys,[[g],[f]]);

So here g(x) and all derivatives are ranked higher than f(x) .

The next example shows the default for a PDE system in f(x,y), g(x,y), h(y) (where we use the degree=2 option to get all second order derivatives):

> checkrank([f(x,y),g(x,y),h(y)],degree=2);

All second order derivatives are first (first 7 entries), then the first derivatives with respect to x ahead of the first derivatives with respect to y , and finally f(x,y) , then g(x,y) , then h(y) .

Suppose we want to eliminate higher derivatives involving y before x . We can use indep for this as follows:

> checkrank([f(x,y),g(x,y),h(y)],indep=[y,x],degree=2);

Now to eliminate f(x,y) and derivatives in terms of g(x,y) and h(y) , and to rank y derivatives higher than x , we can combine the options to obtain the following.

> checkrank([f(x,y),g(x,y),h(y)],[[f],[g,h]],indep=[y,x],degree=2);

rifsimp , rifsimp[overview] , rifsimp[ranking]