|
Calling Sequence
|
|
RosenfeldGroebner(sys, R, opts)
|
|
Parameters
|
|
sys
|
-
|
a list or a set of differential equations or inequations; all rational in the independent and dependent variables and their derivatives
|
R
|
-
|
a differential polynomial ring built by DifferentialRing specifying the independent and dependent variables and a ranking (ordering) for them
|
additionally
|
-
|
(optional) used together with arbitrary and relations to add to the arbitrary of the differential ring
|
arbitrary
|
-
|
(optional) a function or a name, or a list of them, specifying arbitrary objects, that either override those specified in the differential ring R or add to them when additionally is given
|
assumeisprime
|
-
|
(optional) used when sys is a regular differential chain and proceeds changing rankings regardless of whether sys is prime or not
|
attributes
|
-
|
(optional) to specify the attributes expected for the differential chains (cases) returned
|
discardlowerdimension
|
-
|
(optional) to discard inexistent cases based on their (differential) dimension
|
notation
|
-
|
(optional) to request the output to be in any of jet, tjet, diff or Diff notations
|
relations
|
-
|
(optional) to specify relations that are satisfied by the arbitrary objects
|
singsol
|
-
|
(optional) can be all (default), none or essential, to request the computation of all, none or only the essential singular cases
|
|
|
|
|
Options
|
|
•
|
additionally is used together with arbitrary, to add variables to the list declared as arbitrary when creating the differential ring using DifferentialRing
|
•
|
arbitrary = ... a function or a name, or a list of them, specifying arbitrary objects. This option permits to run a computation with different arbitrary objects than those specified in the differential ring R passed to RosenfeldGroebner, or to add arbitrary objects to those in R when additionally is passed together.
|
•
|
assumeisprime used when changing the ranking of a regular differential chain, this option tells RosenfeldGroebner to proceed disregarding whether the received differential chain is or not prime.
|
•
|
attributes = L where L is a list involving some of the keywords differential, prime, primitive, squarefree, coherent, autoreduced, normalized. This option permits to modify the behavior of the function (e.g. if differential is omitted, the decomposition is purely algebraic ; if normalized is omitted, the returned regular differential chains do not need to be normalized). The presence of some of the attributes may imply, automatically, the presence of some other ones. For more details, see the Glossary.
|
•
|
discardlowerdimension = nocase, safecase, odecase, pdecase. This option controls the splittings performed by RosenfeldGroebner by discarding any component whose dimension (differential dimension in the differential case) is lower than the number of input equations simplified with respect to their integrability conditions.
|
–
|
nocase disables this option.
|
–
|
safecase is the default value. The option is only activated in the non-differential case and in the case of a single input equation. These two cases are theoretically proven.
|
–
|
odecase applies also the option to general ODE systems. The option implements a conjecture in this case [R50, Questions for investigation, 10].
|
–
|
pdecase applies also the option to general PDE systems. The option implements a conjecture in this case.
|
•
|
notation = jet, tjet, diff or Diff. Specifies the notation used for the result of the function call. If not specified, the notation of the input is used.
|
•
|
memout = nonnegative. Specifies a memory limit, in MB, for the computation. Default is zero (no memory out).
|
•
|
relations = ... where the right-hand-side is a set of equations satisfied by the arbitrary objects of the differential ring R or passed with the option arbitrary. Note that all the functions and names (symbolic variables) involved in these relations will automatically be taken as arbitrary, even if they were not declared as such in the differential ring R. Also, all the dependent variables of the differential ring R that are ranked lower than the objects found in the given relations, or within a same orderly sublist of the ranking, are also considered arbitrary.
|
•
|
singsol = all, essential, none. This option controls the splittings performed by RosenfeldGroebner.
|
–
|
all is the default value.
|
–
|
essential ensures that the returned decomposition is irredundant whenever this is possible, i.e., whenever sys is made of only one equation.
|
–
|
none makes RosenfeldGroebner return at most one regular differential chain. The returned chain is the first one that would have been computed without setting this option. In many cases, this first regular differential chain could be considered as the general component, though this notion is not algebraically well-defined in general.
|
|
|
Description
|
|
•
|
Given a system of equations sys, containing equations (of the form algebraic or algebraic = algebraic) and inequations (of the form algebraic <> 0), RosenfeldGroebner(sys, R) splits the given system sys into cases, each one specified by their Equations and Inequations. One and only one of these cases is the general case, and the rest are singular cases that may exist only when sys is nonlinear. In each of the cases returned, there is no one equation that is the consequence of the other equations and all the integrability conditions are taken into account. The relation between the system sys and the systems of each of theses cases is the solutions, general and singular, of sys are given by the union of the general solutions of each of the returned systems. NOTE: the number of cases returned and the equations and inequations that appear in these cases depend on how the dependent and independent variables are ranked inside R.
|
•
|
More technically, RosenfeldGroebner(sys, R) returns a representation of the radical of the differential ideal generated by sys, as an intersection of radical differential ideals saturated by the multiplicative family generated by the inequations found in sys. This representation consists of a list of regular differential chains with respect to the ranking of R.
|
•
|
The system sys may involve rational differential fractions, that is the ratio between differential polynomials. In that case, the denominators of these rational fractions are automatically considered inequations.
|
•
|
The second argument, R representing a differential ring, is constructed using DifferentialRing, and specifies the dependent and independent variables and a ranking for them.
|
•
|
The differential polynomials in sys are expected to have coefficients in the field (, ..., ), obtained by adjoining the independent variables to the field of the rational numbers. Arbitrary symbolic variables and functions can also be part of the coefficient field, for that purpose you can use the option arbitrary = ... when declaring the differential ring or pass this option directly to RosenfeldGroebner.
|
|
REMARK: By default, all symbolic variables and functions that were not stated as dependent variables when defining the differential ring are automatically considered arbitrary (equivalent to have indicated them as arbitrary to DifferentialRing). When that happens a related warning message is displayed on the screen.
|
•
|
The regular differential chains in the output of RosenfeldGroebner are assumed to hold the attributes: differential, autoreduced, primitive, squarefree, normalized and coherent. For more details on attributes, see the Glossary.
|
•
|
The returned list may also be empty. In that case sys has no solutions and so the radical of the differential ideal generated by sys is the unit ideal, see [R50, chapter II, Theorem of zeros]. Also, if sys is empty, the returned representation involves a single regular differential chain also empty, which describes the zero ideal.
|
|
Recomputing ideals changing the ranking
|
|
•
|
RosenfeldGroebner can also receive as first argument a prime regular differential chain - say regchain - computed with some ranking, by RosenfeldGroebner or by PretendRegularDifferentialChain, plus an indication of the form blocks = ..., derivations = ... that specifies a new ranking for either or both the dependent (blocks) and independent (derivations) variables, and it recomputes regchain with respect to the new ranking. The returned differential chain defines the same prime differential ideal as regchain and holds the same attributes as regchain. To specify the new ranking for the dependent and/or independent variables you can also directly pass, anywhere after the first argument, a differential ring computed with DifferentialRing. In all cases the new ranking must involve the same dependent and independent variables of the old ranking with which regchain got computed.
|
•
|
NOTE: The method used only applies to prime differential ideals. To know whether a regular differential chain is or not prime use the Is command, as in Is(prime, regchain). If regchain passed to RosenfeldGroebner is not prime, you can nevertheless request RosenfeldGroebner to proceed assuming that regchain is prime by passing the optional argument assumeisprime, but the resulting differential ideal is not guaranteed to represent the same ideal as regchain.
|
|
|
|
Examples
|
|
|
Main usage
|
|
•
|
NOTE: Prior to any computations with the DifferentialAlgebra package, the appropriate differential indeterminates (dependent variables) and derivation variables (independent variables) with the ranking for them must be defined with the command DifferentialRing as shown in the following examples.
|
|
Removing consequences and simplifying taking into account the integrability conditions
|
|
|
When tackling a system of equations with RosenfeldGroebner, in each of the cases returned, there is no one equation that is the consequence of the other equations of the case and all the integrability conditions are taken into account. If during this simplification process the system proves to be inconsistent (say arriving at ) an empty list is returned meaning the system has no solution. To illustrate this consider the following equations
|
|
Indicate the dependent and independent variables and an ordering (ranking) for them. Because the purpose in this example is to only remove consequences and take into account integrability conditions, use an orderly ranking, that could be or (see DifferentialRing)
|
|
Consider now the system constructed with and in this way:
|
|
By construction, we know that the third and fourth equations, diff(p1*p2, x) = 0 and diff(p2, y) = 0, bring no additional information. They are consequences of and so they are simplified away in the system returned
|
|
Detection of inconsistencies in a differential system
|
|
What RosenfeldGroebner tells us about the system {p1, p2, p3}
|
|
This result indicates that the system bears a contradiction; , , and have no common solution. In this case it is possible to visually detect the contradiction:
|
|
The three equations cannot be satisfied simultaneously. The system is inconsistent; it has no solution.
|
|
|
Solving ordinary differential systems: Elimination ranking
|
|
|
To perform a chain resolution of a system of ordinary differential equations, use an elimination ranking. Consider the differential system defined by the following set of differential polynomials in the unknown functions .
|
|
Using an elimination ranking where , you obtain differential chains containing an equation in alone, an equation determining in terms of , and finally an equation determining in terms of and . Such an elimination ranking is represented by
|
|
In the result above we see two cases. The equations of the first case satisfying this elimination ranking mentioned are
|
|
The equations of the second case also satisfying the elimination ranking proposed are
|
|
|
Constrained systems: Orderly and mixed rankings
|
|
|
Consider the set of equations describing the motion of a pendulum, that is, a point mass suspended from a massless rod of length under the influence of gravity , in Cartesian coordinates . The Lagrangian formulation leads to two second order differential equations with an algebraic constraint. is the Lagrangian multiplier.
|
•
|
To find the lowest order equations vanishing on the zeros of the system modeling the pendulum and in particular all the algebraic constraints (that is, the equations of order ), use an orderly ranking
|
|
The second component in the output of RosenfeldGroebner corresponds to the equilibria of the pendulum. From the first component of the output, it can be seen that the actual motion is described by two first order differential equations with a constraint: the solution depends on only two arbitrary constants.
|
|
To obtain the differential system satisfied by and alone, eliminate with regards to , so this ranking is
|
|
Note here that the motion is given by a second order differential equation in . Then the Lagrange multiplier is given explicitly in terms of and its first derivative.
|
|
|
Solving partial differential system: Lexicographic ranking
|
|
|
To solve overdetermined systems of partial differential equations it is interesting to compute first the ordinary differential equations satisfied by the solutions of the system. For this purpose, a lexicographic ranking must be chosen. Consider the differential system defining the infinitesimal generators of the symmetry group of the Burgers equations.
|
|
Seek the ordinary differential equations with respect to satisfied by the solutions of this system enclosing the dependent variables (in this example, all of them) using lex
|
|
There are three independent ordinary differential equations with respect to (the last three in the output above). All other ordinary equations in vanishing on the solutions of can be written as linear combination of these three and their derivatives.
|
|
|
Computing singular solutions
|
|
|
Consider the following Clairaut partial differential equation.
|
|
Represent it by the equation with a more compact syntax, called jet notation.
|
|
Before any manipulation of this equation, define a differential polynomial ring it belongs to:
|
|
The Clairaut equation under consideration has a singular solution. This is shown in the output of RosenfeldGroebner by the existence of two cases: the general case (always exists unless the system is inconsistent) and an additional - therefore - singular case; each one represented by a regular_differential_chain
|
|
The equations and inequations of each egular_differential_chain can be accessed using the Equations and Inequations commands. The general case is represented by the differential chain that involve some additional inequations while the second regular differential chain represents the singular case
|
|
Analysis of singular solutions
|
|
All singular cases are present in the output of RosenfeldGroebner while only the essential singular zeros are present when the option singsol = essential is used. For first order differential equations:
|
–
|
The essential singular solutions are envelopes of the nonsingular (general) solutions; that is: they are not particular cases of the general solution.
|
–
|
The other singular solutions are particular cases of the general solution.
|
•
|
Illustrate this analysis on the equation (cf. WeierstrassP):
|
|
There are three singular solutions: , where is one of the roots of . There are all three essential singular solutions as we can see using the option singsol = essential
|
|
As such they are envelopes of the nonsingular (general) solution of . This can also be observed by plotting the real zeros for :
|
•
|
Case ; parametrize the equation with as in
|
|
There are two singular solutions: and from which only is an essential singular solution of as is shown using the option singsol = essential
|
|
Therefore is an envelope of the nonsingular, general solution of . On the contrary, the singular solution of is not essential and therefore it is a limiting case of the general solution of . Observe the situation for :
|
•
|
Case . The equation is:
|
|
So there is only one singular solution, , and it is not essential. Observe its limiting property with respect to the nonsingular (general) solution.
|
|
|
A two steps strategy changing rankings
|
|
|
The following two examples illustrate a good strategy for computing a representation of the radical of the differential ideal generated by a given system sys, with respect to some target ranking. This strategy usually leads to simpler computations and fewer regular differential chains. It often applies, because, many differential polynomial system do actually define prime differential ideals. The strategy involves two steps.
|
•
|
First, search an easy ranking (may involve trial an error), different from the target one, with respect to which, sys is almost a regular differential chain (if possible, a ranking with respect to which the leading ranks have degree ). Call now RosenfeldGroebner with this easier rank to generate the ideal associated to the given system of equations.
|
•
|
Second, run RosenfeldGroebner over the regular differential chain(s) computed at the first step, but now with respect to the target ranking.
|
Euler equations for an incompressible fluid
|
In this example the two steps strategy is applied to Euler equations for an incompressible fluid in two dimensions. We want to prove that the radical of the differential ideal generated by this system is prime, and, has differential dimension zero.
|
•
|
To prove that is prime, by definition, it is sufficient to show that can be presented by a single regular differential chain , whose leading ranks have degree .
|
•
|
To prove that has differential dimension zero, it is sufficient to compute with respect to an orderly ranking, and, to check that each dependent variable has a derivative among the leading derivatives of [K73, chapter II, section 12, Theorem 6].
|
|
The target ranking is orderly, but a direct computation does not allow us to conclude.
|
|
However, there exists an easy ranking, with respect to which, the RosenfeldGroebner algorithm does not split into cases. This easy ranking is not orderly with respect to the dependent variables but an elimination one (we use the keyword lex) and also the ordering for the independent variables changes from to , but it serves the purpose of our two-steps strategy. Let us perform the first step.
|
|
Let us, perform the second step, rewriting using the original ranking . The output proves that is prime and has differential dimension zero.
|
A parametric dynamical system
|
This example illustrates the use of RosenfeldGroebner for studying parametric dynamical systems. Indeed, with respect to any orderly ranking on the state variables, a dynamical system is a regular differential chain, which describes a prime differential ideal.
|
|
Here, RosenfeldGroebner is used to compute the so-called input-output relation of a dynamical system. This relation is used, in control theory, to study the global identifiability, and, simplify the estimation of the unknown parameters from measures.
|
|
First, one defines a parametric dynamical system of two ODE. The two state variables and are grouped in one block. This ensures that the derivatives of and are ranked orderly. The parameters of the system are considered arbitrary
|
|
This call to RosenfeldGroebner bundles the two ODEs in a regular differential chain. The parameters do not generate splitting cases because they were declared arbitrary when entering the differential ring
|
|
The leading ranks of the regular differential chain have degree . The differential ideal is thus prime.
|
|
The input-output relation is thus obtained by eliminating . This is achieved by a change of ranking for the dependent variables over ideal, from to , using RosenfeldGroebner. The input-output relation is the differential polynomial of IOideal whose leading derivative is a derivative of . Note that you only need to pass to RosenfeldGroebner the piece of information that is changing and there is no need to re-enter the information of the original differential ring, embedded in the first argument, the ideal to be rewritten
|
|
|
|
Optional arguments
|
|
|
Changing arbitrary, blocks and adding relations
|
|
|
During a call to RosenfeldGroebner it is also possible to change (replace or add to) the arbitrary and/or blocks stated when constructing the differential ring with DifferentialRing. You can also state relations for the arbitrary, allowing for a more detailed study of a system. As an example, consider again the problem of the singular cases of the Weierstrass differential equation,
|
|
but this time take as a variable of the problem and only as arbitrary, so in the differential ring rank within blocks, after
|
|
This problem now splits into three cases
|
|
From the equations of each case we see that the new case exists only when the invariants and are related by , corresponding to the discriminant of the WeierstrassP function equal to zero. This is the same third singular case presented in a previous section above without derivation.
|
|
Suppose now you are interested in taking both and as arbitrary, or only , or none of them. For that purpose, use the option arbitrary and additionally. This adds to the existing arbitrary set of the differential ring R
|
|
This makes only arbitrary, replacing the arbitrary = g3 entered when stating the differential ring R
|
|
This makes none of and arbitrary, overriding arbitrary = g3 in the differential ring R
|
|
Suppose now you are interested in the cases when both and are arbitrary and satisfy certain relations, say the discriminant of the WeierstrassP function equal to zero, that is, . Before proceeding note that as explained in the description, all the objects involved in these relations will automatically be taken as arbitrary (you can optionally pass arbitrary = [g2, g3]). So the input is
|
|
Finally this results in being added to the arbitrary objects declared when constructing the differential ring R and also states the relation for
|
|
|
Requesting different attributes
|
|
|
The attributes = L option permits to modify the behavior of the function. Here, one omits the differential attribute. Therefore, the PDE system is regarded as a non - differential system. The decomposition is purely algebraic: the derivative occurring in the third polynomial, is not simplified by the first polynomial.
|
|
|
|
|
|