Description
-
The
caseplot
function provides a graphical display of the binary case tree resulting from a
rifsimp
calculation, or a
maxdimsystems
calculation using the
output=rif
option.
-
Note
that
rifsimp
must have been called with the
casesplit
option to obtain multiple cases.
-
For the graphical display of the case structure to be meaningful, the computation must have obtained more than a single case. For more information on cases and
casesplit
options, see
rifsimp[cases]
. For information on the output format for
rifsimp
, see
rifsimp[output]
.
-
When the
rifsimp
algorithm splits a system into cases, depending on the complexity of the original system, the number of cases can be quite large. The
caseplot
command has been provided for quick examination of the case tree to allow for more efficient use of the results of
rifsimp
.
-
The case tree is plotted with the cases corresponding to
pivot <> 0
on the left, and those corresponding to
pivot = 0
on the right. Numbers are displayed for all cases at the leaves of the tree, corresponding to each the solution case in the input
rifsimp
solution.
-
When the
caseplot
function is called with the optional argument
vars
, a list of dependent variable names, initial data for the system with respect to those dependent variables is also computed, and displayed on the case tree below each case number. For more information on computation of initial data for ODE and PDE systems, please see
initialdata
.
-
The optional argument
pivots
tells caseplot to display information on the pivots that represent the case splittings in the displayed case structure. On the plot each case splitting will have a reference of the form
p<i>
, and a legend will be printed giving the correspondence between the pivot references (
p<i>
) and the actual pivots.
-
The branches of the tree are color coded, using the following conventions:
Black Regular case
Red Inconsistent case: no solution exists for this case.
Yellow Error or timeout case: the error is typically caused by a Maple
"object too large" error, while the timeouts are controlled
using the ctl,stl,itl options (see
rifsimp[options]
).
Blue Ignored case: use of the casesplit=[...] option told
rifsimp
not to explore this case (see
rifsimp[adv_options]
).
Green Ignored case: specification of mindata=[...] was violated,
so rifsimp ignored this case (see
rifsimp[adv_options]
).
-
The yellow cases are important, as they indicate an incomplete calculation. When yellow cases are present in the plot, a message is printed indicating the status of each of these cases (for example, "time expired" or "object too large").
-
Messages are also produced prior to the display of the plot when an initial data computation is specified through use of the
vars
argument. The case and computed dimension of the initial data is displayed.
Examples
>
with(Rif):
As a first example, we choose the simplest system with a case split:
>
sys1:=[f(x)*g(x)=0];
>
ans1:=rifsimp(sys1,casesplit);
>
caseplot(ans1);
So if you were to run the command (it cannot be run in a help page), you would notice that we have two cases (cases 1 and 2), and that both give answers (the tree branches are black).