DEtools
maxdimsystems
determination of maximum dimensional subsystems of systems of PDE
Calling Sequence
Parameters
Description
Examples
maxdimsystems(system, maxdimvars)
maxdimsystems(system, maxdimvars, options)
system
-
list or set of ODE or PDE (may contain inequations)
maxdimvars
list of the dependent variables used for the dimension count
options
(optional) sequence of options to control the behavior of maxdimsystems
The default output of maxdimsystems (modulo *** below) consists of the set of cases having maximal dimension in maxdimvars, where each member has the form:
[Solved = list, Constraint = list, Pivots = list, dimension = integer]
Solved is a list of the PDE which are in solved form with respect to their highest derivative (with respect to the given ranking of derivatives), Constraint is a list of the PDEs in the classvars (any dependent variables not in maxdimvars) which are nonlinear in their leading derivatives, Pivots is a list of the inequations in the classvars and/or maxdimvars, and dimension is the maximal degree of arbitrariness in maxdimvars (i.e. the number of arbitrary constants on which maxdimvars depends).
*** The result is valid provided that the Constraint and Pivots equations have a solution, and also that maxdimvars do not occur in the constraint equations. The user must check the first condition algebraically (e.g. see Groebner[Solve], and possibly DifferentialAlgebra). If the maxdimvars are present in the pivots, then the returned system will have lower dimension that indicated, and must be handled manually.
Each of the cases is in rifsimp form (a generalization of Gauss normal form to systems of PDE) and also contains a system of differential equations and inequations in the classvars characterizing the case. In the same way that the Gauss normal form is determined by a ordering of variables, rifsimp form is determined by a ranking of derivatives.
The default ranking is determined by maxdimvars. It can be inferred by the application of checkrank, and always ranks the classvars and their derivatives lower than all maxdimvars.
The maximal cases can be determined in many applications where a complete analysis of all cases is not possible. These cases are often the most interesting, with the richest properties, when compared to the relatively uninteresting (but often difficult to compute) lower dimensional cases.
The options for maxdimsystems consist of the output option (described below), and a subset of those for rifsimp, the main subroutine used by maxdimsystems. Of the subset of rifsimp options available, two that are often used are indep which specifies the independent variables, ezcriteria which controls the flow of equations from a fast (ultra-hog) setting (that can readily lead to memory explosion but sometimes faster calculations), to a conservative (one equation at a time) setting that can overcome some expression swell problems. The complete list is given by:
tosolve, indep, arbitrary, clean, fullclean
See rifsimp[options]
ezcriteria, faclimit
See rifsimp[adv_options]
mindim, pivselect
See rifsimp[cases]
grob_rank,grobonly,checkempty
See rifsimp[nonlinear]
Many rifsimp options are not supported by maxdimsystems as their use could produce misleading results. For example, the rifsimp option ctl=time, places a time limit on rifsimp case computations, and hence could cause maxdimsystems to miss the maximal case if it takes too long to compute. Conversely, specification of other options are not supported as they must have a specific value for the maxdimsystems command to function properly (for example, casesplit must always be on). Other unsupported rifsimp options include itl, stl, nopiv, unsolved, store, storeall, spawn, spoly, and casecount.
output = type
The output type can either be set (default) or rif. Note that set output is easier to read and manipulate, but cannot be used with the caseplot visualization tool. The rif output can be used with caseplot, but the output is somewhat more complicated, and is described in rifsimp[output]. Note that for the class of problems that maxdimsystems simplifies, many of the outputs from rifsimp described in the output page ( such as DiffConstraint and UnSolve) will never be present in the output.
The maxdimsystems command allows a subset of the rankings available for rifsimp. Specifically those rankings that are controlled by a partition of the dependent variables in maxdimvars, and those available by the order of the independent variables in indep. See rifsimp[ranking] and checkrank for an explanation of how to specify rankings based on these options.
The application of caseplot to the rif-form output of maxdimsystems with the second argument given as the maxdimvars displays the tree of maximal cases and their dimensions, also indicating which branches of the tree have less than maximal dimension.
Note that maxdimsystems is essentially a simplified version of the rifsimp interface that also has the ability to automatically determine the maximum finite dimensional cases or all infinite dimensional cases for a classification ODE/PDE system. If the dimension of the solution space is known, multiple conditions on the dimension of the solution space are needed, or much finer control of the computation is desired, then rifsimp could be used with the mindim option described in rifsimp[cases].
References:
G.J. Reid and A.D. Wittkopf, "Determination of Maximal Symmetry Groups of Classes of Differential Equations", Proc. ISSAC 2000, pp.272-280
G.W. Bluman and S. Kumei, "Symmetries and Differential Equations", Springer-Verlag, vol. 81.
with⁡DEtools:
Algebraic systems can be examined with maxdimsystems
maxdimsystems⁡u−a⁢v=0,u−c⁢v=0,u,v
Solved=u=c⁢v,a=c,Constraint=,Pivots=,dimension=1
In the below example, inequations are given in the Pivots list, and the dimension is 2
maxdimsystems⁡a⁡x−d⁡x⁢diff⁡u⁡x,x,x+b⁡x⁢diff⁡u⁡x,x+u⁡x=0,u
Solved=ⅆ2ⅆx2u⁡x=−b⁡x⁢ⅆⅆxu⁡x−u⁡xa⁡x−d⁡x,Constraint=,Pivots=a⁡x−d⁡x≠0,dimension=2
This next example has a constraint on the classvars present in the result
maxdimsystems⁡diff⁡u⁡x,y,x−f⁡x,y⁢u⁡x,y=0,diff⁡u⁡x,y,y−g⁡x,y⁢u⁡x,y=0,f⁡x,y3−1=0,u
Solved=∂∂xu⁡x,y=f⁡x,y⁢u⁡x,y,∂∂yu⁡x,y=g⁡x,y⁢u⁡x,y,∂∂xf⁡x,y=0,∂∂xg⁡x,y=0,∂∂yf⁡x,y=0,Constraint=f⁡x,y3−1=0,Pivots=,dimension=1
In each of the above examples maxdimsystems picked out the maximum dimensional case. This is in contrast to rifsimp, with its casesplit option, which obtains all cases.
For the second example, computation with rifsimp using casesplit gives 2-d, 1-d and 0-d cases, of which the 2-d case is the maximal case from the above example.
ans≔rifsimp⁡a⁡x−d⁡x⁢diff⁡u⁡x,x,x+b⁡x⁢diff⁡u⁡x,x+u⁡x=0,u,casesplit
ans≔table⁡1=table⁡Pivots=a⁡x−d⁡x≠0,Solved=ⅆ2ⅆx2u⁡x=−b⁡x⁢ⅆⅆxu⁡x−u⁡xa⁡x−d⁡x,Case=a⁡x−d⁡x≠0,ⅆ2ⅆx2u⁡x,2=table⁡Pivots=b⁡x≠0,Solved=ⅆⅆxu⁡x=−u⁡xb⁡x,a⁡x=d⁡x,Case=a⁡x−d⁡x=0,ⅆ2ⅆx2u⁡x,b⁡x≠0,ⅆⅆxu⁡x,3=table⁡Solved=u⁡x=0,a⁡x=d⁡x,b⁡x=0,Case=a⁡x−d⁡x=0,ⅆ2ⅆx2u⁡x,b⁡x=0,ⅆⅆxu⁡x,casecount=3
from which the caseplot with initial data counts could be viewed by issuing the command:
caseplot⁡ans,u
One example of practical use of maxdimsystems is the determination of the forms of fy'⁢ (where fy'⁢ is not identically zero) for which the ode y''⁢=fy'⁢ has the maximum dimension.
ODE≔diff⁡diff⁡y⁡x,x,x=f⁡diff⁡y⁡x,x
ODE≔ⅆ2ⅆx2y⁡x=f⁡ⅆⅆxy⁡x
symeq≔DEtoolsodepde⁡ODE,ξ⁡x,y,η⁡x,y
symeq≔−3⁢_y1⁢∂∂yξ⁡x,y−2⁢∂∂xξ⁡x,y+∂∂yη⁡x,y⁢f⁡_y1+−_y1⁢∂∂yη⁡x,y+_y12⁢∂∂yξ⁡x,y+_y1⁢∂∂xξ⁡x,y−∂∂xη⁡x,y⁢ⅆⅆ_y1f⁡_y1+∂2∂x2η⁡x,y+∂2∂y2η⁡x,y⁢_y12−∂2∂y2ξ⁡x,y⁢_y13−2⁢∂2∂x∂yξ⁡x,y⁢_y12+2⁢∂2∂x∂yη⁡x,y⁢_y1−_y1⁢∂2∂x2ξ⁡x,y
where the above symeq is an overdetermined system of PDE in the infinitesimal symmetries ξ⁡x,y,η⁡x,y.
So we compute the maximum dimensional case, which is not displayed as it is quite large:
t1≔time⁡:
msys≔maxdimsystems⁡op⁡symeq,f⁡_y1≠0,ξ,η:
time⁡−t1
0.439
nops⁡msys
1
length⁡msys1
5362
msys14
dimension=8
remove⁡has,rhs⁡msys11,ξ,η
ⅆ4ⅆ_y14f⁡_y1=0
from which we see that we have one case, of dimension 8, and it occurs when the displayed ODE in f⁡_y1 is satisfied. This classical result is also explored in the ISSAC Proc. article listed in the references (the primary reference for this command).
The timing above should be compared to the rifsimp full case analysis that takes significantly longer, and has a great number of lower dimensional cases:
t2≔time⁡:
rsys≔rifsimp⁡op⁡symeq,f⁡_y1≠0,ξ,η,casesplit:
time⁡−t2
4.641
rsyscasecount
11
Consider the nonlinear Heat equation
diff⁡u⁡x,t,t=diff⁡k⁡u⁡x,t⁢diff⁡u⁡x,t,x,x
∂∂tu⁡x,t=D⁡k⁡u⁡x,t⁢∂∂xu⁡x,t2+k⁡u⁡x,t⁢∂2∂x2u⁡x,t
The overdetermined system for it's symmetries X,T,U is given by
sys≔−2⁢diff⁡T⁡u,t,x,x,diff⁡diff⁡U⁡u,t,x,u,u−2⁢diff⁡diff⁡X⁡u,t,x,u,x+U⁡u,t,x⁢diff⁡diff⁡k⁡u,u,uk⁡u+1k⁡u⁢diff⁡k⁡u,u⁢diff⁡U⁡u,t,x,u−U⁡u,t,xk⁡u2⁢diff⁡k⁡u,u2,1k⁡u⁢diff⁡X⁡u,t,x,u⁢diff⁡k⁡u,u−diff⁡diff⁡X⁡u,t,x,u,u,diff⁡diff⁡U⁡u,t,x,x,x−1k⁡u⁢diff⁡U⁡u,t,x,t,1k⁡u⁢diff⁡T⁡u,t,x,t+U⁡u,t,xk⁡u2⁢diff⁡k⁡u,u−diff⁡diff⁡T⁡u,t,x,x,x−2k⁡u⁢diff⁡X⁡u,t,x,x,−diff⁡diff⁡X⁡u,t,x,x,x+2⁢diff⁡diff⁡U⁡u,t,x,u,x+1k⁡u⁢diff⁡X⁡u,t,x,t+2⁢diff⁡k⁡u,uk⁡u⁢diff⁡U⁡u,t,x,x,−2⁢diff⁡k⁡u,uk⁡u⁢diff⁡T⁡u,t,x,x−2k⁡u⁢diff⁡X⁡u,t,x,u−2⁢diff⁡diff⁡T⁡u,t,x,u,x,−1k⁡u⁢diff⁡k⁡u,u⁢diff⁡T⁡u,t,x,u−diff⁡diff⁡T⁡u,t,x,u,u,−2⁢diff⁡T⁡u,t,x,u:
At the same time as determining maximum dimensional cases, one can request, through a partitioning of the maxdimvars, that the dependent variables be ranked in a specific manner. To always isolate derivatives of U⁡u,t,x in terms of the other dependent variables, one could specify maxdimvars=[[U],[X,T]]. For this problem we would obtain
maxdimsystems⁡op⁡sys,diff⁡k⁡u,u≠0,U,X,T
Solved=U⁡u,t,x=k⁡u⁢−∂∂tT⁡u,t,x+2⁢∂∂xX⁡u,t,xⅆⅆuk⁡u,∂3∂x3X⁡u,t,x=0,∂2∂t2T⁡u,t,x=0,∂∂uX⁡u,t,x=0,∂∂uT⁡u,t,x=0,∂∂tX⁡u,t,x=0,∂∂xT⁡u,t,x=0,ⅆ2ⅆu2k⁡u=7⁢ⅆⅆuk⁡u24⁢k⁡u,Constraint=,Pivots=ⅆⅆuk⁡u≠0,dimension=5
Alternatively we could try to obtain PDE only in U⁡u,t,x and the classifying function k⁡u by an elimination ranking:
maxdimsystems⁡op⁡sys,diff⁡k⁡u,u≠0,X,T,U
Solved=∂2∂x2X⁡u,t,x=ⅆⅆuk⁡u⁢∂∂xU⁡u,t,x2⁢k⁡u,∂∂uX⁡u,t,x=0,∂∂uT⁡u,t,x=0,∂∂tX⁡u,t,x=0,∂∂tT⁡u,t,x=2⁢∂∂xX⁡u,t,x⁢k⁡u−U⁡u,t,x⁢ⅆⅆuk⁡uk⁡u,∂∂xT⁡u,t,x=0,∂2∂x2U⁡u,t,x=0,∂∂uU⁡u,t,x=−3⁢U⁡u,t,x⁢ⅆⅆuk⁡u4⁢k⁡u,∂∂tU⁡u,t,x=0,ⅆ2ⅆu2k⁡u=7⁢ⅆⅆuk⁡u24⁢k⁡u,Constraint=,Pivots=ⅆⅆuk⁡u≠0,dimension=5
where you can see from the above that we have three PDE for U⁡u,t,x alone (which can be quite easily solved for U⁡u,t,x in terms of a function that is linear in x with coefficients as integrals in u depending on k⁡u).
Both computations show that maximal group is of dimension 5, and occurs when k⁡u satisfies k''⁢=74⁢k'⁢2k. This is a known result (see the Bluman/Kumei reference).
In determining how a specific ranking will be used in a system, one should consult the checkrank help page.
The final example demonstrates how to find near-maximal cases, and how to obtain rif-style output. Say we want all cases having dimension 4 or greater, and we want rifsimp output (so we can display the information in a case plot). This can be done as follows:
rifans≔maxdimsystems⁡op⁡sys,diff⁡k⁡u,u≠0,X,T,U,mindim=4,output=rif
rifans≔table⁡1=table⁡DiffConstraint=0=8⁢ⅆ2ⅆu2k⁡u2⁢k⁡u2⁢∂∂xU⁡u,t,x−8⁢ⅆ2ⅆu2k⁡u⁢k⁡u⁢ⅆⅆuk⁡u2⁢∂∂xU⁡u,t,x−4⁢k⁡u2⁢ⅆⅆuk⁡u⁢∂∂xU⁡u,t,x⁢ⅆ3ⅆu3k⁡u+7⁢ⅆⅆuk⁡u4⁢∂∂xU⁡u,t,x,UnClass=0=2⁢ⅆ2ⅆu2k⁡u2⁢k⁡u⁢U⁡u,t,x−ⅆ2ⅆu2k⁡u⁢ⅆⅆuk⁡u2⁢U⁡u,t,x−k⁡u⁢ⅆⅆuk⁡u⁢U⁡u,t,x⁢ⅆ3ⅆu3k⁡u,Pivots=ⅆⅆuk⁡u≠0,dimension=3,status=free count fell below mindim,Solved=∂2∂x2X⁡u,t,x=ⅆⅆuk⁡u⁢∂∂xU⁡u,t,x2⁢k⁡u,∂∂uU⁡u,t,x=−U⁡u,t,x⁢k⁡u⁢ⅆ2ⅆu2k⁡u−ⅆⅆuk⁡u2k⁡u⁢ⅆⅆuk⁡u,∂∂tX⁡u,t,x=∂∂xU⁡u,t,x⁢4⁢k⁡u⁢ⅆ2ⅆu2k⁡u−7⁢ⅆⅆuk⁡u22⁢ⅆⅆuk⁡u,∂∂tT⁡u,t,x=2⁢∂∂xX⁡u,t,x⁢k⁡u−U⁡u,t,x⁢ⅆⅆuk⁡uk⁡u,Case=2⁢ⅆ2ⅆu2k⁡u2⁢k⁡u−ⅆ2ⅆu2k⁡u⁢ⅆⅆuk⁡u2−k⁡u⁢ⅆⅆuk⁡u⁢ⅆ3ⅆu3k⁡u≠0,U⁡u,t,x,2=table⁡Pivots=−4⁢k⁡u⁢ⅆ2ⅆu2k⁡u+7⁢ⅆⅆuk⁡u2≠0,dimension=4,Solved=∂2∂x2X⁡u,t,x=0,∂∂uX⁡u,t,x=0,∂∂uT⁡u,t,x=0,∂∂uU⁡u,t,x=−U⁡u,t,x⁢k⁡u⁢ⅆ2ⅆu2k⁡u−ⅆⅆuk⁡u2k⁡u⁢ⅆⅆuk⁡u,∂∂tX⁡u,t,x=0,∂∂tT⁡u,t,x=2⁢∂∂xX⁡u,t,x⁢k⁡u−U⁡u,t,x⁢ⅆⅆuk⁡uk⁡u,∂∂tU⁡u,t,x=0,∂∂xT⁡u,t,x=0,∂∂xU⁡u,t,x=0,ⅆ3ⅆu3k⁡u=ⅆ2ⅆu2k⁡u⁢2⁢k⁡u⁢ⅆ2ⅆu2k⁡u−ⅆⅆuk⁡u2k⁡u⁢ⅆⅆuk⁡u,Case=2⁢ⅆ2ⅆu2k⁡u2⁢k⁡u−ⅆ2ⅆu2k⁡u⁢ⅆⅆuk⁡u2−k⁡u⁢ⅆⅆuk⁡u⁢ⅆ3ⅆu3k⁡u=0,U⁡u,t,x,−4⁢k⁡u⁢ⅆ2ⅆu2k⁡u+7⁢ⅆⅆuk⁡u2≠0,∂∂xU⁡u,t,x,3=table⁡Pivots=ⅆⅆuk⁡u≠0,dimension=5,Solved=∂2∂x2X⁡u,t,x=ⅆⅆuk⁡u⁢∂∂xU⁡u,t,x2⁢k⁡u,∂2∂x2U⁡u,t,x=0,∂∂uX⁡u,t,x=0,∂∂uT⁡u,t,x=0,∂∂uU⁡u,t,x=−3⁢U⁡u,t,x⁢ⅆⅆuk⁡u4⁢k⁡u,∂∂tX⁡u,t,x=0,∂∂tT⁡u,t,x=2⁢∂∂xX⁡u,t,x⁢k⁡u−U⁡u,t,x⁢ⅆⅆuk⁡uk⁡u,∂∂tU⁡u,t,x=0,∂∂xT⁡u,t,x=0,ⅆ2ⅆu2k⁡u=7⁢ⅆⅆuk⁡u24⁢k⁡u,Case=2⁢ⅆ2ⅆu2k⁡u2⁢k⁡u−ⅆ2ⅆu2k⁡u⁢ⅆⅆuk⁡u2−k⁡u⁢ⅆⅆuk⁡u⁢ⅆ3ⅆu3k⁡u=0,U⁡u,t,x,−4⁢k⁡u⁢ⅆ2ⅆu2k⁡u+7⁢ⅆⅆuk⁡u2=0,∂∂xU⁡u,t,x,casecount=3
All cases where the initial data was smaller than the bound are tagged with a status of "free count fell below mindim". This calculation can then be displayed in a caseplot with the command:
caseplot⁡rifans,X,T,U
See Also
checkrank
DEtools[odepde]
initialdata
Rif
rifsimp
rifsimp[adv_options]
rifsimp[cases]
rifsimp[nonlinear]
rifsimp[options]
rifsimp[output]
rifsimp[overview]
rifsimp[ranking]
Download Help Document