rifsimp[nonlinear] - information and options specific to nonlinear equations

Description

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*.

Examples

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

` x(t) will now be displayed as x `

` y(t) will now be displayed as y `

`derivatives with respect to: t of functions of one...
`derivatives with respect to: t of functions of one...

` z(t) will now be displayed as z `

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

sys1 := [`y'`-x^2-x, y^4-2*y^2*`z'`+`z'`^2-y^2+2*`z...
sys1 := [`y'`-x^2-x, y^4-2*y^2*`z'`+`z'`^2-y^2+2*`z...

Calling with the default ranking gives the following:

> ans1:=rifsimp(sys1);

ans1 := TABLE([Constraint = [`x'`^4+2*`z'`^2*`x'`^2...
ans1 := TABLE([Constraint = [`x'`^4+2*`z'`^2*`x'`^2...
ans1 := TABLE([Constraint = [`x'`^4+2*`z'`^2*`x'`^2...
ans1 := TABLE([Constraint = [`x'`^4+2*`z'`^2*`x'`^2...
ans1 := TABLE([Constraint = [`x'`^4+2*`z'`^2*`x'`^2...
ans1 := TABLE([Constraint = [`x'`^4+2*`z'`^2*`x'`^2...
ans1 := TABLE([Constraint = [`x'`^4+2*`z'`^2*`x'`^2...
ans1 := TABLE([Constraint = [`x'`^4+2*`z'`^2*`x'`^2...
ans1 := TABLE([Constraint = [`x'`^4+2*`z'`^2*`x'`^2...
ans1 := TABLE([Constraint = [`x'`^4+2*`z'`^2*`x'`^2...

So we have isolated ODE for y' , x'' and z'' , and four constraints involving x , y , x' , and z' .

> nops(ans1[Constraint]);

4

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

ans2 := TABLE([Constraint = [y^4-2*y^2*`z'`+`z'`^2-...
ans2 := TABLE([Constraint = [y^4-2*y^2*`z'`+`z'`^2-...
ans2 := TABLE([Constraint = [y^4-2*y^2*`z'`+`z'`^2-...
ans2 := TABLE([Constraint = [y^4-2*y^2*`z'`+`z'`^2-...
ans2 := TABLE([Constraint = [y^4-2*y^2*`z'`+`z'`^2-...
ans2 := TABLE([Constraint = [y^4-2*y^2*`z'`+`z'`^2-...
ans2 := TABLE([Constraint = [y^4-2*y^2*`z'`+`z'`^2-...
ans2 := TABLE([Constraint = [y^4-2*y^2*`z'`+`z'`^2-...
ans2 := TABLE([Constraint = [y^4-2*y^2*`z'`+`z'`^2-...
ans2 := TABLE([Constraint = [y^4-2*y^2*`z'`+`z'`^2-...
ans2 := TABLE([Constraint = [y^4-2*y^2*`z'`+`z'`^2-...

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

sys3 := [b^3-3*b*a*c-2*c^2, 2*b*c+a*b^2+a^2*c, b^2+...
sys3 := [b^3-3*b*a*c-2*c^2, 2*b*c+a*b^2+a^2*c, b^2+...

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

ans3_1 := TABLE([Constraint = [-a^3+c = 0, b^2+2*b*...
ans3_1 := TABLE([Constraint = [-a^3+c = 0, b^2+2*b*...
ans3_1 := TABLE([Constraint = [-a^3+c = 0, b^2+2*b*...
ans3_1 := TABLE([Constraint = [-a^3+c = 0, b^2+2*b*...

But with the additional option 'checkempty' we get

> ans3_2:=rifsimp([op(sys3),a^2+b<>0],nopiv=[b],casesplit,grobonly,checkempty);

ans3_2 := TABLE([status =

because ans3_1 represents an empty case.

See Also

rifsimp , rifsimp[cases] , rifsimp[ranking]