PolynomialTools
PolynomialToPDE
convert polynomials to PDEs
PDEToPolynomial
convert PDEs to polynomials
Calling Sequence
Parameters
Description
Examples
PolynomialToPDE(polys, vars, depvars)
PDEToPolynomial(pdes, vars, depvars)
polys
-
list (or set) of polynomials or polynomial equations in vars which is linear and homogeneous in the variables depvars
vars
list of independent variables
depvars
list of dependent variables
pdes
list or set of PDEs in the independent variables vars which is linear and homogeneous in its dependent variables depvars
The function PolynomialToPDE maps polynomials to linear homogeneous PDEs and has as its inverse PDEToPolynomial. These maps implement an equivalence between polynomial ideals (and in general modules), and systems of linear homogeneous constant coefficient PDEs.
These functions widen the set of tools that can be applied to both domains. For example, Groebner-like differential elimination algorithms, correspond to Groebner bases of modules under PolynomialToPDE. Efficiency features such as case-splitting in the differential packages, restricting time limits on the cases, storage of partial results, and selecting maximal dimension cases are made available for polynomial systems through this map. Conversely, polynomial features are made available for differential systems by using PDEToPolynomial. PDE solving can also benefit from this correspondence.
Applied to a single polynomial (or PDE), the function PolynomialToPDE (or PDEToPolynomial) is respectively:
PolynomialToPDE⁡p1⁡x⁢u1+...+pk⁡x⁢uk,x,u=p1⁡D1,...,Dn⁢u1⁡x+...+pk⁡D1,...,Dn⁢uk⁡x
PDEToPolynomial⁡p1⁡D1,...,Dn⁢u1⁡x+...+pk⁡D1,...,Dn⁢uk⁡x,x,u=p1⁡x⁢u1+...+pk⁡x⁢uk
Here depvars=[u]=[u1,...,uk] are the dependent variables, and p1,p2,...,pk are polynomials in the independent variables vars=[x]=[x1,...,xn]. Also, D1,D2,...,Dn are the partial differential operators corresponding to x1,x2,...,xn. So PolynomialToPDE applies to polynomials which are linear and homogeneous in depvars=u, with coefficients that are polynomials in vars=x. PolynomialToPDE (or PDEToPolynomial) of a list is obtained by applying the functions described above to each member of the list.
PDEToPolynomial applies to PDEs which are linear and homogeneous in depvars=u, with coefficients independent of vars=x.
In the case of one dependent variable the dependent variable is omitted: PDEToPolynomial([p(D1,...,Dn) u1(x)], [x], [u1]) yields p⁡x1,...,xn. Similarly, it is possible to apply PolynomialToPDE to a polynomial in vars, without any dependent variable present in depvars.
This mapping between linear homogeneous system of partial differential equations is an isomorphism between the differential ring and the corresponding polynomial ring (viewed as a module generated by u1,u2,...,uk ).
These functions are part of the PolynomialTools package, and so they can be used in the form PolynomialToPDE(..) only after executing the command with(PolynomialTools). However, they can always be accessed through the long form of the command by using PolynomialTools[PolynomialToPDE](..).
with⁡PolynomialTools:
S≔PolynomialToPDE⁡x2−2⁢x+1⁢u+x3⁢v,x,u,v
S≔ⅆ3ⅆx3v⁡x+ⅆ2ⅆx2u⁡x−2⁢ⅆⅆxu⁡x+u⁡x
So x⁢u−>u'⁡x and x3⁢v−>v'''⁡x, and the inverse map is given by the following.
PDEToPolynomial⁡S,x,u,v
x2−2⁢x+1⁢u+x3⁢v
If there is only one dependent variable, then it is omitted in the polynomial by default.
PDEToPolynomial⁡2⁢diff⁡u⁡x,y,x,y+a⁢u⁡x,y,x,y,u,PolynomialToPDE⁡2⁢x⁢y+a,x,y,u
2⁢x⁢y+a,2⁢∂2∂x∂yu⁡x,y+a⁢u⁡x,y
The following is a computation of a Groebner Basis:
W≔x2−2⁢x⁢z+5,x⁢y2+y⁢z3,3⁢y2−8⁢z3:
GroebnerBasis⁡W,tdeg⁡x,y,z
x2−2⁢x⁢z+5,8⁢z3−3⁢y2,8⁢x⁢y2+3⁢y3,9⁢y4+48⁢y3⁢z+320⁢y2
The same calculation, but by mapping to a PDE, then using DEtools[rifsimp], then mapping back to polynomials:
DW≔PolynomialToPDE⁡W,x,y,z,u:RDW≔DEtoolsrifsimp⁡DW:
PDEToPolynomial⁡RDWSolved,x,y,z,u
y2⁢9⁢y2+48⁢y⁢z+3209,y2⁢8⁢x+3⁢y8,z3−3⁢y28,x2−2⁢x⁢z+5
Computation of a Differential Groebner Basis for a differential system by converting it to a module:
S≔−diff⁡ξ1⁡x,y,z,x+diff⁡ξ2⁡x,y,z,y,−diff⁡ξ1⁡x,y,z,y−diff⁡ξ2⁡x,y,z,x,−diff⁡ξ1⁡x,y,z,z−diff⁡ξ3⁡x,y,z,x,−diff⁡ξ3⁡x,y,z,y−diff⁡ξ2⁡x,y,z,z,−diff⁡ξ3⁡x,y,z,z+diff⁡ξ2⁡x,y,z,y,diff⁡η⁡x,y,z,`$`⁡y,2+diff⁡η⁡x,y,z,`$`⁡x,2+diff⁡η⁡x,y,z,`$`⁡z,2,−diff⁡ξ2⁡x,y,z,`$`⁡y,2−diff⁡ξ2⁡x,y,z,`$`⁡x,2+2⁢diff⁡η⁡x,y,z,y−diff⁡ξ2⁡x,y,z,`$`⁡z,2,−diff⁡ξ3⁡x,y,z,`$`⁡x,2−diff⁡ξ3⁡x,y,z,`$`⁡y,2−diff⁡ξ3⁡x,y,z,`$`⁡z,2+2⁢diff⁡η⁡x,y,z,z,−diff⁡ξ1⁡x,y,z,`$`⁡z,2+2⁢diff⁡η⁡x,y,z,x−diff⁡ξ1⁡x,y,z,`$`⁡y,2−diff⁡ξ1⁡x,y,z,`$`⁡x,2:
with⁡Ore_algebra:
PS≔PDEToPolynomial⁡S,x,y,z,ξ1,ξ2,ξ3,η
PS≔−x⁢ξ1+ξ2⁢y,−x⁢ξ2−y⁢ξ1,−x⁢ξ3−z⁢ξ1,−z⁢ξ2−ξ3⁢y,ξ2⁢y−ξ3⁢z,η⁢x2+y2+z2,−x2−y2−z2⁢ξ2+2⁢η⁢y,−x2−y2−z2⁢ξ3+2⁢η⁢z,−x2−y2−z2⁢ξ1+2⁢η⁢x
A≔Ore_algebrapoly_algebra⁡x,y,z,ξ1,ξ2,ξ3,η:
T≔GroebnerMonomialOrder⁡A,lexdeg⁡η,ξ3,ξ2,ξ1,z,x,y,η,ξ3,ξ2,ξ1:
GSG≔GroebnerBasis⁡PS,T
GSG≔ξ1⁢y⁢z,x2⁢ξ1+ξ1⁢y2,−ξ1⁢y2+ξ1⁢z2,ξ1⁢y3,x⁢ξ1⁢y2,−x⁢ξ1+ξ2⁢y,x⁢ξ2+y⁢ξ1,x⁢ξ1⁢y+ξ2⁢z2,z⁢ξ2+ξ3⁢y,x⁢ξ3+z⁢ξ1,−x⁢ξ1+ξ3⁢z,x⁢ξ1⁢y+2⁢η⁢y,−ξ1⁢y2+2⁢η⁢x,x⁢z⁢ξ1+2⁢η⁢z
In terms of the PDEs, this basis is:
PolynomialToPDE⁡GSG,x,y,z,ξ1,ξ2,ξ3,η
∂2∂y∂zξ1⁡x,y,z,∂2∂x2ξ1⁡x,y,z+∂2∂y2ξ1⁡x,y,z,−∂2∂y2ξ1⁡x,y,z+∂2∂z2ξ1⁡x,y,z,∂3∂y3ξ1⁡x,y,z,∂3∂x∂y2ξ1⁡x,y,z,−∂∂xξ1⁡x,y,z+∂∂yξ2⁡x,y,z,∂∂xξ2⁡x,y,z+∂∂yξ1⁡x,y,z,∂2∂x∂yξ1⁡x,y,z+∂2∂z2ξ2⁡x,y,z,∂∂zξ2⁡x,y,z+∂∂yξ3⁡x,y,z,∂∂xξ3⁡x,y,z+∂∂zξ1⁡x,y,z,−∂∂xξ1⁡x,y,z+∂∂zξ3⁡x,y,z,∂2∂x∂yξ1⁡x,y,z+2⁢∂∂yη⁡x,y,z,−∂2∂y2ξ1⁡x,y,z+2⁢∂∂xη⁡x,y,z,∂2∂x∂zξ1⁡x,y,z+2⁢∂∂zη⁡x,y,z
The following calculation illustrates the equivalence between the differential and the polynomial calculations calculated directly:
RS≔DEtoolsrifsimp⁡S,η,ξ3,ξ2,ξ1
RS≔table⁡Solved=∂2∂x2η⁡x,y,z=0,∂2∂x∂yη⁡x,y,z=0,∂2∂x∂zη⁡x,y,z=0,∂2∂y2η⁡x,y,z=0,∂2∂y2ξ1⁡x,y,z=2⁢∂∂xη⁡x,y,z,∂2∂y∂zη⁡x,y,z=0,∂2∂y∂zξ1⁡x,y,z=0,∂2∂z2η⁡x,y,z=0,∂2∂z2ξ3⁡x,y,z=−2⁢∂∂zη⁡x,y,z,∂2∂z2ξ2⁡x,y,z=2⁢∂∂yη⁡x,y,z,∂2∂z2ξ1⁡x,y,z=2⁢∂∂xη⁡x,y,z,∂∂xξ3⁡x,y,z=−∂∂zξ1⁡x,y,z,∂∂xξ2⁡x,y,z=−∂∂yξ1⁡x,y,z,∂∂xξ1⁡x,y,z=∂∂zξ3⁡x,y,z,∂∂yξ3⁡x,y,z=−∂∂zξ2⁡x,y,z,∂∂yξ2⁡x,y,z=∂∂zξ3⁡x,y,z
Find the values of b and c such that the following system of polynomials has nontrivial solutions.
sys≔u+a⁢v+a2⁢w,u+b⁢v+b2⁢w,u+c⁢v+c2⁢w,u+c⁢v+c2+c−2⁢w:
Dsys≔PolynomialToPDE⁡sys,a,u,v,w:
RDsys≔DEtoolsrifsimp⁡Dsys,casesplit
RDsys≔table⁡1=table⁡Pivots=−b+c≠0,c−2≠0,Case=−b+c≠0,v⁡a,c−2≠0,w⁡a,Solved=u⁡a=0,v⁡a=0,w⁡a=0,2=table⁡Pivots=−b+2≠0,Case=−b+c≠0,v⁡a,c−2=0,w⁡a,Solved=ⅆ2ⅆa2w⁡a=−2⁢b⁢w⁡a+ⅆⅆaw⁡a⁢b+2⁢ⅆⅆaw⁡a,u⁡a=2⁢b⁢w⁡a,v⁡a=−w⁡a⁢b+2,c=2,3=table⁡Pivots=c−2≠0,Case=−b+c=0,v⁡a,c−2≠0,w⁡a,Solved=ⅆⅆav⁡a=c⁢v⁡a,u⁡a=−c⁢v⁡a,w⁡a=0,b=c,4=table⁡Case=−b+c=0,v⁡a,c−2=0,w⁡a,Solved=ⅆ2ⅆa2w⁡a=−ⅆⅆav⁡a+4⁢w⁡a+2⁢v⁡a,u⁡a=−4⁢w⁡a−2⁢v⁡a,b=2,c=2,casecount=4
See Also
DEtools[caseplot]
DEtools[rifsimp]
DifferentialAlgebra
Groebner/Groebner_bases_for_modules
polynomial
Download Help Document