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

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : System : Information : Updates : Maple 9 : updates/Maple9/de

Updates to Differential Equation (DE) Solvers in Maple 9

  

In Maple 9, the power of the differential equation solvers has been greatly increased for exact and numeric DEs. In addition, there is a new interactive graphical interface for solving ODE problems.

 

Summary

Exact Solutions for Ordinary and Partial Differential Equations

Numerical Solution for Ordinary and Partial Differential Equations

Summary

Graphical Interface for Exact and Numeric Solutions

• 

The ODE Analyzer, a new interactive interface, has been created for numeric and symbolic solutions of ODE and ODE systems. The interface is easy to use, with many common options. In addition to computation of solutions and solution values, plots can also be generated. The interface is suitable as an educational tool; it can provide the corresponding Maple commands needed to compute the solution or plot. For information on launching the interface (and command-line options), see dsolve/interactive. For an illustrated description of the interface, see worksheet/interactive/dsolve.

Exact Solutions

  

 

  

First Order Nonlinear Equations

• 

New solving methods for ODEs of Abel type.

• 

New solving methods for ODEs that can be mapped into solvable Abel and Riccati type ODEs.

  

 

  

Second Order Linear Equations

• 

New solving methods for ODEs that have non-rational coefficients or admit hypergeometric solutions.

• 

New solving methods for rational coefficient ODEs that admit doubly-periodic non-Liouvillian solutions.

• 

New integration methods for second order linear ODEs that explore non-standard forms of their Lie symmetries.

  

 

  

Miscellaneous

• 

Update of many dsolve routines to return ODE solutions in terms of hypergeometric functions instead of integrals if possible.

• 

Significant optimization of dsolve routines for the computation and use of differential invariants to solve nonlinear ODEs.

• 

Significant optimization of dsolve routines by more quickly abandoning attempts to solve an ODE using algorithms that cannot solve it. For average problems, routines exit three to ten times faster.

• 

Update of the dsolve function to use the LinearFunctionalSystems package for the computation of series solutions to linear ODE systems with polynomial coefficients.

• 

New solving methods for PDE systems and optimization of the existing pdsolve routines for solving a single PDE.

Numerical Solutions

  

 

  

Numerical Methods for Ordinary Differential Equations

• 

More efficient Taylor series ODE solutions with high precision.

• 

Interactive features added to the dsolve function output. You can query about and change the initial data, method used, and other parameters.

• 

Ability to solve ODE systems containing user-defined functions.

  

 

  

Numerical Methods for Partial Differential Equations

• 

Extension of all numeric PDE methods to solve nonlinear PDEs that are linear in the highest time derivative.

• 

Addition of time-adaptive solution computation. For example, you can now compute a solution to within a specified error per unit time step.

• 

Computation and plotting of error estimates for a solution as a function of time and space.

Exact Solutions for Ordinary and Partial Differential Equations

Linear ODEs

PDEtools[declare](y(x), prime=x);

yxwill now be displayed asy

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

(1)
  

Solutions for more third order linear ODE families that depend on arbitrary functions:

diff(y(x),x,x,x) = g(x)*diff(g(x),x)*y(x) + 2*diff(g(x),x)*diff(y(x),x) + diff(g(x),x,x)*y(x) + g(x)^2*diff(y(x),x);

y'''=gxg'y+2g'y'+g''y+gx2y'

(2)

dsolve((2),y(x));

y=_C1ⅇgxⅆx+_C2ⅇgxⅆxⅆx2ⅇgxⅆx+_C3ⅇgxⅆxⅇgxⅆxⅆx

(3)

(1-I)*diff(y(x),x,x,x,x)-(3+5*I)*diff(y(x),x,x,x)+(-I*x+x-9+3*I)*diff(y(x),x,x)+(8*I-3*I*x-x)*diff(y(x),x)+(2+2*I-I*x-x)*y(x);

1Iy''''3+5Iy'''+Ix+x9+3Iy''+8I3Ixxy'+2+2IIxxy

(4)

dsolve((4),y(x));

y=_C1ⅇ1+2I+I3x2+_C2ⅇI3+12Ix2+_C3AiryAix+1ⅇxI312ⅆxⅇ1+2I+I3x2+AiryAix+1ⅇxI3+12ⅆxⅇI3+12Ix2+_C4AiryBix+1ⅇxI312ⅆxⅇ1+2I+I3x2+AiryBix+1ⅇxI3+12ⅆxⅇI3+12Ix2

(5)
  

Solutions for second order linear ODEs in terms of elementary, hypergeometric, or special functions instead of uncomputable integrals:

-4*x*y(x) + diff(y(x),x) - 2*diff(y(x),x,x)*x + 2*diff(y(x),x,x)*x^3;

2y''x34yx2y''x+y'

(6)

dsolve((6));

y=_C1x32x2134hypergeom12,2,74,x2+_C22x21

(7)

diff(y(x),x,x) = cos(2*x)/sin(2*x)*diff(y(x),x)-2*y(x);

y''=cos2xy'sin2x2y

(8)

dsolve((8));

y=_C1sin2x34LegendreP14,34,cos2x+_C2sin2x34LegendreQ14,34,cos2x

(9)
  

The solutions for Kamke's examples 43, 133, 263, 319, 353, 354, and 355 had uncomputable integrals in previous releases of Maple. In Maple 9, they are solved in terms of hypergeometric functions.

  

New elementary and hypergeometric solutions for linear ODEs families with non-rational coefficients:

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

y''=2x3yx21x3y+y'x43y'x2+2y'2xx212

(10)

dsolve((10));

y=_C1x2114sinh2x2114+_C2x2114cosh2x2114

(11)

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

y''=x5y3x3y+3y'x2+3x2+332x

(12)

dsolve((12));

y=_C1hypergeom,23,x2+3329+_C2hypergeom,43,x2+3329x2+3

(13)
  

New doubly-periodic solutions for second order linear ODEs; in this case, the solution is computed directly from the ODE symmetries.

diff(y(x),x,x)-12*WeierstrassP(x,a,b)*y(x);

y''12WeierstrassPx,a,by

(14)

dsolve((14));

y=_C1WeierstrassPPrimex,a,b+_C2WeierstrassPPrimex,a,b26aWeierstrassPx,a,b29WeierstrassPx,a,bba2WeierstrassPPrimex,a,ba327b24WeierstrassPx,a,b3WeierstrassPx,a,bab6aWeierstrassZetax,a,ba327b2+9bxa327b2

(15)

(WeierstrassPPrime(x,a,b) + WeierstrassP(x,a,b)^2)*diff(diff(y(x),x),x) + (WeierstrassP(x,a,b)^3 - WeierstrassP(x,a,b)*WeierstrassPPrime(x,a,b) - 6*WeierstrassP(x,a,b)^2 + 1/2*a)*diff(y(x),x) + (WeierstrassPPrime(x,a,b)^2 - WeierstrassP(x,a,b)^2*WeierstrassPPrime(x,a,b) - WeierstrassP(x,a,b)*(6*WeierstrassP(x,a,b)^2 - 1/2*a))*y(x) = 0;

WeierstrassPPrimex,a,b+WeierstrassPx,a,b2y''+WeierstrassPx,a,b3WeierstrassPx,a,bWeierstrassPPrimex,a,b6WeierstrassPx,a,b2+a2y'+WeierstrassPPrimex,a,b2WeierstrassPx,a,b2WeierstrassPPrimex,a,bWeierstrassPx,a,b6WeierstrassPx,a,b2a2y=0

(16)

dsolve((16));

y=_C1WeierstrassPx,a,b+_C2ⅇWeierstrassZetax,a,b

(17)
  

New solutions for linear ODE problems that do not match any classification, but for which it is possible to compute symmetries of a non-standard form that can be used to determine a solution:

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

y''=2ΨxΨ2,x+3Ψ1,x2+Ψx4y4Ψx2

(18)

dsolve((18));

y=_C1ⅇlnGAMMAx2Ψx+_C2ⅇlnGAMMAx2Ψx

(19)
  

Simpler solutions in terms of elementary and special functions instead of hypergeometric functions:

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

y''=4xn2n21+4xn4n2+n2y4x2

(20)

dsolve((20));

y=_C1xn2+12ⅇx2n2+_C2xn2+12ⅇx2n2erfxn

(21)
  

Simpler solution in terms of square roots instead of compositions of sin, cos, ln, and radicals:

-1/4*1/x/(x-1)*y(x)+1/2*(2*x-1)/x/(x-1)*diff(y(x),x)+diff(y(x),x,x) = 0;

y4xx1+2x1y'2xx1+y''=0

(22)

dsolve((22));

y=_C1x+_C2x1

(23)
  

Quickly abandon attempt to solve an ODE for which no solution can be computed:

x^n*diff(y(x),x,x)+c*(a*x+b)^(n-4)*y(x)=0;

xny''+cax+bn4y=0

(24)

dsolve((24));

y=DESol_Y''+cax+bn4_Yxxn,_Yx

(25)

Nonlinear ODEs

  

Improved recognition of Elliptic function solutions:

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

y'2=11+x4k2+k21x2

(26)

dsolve((26));

y=EllipticFx,k+_C1,y=EllipticFx,k+_C1

(27)
  

Kamke's example 80, in terms of an arbitrary function fx:

diff(y(x),x)+f(x)*sin(y(x))+(1-diff(f(x),x))*cos(y(x))-diff(f(x),x)-1, y(x);

y'+fxsiny+1f'cosyf'1,y

(28)

dsolve((28));

y=2arctanⅇfxⅆx+ⅇfxⅆxⅆxfx+_C1fx_C1+ⅇfxⅆxⅆx

(29)
  

Implicit hypergeometric solution for Kamke's example 81 and a more general ODE class, of which example 81 is a special case:

diff(y(x),x) = -2*tan(x)*tan(y(x))+1;

y'=2tanxtany+1

(30)

dsolve((30));

_C1+tanx1+tany21+tanx2tanxtany1214+tany+tanxhypergeom12,54,32,tany+tanx2tanxtany122tanxtany1=0

(31)

diff(y(x),x) = -(P(y(x))^2+1)*(2*F(x)*P(y(x))-1)*diff(F(x),x)/(1+F(x)^2)/D(P)(y(x));

y'=Py2+12FxPy1F'1+Fx2DPy

(32)

dsolve((32), y(x));

_C1+FxPy2+11+Fx2FxPy1214+Py+Fxhypergeom12,54,32,Py+Fx2FxPy122FxPy1=0

(33)
  

AIA 2p Abel type equations ("Abel Inverse Abel" 2-parameterized class, see Abel ODE papers in dsolve/references):

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

y'=2yb2+2x+y3xy+x1b2+3x4

(34)

dsolve((34));

_C1+1bLegendreP1,b,x1y+yLegendreP0,b,x1yb1LegendreQ1,b,x1yyLegendreQ0,b,x1y=0

(35)
  

Explicit solution free of integrals for Riccati type equations; in previous releases, the solution was implicit with integrals.

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

y'=xⅇxy2+ⅇ2xx2yx+ⅇxⅇxx2+x1+xⅇxx+ⅇx2

(36)

dsolve((36),[sym_pat]); # the optional use of [sym_pat] methods speeds up this process

y=tan6ⅇ2xx2+4ⅇxx3x4+4ⅇ3xxⅇ4xx2+2ⅇx2_C142xⅇxx2ⅇ2x6ⅇ2xx2+4ⅇxx3x4+4ⅇ3xxⅇ4xx2+ⅇ2x22xⅇxx2ⅇ2x

(37)
  

Explicit solution - free of RootOfs - with integrals of the arbitrary function σx; in previous releases, the solution was implicit or expressed using RootOf with integrals.

sigma(x) = -(y(x)-x*diff(y(x),x))*diff(y(x),x)/x/y(x)/diff(diff(y(x),x),x);

σx=y'x+yy'xyy''

(38)

dsolve((38));

y=_C2ⅇⅇ1σxxⅆxⅇ1σxxⅆxσx1σxⅆx_C1ⅆx

(39)
  

Simpler form of the solution; in previous releases, the solution was RootOf expressions with integrals.

diff(y(x),x,x)*(x-y(x))+2*diff(y(x),x)*(1+diff(y(x),x)) = 0;

y''y+x+2y'1+y'=0

(40)

dsolve((40));

y=_C22_C2x+_C1_C2x

(41)

Enhanced Computation of Series Solutions for Some Linear ODE Systems

  

The dsolve function now uses LinearFunctionalSystems package routines for the computation of series solutions to linear ODE systems with polynomial coefficients.

PDEtools[declare](x(t), y(t), prime=t);

xtwill now be displayed asx

ytwill now be displayed asy

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

(42)

{t*diff(x(t),t,t,t)-diff(y(t),t,t)-x(t)-t^3*y(t) = 0,
 t^2*diff(y(t),t,t)+diff(diff(x(t),t),t)-2*x(t)-t*y(t) = 0};

t3y+tx'''xy''=0,t2y''ty2x+x''=0

(43)

dsolve((43), {x(t), y(t)}, 'series');

x=x0+Dx0t+x0t2+Dx03+y06t3+x04+Dy012t4+y030x040Dx060t5+Ot6,y=y0+Dy0t12x0t2+Dx06+y06t3+5x012+Dy06t4+19y01203x040Dx015t5+Ot6

(44)

PDEs

  

Using the HINT option for PDE systems containing arbitrary functions:

{-diff(xi(x,y),y,y)+diff(xi(x,y),y)*h(y), diff(eta(x,y),x)*g(x)+diff(eta(x,y),x,x), diff(eta(x,y),y)*h(y)+eta(x,y)*diff(h(y),y)+2*diff(xi(x,y),y)*g(x)-2*diff(xi(x,y),x,y)+diff(eta(x,y),y,y), 2*diff(eta(x,y),x,y)+diff(xi(x,y),x)*g(x)-diff(xi(x,y),x,x)+2*diff(eta(x,y),x)*h(y)+xi(x,y)*diff(g(x),x)};

ηxgx+ηx,x,ξy,y+ξyhy,ηyhy+ηx,yhy+2ξygx2ξx,y+ηy,y,2ηx,y+ξxgxξx,x+2ηxhy+ξx,ygx

(45)

pdsolve( (45), [xi,eta], HINT=`+`);

ηx,y=_C1+_C6+_C5_C1hyⅇhyⅆyⅆyⅇhyⅆy,ξx,y=_C4+_C3+_C2gxⅇgxⅆxⅆxⅇgxⅆx+_C2

(46)

pdetest((46),(45));

0

(47)

Numerical Solution for Ordinary and Partial Differential Equations

  

In Maple 9, a number of improvements have been implemented in the numeric ODE and PDE solvers, including the following.

Numeric Solutions of ODE and ODE Systems

• 

Modifications to the taylorseries method to allow more efficient computation of high accuracy solutions.

• 

Addition of interactive features to the procedure returns of the numeric ODE solvers allows you to query and change the initial data, query the last computed point (very useful for problems with singularities), and query the method used in the procedure, for example, rkf45. For more information, see dsolve/numeric/IVP.

• 

Significant efficiency improvements to the numeric ODE boundary value problem solver, especially for difficult problems.

• 

Ability to solve ODE systems containing user-defined functions. For more information, see the known option in dsolve/numeric.

Numeric Solutions of Time Dependent PDE and PDE Systems

• 

Extension of all methods (schemes) to solve nonlinear PDEs that are linear in the highest time derivative.

• 

Computation and plotting of error estimates for the solution as a function of time and space. For more information, see pdsolve/numeric/errorcontrol.

• 

Addition of time-adaptive solution computation. For example, you can now compute a solution to within a specified error per unit time step. Note: Only the time step can be adapted. The solution must be computed with a number of spatial points sufficient to keep the spatial error within tolerance. This condition is monitored, and an error results if the spatial mesh is too coarse. For more information, see pdsolve/numeric/errorcontrol.

See Also

dsolve

dsolve/interactive

dsolve/numeric

dsolve/numeric/IVP

dsolve/series

dsolve/taylorseries

hypergeom

Index of New Maple 9 Features

Legendre

LinearFunctionalSystems

PDEtools[declare]

pdsolve

pdsolve/numeric/errorcontrol

RootOf

Weierstrass

worksheet/interactive/dsolve