Differential Equations - Maple Help

Home : Support : Online Help : System : Information : Updates : Maple 12 : Differential Equations

Updates to Differential Equation (DE) Solvers in Maple 12

Summary

 • 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);
 ${y}{}\left({x}\right){}{\mathrm{will now be displayed as}}{}{y}$
 ${\mathrm{derivatives with respect to}}{}{x}{}{\mathrm{of functions of one variable will now be displayed with \text{'}}}$ (1)
 > 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)] do     FunctionAdvisor(DE, pFq, y(x)); od;
 $\left[{y}{=}{\mathrm{hypergeom}}{}\left(\left[{a}{,}{b}{,}{c}\right]{,}\left[{d}{,}{e}\right]{,}{x}\right){,}\left[{\mathrm{y\text{'}\text{'}\text{'}}}{=}\frac{\left(\left({-}{a}{-}{b}{-}{c}{-}{3}\right){}{x}{+}{d}{+}{e}{+}{1}\right){}{\mathrm{y\text{'}\text{'}}}}{{x}{}\left({x}{-}{1}\right)}{+}\frac{\left(\left(\left({-}{b}{-}{c}{-}{1}\right){}{a}{-}\left({c}{+}{1}\right){}\left({b}{+}{1}\right)\right){}{x}{+}{d}{}{e}\right){}{\mathrm{y\text{'}}}}{{{x}}^{{2}}{}\left({x}{-}{1}\right)}{-}\frac{{y}{}{a}{}{b}{}{c}}{{{x}}^{{2}}{}\left({x}{-}{1}\right)}\right]\right]$ (2)
 by changing variables using a composition of the general transformations
 > x -> R(x), y -> P(x)*y;
 ${x}{↦}{R}{}\left({x}\right){,}{y}{↦}{P}{}\left({x}\right){\cdot }{y}$ (3)
 where R(x) is a rational function and P(x) is arbitrary, and
 > x -> (a*x^k+b)/(c*x^k+d);
 ${x}{↦}\frac{{a}{\cdot }{{x}}^{{k}}{+}{b}}{{c}{\cdot }{{x}}^{{k}}{+}{d}}$ (4)
 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].
 Examples
 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);
 ${\mathrm{y\text{'}\text{'}\text{'}}}{=}{-}\frac{{6}{}\left({x}{-}{3}\right){}{\mathrm{y\text{'}\text{'}}}}{{x}{}\left({x}{-}{2}\right)}{-}\frac{{6}{}\left({{x}}^{{2}}{-}{6}{}{x}{+}{10}\right){}{\mathrm{y\text{'}}}}{{{x}}^{{2}}{}{\left({x}{-}{2}\right)}^{{2}}}{-}\frac{\left({x}{-}{1}\right){}{\left({x}{-}{2}\right)}^{{3}}{}{y}}{{{x}}^{{11}}}$ (5)
 > dsolve((5));
 ${y}{=}{\mathrm{_C1}}{}{\mathrm{hypergeom}}{}\left(\left[\right]{,}\left[\frac{{1}}{{2}}{,}\frac{{3}}{{4}}\right]{,}\frac{{\left({x}{-}{1}\right)}^{{4}}}{{64}{}{{x}}^{{8}}}\right){+}\frac{{\mathrm{_C2}}{}\left({x}{-}{1}\right){}{\mathrm{hypergeom}}{}\left(\left[\right]{,}\left[\frac{{3}}{{4}}{,}\frac{{5}}{{4}}\right]{,}\frac{{\left({x}{-}{1}\right)}^{{4}}}{{64}{}{{x}}^{{8}}}\right)}{{{x}}^{{2}}}{+}\frac{{\mathrm{_C3}}{}\left({x}{-}{1}\right){}{\mathrm{hypergeom}}{}\left(\left[\right]{,}\left[\frac{{5}}{{4}}{,}\frac{{3}}{{2}}\right]{,}\frac{{\left({x}{-}{1}\right)}^{{4}}}{{64}{}{{x}}^{{8}}}\right){}\left|{x}{-}{1}\right|}{{{x}}^{{4}}}$ (6)
 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;
 ${\mathrm{y\text{'}\text{'}\text{'}}}{=}{-}\frac{\left({12}{}{{x}}^{{2}}{-}{5}{}{x}{+}{1}\right){}{\mathrm{y\text{'}\text{'}}}}{{{x}}^{{2}}{}\left({-}{1}{+}{2}{}{x}\right)}{+}\frac{\left({-}{24}{}{{x}}^{{3}}{+}{2}{}{x}{}{c}{+}{20}{}{{x}}^{{2}}{-}{c}{-}{5}{}{x}\right){}{\mathrm{y\text{'}}}}{{{x}}^{{3}}{}{\left({-}{1}{+}{2}{}{x}\right)}^{{2}}}{+}\frac{{c}{}{y}}{{{x}}^{{4}}{}{\left({-}{1}{+}{2}{}{x}\right)}^{{2}}}$ (7)
 > dsolve((7));
 ${y}{=}{\mathrm{_C1}}{}{\mathrm{hypergeom}}{}\left(\left[{c}\right]{,}\left[{1}\right]{,}\frac{{-}{1}{+}{2}{}{x}}{{x}}\right){+}{\mathrm{_C2}}{}{\mathrm{MeijerG}}{}\left(\left[\left[{-}{c}{+}{1}\right]{,}\left[\right]\right]{,}\left[\left[{0}{,}{0}\right]{,}\left[\right]\right]{,}\frac{{-}{1}{+}{2}{}{x}}{{x}}\right){+}{\mathrm{_C3}}{}{\mathrm{MeijerG}}{}\left(\left[\left[{0}{,}{-}{c}{+}{1}\right]{,}\left[\right]\right]{,}\left[\left[{0}{,}{0}{,}{0}\right]{,}\left[\right]\right]{,}{-}\frac{{-}{1}{+}{2}{}{x}}{{x}}\right)$ (8)

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);
 ${\mathrm{y\text{'}\text{'}}}{=}{-}\left({3}{}{y}{+}{{c}}_{{2}}{}\left({x}\right)\right){}{\mathrm{y\text{'}}}{-}{{y}}^{{3}}{-}{{c}}_{{2}}{}\left({x}\right){}{{y}}^{{2}}{-}{{c}}_{{1}}{}\left({x}\right){}{y}{-}{{c}}_{{0}}{}\left({x}\right)$ (9)
 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:
 > dsolve((9));
 ${y}{=}\frac{{{\mathrm{DESol}}{}\left(\left\{{{c}}_{{0}}{}\left({x}\right){}{\mathrm{_Y}}{}\left({x}\right){+}{{c}}_{{1}}{}\left({x}\right){}{\mathrm{_Y\text{'}}}{+}{{c}}_{{2}}{}\left({x}\right){}{\mathrm{_Y\text{'}\text{'}}}{+}{\mathrm{_Y\text{'}\text{'}\text{'}}}\right\}{,}\left\{{\mathrm{_Y}}{}\left({x}\right)\right\}\right)}_{{x}}}{{\mathrm{DESol}}{}\left(\left\{{{c}}_{{0}}{}\left({x}\right){}{\mathrm{_Y}}{}\left({x}\right){+}{{c}}_{{1}}{}\left({x}\right){}{\mathrm{_Y\text{'}}}{+}{{c}}_{{2}}{}\left({x}\right){}{\mathrm{_Y\text{'}\text{'}}}{+}{\mathrm{_Y\text{'}\text{'}\text{'}}}\right\}{,}\left\{{\mathrm{_Y}}{}\left({x}\right)\right\}\right)}$ (10)
 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;
 ${x}{↦}{F}{}\left({x}\right){,}{y}{↦}{P}{}\left({x}\right){\cdot }{y}$ (11)
 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));
 ${F}{}\left({x}\right){}{\mathrm{will now be displayed as}}{}{F}$
 ${P}{}\left({x}\right){}{\mathrm{will now be displayed as}}{}{P}$ (12)
 > 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);
 ${\mathrm{y\text{'}\text{'}}}{=}\left(\frac{{\mathrm{F\text{'}\text{'}}}{}{P}{-}{2}{}{\mathrm{F\text{'}}}{}{\mathrm{P\text{'}}}{-}{{\mathrm{F\text{'}}}}^{{2}}{}{{c}}_{{2}}{}\left({F}\right){}{P}}{{\mathrm{F\text{'}}}{}{P}}{-}{3}{}{\mathrm{F\text{'}}}{}{P}{}{y}\right){}{\mathrm{y\text{'}}}{-}{{\mathrm{F\text{'}}}}^{{2}}{}{{P}}^{{2}}{}{{y}}^{{3}}{-}{\mathrm{F\text{'}}}{}\left({3}{}{\mathrm{P\text{'}}}{+}{{c}}_{{2}}{}\left({F}\right){}{P}{}{\mathrm{F\text{'}}}\right){}{{y}}^{{2}}{+}\frac{\left({\mathrm{F\text{'}\text{'}}}{}{\mathrm{P\text{'}}}{-}{\mathrm{F\text{'}}}{}{\mathrm{P\text{'}\text{'}}}{-}{{\mathrm{F\text{'}}}}^{{2}}{}{{c}}_{{2}}{}\left({F}\right){}{\mathrm{P\text{'}}}{-}{{c}}_{{1}}{}\left({F}\right){}{P}{}{{\mathrm{F\text{'}}}}^{{3}}\right){}{y}}{{\mathrm{F\text{'}}}{}{P}}{-}\frac{{{c}}_{{0}}{}\left({F}\right){}{{\mathrm{F\text{'}}}}^{{2}}}{{P}}$ (13)
 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".
 Examples
 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;
 ${\mathrm{y\text{'}\text{'}}}{=}\left(\frac{{6}{}{x}{}{y}}{{\left({{x}}^{{2}}{+}{1}\right)}^{{2}}}{-}\frac{{3}{}{{x}}^{{2}}{-}{1}}{\left({{x}}^{{2}}{+}{1}\right){}{x}}\right){}{\mathrm{y\text{'}}}{-}\frac{{4}{}{{x}}^{{2}}{}{{y}}^{{3}}}{{\left({{x}}^{{2}}{+}{1}\right)}^{{4}}}{+}\frac{{4}{}{{x}}^{{2}}}{{\left({{x}}^{{2}}{+}{1}\right)}^{{4}}}$ (14)
 > dsolve((14));
 ${y}{=}\frac{{-}{{ⅇ}}^{{-}\frac{{1}}{{2}{}{{x}}^{{2}}{+}{2}}}{}\left({\mathrm{_C2}}{-}\sqrt{{3}}\right){}{\mathrm{cos}}{}\left(\frac{\sqrt{{3}}}{{2}{}{{x}}^{{2}}{+}{2}}\right){+}\left({-}{\mathrm{_C2}}{}\sqrt{{3}}{-}{1}\right){}{{ⅇ}}^{{-}\frac{{1}}{{2}{}{{x}}^{{2}}{+}{2}}}{}{\mathrm{sin}}{}\left(\frac{\sqrt{{3}}}{{2}{}{{x}}^{{2}}{+}{2}}\right){+}{2}{}{\mathrm{_C1}}{}{{ⅇ}}^{\frac{{1}}{{{x}}^{{2}}{+}{1}}}}{{2}{}{\mathrm{_C2}}{}{{ⅇ}}^{{-}\frac{{1}}{{2}{}{{x}}^{{2}}{+}{2}}}{}{\mathrm{cos}}{}\left(\frac{\sqrt{{3}}}{{2}{}{{x}}^{{2}}{+}{2}}\right){+}{2}{}{\mathrm{_C1}}{}{{ⅇ}}^{\frac{{1}}{{{x}}^{{2}}{+}{1}}}{+}{2}{}{{ⅇ}}^{{-}\frac{{1}}{{2}{}{{x}}^{{2}}{+}{2}}}{}{\mathrm{sin}}{}\left(\frac{\sqrt{{3}}}{{2}{}{{x}}^{{2}}{+}{2}}\right)}$ (15)
 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;
 ${\mathrm{y\text{'}\text{'}}}{=}{-}{3}{}{\mathrm{y\text{'}}}{}{y}{-}{{y}}^{{3}}{+}\frac{{1}}{{x}}$ (16)
 > dsolve((16));
 ${y}{=}\frac{{24}{}{\mathrm{_C1}}{}{{x}}^{{2}}{}{\mathrm{hypergeom}}{}\left(\left[\right]{,}\left[\frac{{3}}{{2}}{,}{2}\right]{,}\frac{{{x}}^{{2}}}{{8}}\right){+}{\mathrm{_C1}}{}{{x}}^{{4}}{}{\mathrm{hypergeom}}{}\left(\left[\right]{,}\left[\frac{{5}}{{2}}{,}{3}\right]{,}\frac{{{x}}^{{2}}}{{8}}\right){+}{12}{}{\mathrm{_C2}}{}{x}{}{\mathrm{hypergeom}}{}\left(\left[\right]{,}\left[\frac{{1}}{{2}}{,}\frac{{3}}{{2}}\right]{,}\frac{{{x}}^{{2}}}{{8}}\right){+}{4}{}{\mathrm{_C2}}{}{{x}}^{{3}}{}{\mathrm{hypergeom}}{}\left(\left[\right]{,}\left[\frac{{3}}{{2}}{,}\frac{{5}}{{2}}\right]{,}\frac{{{x}}^{{2}}}{{8}}\right){-}{24}{}{\mathrm{MeijerG}}{}\left(\left[\left[\right]{,}\left[\right]\right]{,}\left[\left[{2}{,}\frac{{1}}{{2}}{,}{0}\right]{,}\left[\right]\right]{,}{-}\frac{{{x}}^{{2}}}{{8}}\right){+}{24}{}{\mathrm{MeijerG}}{}\left(\left[\left[\right]{,}\left[\right]\right]{,}\left[\left[{1}{,}\frac{{1}}{{2}}{,}{0}\right]{,}\left[\right]\right]{,}{-}\frac{{{x}}^{{2}}}{{8}}\right)}{{12}{}{x}{}\left({\mathrm{_C1}}{}{{x}}^{{2}}{}{\mathrm{hypergeom}}{}\left(\left[\right]{,}\left[\frac{{3}}{{2}}{,}{2}\right]{,}\frac{{{x}}^{{2}}}{{8}}\right){+}{\mathrm{_C2}}{}{x}{}{\mathrm{hypergeom}}{}\left(\left[\right]{,}\left[\frac{{1}}{{2}}{,}\frac{{3}}{{2}}\right]{,}\frac{{{x}}^{{2}}}{{8}}\right){+}{\mathrm{MeijerG}}{}\left(\left[\left[\right]{,}\left[\right]\right]{,}\left[\left[{1}{,}\frac{{1}}{{2}}{,}{0}\right]{,}\left[\right]\right]{,}{-}\frac{{{x}}^{{2}}}{{8}}\right)\right)}$ (17)

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);
 ${\mathrm{y\text{'}}}{=}\frac{{{a}}_{{3}}{}{{y}}^{{3}}{+}{{a}}_{{2}}{}{{y}}^{{2}}{+}{{a}}_{{1}}{}{y}{+}{{a}}_{{0}}}{\left({{s}}_{{1}}{}{x}{+}{{s}}_{{0}}\right){}{y}{+}{{r}}_{{0}}{+}{{r}}_{{1}}{}{x}}$ (18)
 under general transformations
 > x -> F(x), y -> (P(x)*y + Q(x)*y)/(S(x)*y + T(x)*y);
 ${x}{↦}{F}{}\left({x}\right){,}{y}{↦}\frac{{P}{}\left({x}\right){\cdot }{y}{+}{Q}{}\left({x}\right){\cdot }{y}}{{S}{}\left({x}\right){\cdot }{y}{+}{T}{}\left({x}\right){\cdot }{y}}$ (19)
 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 $F\left(x\right)$ is now solved.
 Examples
 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);
 ${\mathrm{y\text{'}}}{=}\frac{\left({-}{x}{+}\frac{{5}}{{2}}\right){}{{y}}^{{3}}}{{2}{}{x}{}{\left({-}{x}{+}{2}\right)}^{{3}}}{+}\frac{\left(\frac{{x}}{{2}}{-}{3}\right){}{{y}}^{{2}}}{{x}{}{\left({-}{x}{+}{2}\right)}^{{2}}}{+}\frac{{y}}{{x}{}\left({-}{x}{+}{2}\right)}$ (20)
 > dsolve((20));
 ${\mathrm{_C1}}{-}\frac{{625}{}\sqrt{\frac{{-}{2}{}{x}{-}{y}{+}{4}}{{-}{8}{+}\left({y}{+}{4}\right){}{x}}}{}\sqrt{{10}}{}\left(\left({y}{-}\frac{{2}}{{5}}\right){}{{x}}^{{3}}{+}\left({-}{{y}}^{{2}}{-}\frac{{22}}{{5}}{}{y}{+}\frac{{8}}{{5}}\right){}{{x}}^{{2}}{+}\left(\frac{{49}}{{10}}{}{{y}}^{{2}}{+}\frac{{24}}{{5}}{}{y}{-}\frac{{8}}{{5}}\right){}{x}{-}{6}{}{{y}}^{{2}}\right){}\sqrt{{6}}}{{54}{}{\left(\frac{\left({2}{}{y}{-}{2}\right){}{x}{-}{5}{}{y}{+}{4}}{{-}{8}{+}\left({y}{+}{4}\right){}{x}}\right)}^{{5}}{{2}}}{}{\left({-}{8}{+}\left({y}{+}{4}\right){}{x}\right)}^{{2}}{}{x}}{=}{0}$ (21)
 > odetest((21), (20)); # verify this result - see ?odetest
 ${0}$ (22)

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.
 Examples
 > PDEtools:-undeclare(prime);
 ${\mathrm{There is no more prime differentiation variable; all derivatives will be displayed as indexed functions}}$ (23)
 > PDEtools:-declare(u(x,y), _F1(x), _F2(y));
 ${u}{}\left({x}{,}{y}\right){}{\mathrm{will now be displayed as}}{}{u}$
 ${\mathrm{_F1}}{}\left({x}\right){}{\mathrm{will now be displayed as}}{}{\mathrm{_F1}}$
 ${\mathrm{_F2}}{}\left({y}\right){}{\mathrm{will now be displayed as}}{}{\mathrm{_F2}}$ (24)
 > pde := diff(u(x, y), x, y)-2*u(x, y)/(x+y)^2;
 ${\mathrm{pde}}{≔}{{u}}_{{x}{,}{y}}{-}\frac{{2}{}{u}}{{\left({x}{+}{y}\right)}^{{2}}}$ (25)
 > sol := PDEtools:-Laplace(pde, u(x,y));
 ${\mathrm{sol}}{≔}{u}{=}\frac{\left({x}{+}{y}\right){}{{\mathrm{_F1}}}_{{x}}{+}\left({x}{+}{y}\right){}{{\mathrm{_F2}}}_{{y}}{-}{2}{}{\mathrm{_F1}}{-}{2}{}{\mathrm{_F2}}}{{2}{}{x}{+}{2}{}{y}}$ (26)
 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);
 ${0}$ (27)
 • 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.
 Examples
 Consider the following PDE "system" consisting of a single pde
 > with(PDEtools):
 > U := diff_table(u(x,t)):
 > declare(U[]);
 ${u}{}\left({x}{,}{t}\right){}{\mathrm{will now be displayed as}}{}{u}$ (28)
 > pde := U[t,t] + U[x,x] + U[x]*U[];
 ${\mathrm{pde}}{≔}{u}{}{{u}}_{{x}}{+}{{u}}_{{t}{,}{t}}{+}{{u}}_{{x}{,}{x}}$ (29)
 The conserved currents of pde are computed as follows and depend on arbitrary functions
 > J[alpha] := ConservedCurrents(pde);
 ${{J}}_{{\mathrm{\alpha }}}{≔}\left[{{\mathrm{_J}}}_{{x}}{}\left({x}{,}{t}{,}{u}{,}{{u}}_{{x}}{,}{{u}}_{{t}}\right){=}{{\mathrm{D}}}_{{3}}{}\left({\mathrm{_F3}}\right){}\left({x}{,}{t}{,}{u}\right){}{{u}}_{{t}}{+}{{\mathrm{D}}}_{{2}}{}\left({\mathrm{_F3}}\right){}\left({x}{,}{t}{,}{u}\right){+}{{\mathrm{_F5}}}_{{t}}{+}\frac{{{u}}^{{2}}}{{2}}{+}{{u}}_{{x}}{,}{{\mathrm{_J}}}_{{t}}{}\left({x}{,}{t}{,}{u}{,}{{u}}_{{x}}{,}{{u}}_{{t}}\right){=}{-}{{\mathrm{_F5}}}_{{x}}{-}{{\mathrm{D}}}_{{3}}{}\left({\mathrm{_F3}}\right){}\left({x}{,}{t}{,}{u}\right){}{{u}}_{{x}}{-}{{\mathrm{D}}}_{{1}}{}\left({\mathrm{_F3}}\right){}\left({x}{,}{t}{,}{u}\right){+}{\mathrm{_F6}}{}\left({x}\right){+}{{u}}_{{t}}\right]{,}\left[{{\mathrm{_J}}}_{{x}}{}\left({x}{,}{t}{,}{u}{,}{{u}}_{{x}}{,}{{u}}_{{t}}\right){=}{{\mathrm{D}}}_{{3}}{}\left({\mathrm{_F3}}\right){}\left({x}{,}{t}{,}{u}\right){}{{u}}_{{t}}{+}{{\mathrm{D}}}_{{2}}{}\left({\mathrm{_F3}}\right){}\left({x}{,}{t}{,}{u}\right){+}{{\mathrm{_F5}}}_{{t}}{+}\frac{{t}{}{{u}}^{{2}}}{{2}}{+}{{u}}_{{x}}{}{t}{,}{{\mathrm{_J}}}_{{t}}{}\left({x}{,}{t}{,}{u}{,}{{u}}_{{x}}{,}{{u}}_{{t}}\right){=}{-}{{\mathrm{_F5}}}_{{x}}{-}{{\mathrm{D}}}_{{3}}{}\left({\mathrm{_F3}}\right){}\left({x}{,}{t}{,}{u}\right){}{{u}}_{{x}}{-}{{\mathrm{D}}}_{{1}}{}\left({\mathrm{_F3}}\right){}\left({x}{,}{t}{,}{u}\right){+}{\mathrm{_F6}}{}\left({x}\right){+}{t}{}{{u}}_{{t}}{-}{u}\right]$ (30)
 To verify these results use
 > map(ConservedCurrentTest, [J[alpha]], pde);
 $\left[\left\{{0}\right\}{,}\left\{{0}\right\}\right]$ (31)
 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);
 ${{\mathrm{\mu }}}_{{\mathrm{\alpha }}}{≔}\left[{{\mathrm{_μ}}}_{{1}}{}\left({x}{,}{t}{,}{u}{,}{{u}}_{{x}}{,}{{u}}_{{t}}\right){=}{1}\right]{,}\left[{{\mathrm{_μ}}}_{{1}}{}\left({x}{,}{t}{,}{u}{,}{{u}}_{{x}}{,}{{u}}_{{t}}\right){=}{t}\right]$ (32)
 To verify for correctness these integrating factors use
 > map(IntegratingFactorTest, [mu[alpha]], pde);
 $\left[\left\{{0}\right\}{,}\left\{{0}\right\}\right]$ (33)

Numerical Differential Equations

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

Events

 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.