rifsimp[nonlinear] - information and options specific to nonlinear equations
x^3 > x^2*y > x^2*z > x*y^2 > x*y*z > x*z^2 > y^3 > y^2*z > y*z^2
> z^3 > x^2 > x*y > x*z > y^2 > y*z > z^2 > x > y > z > 1
z^3 > y*z^2 > x*z^2 > y^2*z > x*y*z > x^2*z > y^3 > x*y^2 > x^2*y
> x^3 > z^2 > y*z > x*z > y^2 > x*y > z^2 > z > y > x > 1
x^3 > x^2*y > x*y^2 > y^3 > x^2*z > x*y*z > y^2*z > x*z^2 > y*z^2
> z^3 > x^2 > x*y > y^2 > x*z > y*z > z^2 > x > y > z > 1
x^3 > x^2*y > x^2*z > x^2 > x*y^2 > x*y*z > x*y > x*z^2 > x*z > x
> y^3 > y^2*z > y^2 > y*z^2 > y*z > y > z^3 > z^2 > z > 1
diffdeg any criterion comparing differentiations of more than one
independent variable
diffvar any criterion involving differentiations of a single independent
variable
depvar any criterion only involving dependent variables
other any criterion which mixes independent and dependent variables
all all possible criteria
none no criteria
{f[xx], f[xy], f[yy]}, {f[x], f[y]}, {f}
f[xx]^2*f[xy]*f[y]*f < f[yy]^4 Degree in second order derivatives
is 3 < 4
f[xy]*f[yy] < f[xx]^3 Degree in second order derivatives
is 2 < 3
f[xy]^2*f[yy]*f[y]*f^20 < Degree in first order derivatives
f[yy]^3*f[x]^2*f^3 is 1 < 2.
{f[xx]},{f[xy]},{f[yy]},{f[x]},{f[y]},{f}
f[xx]^2 f[xy] f[y] f < f[xx]^3 f[x] f Degree in f[xx] is 2 < 3.
f[xx]^2 f[yy] < f[xx]^2 f[xy] Degree in f[xy] is 0 < 1.
f[xy]^2 f[yy] f[x] f[y] f < Degree in f[x] is
f[xy]^2 f[yy] f[x]^2 f 1 < 2.
[{f[xx], f[xy], f[yy]}, {f[x], f[y]}, {f}, {f[xx]}, {f[xy]}, {f[yy]},
{f[x]}, {f[y]}, {f}]}
[{f[xx], f[xy], f[yy]}, {f[xx]}, {f[xy]}, {f[yy]}, {f[x], f[y]},
{f[x]}, {f[y]}, {f}, {f}]
f[xx]^2 f[xy] f[y] f < f[yy]^4 Degree in second order derivatives
is 3 < 4.
f[xy]^2 f[yy] f[y]^6 < f[xx]^3 Degree in f[xx] is 0 < 3*.
f[yy]^3 f[y]^2 f^20 < Degree in first order derivative
f[yy]^3 f[x]^2 f^3 f[x] is 0 < 2*.
The following example arises from the parameterization of an ellipse (where we have used PDEtools[declare] to compact the output and display the derivatives in primed notation.
>
with(Rif):
PDEtools[declare](x(t),y(t),z(t),prime=t);
>
sys1:=[diff(y(t),t)-x(t)^2-x(t),
y(t)^4-2*y(t)^2*diff(z(t),t)+diff(z(t),t)^2
-y(t)^2+2*diff(z(t),t),
diff(x(t),t)^2+2*y(t)*diff(x(t),t)+y(t)^4];
Calling with the default ranking gives the following:
> ans1:=rifsimp(sys1);
So we have isolated ODE for y' , x'' and z'' , and four constraints involving x , y , x' , and z' .
> nops(ans1[Constraint]);
If instead we want to perform an elimination of x , then z , then y , we can specify this through use of a lex ranking for the algebraic problem.
> ans2:=rifsimp(sys1,[[x],[z],[y]],grob_rank=[[1,lex]]);
so now we have isolated ODE for x and z'' , an ODE in y''' in terms of y alone, and two constraints involving z' , y'' , y' and y .
For an example of the use of the grobonly and checkempty options we consider the following algebraic system:
> sys3:=Groebner[gbasis]([(b+a^2)^2,a^3-c],tdeg(a,b,c));
If we call rifsimp with this system, and the inequation a^2+b<>0 we get:
> ans3_1:=rifsimp([op(sys3),a^2+b<>0],nopiv=[b],casesplit,grobonly);
But with the additional option 'checkempty' we get
> ans3_2:=rifsimp([op(sys3),a^2+b<>0],nopiv=[b],casesplit,grobonly,checkempty);
because ans3_1 represents an empty case.
rifsimp , rifsimp[cases] , rifsimp[ranking]