Linear Differential Operators
In Maple, one can work with differential operators by using a subset of the DEtools package. Differential operators in this case are polynomial objects of the form
L≔anx DFn+...+a1x DF+a0x
with the coefficients ai⁡x being rational functions over a field. Here D is an object that satisfies properties such as DF⁡x=1 and DF⁡u⁢v=u⁢DF⁡v+DF⁡u⁢v. One can perform functions on these operators such as multiplying, forming symmetric products, taking one-sided greatest common divisors, factoring, and so on.
This functionality, due to Mark van Hoeij (University of Nijmegen), allows for significant future advances for applications such as finding closed form solutions of linear differential equations. Some applications of this subpackage of DEtools are included below. We use the with command to allow us to use the short form for the commands in the DEtools package.
restart
with⁡DEtools:
Algebraic Operations with Differential Operators
Differential operators are a noncommutative domain with operations such as addition, multiplication, application, and so on. A differential operator L in CxDF is an expression L≔anx DFn+...+a1x DF+a0x, where aix are elements of C(x). An element L in CxDx corresponds to a linear homogeneous differential equation Lyx=0.
Multiplication (see DEtools[mult]) in the ring CxDx corresponds to composition of differential operators. So if L=multf,g, then Lyx=fgyx. In particular, multDF,x=x⋅DF+1.
As examples of the types of algebraic operations you can do, consider the three differential operators:
L1:=x2⁢DF2−x⁢DF+a−x2
L1≔x2⁢DF2−x⁢DF−x2+a
L2:=x⁢DF−x2−b
L2≔x⁢DF−x2+b
L3:=DF2−x
L3≔DF2−x
You can multiply these operators and note that multiplication is noncommutative:
L4:=collect⁡mult⁡L1,L2,DF,x,DF
L4≔x3⁢DF3+−x4+b⁢x2+x2⁢DF2+−4⁢x3+a⁢x−b⁢x−x⁢DF+x4−a⁢x2−b⁢x2+a⁢b
L5:=collect⁡mult⁡L2,L1,DF,x,DF
L5≔x3⁢DF3+−x4+b⁢x2+x2⁢DF2+a⁢x−b⁢x−x⁢DF+x4−a⁢x2−b⁢x2+a⁢b−2⁢x2
The argument DF,x tells the mult command that the multiplication is over the differential domain specified by DF and x, and so the variables a and b are constants. This can also be set by the environment variable _Envdiffopdomain≔DF,x, if you expect to use the same domain throughout.
The concept of a one-sided lowest common multiple and greatest common divisor exists in such domains. For example,
L6:=LCLM⁡L3,L2,DF,x
L6≔DF3+−x6+3⁢b⁢x4+x5−3⁢b2⁢x2−b⁢x3−3⁢x4+b3+x3+3⁢b2+2⁢b⁢DF2x⁢x4−2⁢b⁢x2−x3+b2+x2+b−x⁢DF−−x6+3⁢b⁢x4+x5−3⁢b2⁢x2−b⁢x3−2⁢x4+b3−2⁢b⁢x2+4⁢b2+x2+3⁢bx4−2⁢b⁢x2−x3+b2+x2+b
and
L7:=GCRD⁡L4,L6,DF,x
L7≔DF+−x2+bx
One can check this by using right or left division. In this case, you have
rightdivision⁡L6,L7,DF,x
DF2+−2⁢x4+x3+2⁢b2+2⁢b⁢DFx⁢x4−2⁢b⁢x2−x3+b2+x2+b−x5−2⁢b⁢x3−x4+b2⁢x+2⁢x3+4⁢b⁢x−2⁢x2−6⁢bx4−2⁢b⁢x2−x3+b2+x2+b,0
rightdivision⁡L4,L7,DF,x
x3⁢DF2+x2⁢DF−x3+a⁢x−x,0
which in both cases gives a quotient with 0 remainder. You can check the computation by multiplying:
collect⁡L4−mult⁡1,L7,DF,x,DF,normal
0
Factorization of Differential Operators
The section contains subsections on closed-form solutions, and on other factorization options.
Building Closed-form Solutions of Differential Equations
Consider the third-order differential equation
ode:=−x−x3⁢y⁡x−2⁢x2⁢ⅆⅆx⁢y⁡x+x3+x⁢ⅆ2ⅆx2⁢y⁡x+x2⁢ⅆ3ⅆx3⁢y⁡x
ode≔−x3−x⁢y⁡x−2⁢x2⁢ⅆⅆxy⁡x+x3+x⁢ⅆ2ⅆx2y⁡x+x2⁢ⅆ3ⅆx3y⁡x
One can use factorization of differential operators to find closed form solutions for this ODE. One can convert the equation to a differential operator:
dode:=de2diffop⁡ode,y⁡x,DF,x
dode≔x2⁢DF3+x3+x⁢DF2−2⁢x2⁢DF−x3−x
and factor by:
ode_fact:=DFactor⁡dode,DF,x
ode_fact≔x2⁢DF+x⁢x2+2,DF2−DFx−x2−1x2
This shows that one factorization (factorizations are not unique) has a right factor given by:
right_fact:=ode_fact2
right_fact≔DF2−DFx−x2−1x2
Any solution of the corresponding differential equation is then also a solution to the original homogeneous equation. This results in
ode2:=diffop2de⁡right_fact,DF,x,y⁡x
ode2≔−x2−1⁢y⁡xx2−ⅆⅆxy⁡xx+ⅆ2ⅆx2y⁡x
dsolve⁡ode2,y⁡x
y⁡x=c__1⁢x⁢BesselI⁡0,x+c__2⁢x⁢BesselK⁡0,x
The remaining solution can be determined by reduction of order using the above two solutions. This is actually the method used in dsolve to solve the original ODE:
dsolve⁡ode
y⁡x=c__1⁢x⁢BesselI⁡0,x+c__2⁢x⁢BesselK⁡0,x+c__3⁢x⁢BesselK⁡0,x⁢∫BesselI⁡0,x⁢ⅇ−x22x2ⅆx−BesselI⁡0,x⁢∫BesselK⁡0,x⁢ⅇ−x22x2ⅆx
More Factorization
The differential operator
df:=DF2+21⁢x2−x+1100⁢x2⁢x−12
df≔DF2+21⁢x2−x+1100⁢x2⁢x−12
considered as an element of QxDF, is well known not to factor. We can check this by using the DFactor function:
DFactor⁡df,DF,x
DF2+21⁢x2−x+1100⁢x2⁢x−12
In addition, its differential Galois field is known to be A5SL2. It follows from the work of Singer and Ulmer that the sixth symmetric power of order 7
dff:=symmetric_power⁡df,6,DF,x
dff≔DF7+294⁢x2−x+1⁢DF525⁢x2⁢x−12−147⁢2⁢x3−3⁢x2+5⁢x−2⁢DF45⁢x3⁢x−13+441⁢349⁢x4−698⁢x3+1547⁢x2−1198⁢x+349⁢DF3625⁢x4⁢x−14−441⁢1094⁢x5−2735⁢x4+7470⁢x3−8470⁢x2+4829⁢x−1094⁢DF2625⁢x5⁢x−15+63⁢1597268⁢x6−4791804⁢x5+15457733⁢x4−22929126⁢x3+19286733⁢x2−8620804⁢x+1597268⁢DF62500⁢x6⁢x−16−189⁢277134⁢x7−969969⁢x6+3595389⁢x5−6563550⁢x4+7263809⁢x3−4817148⁢x2+1768603⁢x−27713431250⁢x7⁢x−17
factors and has factors of order 3 and 4. However, even though it was known what the orders of the factors are, no previous algorithm could actually do the factorization. We now obtain (after some time)
fact_df:=DFactor⁡dff,DF,x
fact_df≔DF4+4⁢2⁢x−1⁢DF3x⁢x−1+3⁢23⁢x2−23⁢x+3⁢DF25⁢x2⁢x2−2⁢x+1+3⁢58⁢x3−87⁢x2+33⁢x−2⁢DF50⁢x3⁢x−1⁢x2−2⁢x+1−96⁢x4−2⁢x3+3⁢x2−2⁢x+1625⁢x4⁢x−12⁢x2−2⁢x+1,DF3−4⁢2⁢x−1⁢DF2x⁢x−1+749⁢x2−749⁢x+249⁢DF25⁢x2⁢x2−2⁢x+1−9⁢266⁢x3−399⁢x2+265⁢x−6650⁢x3⁢x3−3⁢x2+3⁢x−1
One can check the factorization:
L:=mult⁡fact_df1,fact_df2,DF,x:
collect⁡L−dff,DF,normal
Building of Differential Equations
One can take advantage of the differential operator tools in DEtools to construct solutions of differential equations from known equations. For example,
df:=x2⁢DF2−x⁢DF+x2−1
df≔x2⁢DF2−x⁢DF+x2−1
is a differential operator with Bessel function solutions. Indeed we have
diffop2de⁡df,y⁡x,DF,x
x2−1⁢y⁡x−ⅆⅆxy⁡x⁢x+ⅆ2ⅆx2y⁡x⁢x2
dsolve⁡,y⁡x
y⁡x=c__1⁢x⁢BesselJ⁡2,x+c__2⁢x⁢BesselY⁡2,x
The third symmetric power of df then generates a differential equation that has the power combinations of the above as its solutions. For example,
dff:=symmetric_power⁡df,3,DF,x
dff≔DF4−6⁢DF3x+5⁢2⁢x2+1⁢DF2x2−5⁢6⁢x2−7⁢DFx3+3⁢3⁢x4+2⁢x2−21x4
diffop2dedff,y⁡x,DF,x;
3⁢3⁢x4+2⁢x2−21⁢y⁡xx4−5⁢6⁢x2−7⁢ⅆⅆxy⁡xx3+5⁢2⁢x2+1⁢ⅆ2ⅆx2y⁡xx2−6⁢ⅆ3ⅆx3y⁡xx+ⅆ4ⅆx4y⁡x
dsolve⁡,yx
y⁡x=c__1⁢x3⁢BesselJ⁡2,x3+c__2⁢x3⁢BesselY⁡2,x3+c__3⁢x3⁢BesselJ⁡2,x⁢BesselY⁡2,x2+c__4⁢x3⁢BesselJ⁡2,x2⁢BesselY⁡2,x
We can construct products of solutions using the symmetric_product function. For example,
df2:=DF−x:
dsolve⁡diffop2de⁡df2,y⁡x,DF,x,y⁡x
y⁡x=c__1⁢ⅇx22
produces an exponential solution. In this case
df3:=symmetric_product⁡df,df2,DF,x
df3≔x2⁢DF2−2⁢x3⁢DF−x⁢DF+x4+x2−1
dsolve⁡diffop2de⁡df3,y⁡x,DF,x,y⁡x
y⁡x=c__1⁢ⅇx22⁢x⁢BesselJ⁡2,x+c__2⁢ⅇx22⁢x⁢BesselY⁡2,x
gives a solution that is the product of solving df and df2.
To create an equation having an exponential solution, we can either explicitly construct operators from exponential equations, or we can use the exterior power operation. If an operator L has a right factor of order n, then the n-th exterior power of L has a right factor of order 1. For example
L:=collect⁡mult⁡df+x,df,DF,x,DF
L≔x4⁢DF4+2⁢x3⁢DF3+2⁢x4+x3−3⁢x2⁢DF2+2⁢x3−x2+3⁢x⁢DF+x4+x3−2⁢x2−x+1
M:=exterior_power⁡L,2,DF,x
M≔DF6+8⁢DF5x+4⁢x2+2⁢x+7⁢DF4x2+24⁢x2+7⁢x−3⁢DF3x3+25⁢x2+3⁢x−7⁢DF2x4+x2+14⁢DFx5−x2+14x6
DFactor⁡M,DF,x
DF+4x,DF4+5⁢DF3x+2⁢2⁢x2+x−2⁢DF2x2+3⁢4⁢x+1⁢DFx2+5x2,DF−1x
shows this right-hand factor. This can also be seen with
expsols⁡diffop2de⁡M,y⁡x,DF,x,y⁡x
x
Return to Index for Example Worksheets
Download Help Document