rifsimp[options] - common options

Description

nopiv perform no cleaning, returning all pivots obtained
in the course of the computation.
piv perform cleaning of obvious redundant pivots (i.e.
those that can be detected by inspection of the
pivots list on output.
fullpiv perform thorough cleaning of pivots, including
removal of pivots that are redundant only for
solutions of the output case/system.

nospawn do not remove any redundant spawned equations
spawn remove any redundant spawned equations that are not
in solved form.
fullspawn remove all redundant spawned equations.

Examples

> with(Rif):

This example highlights the difference between treating the unknown y as a constant and treating it as an independent variable; by default, the code assumes that y is a constant.

> sys1:=[y*f(x)+g(x)];

sys1 := [y*f(x)+g(x)]

> rifsimp(sys1);

TABLE([Pivots = [y <> 0], Case = [[y <> 0, f(x)]], ...
TABLE([Pivots = [y <> 0], Case = [[y <> 0, f(x)]], ...
TABLE([Pivots = [y <> 0], Case = [[y <> 0, f(x)]], ...

Specification of y as an independent variable gives the following.

> rifsimp(sys1,indep=[x,y]);

TABLE([Solved = [f(x) = 0, g(x) = 0]])

This next example demonstrates the use of the casesplit option. We consider the Lie-symmetry determining system for the following ODE:

> ODE:=diff(y(x),x,x)+(2*y(x)+f(x))*diff(y(x),x)+diff(f(x),x)*y(x);

ODE := diff(y(x),`$`(x,2))+(2*y(x)+f(x))*diff(y(x),...

The Lie symmetries are given as the solution of the following system of determining PDEs (as generated using DEtools[odepde] ):

> sys:=[coeffs(expand(DEtools[odepde](ODE,[xi(x,y),eta(x,y)], y(x))),_y1)];

sys := [diff(eta(x,y),x)*f(x)+eta(x,y)*diff(f(x),x)...
sys := [diff(eta(x,y),x)*f(x)+eta(x,y)*diff(f(x),x)...
sys := [diff(eta(x,y),x)*f(x)+eta(x,y)*diff(f(x),x)...
sys := [diff(eta(x,y),x)*f(x)+eta(x,y)*diff(f(x),x)...
sys := [diff(eta(x,y),x)*f(x)+eta(x,y)*diff(f(x),x)...
sys := [diff(eta(x,y),x)*f(x)+eta(x,y)*diff(f(x),x)...
sys := [diff(eta(x,y),x)*f(x)+eta(x,y)*diff(f(x),x)...

So running this system with rifsimp :

> ans:=rifsimp(sys,[xi,eta]):
ans['Solved'];

[xi(x,y) = 0, eta(x,y) = 0]

And we see that the given ODE has no point symmetries for general f(x) .

We may want to know if there are particular forms of f(x) for which point symmetries exist (this is called a classification problem). Running rifsimp with casesplit :

> ans:=rifsimp(sys,[xi,eta],casesplit):
ans['casecount'];

4

so we see there are cases.

We could use the caseplot command to give a pictorial view of the case tree with the following command.

> caseplot(ans);

Looking at case 3 in detail:

> copy(ans[3]);

TABLE([Pivots = [diff(f(x),x) <> 0], Case = [[f(x)^...
TABLE([Pivots = [diff(f(x),x) <> 0], Case = [[f(x)^...
TABLE([Pivots = [diff(f(x),x) <> 0], Case = [[f(x)^...
TABLE([Pivots = [diff(f(x),x) <> 0], Case = [[f(x)^...
TABLE([Pivots = [diff(f(x),x) <> 0], Case = [[f(x)^...
TABLE([Pivots = [diff(f(x),x) <> 0], Case = [[f(x)^...
TABLE([Pivots = [diff(f(x),x) <> 0], Case = [[f(x)^...
TABLE([Pivots = [diff(f(x),x) <> 0], Case = [[f(x)^...
TABLE([Pivots = [diff(f(x),x) <> 0], Case = [[f(x)^...
TABLE([Pivots = [diff(f(x),x) <> 0], Case = [[f(x)^...
TABLE([Pivots = [diff(f(x),x) <> 0], Case = [[f(x)^...

so we see we have a 2 parameter Lie group for the specific form of f(x) given by:

> dsolve(diff(f(x),x,x) = -f(x)*diff(f(x),x));

f(x) = tanh(1/2*(x+_C2)*2^(1/2)/_C1)*2^(1/2)/_C1

See Also

caseplot , checkrank , rifsimp , rifsimp[adv_options] , rifsimp[cases] , rifsimp[output] , rifsimp[ranking]