provide a graphical display of binary case tree output from rifsimp
output from rifsimp with casesplit active
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 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:
Inconsistent case: no solution exists for this case.
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]).
Ignored case: use of the casesplit=[...] option told rifsimp not to explore this case (see rifsimp[adv_options]).
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.
As a first example, we choose the simplest system with a case split:
sys1 ≔ f⁡x⁢g⁡x=0
ans1 ≔ rifsimp⁡sys1,casesplit
Download Help Document