
Calling Sequence


rifsimp(system, options)
rifsimp(system, vars, options)


Parameters


system



list or set of polynomially nonlinear PDEs or ODEs (may contain inequations)

vars



(optional) list of the main dependent variables

options



(optional) sequence of options to control the behavior of rifsimp





Description


•

The rifsimp options are given after the input system, and optionally the vars.


The following are the advanced options:

•

$\mathrm{store}\[=\mathrm{name}\]$


Store the system after each iteration in a file called name.m (default is RifStorage.m). Note: when multiple cases are being examined, only the latest iteration of the current case is available. Iterations can be observed by setting infolevel[rifsimp] to 2 or greater. This file can be read using the rifread command.

•

$\mathrm{storeall}\[=\mathrm{name}\]$


Store the system iterations separately in a file called name_cs_i.m, where cs is the current case number, and i is the current iteration number (default is RifStorage_cs_i.m). This file can be read using the rifread command.

•

$\mathrm{ezcriteria}=\[\mathrm{quantity},\mathrm{size\; ratio}\]$


The ezcriteria option allows control over how quickly equations are chosen for solving. quantity is a factor that adjusts the number of equations selected, while the size ratio tells rifsimp how large a difference in size can exist between the smallest and largest equations chosen in a single iteration.


The number of equations selected in a single iteration is based upon the number that have already been solved. So if we have no equations solved for their leading derivative, then the algorithm will select at most 10 new equations, whereas if there are 200 equations already in solved form, only one new equation will be selected. The option works this way to control how much work is done in each iteration, since adding one equation when there are no equations in solved form requires no checking of compatibility (integrability) conditions, while adding one equation to the 100 already in solved form may require checking of 100 compatibility conditions.


The size ratio enforces a maximum difference in size between the smallest and largest equations chosen in an iteration. If the size ratio was set to 2 (the default), and the three equations remaining to be solved have sizes of 100, 190, 400, 500, then even if the number to be selected based on the quantity was more than 2, only the first two equations will be selected, as equations 3 and 4 are more than double the size of equation 1.


Primary uses of this option are for the ultraconservative setting of [1,0.9], and the setting of [infinity,infinity] at the other extreme.

•

$\mathrm{tosolve}\=n$


This option indicates that the first n equations or expressions in the input system are to be placed into solved form immediately. If an inequation is present in the first n equations, it is not counted as one of the first n equations. This option is only available when the system has been specified in list form.


This tells Maple not to solve for any dependent variables or constants not explicitly mentioned in vars. It should only be used used when rifsimp is being used as a preprocessor. It is inadvisable to use this option with nonlinear equations, as it can result in infinite loops, may prevent inconsistent cases from being recognized, and does not result in a disjoint set of cases. This option cannot be used with the arbitrary option (see rifsimp[options]).

•

$\mathrm{stl}\=\'\mathrm{time}\'$


This option imposes a limit on the amount of time (in CPU seconds) spent on the calculation since the last case split occurred. Use of this option allows the simpler calculations to be performed, and the more expensive calculations to be deferred. Note, this option is quite different from ctl, as it does not come into effect until the first splitting starts, and only bounds time between splittings. This has the effect of screening out cases that are not making progress quickly enough.

•

$\mathrm{itl}\=\'\mathrm{time}\'$


This option imposes a limit on the amount of time (in CPU seconds) spent on any single iteration. An iteration consists of selecting one or more equations to isolate, adding them to the solved list, simplifying the existing system with respect to the new simplified equations, and then considering all consequences that the new equations have with respect to the alreadysolved equations in the system. Iterations in a calculation can be viewed by setting the rifsimp infolevel to 2 or greater.

•

$\mathrm{ranking}=\[\[\mathrm{ind\; weights}1,\mathrm{dep\; weights}1\],\[\mathrm{ind\; weights}2,\mathrm{dep\; weights}2\],\mathrm{...}\]$


This gives the linear ordering used to determine the relative weights of the dependent variable derivatives. See rifsimp[ranking] for more information.

•

$\mathrm{casesplit}\=\left[\mathrm{<>}\,\mathrm{`=`}\,\mathrm{<>}\right]$


This option turns on case splitting and also gives the start of the tree which will be examined. See rifsimp[cases] for further details.


This option is used to limit the cases being examined based on the solution space dimension of the linear part of the system. The simple specification is given as $\mathrm{mindim}\=\'n\'$. If vars is specified as a simple list, this gives the minimum of n free 0dimensional parameters in the vars dependent variables. If vars contains lists, it is specified as part of a ranking (see rifsimp[ranking]), and only the first element of vars is used to compute the dimension. Once the condition fails, the current case is discarded.


NOTE: $\mathrm{mindim}$ only looks at the linear part of the current system, so if nonlinear constraints are present, the actual dimension may be lower than the dimension reported.


It is possible to give more detailed and/or multiple specifications for a calculation. Please see rifsimp[cases] for the more advanced usage, and additional information.

•

$\mathrm{pivselect}\=\mathrm{choice}$


This option gives some control over how rifsimp performs case splitting. More information can be found in rifsimp[cases].

•

$\mathrm{nopiv}=\[\mathrm{var1},...\]$


This option gives a list of all variables and constants which cannot be present in pivots. This is most useful for quasilinear systems for which the linearity of the resulting system is of greatest importance. This may also have the effect of reducing the size of the case tree in these systems. The unsolved equations are then treated as fully nonlinear (see rifsimp[nonlinear]).

•

$\mathrm{faclimit}\=n$


Typically the pivot chosen is the coefficient of the leading indeterminate in the equation. In the event that the leading indeterminate is itself a factor of the equation, and this same leading indeterminate factor occurs in $n$ or more equations, then it is chosen as the pivot rather than the coefficient. See rifsimp[cases] for more information.


This is most useful for Lie determining systems having many inconsistent cases, since many equations of this form typically occur during the calculation. The answer may be obtained without this option, but it has the beneficial effect of reducing the number of cases.

•

$\mathrm{factoring}\=\mathrm{desc}$


This option is used to control introduction of pivots that are not necessarily the leading coefficient of an equation. Basically, if no leading linear equations remain in the unsolved equations, then depending on the value of this parameter, if the unsolved equations can be factored, a split will be performed on that factor. If $\mathrm{desc}\=\mathrm{none}$, then this is disabled; if $\mathrm{desc}\=\mathrm{nolead}$, then factors may only be chosen if they do not contain the leading derivative (this is the default); if $\mathrm{desc}\=\mathrm{all}$ then any factor can be split on. See rifsimp[cases] for more detail.


Note that use of factoring=none can result in nontermination for some nonlinear problems.


This option tells rifsimp to try to eliminate any empty cases in the computed result(s). These can only occur when both pivots and nonlinear equations are present in the result, and is quite uncommon. This is not done by default (See rifsimp[nonlinear] for details).


This option tells rifsimp to only use Groebner basis simplification for the leading nonlinear equations instead of the more efficient method described in rifsimp[nonlinear].


This option tells rifsimp to isolate the highest power of the leading derivative of each equation in the Constraint list, performing further case splitting on the coefficient if required. This causes the output case structure to more closely resemble that of DifferentialAlgebra, and changes the form of the equations in Constraint. This option is enabled by default unless grobonly is specified (see rifsimp[output]). For more information on this option, please see rifsimp[cases].

•

$\mathrm{grob\_rank}\=\left[\left[1\,\mathrm{deg}\,\mathrm{none}\right]\,\left[1\,\mathrm{ilex}\right]\right]$


This option controls the ranking for algebraic Groebner basis subcomputations. See rifsimp[nonlinear] for details.


This option indicates whether to generate Spolynomials during the Groebner basis algorithm (default is true). Setting spoly=false has some risk associated with it, and if nonlinear equations are present in the output, then it is possible that not all consequences of these equations have been obtained (hence they are placed in the DiffConstraint list rather than the Constraint list). If an orderly ranking is used (see rifsimp[ranking], and spawn is set to true, then only algebraic simplifications remain, but these may still result in an inconsistent system when considered with the Pivot equations.


This option indicates whether to perform a differential spawn of nonlinear equations (default is true). Setting this to false makes the program ignore any differential consequences of the polynomially nonlinear equations. This is only useful if rifsimp is being used as a single step of a different calculation, since an incomplete answer will be obtained. See rifsimp[nonlinear].

•

For a description and examples of the above options, please see the specific pages describing those options:

ranking

See rifsimp,ranking

casesplit, mindim, pivselect, nopiv,

See rifsimp,cases

faclimit, factoring, initial

''

grobonly, grob_rank, spoly, spawn,

See rifsimp,nonlinear

checkempty

''





