Updates to Differential Equation (DE) Solvers in Maple 12 - Maple Programming Help

Online Help

All Products    Maple    MapleSim

Home : Support : Online Help : System : Information : Updates : Maple 12 : updates/Maple12/de

Updates to Differential Equation (DE) Solvers in Maple 12



Exact Solutions

Numerical Differential Equations



The differential equation theme for Maple 12 (exact solutions) is the exploration of different transformations for mapping given equations into ones the system knows how to solve. Using this approach, a new algorithm was developed by our research team, for 3rd order linear Ordinary Differential Equations (ODEs), that solves for the first time the entire 3F2, 2F2, 1F2 and 0F2 hypergeometric classes of equations in terms of hypergeometric and MeijerG functions [1]. The same idea is used for solving an entire family of 2nd order nonlinear ODEs parametrized by two arbitrary functions, where the solutions can be derived from the solutions of a related 3rd order linear ODE. A similar approach is used to solve the entire nonlinear 1st order Abel AIL class exploring hypergeometric functions.


Two new commands, rational_equivalent and ODEInvariants, have been added to the DEtools package, the latter returning the so-called Wilcynski Invariants for linear ODEs as well as an innovative derivation based on them that results in invariants for nonlinear ODEs.


For Partial Differential Equations, six new commands were added to PDEtools. These commands include: one representing Euler's operator, another to compute conserved currents, another for related generalized integrating factors, and one for exploiting Laplace invariants for solving some classes of 2nd order linear PDEs in two independent variables.


Regarding numerical solutions for ODEs, there are a significant number of improvements such as the new ability to handle user-defined events, parametrized problems, and the definition of discrete variables.

Exact Solutions

Ordinary Differential Equations (ODEs)

New solutions in terms of hypergeometric functions for 3rd order linear equations


New solving algorithms for the entire 3F2, 2F2, 1F2 and 0F2 hypergeometric classes of equations were implemented. These new solvable classes are the ones you obtain from the standard pFq equations,

PDEtools:-declare(y(x), prime = x);

yxwill now be displayed asy

derivatives with respect toxof functions of one variable will now be displayed with '


for pFq in [hypergeom([], [d,e], x), hypergeom([c], [d,e], x), hypergeom([b,c], [d,e], x), hypergeom([a,b,c], [d,e], x)]
    FunctionAdvisor(DE, pFq, y(x));



by changing variables using a composition of the general transformations

x -> R(x), y -> P(x)*y;



where R(x) is a rational function and P(x) is arbitrary, and

x -> (a*x^k+b)/(c*x^k+d);



that is, a power composed with a Mobius transformation where a,b,c,d,k are arbitrary constants with respect to x. Hence, the Maple system can now solve the equivalence problem to these hypergeometric equations under rational transformations and also in the case where these transformations are composed with fractional or symbolic powers. These results by our research team are new in the literature [1].




The following equation admits three pFq hypergeometric solutions computed after determining a rational transformation relating the equation to the 0F2 equation (the first one in the output of the FunctionAdvisor above)

diff(y(x), x, x, x) = - 6/x*(x-3)/(x-2)*diff(y(x), x, x) - 6/x^2*(x^2-6*x+10)/(x-2)^2*diff(y(x), x) - (x-1)*(x-2)^3/x^11*y(x);






When the hypergeometric parameters are such that there are not three independent hypergeometric solutions, the new algorithm uses MeijerG functions to represent the missing ones, as in:

diff(y(x), x, x, x) = -(12*x^2-5*x+1)/x^2/(-1+2*x)*diff(y(x), x, x) + 1/x^3*(20*x^2-c-5*x+2*c*x-24*x^3)/(-1+2*x)^2*diff(y(x), x) + c*y(x)/x^4/(-1+2*x)^2;






New solutions in terms of hypergeometric functions for 2nd order nonlinear equations


Second order nonlinear equations appear in the mathematical formulation of problems in many areas. The methods of symmetries and integrating factors, implemented in Maple in previous releases, are the most important ones. However, large ODE classes escape these methods or are more properly solved by other means. For example the class of 2nd order nonlinear ODEs that can be obtained by reducing third order linear ODEs exploiting their scale invariance, admits explicit and tidy solutions that can only be obtained if that relationship - instead of the symmetries - is unveiled. For Maple 12, a related new algorithm was developed and implemented for solving that class, defined around the nonlinear equation

diff(y(x),x,x) = -(3*y(x) + c[2](x))*diff(y(x),x) - y(x)^3 - c[2](x)*y(x)^2 - c[1](x)*y(x) - c[0](x);



where the c[j](x) are arbitrary functions. The solution to this equation can be expressed in terms of the solutions of a third order linear equation:




Note the derivative of a DESol structure in the numerator of the right-hand side. This nonlinear ODE that the system can now solve generates an ODE class when it is transformed using

x -> F(x), y -> P(x)*y;



The actual family of equations that is now solvable in Maple 12, for any value of the functions F(x) and P(x), is

PDEtools:-declare((F, P)(x));

Fxwill now be displayed asF

Pxwill now be displayed asP


diff(y(x), x,x) = ((diff(F(x), x,x)*P(x) - 2*diff(F(x),x)*diff(P(x),x) - diff(F(x),x)^2*c[2](F(x))*P(x))/diff(F(x),x)/P(x) - 3*diff(F(x),x)*P(x)*y(x))*diff(y(x),x) - diff(F(x),x)^2*P(x)^2*y(x)^3 - diff(F(x),x)*(3*diff(P(x),x) + c[2](F(x))*P(x)*diff(F(x),x))*y(x)^2 + (diff(F(x), x,x)*diff(P(x),x) - diff(F(x),x)*diff(P(x), x,x) - diff(F(x),x)^2*c[2](F(x))*diff(P(x),x) - c[1](F(x))*P(x)*diff(F(x),x)^3)/diff(F(x),x)/P(x)*y(x) - c[0](F(x))*diff(F(x),x)^2/P(x);



The new algorithm recognizes whether a given equation is of this form and if so it computes the values of F(x), P(x) and the c[j](x), and with them constructs a 3rd order linear ODE equivalent to the given 2nd order nonlinear equation. This algorithm is automatically combined by dsolve with the new algorithms for computing hypergeometric solutions for 3rd order linear ODEs, resulting in new solutions available in Maple 12 for a large number of 2nd order nonlinear ODEs that were formerly considered "unsolvable".




This second order nonlinear ODE is solved by transforming it into a third order linear ODE that admits Liouvillian (trigonometric) solutions

diff(y(x), x,x) = (6/(x^2+1)^2*x*y(x) - (3*x^2-1)/(x^2+1)/x)*diff(y(x),x) - 4*x^2/(x^2+1)^4*y(x)^3+4*x^2/(x^2+1)^4;






The following nonlinear equation is solved the same way, but the related third order linear ODE only admits hypergeometric solutions and so is solved using the corresponding new algorithms for that problem in Maple 12

diff(y(x), x,x) = -3*diff(y(x),x)*y(x)-y(x)^3+1/x;






New solutions in terms of hypergeometric functions for the 1st order AIL Abel class of equations


A new algorithm, solving the entire Abel Inverse Linear (AIL) class of equations (see references) in terms of hypergeometric functions, was developed and implemented for Maple 12. This class of equations is the one you obtain from the standard AIL equation

diff(y(x),x) = (a[0] + a[1]*y(x) + a[2]*y(x)^2 + a[3]*y(x)^3)/((s[0] + s[1]*x)*y(x) + r[0]+r[1]*x);



under general transformations

x -> F(x), y -> (P(x)*y + Q(x)*y)/(S(x)*y + T(x)*y);



where F is rational and R,P,Q,S,T are arbitrary. The novelty with regards to previous Maple releases where this same class was partially solved is that in Maple 12 any equation obtained using a rational form of Fx is now solved.




The following equation, involving only rational coefficients, admits a solution that involves only combinations of fractional and integer powers after all hypergeometric functions got simplified

diff(y(x),x) = 1/2*1/x*(-x+5/2)/(-x+2)^3*y(x)^3+(1/2*x-3)/x/(2-x)^2*y(x)^2+1/x/(-x+2)*y(x);






odetest((21), (20)); # verify this result - see ?odetest



Partial Differential Equations (PDEs)


Six new commands are available in PDEtools: Laplace, Euler, ConservedCurrents, ConservedCurrentTest, IntegratingFactors, and IntegratingFactorTest.


The Laplace command explores Laplace invariants to compute the general solution in terms of arbitrary functions to a single 2nd order linear PDE in two independent variables.




There is no more prime differentiation variable; all derivatives will be displayed as indexed functions


PDEtools:-declare(u(x,y), _F1(x), _F2(y));

ux,ywill now be displayed asu

_F1xwill now be displayed as_F1

_F2ywill now be displayed as_F2


pde := diff(u(x, y), x, y)-2*u(x, y)/(x+y)^2;



sol := PDEtools:-Laplace(pde, u(x,y));



This new Laplace command is automatically invoked by pdsolve, so the same solution above, in terms of two arbitrary functions of one variable, _F1(x) and _F2(y), is returned by pdsolve. PDE solutions can be verified using pdetest

pdetest(sol, pde);



Given a system Delta = 0 consisting of N equations pde[n], n = 1..N, involving M independent variables x[1], x[2], ... = X, and where the dependent variables are u[1], u[2], ... = U, with dU denoting the set of partial derivatives of U, conserved currents are expressions J[alpha, m](X, U, dU) each of which satisfy: d/dx[1] J[alpha, 1](X, U, dU) + d/dx[2] J[alpha, 2](X, U, dU) + ... = Divergent J[alpha, m] = 0, where m = 1..M and d/dx[m] represents the total derivative with respect to x[m]. The conserved currents coincide with the traditional first integrals when there is only one independent variable, so that Delta is a system of ODEs.


The pair of commands ConservedCurrents and ConservedCurrentTest respectively compute these conserved currents and verify whether a given expression is or is not a conserved current of a given PDE system.


Analogously, the generalized integrating factors are expressions mu[alpha, n](X, U, dU) such that Sigma mu[alpha, n] pde[n] = Divergence J[alpha] = 0, so J[alpha] is a conserved current. The pair of commands IntegratingFactors and IntegratingFactorTest can respectively compute these generalized integrating factors and verify the result for correctness.




Consider the following PDE "system" consisting of a single pde


U := diff_table(u(x,t)):


ux,twill now be displayed asu


pde := U[t,t] + U[x,x] + U[x]*U[];



The conserved currents of pde are computed as follows and depend on arbitrary functions

J[alpha] := ConservedCurrents(pde);



To verify these results use

map(ConservedCurrentTest, [J[alpha]], pde);



The conserved currents are related to the generalized integrating factors mu[alpha] via Sigma mu[alpha, n] pde[n] = Divergence J[alpha] = 0. These are the mu[alpha] corresponding to the J[alpha] computed above

mu[alpha] := IntegratingFactors(pde);



To verify for correctness these integrating factors use

map(IntegratingFactorTest, [mu[alpha]], pde);



Numerical Differential Equations


There were a significant number of improvements made for numerical ODE solution for this release.



The default ODE and DAE IVP integrators now have the ability to handle user-defined events. These events are an extension to stop conditions (which are now deprecated), and have the ability to execute code when an event occurs, and the ability to perform event iteration (i.e. when one event triggers another).


In addition, events have several interactive features, such as the ability to query the event that fired, and obtain the solution value at the time the event occurred.


For more information, see dsolve,numeric,Events.



The ODE and DAE IVP integrators have been extended to handle parametrized problems. This means that a dsolve procedure can be formed for a class of ODE or DAE, and the parameters can be adjusted, and different solutions obtained interactively.


For more information, see dsolve,numeric,interactive.

Discrete Variables


The default ODE and DAE IVP integrators now allow the definition of discrete variables as part of the problem description. These discrete variables can be of float, integer or boolean type, and are most useful in combination with event handling.


For more information, see dsolve,numeric,Events.

See Also




Index of New Maple 12 Features