Differential Equations in Maple 15

Overview


Maple is the uncontested leader for computing symbolic solutions to differential equations. Numerous improvements in Maple 15 further expand the classes of problems that can be handled.
Kamke Benchmark
Ordinary Differential Equations
Partial Differential Equations
PDE Tools

Kamke Benchmark


Maple 15 now computes symbolic solutions to 97% of the 1390 linear and nonlinear ODEs from the famous text, Differentialgleichungen by Kamke. Mathematica® 8 only handles 79%. Maple also solves these ODEs almost 10 times faster than Mathematica.
Looking at the details, Maple is the only system to solve any of the systems in some classes of ODEs:
Kamke (1390 ODEs)

Mathematica 8

Maple 15

1st order ODEs (576)

86% (solved in 234 minutes)

99% (solved in 26 minutes)

2nd order linear ODEs (448)

91% (39min)

99.5% (2.3min)

2nd order nonlinear ODEs (188)

70% (78min)

97% (14min)

2nd order reducible nonlinear ODEs (58)

0% (23min)

86% (3min)

3rd order linear ODEs (85)

67.5% (23min)

91% (2.5min)

4th order linear ODEs (45)

77% (5.8min)

93% (0.5min)

5th order linear ODEs (12)

67% (7.4min)

92% (0.5min)

Highorder nonlinear ODEs (12)

67% (1.5min)

100% (0.6min)

Highorder reducible nonlinear ODEs (5)

0% (0.5min)

100% (0.2min)

Total

79% (408min)

97.5% (49min)



Ordinary Differential Equations (ODEs)



By using new algorithms, the
dsolve
command can now solve two additional 1st order and eleven 2nd order nonlinear ODE families, all of them parametrized by arbitrary functions of the independent and dependent variables and out of reach of the previously existing solving methods.


New solvable 1parameter 1st order ODE families of Abel type


For 1st order ODEs, the simplest problem beyond reach of complete solving algorithms is known as Abel equations. These are equations of the form
>


 (1.2.1.1) 

This equation, depending on one parameter , is now solved in terms of
Bessel
functions

>


 (1.2.1.2) 
>


 (1.2.1.3) 

The related class of Abel equations that is now entirely solvable consists of the set of equations that can be obtained from by changing variables


where the four are arbitrary rational functions of ; this is the most general transformation that preserves the form of Abel equations and thus generates Abel ODE classes.


Another Abel equation, also depending on one parameter, is now, surprisingly, solvable entirely in terms of powers, which will be integer whenever is integer

>


 (1.2.1.4) 
>


 (1.2.1.5) 

As in the case of equation , the entire set of equations obtained by changing variables in using the transformation that generates Abel ODE classes are now also solvable.



New solvable 2nd order nonlinear ODE families



By using new algorithms, the
dsolve
command can now solve 11 additional nonlinear 2nd order ODE families that have no point symmetries and admit no integrating factors depending only on two of . Each of these families of equations is parametrized by arbitrary functions of the independent and dependent variables, and the equations are solved by
dsolve
in Maple 15 for any values of these parametrizing functions. For 3 of these 11 families of equations, a general solution is computable directly, skipping the reduction of order step. For the other 8 families of equations, the original 2nd order ODE is systematically reduced to one of 1st order and
dsolve
will return a general solution when the 1st order equation is solvable with the existing algorithms. In what follows, an illustration of some of these newly solvable families of equations is presented.

An ODE family parametrized by an arbitrary function
>


 (1.2.2.1) 

This ODE has no point symmetries, the
determining PDE
for them only admits both
infinitesimals
equal to zero:

>


 (1.2.2.2) 

A solution for any of the members of this ODE family , that is regardless of the form of the mapping , can now be computed

>


 (1.2.2.3) 



Partial Differential Equations (PDEs)



A significant number of improvements and additions were made to the
PDEtools
package, setting a new benchmark for the stateoftheart in symbolic computation and partial differential equation solving and symmetry analysis.


New commands: FunctionFieldSolutions, SymmetryCommutator and SymmetryGauge


•

Three new commands were added to
PDEtools
.

–

SymmetryCommutator
is a new command to compute the commutator between two symmetries, given either as lists of
infinitesimals
or as
infinitesimal generator
procedures. This command is useful when studying the properties of a group of symmetries or when deriving the group constants or relations to make the group complete.

–

SymmetryGauge
is a new command to gauge PDE symmetries. It is well known that an ODE symmetry can be rewritten in different ways (see
Xgauge
). It is not so well known, but the same happens with PDE symmetries. The ability to rewrite a symmetry is relevant for a number of purposes. First, that permits identifying that two apparently different symmetries are actually the same by rewriting them in evolutionary form (gauge ). Second, symmetries that appear as dynamical ones can frequently be rewritten as pointlike, transforming the usability of the symmetry from perhaps very difficult into straightforward. Finally, depending on the form of the symmetry, by rewriting them it is frequently possible to simplify its form considerably so that invariants of canonical coordinates become computable and so the symmetry can be used to reduce the number of independent variables of PDE systems.


For
FunctionFieldSolutions
, consider the following nonlinear coupled system in that involves the mathematical function

 (1.3.1.1) 
>

sys[1] := {F(x,y)*diff(F(x,y),y)+diff(F(x,y),x) = F(x,y)*(exp(x)1/y)+exp(x)*y+1/x, F(x,y)*diff(G(x,y),y)+diff(G(x,y),x) = F(x,y)*(exp(x)+1/y)+exp(x)*y+1/x};

 (1.3.1.2) 

Typically, systems of this type do not admit polynomial solutions

>

PolynomialSolutions(sys[1]); # returns NULL


On the other hand, these systems frequently admit function field solutions:

>

sol[1] := FunctionFieldSolutions(sys[1]);

 (1.3.1.3) 
>

pdetest(sol[1], sys[1]);

 (1.3.1.4) 

The following nonlinear system is also not solvable by
pdsolve

>

sys[2] := {F(x,y)*diff(F(x,y),y)+diff(F(x,y),x) = F(x,y)*(exp(x)1/y*exp(x/y))+exp(x)*y+exp(x/y)/x, F(x,y)*diff(G(x,y),y)+diff(G(x,y),x) = F(x,y)*(exp(x)+cos(x*y)/y)+exp(x)*y+cos(x*y)/x};

 (1.3.1.5) 

Its solution via FunctionFieldSolutions takes time to be computed; in cases like this, the use of optional arguments to restrict the degrees in which the solution would depend on mathematical functions, can diminish the computational time

>

sol[2] := FunctionFieldSolutions(sys[2], mathfunctiondegree = 1);

 (1.3.1.6) 
>

pdetest(sol[2], sys[2]);

 (1.3.1.7) 

For
SymmetryCommutator
, consider two list of
infinitesimals
corresponding to a
symmetry transformation
where there are two independent () and one dependent variable,

>

S[1], S[2] := [_xi[x] = x, _xi[t] = 1, _eta[u] = t], [_xi[x] = 1, _xi[t] = 1/t, _eta[u] = x^2];

 (1.3.1.8) 

For illustration purposes compute also the corresponding infinitesimal generators as differential operators

>

G[1] := InfinitesimalGenerator(S[1], u(x,t), expanded);

 (1.3.1.9) 
>

G[2] := InfinitesimalGenerator(S[2], u(x,t), expanded);

 (1.3.1.10) 

The symmetry commutator is ; when the first symmetry () is a differential operator procedure, the output is also a differential operator

>

SymmetryCommutator(G[1], G[2], u(x,t));

 (1.3.1.11) 

The output can be requested as a list or a procedure and the input can also be of mixed types, here we pass and

>

SymmetryCommutator(G[1], S[2], u(x,t), output = list);

 (1.3.1.12) 

The prolongation order of the commutator is by default the one of the given infinitesimals, and the same happens with the output's jetnotation, but both can be requested to be different using the optional arguments prolongation = n, and notation = <any jet notation>

>

SymmetryCommutator(G[1], G[2], u(x,t), prolongation = 2);

 (1.3.1.13) 
>

SymmetryCommutator(G[1], G[2], u(x,t), prolongation = 2, notation = jetnumbers);

 (1.3.1.14) 

For
SymmetryGauge
, consider the list of
infinitesimals
corresponding to a
symmetry transformation
where there are two independent and one dependent variables,

>

S := [_xi[x] = 1, _xi[t] = t, _eta[u] = u];

 (1.3.1.15) 

For illustration purposes let's construct also the general form of a 2nd order PDE admitting this symmetry; for that we use the
InvariantEquation
command

>

PDE := InvariantEquation(S, u(x,t), order = 2, name = Lambda);

 (1.3.1.16) 

This general form can be particularized in different ways, for instance

>

pde := isolate(op(1, PDE) = subsop(1 = NULL, PDE), diff(u(x,t), x,x));

 (1.3.1.17) 

Now: the general form of the symmetry S admitted by is not but

>

S1 := SymmetryGauge(S, u(x,t));

 (1.3.1.18) 

Verify that S1 is a symmetry of

 (1.3.1.19) 

Note the presence of arbitrary functions in ; there are as many as the number of independent variables. The input of SymmetryGauge can also be the infinitesimal generator procedure corresponding to , in which case the output of SymmetryGauge will also be a procedure; the option expanded of SymmetryGauge is the same one of
InfinitesimalGenerator

>

G := InfinitesimalGenerator(S, u(x,t), expanded, jetnotation = jetvariables);

 (1.3.1.20) 
>

SymmetryGauge(G, u(x,t), expanded);

 (1.3.1.21) 

The prolongation order of the symmetry returned is by default the one of the given symmetry, but can also be requested to be different using the optional argument prolongation = n, where n is a positive integer. To rewrite the symmetry in evolutionary form use the _xi = 0 optional argument

>

S0_xi := SymmetryGauge(S, u(x,t), xi = 0);

 (1.3.1.22) 

Verify that S0_xi is a symmetry of pde

>

SymmetryTest(S0_xi, pde);

 (1.3.1.23) 

Compare with the gauge where _eta = 0

>

S0_eta := SymmetryGauge(S, u(x,t), eta = 0);

 (1.3.1.24) 
>

SymmetryTest(S0_eta, pde);

 (1.3.1.25) 

You can also indicate the value of each of the infinitesimals appearing in the output, see
SymmetryGauge




New functionality in the PDEtools package


•

The following commands were significantly enhanced in their functionality:
ConservedCurrents
,
D_Dx
,
DeterminingPDE
,
Eta_k
,
InfinitesimalGenerator
,
Infinitesimals
,
IntegratingFactors
,
InvariantEquation
and
Solve
.

•

Apart from that, in Maple 15, the entire set of
symmetry commands
of PDEtools:

•

Automatically use textbook mathematical jet notation on input and output;

•

Handle list of infinitesimals or the corresponding symmetry generator operators in equal footing;

•

Understand different
jet notations
as representing the same mathematical objects;

•

Return list of infinitesimals with infinitesimal labels in mathematical notation, unless your input contains infinitesimals without labels;

•

Return results in the jet notation of the input you pass to them;

•

Optionally return in any jet notation you request.


Consider a problem with one dependent variable and the
infinitesimal generator
of a
symmetry transformation

>


 (1.4.1) 

To compute, for instance, the transformation that maps this operator into its canonical form, that is the
canonical coordinates
associated to this symmetry, you don't need anymore to construct the list of infinitesimals corresponding to ; you can now pass itself

>


 (1.4.2) 
>


 (1.4.3) 
>


 (1.4.4) 
>


 (1.4.5) 

Note the (new) presence of
infinitesimal labels
in this output. The motivation behind all these changes is to have a computational experience with symmetry analysis using true mathematical notation, as close as possible as the one you use when computing with paper and pencil.

Apart from the ability to compute conserved currents and integrating factors of general types,
ConservedCurrents
and
IntegratingFactors
can now specifically compute conserved currents and integrating factors of polynomial or functionfield types.
>


 (1.4.6) 
>


 (1.4.7) 

A conserved current of order 1 (so involving up to 1st order derivatives), depending on arbitrary functions

>


 (1.4.8) 

A conserved current of order 2 (so involving up to 2nd order derivatives), of polynomial type

>


 (1.4.9) 
>


 (1.4.10) 

An integrating factor of order 1 (so involving up to 1st order derivatives), depending on one arbitrary function

>


 (1.4.11) 

An integrating factor of order 2 of polynomial type

>


 (1.4.12) 
D_Dx
can now compute total and partial derivatives, with respect to names and/or functions (including derivatives) of the jet space. This permits computing in a natural way objects like
>


 (1.4.13) 
>


 (1.4.14) 

The result above is computed with already in
jet notation
but it can equally be computed passing in function notation:

>


 (1.4.15) 
>


 (1.4.16) 

or passing the differentiation variable also in function notation

>


 (1.4.17) 

If you need the output not in jetnotation use

>

D_Dx((1.4.13), x[t], t, [x(t)], jetnotation = false);

 (1.4.18) 
DeterminingPDE
now understands more types of symmetries: evolutionary and general, apart from pointlike and contact.
>


 (1.4.19) 

Compare the determining equations for the point like and evolutionary symmetries of

>


 (1.4.20) 
>


 (1.4.21) 

Note in the result above the dependency of the infinitesimal : it involves derivatives up to the order of minus 1.

Eta_k
: the returned table procedure that provides any desired prolongation of the infinitesimals can now be indexed using independent and dependent variables in
jet notation
, or their respective numeric positions in the lists of independent and dependent variables (that is jetnumbers notation). Correspondingly, the output will be in
jetvariables or jetnumbers
notation. This implements a more natural mathematical representation of infinitesimal prolongations while providing an easy way to switch between notations, interactively or within a program,

Consider a problem with two dependent variables , a related infinitesimal generator, and the corresponding returned by Eta_k

>


 (1.4.22) 
>


 (1.4.23) 
>


 (1.4.24) 
>


 (1.4.25) 
>


 (1.4.26) 
InfinitesimalGenerator
now has the option jetnotation to choose the notation for the output, and also accepts infinitesimal generator operators on input, so that it can be used to rewrite in different notation or extend and existing infinitesimal generator operator

Consider the same symmetry of the previous example

>


 (1.4.27) 

The first prolongation of the corresponding infinitesimal generator operator, with the same notation of , is

>


 (1.4.28) 

Departing directly from this result, rewrite it with jetnumbers notation and extend it to the 2nd prolongation

>


 (1.4.29) 
Infinitesimals
understands more types of symmetries: evolutionary and general, apart from pointlike and contact, and can compute infinitesimals combining these types, as for instance in And(evolutionary, polynomial), that is, dynamical symmetries with the infinitesimals equal to zero and the infinitesimals polynomial in the jet variables including all partial derivatives

Consider again a problem with two dependent variables and the following PDE system for them

>


 (1.4.30) 
>


>


 (1.4.31) 
>


 (1.4.32) 
>


>


 (1.4.33) 

Note that, as expected, in the result above there are dynamical symmetries (the last three), involving the derivatives and . Dynamical symmetries can also be tested for correctness with
SymmetryTest

>


 (1.4.34) 
InvariantEquation
accepts a new optional argument, explicit, to indicate that the invariant equation to be returned should have the form of an explicit PDE system with all the highest derivatives isolated in the lefthand sides. In addition, this command can now compute the PDE system invariant under a set of generic dynamical symmetries, that is, symmetries where the corresponding infinitesimals depend directly on the derivatives of the unknowns of the problem.

Consider a problem with two independent and two dependent variables, ,

>


 (1.4.35) 

and two possible related infinitesimal generator operators, for instance

>


 (1.4.36) 
>


 (1.4.37) 
>


 (1.4.38) 

To compute an explicit form of this equation with all the second order partial derivatives of and isolated in the lefthand sides, pass the option explicit

>


 (1.4.39) 

A problem involving dynamical symmetries, with the first derivative in the infinitesimal generator, and the corresponding invariant PDE family

>


 (1.4.40) 
>


 (1.4.41) 

To verify this result,
SymmetryTest
also accepts an infinitesimal generator operator as a representation for the symmetry

>


 (1.4.42) 
Solve
accepts a new optional argument, algebraically, to indicate that the solving variables and their derivatives are to be considered objects independent of each other.
>


 (1.4.43) 
>


 (1.4.44) 


Legal Notice: © Maplesoft, a division of Waterloo Maple Inc. 2011. Maplesoft and Maple are trademarks of Waterloo Maple Inc. This application may contain errors and Maplesoft is not liable for any damages resulting from the use of this material. This application is intended for noncommercial, nonprofit use only. Contact Maplesoft for permission if you wish to use this application in forprofit activities.
