checkrank - illustrate ranking to be used for a rifsimp calculation

Calling Sequences

checkrank( system , options )

checkrank( system , vars , options )


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


vars List of dependent variables (See Following)
indep=[indep vars] List of independent variables (See Following)
ranking=[...] Specification of exact ranking (See
rifsimp[ranking] )
degree=n Use all derivatives to differential order n.

[x,y,z] Order of independent variables
[f,g,h] Order of dependent variables
f[x] < g[xx] By differential order
g[xy] < f[xxz] By differential order
f[xy] < g[xx] By differentiation with respect to x (x>y)
Note: differential order is equal
f[xzz] < g[xyz] By differentiation with respect to y
g[xx] < f[xx] By dependent variable
Note: differentiations are exactly equal
h[xz] < f[xz] By dependent variable


> 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];

sys := [diff(g(x),`$`(x,2))-g(x) = 0, diff(f(x),x)^...

> checkrank(sys);

[diff(g(x),`$`(x,2)), diff(f(x),x), diff(g(x),x), g...

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]]);

[diff(g(x),`$`(x,2)), diff(g(x),x), g(x), diff(f(x)...

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);

[diff(f(x,y),`$`(x,2)), diff(g(x,y),`$`(x,2)), diff...
[diff(f(x,y),`$`(x,2)), diff(g(x,y),`$`(x,2)), diff...
[diff(f(x,y),`$`(x,2)), diff(g(x,y),`$`(x,2)), diff...

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);

[diff(f(x,y),`$`(y,2)), diff(g(x,y),`$`(y,2)), diff...
[diff(f(x,y),`$`(y,2)), diff(g(x,y),`$`(y,2)), diff...
[diff(f(x,y),`$`(y,2)), diff(g(x,y),`$`(y,2)), diff...

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);

[diff(f(x,y),`$`(y,2)), diff(f(x,y),x,y), diff(f(x,...
[diff(f(x,y),`$`(y,2)), diff(f(x,y),x,y), diff(f(x,...
[diff(f(x,y),`$`(y,2)), diff(f(x,y),x,y), diff(f(x,...

See Also

rifsimp , rifsimp[overview] , rifsimp[ranking]