Updates to Differential Equation (DE) Solvers in Maple 16
Summary
Ordinary Differential Equations (ODEs)
Partial Differential Equations (PDEs)
The theme for exact, symbolic Ordinary Differential Equation solving in Maple 16 is the development of new solving methods for 1st, 2nd, and higher order nonlinear ODEs. The new methods extend the ability to solving 1st order Abel and other families of equations, and a number of 2nd and higher order families of equations not admitting point symmetries, or admitting them but in cases where they are of no practical use. The Maple 16 ODE solver keeps pushing the frontier in exact solutions for ODEs. Maple remains the state of the art in computing exact solutions for ODEs with computer algebra software.
For 1st order ODEs, dsolve can additionally solve two new 1-parameter Abel ODE classes and two other entire new ODE classes depending on one arbitrary function that happen to be linearizable through integral transformations.
For each of the 2nd, 3rd, and 4th order ODEs problems, in Maple 16 dsolve can additionally solve two new nonlinear ODE families depending on arbitrary functions.
Recalling, each new solvable class of equations includes infinitely many different equations that can be transformed into each other through the transformations of the dependent and independent variables that define the class.
For both Ordinary and Partial Differential Equations, a theme in Maple 16 is a thorough revision of the existing symmetry algorithms and their extension to automatically handle problems involving anticommutative variables. This extension includes the dsolve and pdsolve commands, all the commands of the PDEtools[Library] and many of the symmetry commands in PDEtools, making all this DE functionality be naturally available for the first time for working on problems in Physics that involve anticommutative variables.
Using new algorithms, the dsolve command can additionally solve new nonlinear ODE families of order 1st, 2nd, 3rd and 4th, all of them parametrized by arbitrary functions of the independent variable and out of reach in previous Maple releases.
New solvable 1st order nonlinear ODE families
For 1st order ODEs, the simplest problem beyond the reach of complete solving algorithms is known as Abel equations. These are equations of the form
y'=f3⁢y3+f2⁢y2+f1⁢y+f0g1⁢y+g0
where y⁢≡yx is the unknown and the fi⁢≡fix and gj⁢≡gjx are arbitrary functions of x. The biggest subclass of Abel equations known to be solvable was discovered by our research team and is the AIR 4-parameter class. New in Maple 16, two additional 1-parameter classes of Abel equations, beyond the AIR class, are now also solvable.
Examples
PDEtools[declare](y(x), prime=x);
y⁡x⁢will now be displayed as⁢y
derivatives with respect to⁢x⁢of functions of one variable will now be displayed with '
This equation, of type Abel 2nd kind, depending on one parameter α, is now solved in terms of hypergeometric functions
ode[1] := diff(y(x),x) = -y(x)*(-3+x)*((-9+2*alpha)*y(x)-9)/(x*(54-36*x+6*x^2-3*alpha+2*alpha*x)*y(x)+9*alpha+81-54*x+9*x^2);
ode1≔y'=−y⁢−3+x⁢−9+2⁢α⁢y−9x⁢2⁢α⁢x+6⁢x2−3⁢α−36⁢x+54⁢y+9⁢α+81−54⁢x+9⁢x2
dsolve(ode[1]);
c__1+27⁢x⁢y+32⁢2438+y4⁢α+94⁢α⁢α+9⁢LerchPhi⁡−2⁢α⁢y9+y+1,1,8⁢α−9−9+2⁢α+3⁢−814−α2−454⁢α⁢y32+27⁢α+9⁢y28−243⁢y8⁢2⁢α⁢y9−y−18⁢α−9−9+2⁢α−81⁢32+x−32⁢y⁢2⁢α⁢y9−y−16⁢α−9+2⁢α⁢−92+α−92⁢y22⁢α−924⁢x⁢y+32⁢y4=0
The related class of Abel equations that is now entirely solvable consists of the set of equations that can be obtained from equation (2) by changing variables
x↦F⁡x,y↦P1⁡x⋅y+Q1⁡xP2⁡x⋅y+Q2⁡x
where G⁡x and the four Pi⁡x,Qj⁡x are arbitrary rational functions of x; this is the most general transformation that preserves the form of Abel equations and thus generates Abel ODE classes.
The following ODE family depending on an arbitrary function G⁡x is representative of the next difficult problem beyond Abel equations, that is, a problem involving 4th powers of y in the right-hand side, now under focus
ode[2] := diff(y(x),x) = 1/2*(G(x)^2*y(x)^4-diff(G(x),x)*y(x)^2+x)/G(x)/y(x);
ode2≔y'=G⁡x2⁢y4−G'⁢y2+x2⁢G⁡x⁢y
We solve it here in implicit form to avoid square roots obscuring the solution
sol[2] := dsolve(ode[2], y(x), implicit);
sol2≔c__1+AiryBi⁡−x⁢G⁡x⁢y2−AiryBi⁡1,−xAiryAi⁡−x⁢G⁡x⁢y2−AiryAi⁡1,−x=0
odetest(sol[2], ode[2], y(x));
0
A generalization of the problem above, solvable in Maple 16, involving an arbitrary function G⁡y
ode[3] := diff(y(x),x) = 2*G(y(x))*x/(2-D(G)(y(x))*x^2+G(y(x))^2*x^4-2*y(x)*G(y(x))*x^2);
ode3≔y'=2⁢G⁡y⁢x2−D⁡G⁡y⁢x2+G⁡y2⁢x4−2⁢y⁢G⁡y⁢x2
sol[3] := dsolve(ode[3]);
sol3≔c__1+−G⁡y⁢x2+2⁢y−2⁢ⅇy2+erfi⁡y⁢−G⁡y⁢x2+2⁢y⁢π=0
odetest(sol[3], ode[3]);
New solvable nonlinear ODE families of 2nd, 3rd, and 4th order
Using new algorithms developed by our research team, the dsolve command in Maple 16 can additionally solve two new nonlinear ODE families for each of the 2nd, 3rd and 4th order problems, with the ODE families involving arbitrary functions of the independent (x) or dependent (y) variables.
A 4th order ODE family
ode[4] := diff(y(x), x$4) = 5*y(x)*diff(y(x), x$3) + (10*diff(y(x), x) - 10*y(x)^2-1/x)*diff(y(x), x$2) - 15*y(x)*diff(y(x), x)^2+(10*y(x)^3 + 3/x*y(x))*diff(y(x),x) - y(x)^5 - 1/x*y(x)^3;
ode4≔y''''=5⁢y⁢y'''+10⁢y'−10⁢y2−1x⁢y''−15⁢y⁢y'2+10⁢y3+3⁢yx⁢y'−y5−y3x
This ODE has no point symmetries; the determining PDE for the symmetry infinitesimals only admits both of them equal to zero:
PDEtools:-DeterminingPDE(ode[4]);
_ηy⁡x,y=0,_ξx⁡x,y=0
Using new algorithms, this problem is nevertheless solvable in explicit form in terms of Bessel functions
dsolve(ode[4]);
y=−x32⁢BesselJ⁡3,2⁢x⁢c__4−x32⁢BesselY⁡3,2⁢x−2⁢c__3⁢x−c__2c__1+c__2⁢x+c__3⁢x2+c__4⁢x2⁢BesselJ⁡4,2⁢x+x2⁢BesselY⁡4,2⁢x
Another problem not admitting point symmetries, of 3rd order
ode[5] := diff(y(x), x$3) = (4*y(x)-1/x)*diff(y(x), x$2) + 3*diff(y(x), x)^2 + (-6*y(x)^2+3/x*y(x)-x)*diff(y(x), x) + y(x)^4 - 1/x*y(x)^3 + y(x)^2*x - y(x);
ode5≔y'''=4⁢y−1x⁢y''+3⁢y'2+−6⁢y2+3⁢yx−x⁢y'+y4−y3x+y2⁢x−y
dsolve(ode[5]);
y=−240⁢c__2⁢x⁢hypergeom⁡13,13,23,23,43,−x39+15⁢c__2⁢x4⁢hypergeom⁡43,43,53,53,73,−x39−480⁢c__3⁢x2⁢hypergeom⁡23,23,1,43,53,−x39+16⁢c__3⁢x5⁢hypergeom⁡53,53,2,73,83,−x39−720⁢MeijerG⁡1,,23,23,13,,x39240⁢x⁢c__1+c__2⁢x⁢hypergeom⁡13,13,23,23,43,−x39+c__3⁢x2⁢hypergeom⁡23,23,1,43,53,−x39+MeijerG⁡1,1,,23,23,13,0,x39
A 2nd order nonlinear ODE problem for which point symmetries exist but are of no use for integration purposes (they involve an unsolved 4th order linear ODE).
ode[6] := diff(y(x), x, x) = x*(diff(y(x), x))^3*y(x)+x^2*(x-1)*(diff(y(x), x))^3+(-3*x+1)*(diff(y(x), x))^2;
ode6≔y''=x⁢y'3⁢y+x2⁢x−1⁢y'3+−3⁢x+1⁢y'2
sol[6] := dsolve(ode[6]);
sol6≔AiryAi⁡14−y⁢c__2+AiryBi⁡14−y⁢ⅇ−y2∫` `yⅇ−_a2⁢AiryAi⁡14−_a⁢c__2+AiryBi⁡14−_aⅆ_a+c__1+x=0
odetest(sol[6], ode[6]);
A 3rd order ODE problem illustrating improvements in existing algorithms: in previous releases this equation was only solved in terms of uncomputed integrals of unresolved RootOf expressions; now the solution is computed explicitly as a rational function
ode[7] := diff(y(x), x$3) + 4*y(x)*diff(y(x), x$2) + 3*diff(y(x), x)^2 + 6*y(x)^2*diff(y(x), x) + y(x)^4 = 0;
ode7≔y'''+4⁢y''⁢y+3⁢y'2+6⁢y'⁢y2+y4=0
sol[7] := dsolve(ode[7]);
sol7≔y=3⁢c__1⁢x2+6⁢c__2⁢x+6⁢c__3c__1⁢x3+3⁢c__2⁢x2+6⁢c__3⁢x+6
odetest(sol[7], ode[7]);
dsolve can now solve ODEs that involve anticommutative variables set using the Physics package using the approach explained in PerformOnAnticommutativeSystem.
with(Physics, Setup);
Setup
Set first θ and Q as suffixes for variables of type/anticommutative (see Physics[Setup])
Setup(anticommutativepre = {theta, Q});
* Partial match of 'anticommutativepre' against keyword 'anticommutativeprefix'
_______________________________________________________
anticommutativeprefix=Q,θ
Consider this ordinary differential equation for the anticommutative function Q of a commutative variable x
diff(Q(x), x, x) - Q(x)*diff(Q(x), x) = 0;
Q''−Q⁡x⁢Q'=0
Its solution using dsolve involves an anticommutative constant _lambda1, analogous to the commutative constants c__1
dsolve((23));
Q⁡x=tan⁡c__1⁢_λ1⁢c__2+x⁢22⁢c__1⁢_λ1⁢2
Many of the commands in PDEtools can now naturally handle anticommutative variables, these are: D_Dx, DeterminingPDE, dsubs, Eta_k, FromJet, FunctionFieldSolutions, InfinitesimalGenerator, Infinitesimals, InvariantSolutions, PolynomialSolutions, ReducedForm, ToJet as well as all the routines within the PDEtools[Library]. This makes it possible to tackle super PDE problems, that is, PDE systems involving anticommutative functions and variables. In addition, this permits the use of the PDE mathematical tools with the Physics package. (Related to these developments, see also the new Physics commands Coefficients, ToFieldComponents, ToSuperfields and PerformOnAnticommutativeSystem.)
During the development of this generalization of PDEtools commands to handle anticommutative variables, the symmetry ones were also improved in a number of places, all this setting a new benchmark for the state-of-the-art in symmetry analysis and computation of exact solutions for partial differential equations.
Both dsolve and pdsolve can now solve PDEs that involve anticommutative variables set using the Physics package using the approach explained in PerformOnAnticommutativeSystem.
with⁡PDEtools,with⁡Physics:
Setup⁡anticommutativepre=Q,θ
Consider this partial differential equation for the anticommutative function Q of commutative and anticommutative variables x,θ
diff⁡Q⁡x,y,θ,x,θ=0
Qx,θ=0
Its solution using pdsolve
pdsolve⁡
Q⁡x,y,θ=f__2⁡x,y⁢_λ2+f__4⁡y⁢θ
Note the introduction of an anticommutative constant _lambda2, analogous to the commutative constants _Cn where n is an integer. The arbitrary functions _Fn introduced are all commutative as usual and the Grassmannian parity (on right-hand-side if compared with the one on the left-hand-side) is preserved
Physics:-GrassmannParity⁡
1=1
A PDE system example with one unknown anticommutative function Q of four variables, two commutative and two anticommutative; to avoid redundant typing in the input that follows and redundant display of information on the screen, use PDEtools:-declare, and PDEtools:-diff_table, that also handles anticommutative variables by automatically using Physics:-diff when Physics is loaded
PDEtools:-declare⁡Q⁡x,y,θ1,θ2
Q⁡x,y,θ1,θ2⁢will now be displayed as⁢Q
q≔PDEtools:-diff_table⁡Q⁡x,y,θ1,θ2:
Now we can enter derivatives directly as the function's name indexed by the differentiation variables and see the display the same way; two PDEs
pde1≔qx,y,θ1+qx,y,θ2−qy,θ1,θ2=0
pde1≔Qx,y,θ1+Qx,y,θ2−Qy,θ1,θ2=0
pde2≔qθ1=0
pde2≔Qθ1=0
The solution to this system:
pdsolve⁡pde1,pde2
Q=f__4⁡x,y⁢_λ3+f__9⁡x+f__8⁡y⁢θ2
The dsubs command also works with anticommutative variables, though natively without using the approach explained in PerformOnAnticommutativeSystem. By inspection, it is clear that the derivatives in pde[2] can be substituted in pde[1] reducing the problem to a simpler one:
dsubs⁡pde2,pde1
Qx,y,θ2=0
Q=f__4⁡x,y⁢_λ3+f__12⁡x,y⁢θ1+f__9⁡x+f__8⁡y⁢θ2+f__11⁡x+f__10⁡y⁢_λ4⁢θ1⁢θ2
Substituting this result for Q back into pde[2], then multiplying by θ1 and subtracting from the above also leads to the PDE system solution.
Using differential elimination techniques and the approach explained in PerformOnAnticommutativeSystem, ReducedForm in this example arrives at the same result as dsubs
PDEtools:-ReducedForm⁡pde1,pde2
Qx,y,θ2where
Another command updated to handle anticommutative variables via PerformOnAnticommutativeSystem is casesplit; with this linear system in Q and its derivatives it returns
casesplit⁡pde1,pde2
Qx,y,θ2=0,Qθ1=0where
With the core functionality in place, most the symmetry commands that work on top can now also handle anticommutative variables, most of them natively, without going through PerformOnAnticommutativeSystem.
Set for instance the generic form of the infinitesimals for a PDE system like this one formed by pde[1] and pde[2]. For this purpose, we need anticommutative infinitesimals for the dependent variable Q and two of the independent variables, θ1 and θ2; we use here the capital greek letters Ξ and Η for the anticommutative infinitesimal symmetry generators and the corresponding lower case greek letters for commutative ones
Setup⁡anticommutativepre=Η,Ξ,additionally
anticommutativeprefix=Η,Q,Ξ,_λ,θ
S≔ξ1,ξ2,Ξ1,Ξ2,Η⁡x,y,θ1,θ2
S≔ξ1⁡x,y,θ1,θ2,ξ2⁡x,y,θ1,θ2,Ξ1⁡x,y,θ1,θ2,Ξ2⁡x,y,θ1,θ2,Η⁡x,y,θ1,θ2
PDEtools:-declare⁡S
Η⁡x,y,θ1,θ2⁢will now be displayed as⁢Η
Ξ⁡x,y,θ1,θ2⁢will now be displayed as⁢Ξ
ξ⁡x,y,θ1,θ2⁢will now be displayed as⁢ξ
The corresponding InfinitesimalGenerator
InfinitesimalGenerator⁡S,Q⁡x,y,θ1,θ2
f↦ξ1⁡x,y,θ1,θ2⁢ⅆfⅆx+ξ2⁡x,y,θ1,θ2⁢ⅆfⅆy+Ξ1⁡x,y,θ1,θ2⁢ⅆfⅆθ1+Ξ2⁡x,y,θ1,θ2⁢ⅆfⅆθ2+Η⁡x,y,θ1,θ2⁢ⅆfⅆQ
The table-function that returns the prolongation of the infinitesimal for Q is computed with Eta_k, assign it here to the lower case η to use more familiar notation (recall q=Q⁡x,y,θ1,θ2)
η≔Eta_k⁡S,q
η≔η
The first prolongations of η with respect to x and θ1
ηQ,x
Ηx−ξ1x⁢Qx−ξ2x⁢Qy−Qθ1⁢Ξ1x−Qθ2⁢Ξ2x
ηQ,θ1
Ηθ1+Qx⁢ξ1θ1+Qy⁢ξ2θ1−Qθ1⁢Ξ1θ1−Qθ2⁢Ξ2θ1
The second mixed prolongations of η with respect to x,y and x,θ1
ηQ,x,y
Ηx,y−ξ1x,y⁢Qx−ξ2x,y⁢Qy−Qθ1⁢Ξ1x,y−Qθ2⁢Ξ2x,y−ξ1y⁢Qx,x−ξ2y⁢Qx,y−Qx,θ1⁢Ξ1y−Qx,θ2⁢Ξ2y−ξ1x⁢Qx,y−ξ2x⁢Qy,y−Qy,θ1⁢Ξ1x−Qy,θ2⁢Ξ2x
ηQ,x,θ1
Ηx,θ1+Qx⁢ξ1x,θ1+Qy⁢ξ2x,θ1−Qθ1⁢Ξ1x,θ1−Qθ2⁢Ξ2x,θ1+Qx,x⁢ξ1θ1+Qx,y⁢ξ2θ1−Qx,θ1⁢Ξ1θ1−Qx,θ2⁢Ξ2θ1−Qx,θ1⁢ξ1x−Qy,θ1⁢ξ2x−Qθ1,θ2⁢Ξ2x
The DeterminingPDE for this system
DeterminingPDE⁡pde1,pde2,S
−ξ2θ1=0,−ξ2θ2=0,−ξ1θ1,θ2⁢θ1−ξ1θ2=0,−ξ1θ1+ξ1θ1,θ2⁢θ2=0,−θ1⁢ξ1y,θ1−θ2⁢ξ1y,θ2+ξ1y=0,−θ1⁢ξ2x,θ1−θ2⁢ξ2x,θ2+ξ2x=0,−θ1⁢ξ1x,x,θ1−θ2⁢ξ1x,x,θ2+ξ1x,x=0,Ξ1x−Ξ1x,θ2⁢θ2−Ξ1x,θ1⁢θ1=0,Ξ2x−Ξ2x,θ2⁢θ2−Ξ2x,θ1⁢θ1=0,Ηθ1=0,Ηθ1,θ2=0,Ξ1θ1,θ2=0,Ξ2θ1,θ2=0,ξ1θ1,θ2=0,ξ2θ1,θ2=0,Ξ2x,θ2=0,Ξ2y,θ2=0,Ηx,y,θ2=0,Ξ1θ1=−θ1⁢ξ1x,θ1−θ2⁢ξ1x,θ2+ξ1x,Ξ1θ2=Ξ2θ2+θ1⁢ξ1x,θ1+θ2⁢ξ1x,θ2−ξ1x,Ξ2θ1=0
To compute now the exact form of the symmetry infinitesimals you can either solve this PDE system for the commutative and anticommutative functions using pdsolve, or directly pass the system to Infinitesimals that will perform all the steps automatically
Η=f__8⁡x,y⁢_λ5+f__32⁡x+f__31⁡y⁢θ2,Ξ1=f__28⁡y⁢_λ7+c__2⁢θ1+c__1−c__2⁢θ2,Ξ2=f__29⁡y⁢_λ9+c__1⁢θ2,ξ1=c__2⁢x+c__3,ξ2=f__30⁡y
Substituting into S, you get the symmetry infinitesimal lists
c__2⁢x+c__3,f__30⁡y,f__28⁡y⁢_λ7+c__2⁢θ1+c__1−c__2⁢θ2,f__29⁡y⁢_λ9+c__1⁢θ2,f__8⁡x,y⁢_λ5+f__32⁡x+f__31⁡y⁢θ2
Infinitesimals also works with anticommutative variables natively; the related result comes specialized
Infinitesimals⁡pde1,pde2,q,S
1,f__34⁡y,f__33⁡y⁢_λ7,f__2⁡y⁢_λ9,f__35⁡x,y⁢_λ5+f__12⁡x+f__4⁡y⁢θ2,x,f__9⁡y,f__36⁡y⁢_λ7+θ1−θ2,f__8⁡y⁢_λ9,f__37⁡x,y⁢_λ5+f__11⁡x+f__10⁡y⁢θ2,0,f__40⁡y,f__38⁡y⁢_λ7+θ2,f__39⁡y⁢_λ9+θ2,f__43⁡x,y⁢_λ5+f__42⁡x+f__41⁡y⁢θ2
To verify this result you can use SymmetryTest - it also handles anticommutative variables natively.
map⁡SymmetryTest,,pde1,pde2
0,0,0
To see these three list of symmetry infinitesimals with a label in the left-hand-side, you can use map
map3⁡zip,`=`,S,
ξ1=1,ξ2=f__34⁡y,Ξ1=f__33⁡y⁢_λ7,Ξ2=f__2⁡y⁢_λ9,Η=f__35⁡x,y⁢_λ5+f__12⁡x+f__4⁡y⁢θ2,ξ1=x,ξ2=f__9⁡y,Ξ1=f__36⁡y⁢_λ7+θ1−θ2,Ξ2=f__8⁡y⁢_λ9,Η=f__37⁡x,y⁢_λ5+f__11⁡x+f__10⁡y⁢θ2,ξ1=0,ξ2=f__40⁡y,Ξ1=f__38⁡y⁢_λ7+θ2,Ξ2=f__39⁡y⁢_λ9+θ2,Η=f__43⁡x,y⁢_λ5+f__42⁡x+f__41⁡y⁢θ2
See Also
PDEtools
Physics
Index of New Maple 16 Features
Download Help Document