Differential Equations - Maple Help

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

Updates to Differential Equation (DE) Solvers in Maple 9.5

 In Maple 9.5, the power of the differential equation solvers has been increased for computing both exact and numeric DEs solutions regarding various aspects.

Summary

The dsolve and pdsolve Commands: Exact Solutions

 • Important efficiency improvements for difficult first order Abel type ODE problems.
 • New solving algorithms for Riccati type ODEs.
 • New solving algorithms for second order linear ODEs of Mathieu type.
 • Hypergeometric solutions free of integrals for linear ODEs, exploring the automorphisms of the 2F1 equation.
 • New methods for initial value ODE problems.
 • New methods for piecewise ODEs.
 • New solving algorithms for computing polynomial solutions for nonlinear ODEs and systems of them.
 • New solving algorithms for linear and nonlinear PDEs and systems of them.

The dsolve and pdsolve Commands: Numeric Solutions

 • Three new numerical solution methods for Differential-Algebraic ODE initial value (stiff and non-stiff) problems.
 • New optimization option, useful for large or complex systems, results in a speed improvement by a factor of up to 30 times.
 • New implicit option for the stiff IVP solver (rosenbrock), useful for large, dense ODE systems.
 • The dsolve[interactive] assistant (Maplet interface) now permits interactive numerical solution of DAE problems.

The Differential Equation Packages: DEtools, PDEtools, and diffalg

 • Seven new commands were added to DEtools, including the rewritten polysols command, which can now compute polynomial solutions to linear and nonlinear ODE systems, and the new diff_table command that greatly simplifies the notation used to input differential equations.
 • New command for computing Traveling Wave Solutions in the PDEtools package.
 • New capabilities in the diffalg package to compute using algebraic triangular techniques instead of Groebner basis.

Exact Solutions

Ordinary Differential Equations (ODEs)

Abel Equations: 40% Faster

 Important efficiency improvement in the methods for first order ODEs of Abel type: The dsolve command's computational time for all parameterized Abel ODE classes is reduced almost 40 % compared with previous releases. This is achieved using new specialized subroutines for computing resultants using modular arithmetics. In addition, some families of Abel equations in second kind format, which can be transformed into Riccati equations, are handled in 1/10 or less of the previous computational time.
 Example
 > diff(y(x),x) = -y(x)/(y(x)+x*(-x+a-1));
 $\frac{{ⅆ}}{{ⅆ}{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{y}{}\left({x}\right){=}{-}\frac{{y}{}\left({x}\right)}{{y}{}\left({x}\right){+}{x}{}\left({-}{x}{+}{a}{-}{1}\right)}$ (1)
 > dsolve((1), y(x));
 $\mathrm{c__1}{+}\frac{{x}{}{\mathrm{BesselJ}}{}\left({a}{-}{1}{,}{2}{}\sqrt{{-}{y}{}\left({x}\right)}\right){-}{\mathrm{BesselJ}}{}\left({a}{,}{2}{}\sqrt{{-}{y}{}\left({x}\right)}\right){}\sqrt{{-}{y}{}\left({x}\right)}}{{x}{}{\mathrm{BesselY}}{}\left({a}{-}{1}{,}{2}{}\sqrt{{-}{y}{}\left({x}\right)}\right){-}{\mathrm{BesselY}}{}\left({a}{,}{2}{}\sqrt{{-}{y}{}\left({x}\right)}\right){}\sqrt{{-}{y}{}\left({x}\right)}}{=}{0}$ (2)

New Methods for Riccati Equations

 A new solving method for a Riccati family depending on two arbitrary functions, which explores different forms of the symmetries of first order Riccati equations, is available.
 Example
 The Riccati first order ODE family:
 > PDEtools[declare]((y,F,G)(x), prime=x);
 ${y}{}\left({x}\right){}{\mathrm{will now be displayed as}}{}{y}$
 ${F}{}\left({x}\right){}{\mathrm{will now be displayed as}}{}{F}$
 ${G}{}\left({x}\right){}{\mathrm{will now be displayed as}}{}{G}$
 ${\mathrm{derivatives with respect to}}{}{x}{}{\mathrm{of functions of one variable will now be displayed with \text{'}}}$ (3)
 > diff(y(x),x) = G(x)*y(x)^2 - (diff(F(x),x)+2*G(x)*F(x)^2)/F(x)*y(x) + (2*F(x)*diff(F(x),x)+G(x)*F(x)^3)/F(x);
 ${\mathrm{y\text{'}}}{=}{G}{}{{y}}^{{2}}{-}\frac{\left({\mathrm{F\text{'}}}{+}{2}{}{G}{}{{F}}^{{2}}\right){}{y}}{{F}}{+}\frac{{2}{}{F}{}{\mathrm{F\text{'}}}{+}{G}{}{{F}}^{{3}}}{{F}}$ (4)
 Independent of the values of the functions $\left\{F,G\right\}$, a solution is now always computable as:
 > dsolve((4), y(x));
 ${y}{=}\frac{\left({\int }\frac{{G}}{{F}}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{ⅆ}{x}\right){}{{F}}^{{2}}{+}\mathrm{c__1}{}{{F}}^{{2}}{-}{1}}{{F}{}\left({\int }\frac{{G}}{{F}}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{ⅆ}{x}{+}\mathrm{c__1}\right)}$ (5)
 The new method extends the solving capabilities for second order linear ODEs with non-rational coefficients. Independent of the value of $G$, a solution for the following ODE is now always computable.
 > ode := diff(y(x),x,x) = (-2*exp(x)*G(x)^2-G(x) + diff(G(x),x))/G(x)*diff(y(x),x) - G(x)*(2*exp(x)+G(x)*exp(2*x))*y(x);
 ${\mathrm{ode}}{≔}{\mathrm{y\text{'}\text{'}}}{=}\frac{\left({-}{2}{}{{ⅇ}}^{{x}}{}{{G}}^{{2}}{-}{G}{+}{\mathrm{G\text{'}}}\right){}{\mathrm{y\text{'}}}}{{G}}{-}{G}{}\left({2}{}{{ⅇ}}^{{x}}{+}{G}{}{{ⅇ}}^{{2}{}{x}}\right){}{y}$ (6)
 > sol := dsolve((6), y(x));
 ${\mathrm{sol}}{≔}{y}{=}{{ⅇ}}^{{\int }{-}\frac{\left(\left({\int }{G}{}{{ⅇ}}^{{-}{x}}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{ⅆ}{x}\right){}{{ⅇ}}^{{6}{}{x}}{+}\mathrm{c__1}{}{{ⅇ}}^{{6}{}{x}}{-}{{ⅇ}}^{{4}{}{x}}\right){}{G}{}{{ⅇ}}^{{-}{5}{}{x}}}{{\int }{G}{}{{ⅇ}}^{{-}{x}}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{ⅆ}{x}{+}\mathrm{c__1}}\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}{ⅆ}{x}}{}\mathrm{c__2}$ (7)
 The computation of the integrals depends on the particular value of $G$. ODE solutions can be tested by entering odetest(sol, ode). For more information, see odetest.

New Methods for Mathieu Equations

 A new algorithm was implemented for computing Mathieu function solutions for second order linear ODEs by resolving an equivalence similar to the one formulated in previous Maple releases to compute hypergeometric 2F1, 1F1, 0F1 solutions.
 Example
 The equation number 2.268 from Kamke's book:
 > ode := 2*x*(x-1)*diff(y(x),x,x)+(2*x-1)*diff(y(x),x)+(mu*x+nu)*y(x) = 0;
 ${\mathrm{ode}}{≔}{2}{}{x}{}\left({x}{-}{1}\right){}{\mathrm{y\text{'}\text{'}}}{+}\left({2}{}{x}{-}{1}\right){}{\mathrm{y\text{'}}}{+}\left({\mathrm{\mu }}{}{x}{+}{\mathrm{\nu }}\right){}{y}{=}{0}$ (8)
 > dsolve(ode);
 ${y}{=}\mathrm{c__1}{}{\mathrm{MathieuC}}{}\left({-}{\mathrm{\mu }}{-}{2}{}{\mathrm{\nu }}{,}\frac{{\mathrm{\mu }}}{{2}}{,}{\mathrm{arccos}}{}\left(\sqrt{{x}}\right)\right){+}\mathrm{c__2}{}{\mathrm{MathieuS}}{}\left({-}{\mathrm{\mu }}{-}{2}{}{\mathrm{\nu }}{,}\frac{{\mathrm{\mu }}}{{2}}{,}{\mathrm{arccos}}{}\left(\sqrt{{x}}\right)\right)$ (9)

New Methods for Second Order Linear ODEs Admitting Hypergeometric Solutions

 For ODEs that admit 2F1 hypergeometric solutions, when possible, the solutions are now systematically expressed using special functions instead of uncomputed integrals. This is achieved exploring the automorphisms of the 2F1 equation. For more information, see dsolve,references.
 Example
 > ode := diff(y(x),x,x) = -(x^2+1)/x/(x-1)/(x+1)*diff(y(x),x)+1/(x-1)/(x+1)*y(x);
 ${\mathrm{ode}}{≔}{\mathrm{y\text{'}\text{'}}}{=}{-}\frac{\left({{x}}^{{2}}{+}{1}\right){}{\mathrm{y\text{'}}}}{{x}{}\left({x}{-}{1}\right){}\left({x}{+}{1}\right)}{+}\frac{{y}}{\left({x}{-}{1}\right){}\left({x}{+}{1}\right)}$ (10)
 > dsolve(ode);             # New output free of uncomputed integrals
  (11)

New Methods for Initial Value ODE Problems

 Computing solutions for initial value ODE problems in more difficult cases:
 Example
 > ode := diff(y(x),x) = 1/(x-y(x)); # Abel type ODE
 ${\mathrm{ode}}{≔}{\mathrm{y\text{'}}}{=}\frac{{1}}{{x}{-}{y}}$ (12)
 > sol := dsolve({ode, y(0) = 1});   # correct branch for LambertW
 ${\mathrm{sol}}{≔}{y}{=}{-}{\mathrm{LambertW}}{}\left({-1}{,}{-}{2}{}{{ⅇ}}^{{-}{2}{+}{x}}\right){-}{1}{+}{x}$ (13)
 > simplify( eval(sol, x = 0) );     # verifying initial condition
 ${y}{}\left({0}\right){=}{1}$ (14)
 Note also that, new in Maple 9.5, odetest can test that dsolve's output also satisfies the initial conditions of the problem.
 > odetest( sol, [ode, y(0) = 1]);   # verifies 'sol' solves the ode and satisfies y(0) = 1
 $\left[{0}{,}{0}\right]$ (15)

New Methods for Piecewise ODEs

 Example
 > ode := diff(diff(y(x),x),x) + piecewise(x < 1/2, 1, 1/2 <= x, 0) * y(x) = 0;
 ${\mathrm{ode}}{≔}{\mathrm{y\text{'}\text{'}}}{+}\left(\left\{\begin{array}{cc}{1}& {x}{<}\frac{{1}}{{2}}\\ {0}& \frac{{1}}{{2}}{\le }{x}\end{array}\right\\right){}{y}{=}{0}$ (16)
 > initial_values := y(0)=1, D(y)(0)=1;
 ${\mathrm{initial_values}}{≔}{y}{}\left({0}\right){=}{1}{,}{\mathrm{D}}{}\left({y}\right){}\left({0}\right){=}{1}$ (17)
 > dsolve( {ode, initial_values} );
 ${y}{=}\left\{\begin{array}{cc}{\mathrm{sin}}{}\left({x}\right){+}{\mathrm{cos}}{}\left({x}\right)& {x}{<}\frac{{1}}{{2}}\\ {\mathrm{cos}}{}\left(\frac{{1}}{{2}}\right){}{x}{+}\frac{{3}{}{\mathrm{sin}}{}\left(\frac{{1}}{{2}}\right)}{{2}}{+}\frac{{\mathrm{cos}}{}\left(\frac{{1}}{{2}}\right)}{{2}}{-}{\mathrm{sin}}{}\left(\frac{{1}}{{2}}\right){}{x}& \frac{{1}}{{2}}{\le }{x}\end{array}\right\$ (18)
 For linear problems, like the previous one, when possible, the new routines return a solution that is continuous at the point where the piecewise function changes branches (in this example, at x = 1/2).

New Methods for Polynomial Solutions for Nonlinear ODEs

 The DEtools[polysols] command was rewritten to compute polynomial solutions for nonlinear ODEs and systems of them.
 Example
 This is equation 14 from the section on nonlinear higher order ODEs in Kamke's book.
 > ode := diff(y(x),x)*diff(y(x),x,x,x,x) - diff(y(x),x,x)*diff(y(x),x,x,x) + diff(y(x),x)^3*diff(y(x),x,x,x) = 0;
 ${\mathrm{ode}}{≔}{\mathrm{y\text{'}}}{}{\mathrm{y\text{'}\text{'}\text{'}\text{'}}}{-}{\mathrm{y\text{'}\text{'}}}{}{\mathrm{y\text{'}\text{'}\text{'}}}{+}{{\mathrm{y\text{'}}}}^{{}{3}}{}{\mathrm{y\text{'}\text{'}\text{'}}}{=}{0}$ (19)
 The general solution to this equation is not known. Attempting its computation using $\mathrm{dsolve}\left(\mathrm{ode}\right)$, we obtain a partial solution, a reduction of order from 4 to 1. It is in difficult problems like this one that the new routines for computing polynomial solutions can play a crucial role. This equation, in fact, admits polynomial solutions.
 > ans := DEtools[polysols]( ode );
 ${\mathrm{ans}}{≔}\left[{y}{=}{\mathrm{_C5}}{}{{x}}^{{2}}{+}{\mathrm{_C4}}{}{x}{+}{\mathrm{_C3}}\right]$ (20)
 Although this solution, depending only on three arbitrary constants, is not the most general for the given fourth order equation, it still has an important level of generality and is the most general solution presently known.

New Routines for Testing ODE Initial Conditions and Piecewise Implicit ODE Solutions

 Example
 An ODE problem with initial conditions
 > ode := [diff(y(x),x)=sin(x-y(x)), y(0) = 8];
 ${\mathrm{ode}}{≔}\left[{\mathrm{y\text{'}}}{=}{\mathrm{sin}}{}\left({x}{-}{y}\right){,}{y}{}\left({0}\right){=}{8}\right]$ (21)
 > sol := dsolve(ode);     # new solution in Maple 9.5
 ${\mathrm{sol}}{≔}{y}{=}{x}{-}{2}{}{\mathrm{arctan}}{}\left(\frac{{\mathrm{tan}}{}\left({4}\right){}{x}{-}{2}{}{\mathrm{tan}}{}\left({4}\right){+}{x}}{{\mathrm{tan}}{}\left({4}\right){}{x}{+}{x}{+}{2}}\right){+}{2}{}{\mathrm{\pi }}$ (22)
 > odetest( sol, ode );    # verifies 'sol' solves the ode and satisfies y(0) = 8
 $\left[{0}{,}{0}\right]$ (23)

Partial Differential Equations (PDEs)

 There are important improvements and new options for solving both linear and nonlinear PDE systems.
 Examples
 A linear PDE system for one unknown $f\left(x,y,z\right)$. You can use the new diff_table to avoid redundant typing when inputting the equations.
 > restart;
 > F := DEtools[diff_table]( f(x,y,z) ):
 > sys := [x*F[x,x] + (y+1)*F[x,y] + z*F[x,z] = 0,     x*F[x,y] + (y+1)*F[y,y] + z*F[y,z] = 0,     x*F[x,z] + (y+1)*F[y,z] + z*F[z,z] = 0 ];
 ${\mathrm{sys}}{≔}\left[{x}{}\left(\frac{{{\partial }}^{{2}}}{{\partial }{{x}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){+}\left({y}{+}{1}\right){}\left(\frac{{{\partial }}^{{2}}}{{\partial }{x}{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){+}{z}{}\left(\frac{{{\partial }}^{{2}}}{{\partial }{x}{\partial }{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){=}{0}{,}{x}{}\left(\frac{{{\partial }}^{{2}}}{{\partial }{x}{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){+}\left({y}{+}{1}\right){}\left(\frac{{{\partial }}^{{2}}}{{\partial }{{y}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){+}{z}{}\left(\frac{{{\partial }}^{{2}}}{{\partial }{y}{\partial }{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){=}{0}{,}{x}{}\left(\frac{{{\partial }}^{{2}}}{{\partial }{x}{\partial }{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){+}\left({y}{+}{1}\right){}\left(\frac{{{\partial }}^{{2}}}{{\partial }{y}{\partial }{z}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){+}{z}{}\left(\frac{{{\partial }}^{{2}}}{{\partial }{{z}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{f}{}\left({x}{,}{y}{,}{z}\right)\right){=}{0}\right]$ (24)
 The general solution involving two arbitrary functions of one and two arguments respectively is:
 > pdsolve(sys);
 $\left\{{f}{}\left({x}{,}{y}{,}{z}\right){=}\mathrm{f__5}{}\left(\frac{{z}}{{x}}\right){}{x}{+}\mathrm{c__1}{+}\mathrm{f__4}{}\left(\frac{{z}}{{x}}{,}\frac{{y}{+}{1}}{{x}}\right){}{x}\right\}$ (25)
 The new technique is equivalent to computing differential invariants for the problem.
 A nonlinear PDE depending on two parameters $\left\{p,q\right\}$: the Korteweg - de Vries (KdV) Burgers' equation that occurs in various physical systems:
 > U := DEtools[diff_table]( u(x,t) ):
 > pde := U[t] + U[]*U[x] - p * U[x,x] + q * U[x,x,x] = 0;
 ${\mathrm{pde}}{≔}{-}{p}{}\left(\frac{{{\partial }}^{{2}}}{{\partial }{{x}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{t}\right)\right){+}{q}{}\left(\frac{{{\partial }}^{{3}}}{{\partial }{{x}}^{{3}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{t}\right)\right){+}{u}{}\left({x}{,}{t}\right){}\left(\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{t}\right)\right){+}\frac{{\partial }}{{\partial }{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{t}\right){=}{0}$ (26)
 > pdsolve(pde);
 ${u}{}\left({x}{,}{t}\right){=}{-}\frac{{3}{}{{p}}^{{2}}{}{{\mathrm{tanh}}{}\left(\mathrm{c__3}{}{t}{-}\frac{{p}{}{x}}{{10}{}{q}}{+}\mathrm{c__1}\right)}^{{2}}}{{25}{}{q}}{+}\frac{{6}{}{{p}}^{{2}}{}{\mathrm{tanh}}{}\left(\mathrm{c__3}{}{t}{-}\frac{{p}{}{x}}{{10}{}{q}}{+}\mathrm{c__1}\right)}{{25}{}{q}}{+}\frac{{250}{}\mathrm{c__3}{}{{q}}^{{2}}{+}{3}{}{{p}}^{{3}}}{{25}{}{q}{}{p}}$ (27)
 For examples of TWS for PDE systems, see PDEtools[TWSolutions].
 To move to the corresponding section of this page, click Summary, Exact Solutions, Numeric Solutions, DEtools, PDEtools, or diffalg.

Numeric Solutions

Numeric Solution of DAE Problems

 Maple now has three numerical solution methods for Differential-Algebraic ODE initial value problems. The first of these is the Modified Extended Backward Difference Implicit mebdfi method, which is a direct solution method for DAE problems. The other two are extensions of Maple's default stiff and non-stiff ODE solvers, that is, rkf45_dae and rosenbrock_dae.
 The latter methods are a combination of modifications to the default solvers, and an extension of the system to more closely resemble a standard ODE system (called index reduction and addition of a projection step to the solvers).
 For many problems, DAE systems can be automatically recognized, and sent to the correct solver, but in some cases the method must be specified.
 Example
 Basic pendulum:
 > restart;
 > psys := {diff(x(t),t,t) = -2*lambda(t)*x(t),          diff(y(t),t,t) = -2*lambda(t)*y(t)-9.8,          x(t)^2+y(t)^2 = 1,          x(0)=0, D(x)(0)=0.1, y(0)=-1, D(y)(0)=0};
 ${\mathrm{psys}}{≔}\left\{{{x}{}\left({t}\right)}^{{2}}{+}{{y}{}\left({t}\right)}^{{2}}{=}{1}{,}\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{x}{}\left({t}\right){=}{-}{2}{}{\mathrm{\lambda }}{}\left({t}\right){}{x}{}\left({t}\right){,}\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{y}{}\left({t}\right){=}{-}{2}{}{\mathrm{\lambda }}{}\left({t}\right){}{y}{}\left({t}\right){-}{9.8}{,}{x}{}\left({0}\right){=}{0}{,}{y}{}\left({0}\right){=}{-1}{,}{\mathrm{D}}{}\left({x}\right){}\left({0}\right){=}{0.1}{,}{\mathrm{D}}{}\left({y}\right){}\left({0}\right){=}{0}\right\}$ (28)
 > psol := dsolve(psys, numeric);
 ${\mathrm{psol}}{≔}{\mathbf{proc}}\left({\mathrm{x_rkf45_dae}}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{...}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end proc}}$ (29)
 > psol(1);
 $\left[{t}{=}{1.}{,}{\mathrm{\lambda }}{}\left({t}\right){=}{4.90499905723651}{,}{x}{}\left({t}\right){=}{0.000360891517794992}{,}\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{x}{}\left({t}\right){=}{-0.0999937504894365}{,}{y}{}\left({t}\right){=}{-0.999999934755133}{,}\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{y}{}\left({t}\right){=}{-0.0000360794101890703}\right]$ (30)
 In addition, the extension methods have the implicit option, which is quite useful for problems that are complicated and dense.

Optimization

 Maple's numerical DE solvers now accept the optimization argument, which controls whether the procedures used in computing the numerical solution are optimized for efficient solutions.
 By default, this option is true for the DAE numerical solvers, and false for all other solvers (IVP and BVP) because generally the DAE case requires this option to compute solutions in a reasonable amount of time.
 The option is most useful for large or complex systems. For example:
 > dsys := {   3/10*cos(beta(t))*diff(beta(t),t)^2+3/10*sin(beta(t))*diff(beta(t),t,t)+     diff(s(t),t,t),   2/25*sin(theta(t))*diff(theta(t),t)^2-2/25*cos(theta(t))*diff(theta(t),t,t)     +3/10*sin(eta(t))*diff(eta(t),t)^2*sin(beta(t))-3/10*cos(eta(t))     *diff(eta(t),t,t)*sin(beta(t))-3/5*cos(eta(t))*diff(eta(t),t)*cos(beta(t))     *diff(beta(t),t)+3/10*sin(eta(t))*sin(beta(t))*diff(beta(t),t)^2     -3/10*sin(eta(t))*cos(beta(t))*diff(beta(t),t,t),   -2/25*cos(theta(t))*diff(theta(t),t)^2-2/25*sin(theta(t))*diff(theta(t),t,t)     -3/10*cos(eta(t))*diff(eta(t),t)^2*sin(beta(t))-3/10*sin(eta(t))     *diff(eta(t),t,t)*sin(beta(t))-3/5*sin(eta(t))*diff(eta(t),t)*cos(beta(t))     *diff(beta(t),t)-3/10*cos(eta(t))*sin(beta(t))*diff(beta(t),t)^2     +3/10*cos(eta(t))*cos(beta(t))*diff(beta(t),t,t),   4/15*(-61/4000*sin(eta(t))*sin(theta(t))+9/800*sin(eta(t))*sin(theta(t))     *cos(beta(t))^2-61/4000*cos(theta(t))*cos(eta(t))+9/800*cos(theta(t))     *cos(eta(t))*cos(beta(t))^2)/sin(beta(t))*diff(eta(t),t,t)-4/15     *(217/20000*sin(theta(t))*cos(eta(t))-9/400*sin(theta(t))*cos(eta(t))     *cos(beta(t))^2-217/20000*sin(eta(t))*cos(theta(t))+9/400*sin(eta(t))     *cos(theta(t))*cos(beta(t))^2)/cos(beta(t))*diff(beta(t),t,t)     -9/50*(sin(theta(t))*cos(eta(t))-sin(eta(t))*cos(theta(t)))*sin(beta(t))     /cos(beta(t))*diff(s(t),t,t)+73/250000*diff(theta(t),t,t)     -3/500*sin(beta(t))*diff(beta(t),t)^2*sin(theta(t))*cos(eta(t))-3/1000     *sin(beta(t))*diff(eta(t),t)^2*sin(theta(t))*cos(eta(t))+3/1000     *sin(eta(t))*sin(beta(t))*diff(eta(t),t)^2*cos(theta(t))+3/500     *sin(beta(t))*diff(beta(t),t)^2*sin(eta(t))*cos(theta(t))-30411/125000     *sin(theta(t))-3/500*sin(eta(t))*cos(beta(t))*diff(beta(t),t)     *diff(eta(t),t)*sin(theta(t))-3/500*cos(beta(t))*diff(beta(t),t)     *diff(eta(t),t)*cos(theta(t))*cos(eta(t))};
 ${\mathrm{dsys}}{≔}\left\{\frac{{3}{}{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}{\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right)}^{{2}}}{{10}}{+}\frac{{3}{}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}\left(\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right)}{{10}}{+}\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{s}{}\left({t}\right){,}{-}\frac{{2}{}{\mathrm{cos}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}{\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\theta }}{}\left({t}\right)\right)}^{{2}}}{{25}}{-}\frac{{2}{}{\mathrm{sin}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}\left(\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\theta }}{}\left({t}\right)\right)}{{25}}{-}\frac{{3}{}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right)\right)}^{{2}}{}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right)}{{10}}{-}\frac{{3}{}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}\left(\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right)}{{10}}{-}\frac{{3}{}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right)}{{5}}{-}\frac{{3}{}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}{\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right)}^{{2}}}{{10}}{+}\frac{{3}{}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}\left(\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right)}{{10}}{,}\frac{{2}{}{\mathrm{sin}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}{\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\theta }}{}\left({t}\right)\right)}^{{2}}}{{25}}{-}\frac{{2}{}{\mathrm{cos}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}\left(\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\theta }}{}\left({t}\right)\right)}{{25}}{+}\frac{{3}{}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right)\right)}^{{2}}{}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right)}{{10}}{-}\frac{{3}{}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}\left(\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right)}{{10}}{-}\frac{{3}{}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right)}{{5}}{+}\frac{{3}{}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}{\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right)}^{{2}}}{{10}}{-}\frac{{3}{}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}\left(\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right)}{{10}}{,}\frac{{4}{}\left({-}\frac{{61}{}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{sin}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right)}{{4000}}{+}\frac{{9}{}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{sin}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}{{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right)}^{{2}}}{{800}}{-}\frac{{61}{}{\mathrm{cos}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right)}{{4000}}{+}\frac{{9}{}{\mathrm{cos}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right)}^{{2}}}{{800}}\right){}\left(\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right)\right)}{{15}{}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right)}{-}\frac{{4}{}\left(\frac{{217}{}{\mathrm{sin}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right)}{{20000}}{-}\frac{{9}{}{\mathrm{sin}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right)}^{{2}}}{{400}}{-}\frac{{217}{}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right)}{{20000}}{+}\frac{{9}{}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}{{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right)}^{{2}}}{{400}}\right){}\left(\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right)}{{15}{}{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right)}{-}\frac{{9}{}\left({\mathrm{sin}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){-}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right)\right){}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}\left(\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{s}{}\left({t}\right)\right)}{{50}{}{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right)}{+}\frac{{73}{}\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\theta }}{}\left({t}\right)}{{250000}}{-}\frac{{3}{}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}{\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right)}^{{2}}{}{\mathrm{sin}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right)}{{500}}{-}\frac{{3}{}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}{\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right)\right)}^{{2}}{}{\mathrm{sin}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right)}{{1000}}{+}\frac{{3}{}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}{\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right)\right)}^{{2}}{}{\mathrm{cos}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right)}{{1000}}{+}\frac{{3}{}{\mathrm{sin}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}{\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right)}^{{2}}{}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right)}{{500}}{-}\frac{{30411}{}{\mathrm{sin}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right)}{{125000}}{-}\frac{{3}{}{\mathrm{sin}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right){}\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{sin}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right)}{{500}}{-}\frac{{3}{}{\mathrm{cos}}{}\left({\mathrm{\beta }}{}\left({t}\right)\right){}\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right)\right){}\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\theta }}{}\left({t}\right)\right){}{\mathrm{cos}}{}\left({\mathrm{\eta }}{}\left({t}\right)\right)}{{500}}\right\}$ (31)
 > ics := {eta(0) = arcsin(1/sqrt(5)), D(eta)(0)=-48/25,         s(0)=1/5, D(s)(0)=6/25,         theta(0)=0, D(theta)(0)=-6,         beta(0) = -arccos(2/3), D(beta)(0) = 12*sqrt(5)/25};
 ${\mathrm{ics}}{≔}\left\{{\mathrm{\beta }}{}\left({0}\right){=}{-}{\mathrm{arccos}}{}\left(\frac{{2}}{{3}}\right){,}{\mathrm{\eta }}{}\left({0}\right){=}{\mathrm{arcsin}}{}\left(\frac{\sqrt{{5}}}{{5}}\right){,}{s}{}\left({0}\right){=}\frac{{1}}{{5}}{,}{\mathrm{\theta }}{}\left({0}\right){=}{0}{,}{\mathrm{D}}{}\left({\mathrm{\beta }}\right){}\left({0}\right){=}\frac{{12}{}\sqrt{{5}}}{{25}}{,}{\mathrm{D}}{}\left({\mathrm{\eta }}\right){}\left({0}\right){=}{-}\frac{{48}}{{25}}{,}{\mathrm{D}}{}\left({s}\right){}\left({0}\right){=}\frac{{6}}{{25}}{,}{\mathrm{D}}{}\left({\mathrm{\theta }}\right){}\left({0}\right){=}{-6}\right\}$ (32)
 > dsn1 := dsolve(dsys union ics,numeric);
 ${\mathrm{dsn1}}{≔}{\mathbf{proc}}\left({\mathrm{x_rkf45}}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{...}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end proc}}$ (33)
 > tt := time(): dsn1(5); time1 := time()-tt;
 $\left[{t}{=}{5.}{,}{\mathrm{\beta }}{}\left({t}\right){=}{-0.440221710798128}{,}\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right){=}{3.61399010468775}{,}{\mathrm{\eta }}{}\left({t}\right){=}{0.159001441307917}{,}\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right){=}{0.623236064171025}{,}{s}{}\left({t}\right){=}{0.271397346853229}{,}\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{s}{}\left({t}\right){=}{0.462019863044553}{,}{\mathrm{\theta }}{}\left({t}\right){=}{-51.7583332394113}{,}\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\theta }}{}\left({t}\right){=}{-12.3007185229252}\right]$
 ${\mathrm{time1}}{≔}{1.158}$ (34)
 > dsn2 := dsolve(dsys union ics,numeric,optimize=true);
 ${\mathrm{dsn2}}{≔}{\mathbf{proc}}\left({\mathrm{x_rkf45}}\right)\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{...}\phantom{\rule[-0.0ex]{0.5em}{0.0ex}}{\mathbf{end proc}}$ (35)
 > tt := time(): dsn2(5); time2 := time()-tt;
 $\left[{t}{=}{5.}{,}{\mathrm{\beta }}{}\left({t}\right){=}{-0.440221710801189}{,}\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\beta }}{}\left({t}\right){=}{3.61399010466022}{,}{\mathrm{\eta }}{}\left({t}\right){=}{0.159001441306971}{,}\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\eta }}{}\left({t}\right){=}{0.623236064075927}{,}{s}{}\left({t}\right){=}{0.271397346852838}{,}\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{s}{}\left({t}\right){=}{0.462019863044033}{,}{\mathrm{\theta }}{}\left({t}\right){=}{-51.7583332394012}{,}\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{\theta }}{}\left({t}\right){=}{-12.3007185228025}\right]$
 ${\mathrm{time2}}{≔}{0.170}$ (36)
 > Speed increase factor=time1/time2;
 ${\mathrm{Speed increase factor}}{=}{6.811764706}$ (37)

Other Items

 The default Maple stiff IVP solver (rosenbrock) now accepts the implicit argument, making it possible to obtain efficient numerical solutions for large, dense systems of ODEs. For more information, see dsolve[rosenbrock].
 The dsolve[interactive] assistant (Maplet interface) has been updated to allow interactive numerical solution of DAE problems via the new DAE solvers previously mentioned.
 To move to the corresponding section of this page, click Summary, Exact Solutions, Numeric Solutions, DEtools, PDEtools, or diffalg.

The Differential Equation Packages: DEtools, PDEtools and diffalg

DEtools

 In connection with important enhancements in the differential equation solvers dsolve and pdsolve, seven new commands, some based on original algorithms, are available in DEtools in this release.

Avoiding Redundant Typing: The New diff_table Command

 The diff_table command is basically the inverse facility of PDEtools[declare]: it permits entering (input) expressions and their derivatives using compact mathematical notation, without using macros or aliases. The notation implemented by diff_table is the jet notation also used by the diffalg package and greatly reduces redundant typing.
 Example
 Let U and V be the "differentiation tables" of $u\left(x,y,t\right)$ and $v\left(x,y,t\right)$ - that is, a handy representations for these objects and their derivatives.
 > U := DEtools[diff_table]( u(x,y,t) ):
 > V := DEtools[diff_table]( v(x,y,t) ):
 You can now input the functions $u\left(x,y,t\right)$ or $v\left(x,y,t\right)$ or any of its partial derivatives using mathematical notation directly, resulting in the expected expression on output.
 > e1 := U[y,t] + V[x,x] + U[x]*U[y] + U[]*U[x,y];
 ${\mathrm{e1}}{≔}{u}{}\left({x}{,}{y}{,}{t}\right){}\left(\frac{{{\partial }}^{{2}}}{{\partial }{x}{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{t}\right)\right){+}\left(\frac{{\partial }}{{\partial }{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{t}\right)\right){}\left(\frac{{\partial }}{{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{t}\right)\right){+}\frac{{{\partial }}^{{2}}}{{\partial }{t}{\partial }{y}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({x}{,}{y}{,}{t}\right){+}\frac{{{\partial }}^{{2}}}{{\partial }{{x}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{v}{}\left({x}{,}{y}{,}{t}\right)$ (38)
 diff_table can be used simultaneously with PDEtools[declare] so that both input and display are simplified while the contents of the expressions generated are as expected.

Polynomial Solutions for Nonlinear ODEs and Systems of Them

 The DEtools[polysols] command was rewritten to compute polynomial solutions for nonlinear ODEs and systems of them and also for linear ODE systems. The new functionality uses the LinearFunctionalSystems package, in the case of linear ODEs, and the subroutines of the new PDEtools[TWSolutions] in the case of nonlinear ODEs. For advanced users, this new DEtools[polysols] includes programmer entry points for the different types of problems it can handle.
 Examples
 A linear ODE system:
 > sys := [diff(y1(x), x) - y2(x), diff(y2(x), x) - y3(x) - y4(x), diff(y3(x), x) - y5(x) = 0,         diff(y4(x), x) - 2*y1(x) - 2*x*y2(x) - y5(x) = 0,         diff(y5(x), x) - x^2*y1(x) - 2*x*y3(x) - y6(x) = 0,         diff(y6(x), x) - x^2*y2(x) + 2*y3(x) = 0];
 ${\mathrm{sys}}{≔}\left[\frac{{ⅆ}}{{ⅆ}{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{y1}}{}\left({x}\right){-}{\mathrm{y2}}{}\left({x}\right){,}\frac{{ⅆ}}{{ⅆ}{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{y2}}{}\left({x}\right){-}{\mathrm{y3}}{}\left({x}\right){-}{\mathrm{y4}}{}\left({x}\right){,}\frac{{ⅆ}}{{ⅆ}{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{y3}}{}\left({x}\right){-}{\mathrm{y5}}{}\left({x}\right){=}{0}{,}\frac{{ⅆ}}{{ⅆ}{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{y4}}{}\left({x}\right){-}{2}{}{\mathrm{y1}}{}\left({x}\right){-}{2}{}{x}{}{\mathrm{y2}}{}\left({x}\right){-}{\mathrm{y5}}{}\left({x}\right){=}{0}{,}\frac{{ⅆ}}{{ⅆ}{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{y5}}{}\left({x}\right){-}{{x}}^{{2}}{}{\mathrm{y1}}{}\left({x}\right){-}{2}{}{x}{}{\mathrm{y3}}{}\left({x}\right){-}{\mathrm{y6}}{}\left({x}\right){=}{0}{,}\frac{{ⅆ}}{{ⅆ}{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{\mathrm{y6}}{}\left({x}\right){-}{{x}}^{{2}}{}{\mathrm{y2}}{}\left({x}\right){+}{2}{}{\mathrm{y3}}{}\left({x}\right){=}{0}\right]$ (39)
 In addition to the new functionality for computing solutions for ODE systems, a new option, output = solution, causes the polysols command to return output in the same closed form format used by the dsolve command, instead of a list of the solution basis for the linear system. Also, similar to the Maple dsolve command, the dependent variables of the system do not need to be specified unless really necessary.
 > DEtools[polysols](sys, output = solution);
 $\left[\left\{{\mathrm{y1}}{}\left({x}\right){=}{\mathrm{_C3}}{}{x}{+}{\mathrm{_C2}}{,}{\mathrm{y2}}{}\left({x}\right){=}{\mathrm{_C3}}{,}{\mathrm{y3}}{}\left({x}\right){=}{-}{\mathrm{_C3}}{}{{x}}^{{2}}{-}{\mathrm{_C2}}{}{x}{+}{\mathrm{_C1}}{,}{\mathrm{y4}}{}\left({x}\right){=}{\mathrm{_C3}}{}{{x}}^{{2}}{+}{\mathrm{_C2}}{}{x}{-}{\mathrm{_C1}}{,}{\mathrm{y5}}{}\left({x}\right){=}{-}{2}{}{\mathrm{_C3}}{}{x}{-}{\mathrm{_C2}}{,}{\mathrm{y6}}{}\left({x}\right){=}{\mathrm{_C3}}{}{{x}}^{{3}}{+}{\mathrm{_C2}}{}{{x}}^{{2}}{-}{2}{}{\mathrm{_C1}}{}{x}{-}{2}{}{\mathrm{_C3}}\right\}\right]$ (40)
 A nonlinear ODE of seventh order depending on three parameters $\left\{a,b,c\right\}$:
 > U := DEtools[diff_table]( u(t) ):
 > ODE := ((-a*t^2+a)*U[]-1/2159 * (13185*a^3*c*t^2-4335*a^3*c + 315*a^3*c*t^6-525*a^3*c*t^4+259080*a^5*t^4 - 259080*a^5*t^2+34544*a^5+2159*b) * (t+1)*(t-1))*U[t]-5/4318*a^3*(t+1)^4 * (t-1)^4*(105*t^2*c+17272*a^2-35*c)*t*U[t$4] - 1/17272*a^3*(t+1)^5*(t-1)^5*(315*t^2*c+17272*a^2-35*c)*U[t$5] - 15/2159*a^3*(63*t^4*c-70*t^2*c+34544*a^2*t^2+879*c - 17272*a^2)*t*(t+1)^2*(t-1)^2*U[t,t] - 5/4318*a^3*(315*t^4*c+103632*a^2*t^2-210*t^2*c+879*c-17272*a^2)*(t+1)^3*(t-1)^3*U[t$3] - 21/17272*c*a^3*(-1+t^2)^6*t*U[t$6]-1/34544*c*a^3*(-1+t^2)^7*U[t\$7] = 0;
 ${\mathrm{ODE}}{≔}\left(\left({-}{a}{}{{t}}^{{2}}{+}{a}\right){}{u}{}\left({t}\right){-}\frac{\left({315}{}{{a}}^{{3}}{}{c}{}{{t}}^{{6}}{+}{259080}{}{{a}}^{{5}}{}{{t}}^{{4}}{-}{525}{}{{a}}^{{3}}{}{c}{}{{t}}^{{4}}{-}{259080}{}{{a}}^{{5}}{}{{t}}^{{2}}{+}{13185}{}{{a}}^{{3}}{}{c}{}{{t}}^{{2}}{+}{34544}{}{{a}}^{{5}}{-}{4335}{}{{a}}^{{3}}{}{c}{+}{2159}{}{b}\right){}\left({t}{+}{1}\right){}\left({t}{-}{1}\right)}{{2159}}\right){}\left(\frac{{ⅆ}}{{ⅆ}{t}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({t}\right)\right){-}\frac{{5}{}{{a}}^{{3}}{}{\left({t}{+}{1}\right)}^{{4}}{}{\left({t}{-}{1}\right)}^{{4}}{}\left({105}{}{{t}}^{{2}}{}{c}{+}{17272}{}{{a}}^{{2}}{-}{35}{}{c}\right){}{t}{}\left(\frac{{{ⅆ}}^{{4}}}{{ⅆ}{{t}}^{{4}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({t}\right)\right)}{{4318}}{-}\frac{{{a}}^{{3}}{}{\left({t}{+}{1}\right)}^{{5}}{}{\left({t}{-}{1}\right)}^{{5}}{}\left({315}{}{{t}}^{{2}}{}{c}{+}{17272}{}{{a}}^{{2}}{-}{35}{}{c}\right){}\left(\frac{{{ⅆ}}^{{5}}}{{ⅆ}{{t}}^{{5}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({t}\right)\right)}{{17272}}{-}\frac{{15}{}{{a}}^{{3}}{}\left({63}{}{{t}}^{{4}}{}{c}{+}{34544}{}{{a}}^{{2}}{}{{t}}^{{2}}{-}{70}{}{{t}}^{{2}}{}{c}{-}{17272}{}{{a}}^{{2}}{+}{879}{}{c}\right){}{t}{}{\left({t}{+}{1}\right)}^{{2}}{}{\left({t}{-}{1}\right)}^{{2}}{}\left(\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{t}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({t}\right)\right)}{{2159}}{-}\frac{{5}{}{{a}}^{{3}}{}\left({315}{}{{t}}^{{4}}{}{c}{+}{103632}{}{{a}}^{{2}}{}{{t}}^{{2}}{-}{210}{}{{t}}^{{2}}{}{c}{-}{17272}{}{{a}}^{{2}}{+}{879}{}{c}\right){}{\left({t}{+}{1}\right)}^{{3}}{}{\left({t}{-}{1}\right)}^{{3}}{}\left(\frac{{{ⅆ}}^{{3}}}{{ⅆ}{{t}}^{{3}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({t}\right)\right)}{{4318}}{-}\frac{{21}{}{c}{}{{a}}^{{3}}{}{\left({{t}}^{{2}}{-}{1}\right)}^{{6}}{}{t}{}\left(\frac{{{ⅆ}}^{{6}}}{{ⅆ}{{t}}^{{6}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({t}\right)\right)}{{17272}}{-}\frac{{c}{}{{a}}^{{3}}{}{\left({{t}}^{{2}}{-}{1}\right)}^{{7}}{}\left(\frac{{{ⅆ}}^{{7}}}{{ⅆ}{{t}}^{{7}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{u}{}\left({t}\right)\right)}{{34544}}{=}{0}$ (41)
 In addition to the new functionality for solving nonlinear ODEs and systems of them, a new option, parameters = {...}, causes the polynomial solutions to be computed taking into account all possible values of the parameters (in this example $\left\{a,b,c\right\}$) which could lead to more solutions. In other words, the parameters become solving variables too. The approach uses differential algebra techniques.
 > DEtools[polysols](ODE, parameters={a,b,c});
 $\left[\left\{{a}{=}{a}{,}{b}{=}{b}{,}{c}{=}{c}{,}{u}{}\left({t}\right){=}{\mathrm{_C3}}\right\}{,}\left\{{a}{=}{a}{,}{b}{=}{-}\frac{{10952}}{{5}}{}{{a}}^{{5}}{-}{\mathrm{_C3}}{}{a}{,}{c}{=}{-}\frac{{2159}{}{{a}}^{{2}}}{{25}}{,}{u}{}\left({t}\right){=}\frac{{8316}}{{5}}{}{{a}}^{{4}}{}{{t}}^{{6}}{-}\frac{{33264}}{{5}}{}{{a}}^{{4}}{}{{t}}^{{4}}{+}{8316}{}{{a}}^{{4}}{}{{t}}^{{2}}{+}{\mathrm{_C3}}\right\}{,}\left\{{a}{=}{0}{,}{b}{=}{0}{,}{c}{=}{c}{,}{u}{}\left({t}\right){=}{\mathrm{_C9}}{}{{t}}^{{6}}{+}{\mathrm{_C8}}{}{{t}}^{{5}}{+}{\mathrm{_C7}}{}{{t}}^{{4}}{+}{\mathrm{_C6}}{}{{t}}^{{3}}{+}{\mathrm{_C5}}{}{{t}}^{{2}}{+}{\mathrm{_C4}}{}{t}{+}{\mathrm{_C3}}\right\}\right]$ (42)

FunctionDecomposition

 A new command, DEtools[FunctionDecomposition], is available to perform rational function decomposition on overdetermined systems with parameters. The new command efficiently solves this problem, which appears frequently when solving differential equations using an equivalence approach.
 Example
 > with(DEtools, FunctionDecomposition):
 Consider the following rational system with three equations.
 > sys := [1/4*(9*C-15*F(x)*C+15*C^2*F(x)^3+2-4*C*F(x)^2+2*C^2*F(x)^4)^3/C^3/(1- F(x)+C*F(x)^3)^5 = 9/4*x^3*(4+30*x-12*x^2-45*x^3+36*x^4)^3/(-3*x^2+2+3*x^3)^5, C*(4*C^3*F(x)^7-4*F(x)+135*C+60*C^3*F(x)^6+315*C^2*F(x)^3-315*F(x)*C- 60*C^2*F(x)^4-12*C^2*F(x)^5-60*C*F(x)^2+60+12*C*F(x)^3)*(1-F(x)+C*F(x)^ 3)/(9*C-15*F(x)*C+15*C^2*F(x)^3+2-4*C*F(x)^2+2*C^2*F(x)^4)^2 = 1/3*(-3*x^2+2+3*x^3)*(16-72*x^2+1998*x^4+240*x-360*x^3-540*x^5-2889*x^ 6+2025*x^7)/x^2/(4+30*x-12*x^2-45*x^3+36*x^4)^2, 1/4*(4*C^3*F(x)^7-4*F(x)+135*C+60*C^3*F(x)^6+315*C^2*F(x)^3-315*F(x)*C -60*C^2*F(x)^4-12*C^2*F(x)^5-60*C*F(x)^2+60+12*C*F(x)^3)*(9*C-15*F(x)* C+15*C^2*F(x)^3+2-4*C*F(x)^2+2*C^2*F(x)^4)/C^2/(1-F(x)+C*F(x)^3)^4 = 3/4*(16-72*x^2+1998*x^4+240*x-360*x^3-540*x^5-2889*x^6+2025*x^7)*x*(4+ 30*x-12*x^2-45*x^3+36*x^4)/(-3*x^2+2+3*x^3)^4];
 ${\mathrm{sys}}{≔}\left[\frac{{\left({9}{}{C}{-}{15}{}{F}{}\left({x}\right){}{C}{+}{15}{}{{C}}^{{2}}{}{{F}{}\left({x}\right)}^{{3}}{+}{2}{-}{4}{}{C}{}{{F}{}\left({x}\right)}^{{2}}{+}{2}{}{{C}}^{{2}}{}{{F}{}\left({x}\right)}^{{4}}\right)}^{{3}}}{{4}{}{{C}}^{{3}}{}{\left({1}{-}{F}{}\left({x}\right){+}{C}{}{{F}{}\left({x}\right)}^{{3}}\right)}^{{5}}}{=}\frac{{9}{}{{x}}^{{3}}{}{\left({36}{}{{x}}^{{4}}{-}{45}{}{{x}}^{{3}}{-}{12}{}{{x}}^{{2}}{+}{30}{}{x}{+}{4}\right)}^{{3}}}{{4}{}{\left({3}{}{{x}}^{{3}}{-}{3}{}{{x}}^{{2}}{+}{2}\right)}^{{5}}}{,}\frac{{C}{}\left({4}{}{{C}}^{{3}}{}{{F}{}\left({x}\right)}^{{7}}{-}{4}{}{F}{}\left({x}\right){+}{135}{}{C}{+}{60}{}{{C}}^{{3}}{}{{F}{}\left({x}\right)}^{{6}}{+}{315}{}{{C}}^{{2}}{}{{F}{}\left({x}\right)}^{{3}}{-}{315}{}{F}{}\left({x}\right){}{C}{-}{60}{}{{C}}^{{2}}{}{{F}{}\left({x}\right)}^{{4}}{-}{12}{}{{C}}^{{2}}{}{{F}{}\left({x}\right)}^{{5}}{-}{60}{}{C}{}{{F}{}\left({x}\right)}^{{2}}{+}{60}{+}{12}{}{C}{}{{F}{}\left({x}\right)}^{{3}}\right){}\left({1}{-}{F}{}\left({x}\right){+}{C}{}{{F}{}\left({x}\right)}^{{3}}\right)}{{\left({9}{}{C}{-}{15}{}{F}{}\left({x}\right){}{C}{+}{15}{}{{C}}^{{2}}{}{{F}{}\left({x}\right)}^{{3}}{+}{2}{-}{4}{}{C}{}{{F}{}\left({x}\right)}^{{2}}{+}{2}{}{{C}}^{{2}}{}{{F}{}\left({x}\right)}^{{4}}\right)}^{{2}}}{=}\frac{\left({3}{}{{x}}^{{3}}{-}{3}{}{{x}}^{{2}}{+}{2}\right){}\left({2025}{}{{x}}^{{7}}{-}{2889}{}{{x}}^{{6}}{-}{540}{}{{x}}^{{5}}{+}{1998}{}{{x}}^{{4}}{-}{360}{}{{x}}^{{3}}{-}{72}{}{{x}}^{{2}}{+}{240}{}{x}{+}{16}\right)}{{3}{}{{x}}^{{2}}{}{\left({36}{}{{x}}^{{4}}{-}{45}{}{{x}}^{{3}}{-}{12}{}{{x}}^{{2}}{+}{30}{}{x}{+}{4}\right)}^{{2}}}{,}\frac{\left({4}{}{{C}}^{{3}}{}{{F}{}\left({x}\right)}^{{7}}{-}{4}{}{F}{}\left({x}\right){+}{135}{}{C}{+}{60}{}{{C}}^{{3}}{}{{F}{}\left({x}\right)}^{{6}}{+}{315}{}{{C}}^{{2}}{}{{F}{}\left({x}\right)}^{{3}}{-}{315}{}{F}{}\left({x}\right){}{C}{-}{60}{}{{C}}^{{2}}{}{{F}{}\left({x}\right)}^{{4}}{-}{12}{}{{C}}^{{2}}{}{{F}{}\left({x}\right)}^{{5}}{-}{60}{}{C}{}{{F}{}\left({x}\right)}^{{2}}{+}{60}{+}{12}{}{C}{}{{F}{}\left({x}\right)}^{{3}}\right){}\left({9}{}{C}{-}{15}{}{F}{}\left({x}\right){}{C}{+}{15}{}{{C}}^{{2}}{}{{F}{}\left({x}\right)}^{{3}}{+}{2}{-}{4}{}{C}{}{{F}{}\left({x}\right)}^{{2}}{+}{2}{}{{C}}^{{2}}{}{{F}{}\left({x}\right)}^{{4}}\right)}{{4}{}{{C}}^{{2}}{}{\left({1}{-}{F}{}\left({x}\right){+}{C}{}{{F}{}\left({x}\right)}^{{3}}\right)}^{{4}}}{=}\frac{{3}{}\left({2025}{}{{x}}^{{7}}{-}{2889}{}{{x}}^{{6}}{-}{540}{}{{x}}^{{5}}{+}{1998}{}{{x}}^{{4}}{-}{360}{}{{x}}^{{3}}{-}{72}{}{{x}}^{{2}}{+}{240}{}{x}{+}{16}\right){}{x}{}\left({36}{}{{x}}^{{4}}{-}{45}{}{{x}}^{{3}}{-}{12}{}{{x}}^{{2}}{+}{30}{}{x}{+}{4}\right)}{{4}{}{\left({3}{}{{x}}^{{3}}{-}{3}{}{{x}}^{{2}}{+}{2}\right)}^{{4}}}\right]$ (43)
 Each of these equations is of the form (J o F)(x) = H(x) with {J[i], H[i]} known. We want to find C such that a solution F(x), F' <> 0, exists, including computing F. In this system, the first equation is rational in x, with degree 15 in the numerator and degree 15 in the denominator, the second rational equation has degrees 10 and 10, and the last has degrees 12 and 12. The solution for this problem is:
 > FunctionDecomposition(sys, F(x), C);
 ${C}{=}\frac{{2}}{{3}}{,}\left\{{F}{}\left({x}\right){=}\frac{{1}}{{x}}\right\}$ (44)
 The FunctionDecomposition command can quickly solve problems similar to the previous one. For more complex and difficult problems, see FunctionDecomposition.

Singularities

 A new command, DEtools[singularities], is available to compute the regular and irregular singular points of a homogeneous linear ODE of arbitrary order. Given such an ODE with rational coefficients ${A}_{i}$, $\mathrm{x0}$ is a singular point of the equation if any of the coefficients ${A}_{i}$ has an isolated singularity at it.
 Example
 The confluent 1F1 hypergeometric linear equation
 > ODE_1F1 := DEtools[hyperode]( hypergeom([a],[c], x), y(x)) = 0;
 ${\mathrm{ODE_1F1}}{≔}{a}{}{y}{}\left({x}\right){+}\left({-}{c}{+}{x}\right){}\left(\frac{{ⅆ}}{{ⅆ}{x}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{y}{}\left({x}\right)\right){-}{x}{}\left(\frac{{{ⅆ}}^{{2}}}{{ⅆ}{{x}}^{{2}}}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}{y}{}\left({x}\right)\right){=}{0}$ (45)
 has one regular singularity at zero and one irregular singularity at infinity.
 > DEtools[singularities]( ODE_1F1 );
 ${\mathrm{regular}}{=}\left\{{0}\right\}{,}{\mathrm{irregular}}{=}\left\{{\mathrm{\infty }}\right\}$ (46)

The ODE for the Integral and the Derivative of an Unknown

 Given a nth order linear ODE for $y\left(x\right)$, the ode_int_y and ode_y1 commands respectively compute the nth order linear ODE satisfied by $\int y\left(x\right)\phantom{\rule[-0.0ex]{0.3em}{0.0ex}}ⅆx$ and $\frac{ⅆ}{ⅆx}\phantom{\rule[-0.0ex]{0.4em}{0.0ex}}y\left(x\right)$.
 Examples
 To use simplified input and enhanced display, use DEtools[diff_table] and PDEtools[declare].
 > with(DEtools, diff_table, ode_int_y, ode_y1);
 $\left[{\mathrm{diff_table}}{,}{\mathrm{ode_int_y}}{,}{\mathrm{ode_y1}}\right]$ (47)
 > Y := diff_table( y(x) ):   # Y[] = y(x)
 > PDEtools[declare](y(x), c(x), prime=x);
 ${y}{}\left({x}\right){}{\mathrm{will now be displayed as}}{}{y}$
 ${c}{}\left({x}\right){}{\mathrm{will now be displayed as}}{}{c}$
 ${\mathrm{derivatives with respect to}}{}{x}{}{\mathrm{of functions of one variable will now be displayed with \text{'}}}$ (48)
 Now, if $y$ satisfies
 > c[0](x)*Y[] + c[1](x)*Y[x] + c[2](x)*Y[x,x] + Y[x,x,x,x] = 0;
 ${{c}}_{{0}}{}{y}{+}{{c}}_{{1}}{}{\mathrm{y\text{'}}}{+}{{c}}_{{2}}{}{\mathrm{y\text{'}\text{'}}}{+}{\mathrm{y\text{'}\text{'}\text{'}\text{'}}}{=}{0}$ (49)
 then the derivative of $y$ satisfies
 > DEtools[ode_y1]( (49) ) = 0;
 ${\mathrm{y\text{'}\text{'}\text{'}\text{'}}}{-}\frac{{{c}}_{{0}}^{{\text{'}}}{}{\mathrm{y\text{'}\text{'}\text{'}}}}{{{c}}_{{0}}}{+}{{c}}_{{2}}{}{\mathrm{y\text{'}\text{'}}}{+}\frac{\left({{c}}_{{2}}^{{\text{'}}}{}{{c}}_{{0}}{-}{{c}}_{{0}}^{{\text{'}}}{}{{c}}_{{2}}{+}{{c}}_{{1}}{}{{c}}_{{0}}\right){}{\mathrm{y\text{'}}}}{{{c}}_{{0}}}{-}\frac{\left({{c}}_{{0}}^{{\text{'}}}{}{{c}}_{{1}}{-}{{{c}}_{{0}}}^{{2}}{-}{{c}}_{{1}}^{{\text{'}}}{}{{c}}_{{0}}\right){}{y}}{{{c}}_{{0}}}{=}{0}$ (50)
 and so, the integral of the function $y$ in the previous equation satisfies the other ODE (the starting point).
 > DEtools[ode_int_y]( (50), y(x) ) = 0;
 ${{c}}_{{0}}{}{y}{+}{{c}}_{{1}}{}{\mathrm{y\text{'}}}{+}{{c}}_{{2}}{}{\mathrm{y\text{'}\text{'}}}{+}{\mathrm{y\text{'}\text{'}\text{'}\text{'}}}{=}{0}$ (51)

New Routines for Definite Integration

 A new command, DEtools[Zeilberger], is available. This is the differential analog of Zeilberger's definite summation algorithm. For a given bivariate hyperexponential function $F\left(x,y\right)$, it computes a Z-pair $L,G$, that is, a linear differential operator $L$ with polynomial coefficients with respect to the first variable $x$ and a hyperexponential function $G\left(x,y\right)$ satisfying:

 d (L o F)(x, y) = -- G(x, y) dy

 To move to the corresponding section of this page, click Summary, Exact Solutions, Numeric Solutions, DEtools, PDEtools, or diffalg.

PDEtools

 A new TWSolutions command computes Traveling Wave Solutions (TWS) for autonomous nonlinear partial differential equations systems (PDEs). A TWS is an exact, closed form solution of the form
 > f[i](tau) = Sum(A[i,k]*tau^k, k=0..n[i]);
 ${{f}}_{{i}}{}\left({\mathrm{\tau }}\right){=}{\sum }_{{k}{=}{0}}^{{{n}}_{{i}}}{}{{A}}_{{i}{,}{k}}{}{{\mathrm{\tau }}}^{{k}}$ (52)
 where ${f}_{i}$ are the unknowns, the ${n}_{i}$ are finite, the ${A}_{i,k}$ are constants with respect to the independent variables ${x}_{j}$ of the system, and (this implementation uses the hyperbolic tangent)
 > tau = tanh(Sum(C[k]*x[k], k=0..j));
 ${\mathrm{\tau }}{=}{\mathrm{tanh}}{}\left({\sum }_{{k}{=}{0}}^{{j}}{}{{C}}_{{k}}{}{{x}}_{{k}}\right)$ (53)
 where the ${C}_{k}$ are constants with respect to the ${x}_{j}$.
 Example
 Use the new diff_table command to reduce redundant typing when entering differential equations.
 > U := DEtools[diff_table]( u(x,t) ):
 Consider the Korteweg - de Vries (KdV) Burger's equation that occurs in various physical systems.
 > KdV := { U[t] + U[]*U[x] - p*U[x,x] + q*U[x,x,x] = 0 };
 ${\mathrm{KdV}}{≔}\left\{{-}{p}{}{{u}}_{{x}{,}{x}}{+}{q}{}{{u}}_{{x}{,}{x}{,}{x}}{+}{u}{}\left({x}{,}{t}\right){}{{u}}_{{x}}{+}{{u}}_{{t}}{=}{0}\right\}$ (54)
 Let's consider this problem taking $\left\{p,q\right\}$ as parameters, so splitting into cases with respect to them; five TWS result.
 > {PDEtools[TWSolutions]( KdV, parameters = {p,q} )};
 $\left\{\left\{{p}{=}{0}{,}{q}{=}{q}{,}{u}{}\left({x}{,}{t}\right){=}{-}{12}{}{{\mathrm{tanh}}{}\left({\mathrm{_C2}}{}{x}{+}{\mathrm{_C3}}{}{t}{+}{\mathrm{_C1}}\right)}^{{2}}{}{q}{}{{\mathrm{_C2}}}^{{2}}{+}\frac{{8}{}{{\mathrm{_C2}}}^{{3}}{}{q}{-}{\mathrm{_C3}}}{{\mathrm{_C2}}}\right\}{,}\left\{{p}{=}{p}{,}{q}{=}{0}{,}{u}{}\left({x}{,}{t}\right){=}{-}{2}{}{\mathrm{tanh}}{}\left({\mathrm{_C2}}{}{x}{+}{\mathrm{_C3}}{}{t}{+}{\mathrm{_C1}}\right){}{p}{}{\mathrm{_C2}}{-}\frac{{\mathrm{_C3}}}{{\mathrm{_C2}}}\right\}{,}\left\{{p}{=}{p}{,}{q}{=}{q}{,}{u}{}\left({x}{,}{t}\right){=}{\mathrm{_C4}}\right\}{,}\left\{{p}{=}{p}{,}{q}{=}{q}{,}{u}{}\left({x}{,}{t}\right){=}{-}\frac{{3}{}{{\mathrm{tanh}}{}\left({\mathrm{_C3}}{}{t}{-}\frac{{p}{}{x}}{{10}{}{q}}{+}{\mathrm{_C1}}\right)}^{{2}}{}{{p}}^{{2}}}{{25}{}{q}}{+}\frac{{6}{}{\mathrm{tanh}}{}\left({\mathrm{_C3}}{}{t}{-}\frac{{p}{}{x}}{{10}{}{q}}{+}{\mathrm{_C1}}\right){}{{p}}^{{2}}}{{25}{}{q}}{+}\frac{{250}{}{\mathrm{_C3}}{}{{q}}^{{2}}{+}{3}{}{{p}}^{{3}}}{{25}{}{q}{}{p}}\right\}{,}\left\{{p}{=}{p}{,}{q}{=}{q}{,}{u}{}\left({x}{,}{t}\right){=}{-}\frac{{3}{}{{\mathrm{tanh}}{}\left({\mathrm{_C3}}{}{t}{+}\frac{{p}{}{x}}{{10}{}{q}}{+}{\mathrm{_C1}}\right)}^{{2}}{}{{p}}^{{2}}}{{25}{}{q}}{-}\frac{{6}{}{\mathrm{tanh}}{}\left({\mathrm{_C3}}{}{t}{+}\frac{{p}{}{x}}{{10}{}{q}}{+}{\mathrm{_C1}}\right){}{{p}}^{{2}}}{{25}{}{q}}{+}\frac{{-}{250}{}{\mathrm{_C3}}{}{{q}}^{{2}}{+}{3}{}{{p}}^{{3}}}{{25}{}{q}{}{p}}\right\}\right\}$ (55)
 To move to the corresponding section of this page, click Summary, Exact Solutions, Numeric Solutions, DEtools, PDEtools, or diffalg.

The diffalg Package

 By setting $\mathrm{_Env_diffalg_charpres_method}≔'\mathrm{regchar}'$, the final decomposition is processed using algebraic triangular instead of Groebner basis techniques. Note: This is useful also when triangularizing polynomial systems, not necessarily differential ones.
 Example
 A system consisting of two polynomials in five variables $\left\{\mathrm{u1},\mathrm{u2},\mathrm{u3},\mathrm{u4},\mathrm{u5}\right\}$:
 > PDEtools[declare]( (u1,u2,u3,u4,u5)(x), quiet );
 > _Env_diffalg_charpres_method := 'regchar';
 ${\mathrm{_Env_diffalg_charpres_method}}{≔}{\mathrm{regchar}}$ (56)
 > R := diffalg[differential_ring](derivations = [x],  ranking = [[u1,u2,u3,u4,u5]], notation=diff);
 ${R}{≔}{\mathrm{ODE_ring}}$ (57)
 > p1 := (u2(x)*u3(x)+u4(x)+u2(x))*u1(x)^2+(u2(x)*u3(x)+3)*u1(x)+1;
 ${\mathrm{p1}}{≔}\left({\mathrm{u2}}{}{\mathrm{u3}}{+}{\mathrm{u4}}{+}{\mathrm{u2}}\right){}{{\mathrm{u1}}}^{{2}}{+}\left({\mathrm{u2}}{}{\mathrm{u3}}{+}{3}\right){}{\mathrm{u1}}{+}{1}$ (58)
 > p2 := (1+u4(x)+u5(x))*u3(x)^2+u3(x)*(u5(x)^2+u4(x)+2)+u5(x)+2;
 ${\mathrm{p2}}{≔}\left({1}{+}{\mathrm{u4}}{+}{\mathrm{u5}}\right){}{{\mathrm{u3}}}^{{2}}{+}{\mathrm{u3}}{}\left({{\mathrm{u5}}}^{{2}}{+}{\mathrm{u4}}{+}{2}\right){+}{\mathrm{u5}}{+}{2}$ (59)
 > ans := diffalg[Rosenfeld_Groebner]([p1,p2],R);
 ${\mathrm{ans}}{≔}\left[{\mathrm{characterizable}}\right]$ (60)
 To see the contents of each characteristic decomposition computed, enter: $\mathrm{diffalg}\left[\mathrm{equations}\right]\left({\mathrm{ans}}_{i}\right)$ and $\mathrm{diffalg}\left[\mathrm{inequations}\right]\left({\mathrm{ans}}_{i}\right)$; where $i$ is a number between $1$ and the number of decompositions computed, $22$.
 To move to the corresponding section of this page, click Summary, Exact Solutions, Numeric Solutions, DEtools, PDEtools, or diffalg.