rifsimp[output] - description of algorithm output

Description

Solved This entry gives all equations that have been solved in terms
of their leading indeterminate.
Pivots This entry gives all inequations (equations of the form
expression <> 0) that hold for this case. These may be part
of the input system, or decisions made by the program during
the calculation (see
rifsimp[cases] for information on
pivots introduced by the algorithm).
Case This entry describes what assumptions were made to arrive
at this simplified system (see
rifsimp[cases] .)
Constraint This table contains all equations that are nonlinear in
their leading indeterminate. The equations in this list
form a Groebner basis and can be viewed as purely algebraic
because any differential consequences that result from these
equations are already taken care of through spawning
(see
rifsimp[nonlinear] ).
If the
initial option has been specified, then these
equations are isolated for the highest power of their leading
derivatives, otherwise they are in the form
expr=0 .
DiffConstraint This table entry contains all equations that are nonlinear
in their leading indeterminate, but either are not in
Groebner basis form or have differential consequences that
are not accounted for (see spoly and spawn
in
rifsimp[nonlinear] ).
Whenever equations appear in this entry, the system is in
incomplete form and must be examined with care.
UnSolve This table entry contains all equations that rifsimp did
not attempt to solve (see unsolved
in
rifsimp[adv_options] ).
Whenever equations appear in this entry, the system is in
incomplete form and must be examined with care.
UnClass This table entry contains all equations that have not yet
been examined (i.e. Unclassified). This entry is only present
when looking at partial calculations using
rifread , or when
a computation is halted by
mindim .
status If this entry is present, then the output system is missing
due to either a restriction or an error. The message in
this entry indicates what the restriction or error is.
dimension This entry is only present when the
mindim option is used
(see
rifsimp[cases] ), or for maxdimsystems .
For the case where a single constraint is in effect (such as
through use of the option
mindim=8 ), the right-hand side is a
single number (the dimension for the case). For multiple
constraints, it is a list of dimension counts, one for each
constraint in the
mindim specification.

"system is inconsistent" No solution exists for this system.
"object too large" Expression swell has exceed Maple's
ability to calculate.
"time expired" Input time limit has been exceeded (see ctl,
stl and itl in
rifsimp[options] ).
"free count fell below mindim" Free parameters have fallen below the
minimum (see
mindim in rifsimp[adv_options] ).

Examples

> with(Rif):

As a first example, we take the overdetermined system of two equations in one dependent variable f(x) , and two constants a and b .

> sys1:=[a*diff(f(x),x,x)-f(x),b*diff(f(x),x)-f(x)];

sys1 := [a*diff(f(x),`$`(x,2))-f(x), b*diff(f(x),x)...

Call rifsimp for a single case only (the default).

> ans1:=rifsimp(sys1);

ans1 := TABLE([Solved = [f(x) = 0], Pivots = [a <> ...
ans1 := TABLE([Solved = [f(x) = 0], Pivots = [a <> ...
ans1 := TABLE([Solved = [f(x) = 0], Pivots = [a <> ...

We see that under the given assumptions for the form of a and b (from Pivots ), the only solution is given as f(x)=0 (from Solved ). Now, run the system in multiple case mode using casesplit .

> ans1m:=rifsimp(sys1,casesplit);

ans1m := TABLE([1 = TABLE([Solved = [f(x) = 0], Piv...
ans1m := TABLE([1 = TABLE([Solved = [f(x) = 0], Piv...
ans1m := TABLE([1 = TABLE([Solved = [f(x) = 0], Piv...
ans1m := TABLE([1 = TABLE([Solved = [f(x) = 0], Piv...
ans1m := TABLE([1 = TABLE([Solved = [f(x) = 0], Piv...
ans1m := TABLE([1 = TABLE([Solved = [f(x) = 0], Piv...
ans1m := TABLE([1 = TABLE([Solved = [f(x) = 0], Piv...
ans1m := TABLE([1 = TABLE([Solved = [f(x) = 0], Piv...
ans1m := TABLE([1 = TABLE([Solved = [f(x) = 0], Piv...
ans1m := TABLE([1 = TABLE([Solved = [f(x) = 0], Piv...

We see that we have four cases:

> ans1m[casecount];

4

All cases except 2 have f(x)=0 .

Looking at case 2 in detail, we see that under the constraint a = b^2 (from Solved ) and b <> 0 from Pivots , the solution to the system will be given by the remaining ODE in f(x) (in Solved ). Note here that the constraint on the constants a and b , together with the assumption b <> 0 , imply that a <> 0 , so this constraint is not present in the Pivots entry due to simplification. It is still present in the Case entry because Case describes the decisions made in the algorithm, not their simplified result. Also, case 4 has no Pivots entry. This is because no assumptions of the form expression <> 0 were used for this case.

One could look at the caseplot with the command:

> caseplot(ans1m);

As a final demonstration involving this system, suppose that we are only interested in nontrivial cases where f(x) is not identically zero. We can simply include this assumption in the input system, and rifsimp will take it into account.

> ans1a:=rifsimp([op(sys1),f(x)<>0],casesplit);

ans1a := TABLE([Solved = [diff(f(x),x) = f(x)/b, a ...
ans1a := TABLE([Solved = [diff(f(x),x) = f(x)/b, a ...
ans1a := TABLE([Solved = [diff(f(x),x) = f(x)/b, a ...
ans1a := TABLE([Solved = [diff(f(x),x) = f(x)/b, a ...

We see that the answer is returned in a single case with two false split Case entries. This means the computation discovered that the a=0 and b=0 cases lead to contradictions, so the entries in the Case list are labelled as false split s, and the alternatives for the binary case splittings (cases with a=0 or b=0 ) are not present.

For the next example, we have a simple inconsistent system:

> sys2:=[diff(u(x),x,x)+diff(u(x),x)^2-1,diff(u(x),x,x)+1];

sys2 := [diff(u(x),`$`(x,2))+diff(u(x),x)^2-1, diff...

> rifsimp(sys2);

TABLE([status =

So there is no solution u(x) to the above system of equations.

The next example demonstrates the UnSolve list, while also warning about leaving indeterminates in unsolved form.

> sys3:=[diff(f(x),x)*(diff(g(x),x)-g(x))+f(x)^2,diff(g(x),x)-g(x)];

sys3 := [diff(f(x),x)*(diff(g(x),x)-g(x))+f(x)^2, d...

So we run rifsimp , but only solve for f(x) , leaving g(x) in unsolved form. Unfortunately, the resulting system is inconsistent, but this is not recognized because equations containing only g(x) are left unsolved. As discussed earlier in the page, these equations come out in the UnSolve list.

> rifsimp(sys3,[f],unsolved);

TABLE([Solved = [diff(f(x),x) = -f(x)^2/(diff(g(x),...
TABLE([Solved = [diff(f(x),x) = -f(x)^2/(diff(g(x),...
TABLE([Solved = [diff(f(x),x) = -f(x)^2/(diff(g(x),...
TABLE([Solved = [diff(f(x),x) = -f(x)^2/(diff(g(x),...
TABLE([Solved = [diff(f(x),x) = -f(x)^2/(diff(g(x),...

When equations are present in the UnSolve list, they must be manually examined.

Here is a nonlinear example.

> sys4:=[diff(f(x),x,x)+f(x),diff(f(x),x)^2-f(x)^2];

sys4 := [diff(f(x),`$`(x,2))+f(x), diff(f(x),x)^2-f...

By default rifsimp spawns the nonlinear equation to obtain a leading linear equation, and performs any required simplifications. The end result gives the following output:

> rifsimp(sys4,casesplit);

TABLE([Solved = [f(x) = 0], Case = [[f(x) = 0, diff...

We have only one consistent case. Attempting to perform this calculation with the spawn=false option gives the following:

> rifsimp(sys4,casesplit,spawn=false);

TABLE([Solved = [diff(f(x),`$`(x,2)) = -f(x)], Diff...
TABLE([Solved = [diff(f(x),`$`(x,2)) = -f(x)], Diff...
TABLE([Solved = [diff(f(x),`$`(x,2)) = -f(x)], Diff...

So it is clear that by disabling spawning, the system is not in fully simplified form (as indicated by the presence of the DiffConstraint entry), and we do not obtain full information about the system.

See Also

caseplot , rifsimp , rifsimp[adv_options] , rifsimp[cases] , rifsimp[nonlinear] , rifsimp[options]