Symbolics - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Enhancements to Symbolic Capabilities in Maple 11

  

Maple 11 includes enhancements to its symbolic capabilities in the following areas.

 

Physics

Differential Equations (DEs)

Differential Geometry

Integration

Integral equation solver

Solve

Differentiation

Conversion to a Sum

Summation and Linear Recurrence Equations

The simplify Command

Polynomial GCD Computation

Algebraic Geometry and Polynomial System Solving

Network of Conversion Routines for Mathematical Functions

Miscellaneous

Physics

  

A new Physics package has been added to the library for computations in Physics, from simple applications to more complex quantum field theory computations. The package implements most of the standard objects used in Physics, for example, the Kronecker symbol, the metrics g_[mu,nu], the Pauli and Dirac matrices, the indexed differentiation operator d_[mu], the d'Alembertian, commutative, noncommutative and anticommutative variables and their related operations including differentiation with respect to them, sum rule for repeated indices, etc.

  

The package can be used to study or solve standard problems in classical mechanics using tensor notation. The package also permits computing with true computational representations for quantum fields defined in a super-space, typically entering supersymmetric models in field{/}string theories. For details see the page New Packages in Maple 11.

Differential Equations (DEs)

  

The differential equation solving capabilities of the dsolve and pdsolve commands for computing exact solutions have been enhanced with new algorithms:

• 

dsolve can now compute Elliptic function (JacobiPQ, WeierstrassP, WeierstrassPPrime) solutions to various classes of nonlinear 1st and 2nd order ODEs

• 

pdsolve has an entirely new sector to compute, by default, symmetries for PDEs and systems of them, and derive solutions directly from these symmetries in an automated manner, representing the most important development in this PDE exact solutions area since Maple V Release 5.

  

For a description, see Updates to Differential EquationSolvers.

  

The PDEtools package includes twenty new commands, mostly related to the symmetry approach, some based on original algorithms. See also the Updates to Differential Equation Packages help page.

Differential Geometry

• 

The new DifferentialGeometry package is a comprehensive suite of commands and subpackages featuring a collection of tightly integrated tools for computations with vector fields, differential forms and transformations; tensor analysis; calculus on jet spaces; Lie algebras and Lie groups, and transformation groups. Computations may be performed in user specified frames. The package includes a variety of homotopy operators for the de Rham and variational bicomplexes; programs for the decomposition of Lie algebras, and programs for construction of a solvable Lie group from its Lie algebra. Also included are extensive tables of Lie algebras, Lie algebras of vectors, and differential equations taken from the mathematics and mathematical physics literature. For details, see the page New Packages in Maple 11.

Integration

  

The integration capabilities have been extended in two ways: to perform the indefinite integration in the presence of special functions in general and specially to handle integrands containing doubly periodic functions expressed in terms of rational functions of Jacobi elliptic functions.

  

Examples

  

To execute the following examples, open this help page as a worksheet. In the help system, click the Open the current help page in a worksheet window icon in the toolbar.

Int(2*Ei(exp(x))/exp(x)*exp(exp(x))-Ei(exp(x))^2/exp(x), x);

2EiⅇxⅇⅇxⅇxEiⅇx2ⅇxⅆx

(1)

value((1));

Eiⅇx2ⅇx

(2)

Int(BesselJ(nu+1,x)/BesselJ(nu,x), x);

BesselJν+1,xBesselJν,xⅆx

(3)

value((3));

νlnxlnBesselJν,x

(4)

Int(exp(x)*HeunTPrime(a,b,c,exp(x))*HeunT(a,b,e,x)+HeunT(a,b,c,exp(x))*HeunTPrime(a,b,e,x), x);

ⅇxHeunTPrimea,b,c,ⅇxHeunTa,b,e,x+HeunTa,b,c,ⅇxHeunTPrimea,b,e,xⅆx

(5)

value((5));

HeunTa,b,c,ⅇxHeunTa,b,e,x

(6)
  

For integrands involving periodic functions consider

Int((1-a^2*JacobiSN(x, k)^2)^2, x);

1a2JacobiSNx,k22ⅆx

(7)

value((7));

a4JacobiSNx,kJacobiCNx,kJacobiDNx,k3k2a43k2x3k2+2a2a2k2+a23k2xEllipticEJacobiSNx,k,k3k4

(8)

Int(1/(1+I*JacobiSC(x,k)), x);

11+IJacobiSCx,kⅆx

(9)

value((9));

JacobiDCx,kJacobiNCx,kk2JacobiSCx,k+I+k21xk2+k21JacobiDCx,kJacobiSCx,kJacobiNCx,kEllipticEJacobiSNx,k,kk2k2+1

(10)

Int(JacobiDN(x,k)*JacobiCN(x,k)/JacobiNC(x,k), x);

JacobiDNx,kJacobiCNx,kJacobiNCx,kⅆx

(11)

value((11));

k21JacobiAMx,kk2+k2+2JacobiAMx,k+k2JacobiCNx,kJacobiSNx,k2k2

(12)

Integral equation solver

• 

A new command, intsolve has been added to the library to solve a linear integral equation. This command can find closed-form solutions to various types of integral equations, for example, Fredholm and Volterra equations of the first kind and second type, and for equations not matching a particular type the problem is handled by representing it first as an ordinary differential equation with initial conditions (ODE-IVP) and tackled using the Maple dsolve command. Optionally, this command can also compute using Laplace transform methods, or compute a series approximation of the solution using Neumann's method.

  

Examples

  

To execute the following examples, open this help page as a worksheet. In the help system, click the Open the current help page in a worksheet window icon in the toolbar.

f(x) + b*Int((x*y+x^2*y^2)*f(y), y = -1..1) = h(x);

fx+b−11x2y2+xyfyⅆy=hx

(13)

intsolve((13), f(x));

fx=−115x2by22b+53xby2b+3hyⅆy+hx

(14)
  

Computing a series approximation to order 20 for

ee := p(x) -1/2*Int(x*y*p(y),y=0....1) = 5/6*x;

eepx01xypyⅆy2=5x6

(15)

intsolve(ee, p(x), method=Neumann, order=20);

px=21936950640377855x21936950640377856

(16)
  

Compare with the closed form exact solution

intsolve(ee, p(x));

px=x

(17)

Solve

• 

The solve command can now return conditional solutions to many types of parametric equations and inequalities.  Systems of linear inequalities in one or more variables are fully supported, as well as relations involving some types of simple functions of linear expressions.  Conditional solutions are returned in the form of piecewise functions depending on the parameters.

  

Examples

  

To execute the following examples, open this help page as a worksheet. In the help system, click the Open the current help page in a worksheet window icon in the toolbar.

solve([x>0,y>0,x+y<=4,x+y<a],[x,y]);

a0x<a&comma;0<x&comma;y<ax&comma;0<ya4x<4&comma;0<x&comma;y4x&comma;0<y4<a

(18)

solve(abs(x + a) + abs(x + b) > 2, x);

a2b2+1<x&comma;x<a2b212+baa2+bbx&comma;x<a&comma;ax&comma;x<ba<2+bax&comma;x<b&comma;bx&comma;x<a2+b<aotherwise

(19)

solve(abs(x + a) + abs(x + b) > 2, x) assuming b > 2, a < 0;

ax,bx&comma;x<a,x<b

(20)

solve([(x-1)*(x-2)*(x-3)=0,a*(x-1)<2+b*(x-1)],[x]);

x=3&comma;x=2&comma;x=1a<1+bx=2&comma;x=11+baa<2+bx=1otherwise

(21)
  

The solve command can also be set to ignore conditional solutions and return only solutions that are valid over all values of the parameters.

_EnvConditionalSolutions := false;

_EnvConditionalSolutionsfalse

(22)

solve([(x-1)*(x-2)*(x-3)=0,a*(x-1)<2+b*(x-1)],[x]);

x=1

(23)

Differentiation

  

The diff command can now compute derivatives of the four Weierstrass functions when the discriminant is equal to zero. Recalling, in WeierstrassP(x, g2, g3), the discriminant is Delta = g2^3 - 27 g3^2, and formulas were not available before to compute the derivative when Delta = 0

  

Examples

  

To execute the following examples, open this help page as a worksheet. In the help system, click the Open the current help page in a worksheet window icon in the toolbar.

  

Consider the Weierstrass functions and their discriminant

[WeierstrassP(z,g2, g3), WeierstrassPPrime(z,g2, g3), WeierstrassSigma(z,g2, g3), WeierstrassZeta(z,g2, g3), discriminant = g2^3 - 27*g3^2];

WeierstrassPz&comma;g2&comma;g3&comma;WeierstrassPPrimez&comma;g2&comma;g3&comma;WeierstrassSigmaz&comma;g2&comma;g3&comma;WeierstrassZetaz&comma;g2&comma;g3&comma;discriminant=g2327g32

(24)
  

When the discriminant is zero, g2 is related to g3; evaluate the above at values of g2, g3 satisfying that condition.

eval((24), [g2 = 3*t^2, g3=t^3]);

WeierstrassPz&comma;3t2&comma;t3&comma;WeierstrassPPrimez&comma;3t2&comma;t3&comma;WeierstrassSigmaz&comma;3t2&comma;t3&comma;WeierstrassZetaz&comma;3t2&comma;t3&comma;discriminant=0

(25)
  

Take the derivative now with respect to t

map(Diff = diff, (25)[1..-2], t);

&DifferentialD;&DifferentialD;tWeierstrassPz&comma;3t2&comma;t3=2WeierstrassPz&comma;3t2&comma;t3+zWeierstrassPPrimez&comma;3t2&comma;t32t&comma;&DifferentialD;&DifferentialD;tWeierstrassPPrimez&comma;3t2&comma;t3=3WeierstrassPPrimez&comma;3t2&comma;t3+z6WeierstrassPz&comma;3t2&comma;t323t222t&comma;&DifferentialD;&DifferentialD;tWeierstrassSigmaz&comma;3t2&comma;t3=WeierstrassZetaz&comma;3t2&comma;t3WeierstrassSigmaz&comma;3t2&comma;t3+WeierstrassSigmaz&comma;3t2&comma;t3zz2t&comma;&DifferentialD;&DifferentialD;tWeierstrassZetaz&comma;3t2&comma;t3=WeierstrassZetaz&comma;3t2&comma;t3zWeierstrassPz&comma;3t2&comma;t32t

(26)
  

The four JacobiTheta functions can now be differentiated with respect to the second parameter.

  

Example

  

To execute the following examples, open this help page as a worksheet. In the help system, click the Open the current help page in a worksheet window icon in the toolbar.

JacobiTheta3(z,q);

JacobiTheta3z&comma;q

(27)

Diff((27), q) = diff((27), q);

&DifferentialD;&DifferentialD;qJacobiTheta3z&comma;q=4EllipticKEllipticModulusq2JacobiTheta3z&comma;qJacobiZeta2EllipticKEllipticModulusqzπ+12&comma;EllipticModulusq2π2+4EllipticKEllipticModulusq2JacobiTheta3z&comma;qJacobiDN2EllipticKEllipticModulusqzπ+12&comma;EllipticModulusq2EllipticEEllipticModulusqEllipticKEllipticModulusqπ24q

(28)
  

There is also a better handling with automatic simplification for derivatives when they involve both the D and diff notations together.

`@@`(D[1],3)(f)(x);

D3fx

(29)

Diff((29), x) = diff((29), x);

&DifferentialD;&DifferentialD;xD3fx=D4fx

(30)

Conversion to a Sum

• 

The functionality of convert/Sum has been extended to compute the Sum form (formal power or Laurent-Puiseux series) representing an expression expanded around a given point, and also to compute this Sum form taking the expression globally and not only converting each function inside the expression. The new algorithms map the expression, when possible, into an ordinary linear equation (see gfun[holexprtodiffeq]) and then compute formal power series solutions (see dsolve, formal_solution).  In doing so, they can also use different methods (see Slode).

• 

This functionality is also available as convert/FormalPowerSeries.

  

Examples

  

To execute the following examples, open this help page as a worksheet. In the help system, click the Open the current help page in a worksheet window icon in the toolbar.

convert(cos(x)*exp(x), Sum);

_k1=02x4_k1+3−4_k14_k1+3!+x4_k1+1−4_k14_k1+1!+x4_k1−4_k14_k1!

(31)

convert(exp(arcsin(x)), Sum);

_k1=0pochhammerI2&comma;_k1pochhammerI2&comma;_k14_k1x2_k12_k1!+4_k1pochhammer12I2&comma;_k1pochhammer12+I2&comma;_k1x2_k1+12_k1+1!

(32)

convert(sqrt(1+x), FormalPowerSeries);

1+n=0−1n2n!n+14nxn+12n+1!2

(33)
  

Using optional arguments, you can specify the expansion point, the expansion variable, or the summation variable:

convert(ln(x), Sum, x=1, dummy = k);

k=0−1kx1k+1k+1

(34)

convert(Int(erf(t)/t, t=0..x), Sum, expansionvariable = x, dummy = k);

k=02−1kx2k+12k+12πk!

(35)

Summation and Linear Recurrence Equations

• 

The packages LREtools and SumTools have been extended. For details, see Enhanced Packages in Maple 11.

• 

The sum command can now compute indefinite sums in the presence of unknown functions.

  

Examples

  

To execute the following examples, open this help page as a worksheet. In the help system, click the Open the current help page in a worksheet window icon in the toolbar.

  

The basic situation is illustrated by

Sum(u[n+1]-u[n], n);

nun+1un

(36)

value((36));

un

(37)
  

The main idea is to split the summand into a "total difference" plus a remainder, then sum the "total difference" exactly.

Sum(u[n+2]/(u[n+1]^p)-u[n+1]/(u[n]^p), n);

nun+2un+1pun+1unp

(38)

value((38));

un+1unp

(39)

Sum((n+1)^3*u[n+2]*v[n+1]^5+v[n+2]^3-n^3*u[n+1]*v[n]^5,n);

nn+13un+2vn+15+vn+23n3un+1vn5

(40)

value((40));

n3un+1vn5+vn3+vn+13+nvn3

(41)

The simplify Command

  

The routines for simplifying with respect to side relations were entirely rewritten, taking advantage of the enhanced Groebner package in Maple 11. The command also implements two new algorithms for simplifying fractions.

Polynomial GCD Computation

• 

Maple's integer coefficient multivariate polynomial GCD computation routine has been replaced by a new routine that can compute GCD orders of magnitude faster than the prior implementation.

  

The new algorithm is Zippel-based, and is the LINZIP algorithm described in chapter 6 of the PhD. Thesis of Allan Wittkopf.

• 

In the context of mod, the functions Content, Expand, Gcd, Gcdex, Normal, Quo, Prem, Primpart, Rem, Resultant, and Sqrfree can now handle inputs containing more than one RootOf object:

f := Expand((x+RootOf(_Z^2+2))*(x+1)) mod 11;

fx+x2+RootOf_Z2+2+RootOf_Z2+2x

(42)

g := Expand((x+RootOf(_Z^2+3))*(x+1)) mod 11;

gx+x2+RootOf_Z2+3+RootOf_Z2+3x

(43)

Gcd(f, g) mod 11;

1+x

(44)

h := Expand(f*g) mod 11;

hx2+2x3+RootOf_Z2+3x+2RootOf_Z2+3x2+x4+x3RootOf_Z2+3+RootOf_Z2+2x+2RootOf_Z2+2x2+RootOf_Z2+2RootOf_Z2+3+2RootOf_Z2+2RootOf_Z2+3x+RootOf_Z2+2x3+RootOf_Z2+2x2RootOf_Z2+3

(45)

Sqrfree(h) mod 11;

1&comma;x2+RootOf_Z2+3x+RootOf_Z2+2x+RootOf_Z2+2RootOf_Z2+3&comma;1&comma;1+x&comma;2

(46)

Algebraic Geometry and Polynomial System Solving

• 

The packages Groebner, PolynomialIdeals, and RegularChains have been enhanced and made more efficient. For details, see Enhanced Packages in Maple 11 and Efficiency Improvements in Maple 11.

Network of Conversion Routines for Mathematical Functions

  

The network of conversions between mathematical functions has been enhanced with a number of new global conversions for trigonometric functions, their inverses and logarithms. New optional arguments were implemented for all the conversions handled in the network.

  

Examples

  

To execute the following examples, open this help page as a worksheet. In the help system, click the Open the current help page in a worksheet window icon in the toolbar.

  

New conversions:

ln(z);

lnz

(47)

(47) = convert((47), arcsin);

lnz=z2z1z+1z+1z1arcsinz2+12zπ2z+Iπ1z1zzz+1

(48)

(47) = convert((47), arccot);

lnz=−I2arccotI1zz+1+π2+z+11z+1

(49)

(cosh(x)-sinh(x))^2/sinh(x)^2;

coshxsinhx2sinhx2

(50)

(50) = convert((50), coth);

coshxsinhx2sinhx2=cothx12

(51)

polar(a,x);

polara&comma;x

(52)

(52) = convert((52), sin);

polara&comma;x=asinx+π2+Isinx

(53)

Miscellaneous

• 

The command simplex[convexhull] has three new options: output=area, output=hull, and output=plot. For details, see the corresponding help page.

• 

The new type checking command partition checks for an integer partition.

  

Examples

  

To execute the following examples, open this help page as a worksheet. In the help system, click the Open the current help page in a worksheet window icon in the toolbar.

type( [ 1, 2, 2/3 ], 'partition' ); # not a list of positive integers

false

(54)

type( [ 1, 2, 3 ], 'partition' );

true

(55)

See Also

Enhanced Packages in Maple 11

Index of New Maple 11 Features