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 10

  

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

  

 

  

Differential Equations

  

Differentiation

  

Integration

  

Simplification

  

Mathematical functions: new Heun functions, SphericalY function, n-dimensional Dirac function, other improvements

  

Network of Conversions for Mathematical Functions

  

The series command

  

Miscellaneous enhancements: Equate, ImportMatrix and ImportVector, iratrecon, solve

  

See also enhancements in the packages for symbolic Polynomial System Solving and Algebraic Geometry and Summation and Difference Equations

 

Differential Equations (DEs)

Differentiation

Integration

The simplify Command

Mathematical Functions

Network of Conversion Routines for Mathematical Functions

The series Command

Miscellaneous

Differential Equations (DEs)

• 

The differential equation solving capabilities of the dsolve and pdsolve commands for computing exact solutions have been enhanced with new algorithms, representing the most important developments in this area in the last four Maple releases; for a description see Updates to Differential Equation Solvers.

• 

The Traveling Wave Solutions command of the PDEtools package has been significantly enhanced and nine new commands, some based on original algorithms, are now available in the DEtools package. For details, see the Updates to Differential Equation Packages help page.

Differentiation

Exact Differentiation of Abstract (Symbolic) Order

  

The diff command can now compute derivatives of abstract order for varied expressions, returning results in closed form or as finite sums. Similarly, a new fracdiff command computes derivatives of non-integral order.

  

Examples

  

For arbitrary values of n, a positive integer,

Diff(sin(x), x$n);

Diffsinx,x$n

(1)

value((1));

sinx+nπ2

(2)
  

The new routines can compute the symbolic order derivative of most mathematical functions and of some of their compositions with other functions or algebraic expressions. To compute the nth integral, that is, the inverse operation, differentiate "n times".

diff((2), x$(-n));

sinx

(3)
  

A more involved example:

Diff(exp(x^2), x$n);

Diffexpx2,x$n

(4)

value((4));

xn2nMeijerG0,12,,0,12+n2,n2,x2

(5)
  

The Leibniz rule for the derivative of a product:

Diff(f(x)*g(x), x$n);

Difffxgx,x$n

(6)

value((6));

_k1=0nn_k1ⅆ_k1ⅆx_k1fxⅆn_k1ⅆxn_k1gx

(7)
  

The fractional derivative of the exponential function and the general formula (see fracdiff) for an arbitrary fx

fracdiff(exp(x), x, 1/2);

erfxⅇx

(8)

fracdiff(f(x), x, 1/2);

intdifffτ,τxτπ,τ=0..x

(9)

Differentiation Knowledge for Special Functions

  

An number of new formulas, some of them original, were added for the differentiation of special functions with respect to parameters.

  

Examples

  

Differentiating Bessel functions with respect to the first parameter (assuming the first parameter is a positive integer):

Diff(BesselJ(n,z),n) = diff(BesselJ(n,z),n) assuming n::posint;

DiffBesselJn,z,n=12πBesselYn,z+12factorialnSum12z_k1nBesselJ_k1,zfactorial_k1n_k1,_k1=0..n1

(10)
  

Maple can perform the derivative above for any of the four Bessel functions and also when n is a negative integer.

Diff(BesselK(n,z),n) = diff(BesselK(n,z),n) assuming n::negint;

DiffBesselKn,z,n=12factorialnSum12z_k1+nBesselK_k1,zfactorial_k1n_k1,_k1=0..n1

(11)
  

Similar formulas are implemented for the Struve functions, with results expressed in terms of the MeijerG and Bessel functions.

Diff(StruveH(n,z),n) = diff(StruveH(n,z),n) assuming n::negint;

DiffStruveHn,z,n=12Sumbinomialn,_k1factorialn_k1112z_k1+nStruveH_k1,z,_k1=0..n1+121nπBesselJn,z+12zn11nπMeijerG1,1,14,34,1,1,12n,34,12,14,14z2

(12)
  

For Chebyshev functions, the formulas are valid for arbitrary values of the first parameter.

Diff(ChebyshevT(a,z),a) = diff(ChebyshevT(a,z),a);

DiffChebyshevTa,z,a=arccoszz2+1ChebyshevUa1,z

(13)

Numerical Differentiation

  

A new fdiff command, to compute derivatives numerically, was added to the library (see the Numerics Updates in Maple 10 help page). This command is used to compute the value of derivatives when the exact differentiation rule is not known and is tightly integrated with the symbolic differentiation commands.

  

Examples

eval( Diff(exp(x),x), x=1) = fdiff(exp(x), x=1);

evalDiffexpx,x,x=1=2.718281828

(14)
  

The differentiation rule of LegendrePa,x with respect to the first parameter is not known in general.

eval(diff(LegendreP(a,1/3), a), a=1/2+I);

evaldiffLegendrePa,13,a,a=12+I

(15)
  

The numerical value of this derivate is computed using fdiff.

evalf( (15) );

−1.1314248080.4882991380I

(16)

fdiff(LegendreP(a,1/3), a=1/2+I);

−1.1314248080.4882991380I

(17)
  

In Maple 10, fdiff is also used to numerically evaluate symbolic derivatives evaluated at a point, constructed using the D operator.

D[1](LegendreP)(1/2+I,1/3);

D1LegendreP12+I,13

(18)

evalf((18));

−1.1314248080.4882991380I

(19)

Integration

  

The int command has been updated regarding Heun, Wrightomega and the multidimensional Dirac function, all new in Maple 10.

  

Examples

Int(2*Wrightomega((z-1)/(z+1))/(z+1)^2/(1+Wrightomega((z-1)/(z+1))),z);

Int2Wrightomegaz1z+1z+121+Wrightomegaz1z+1,z

(20)

value((20));

Wrightomegaz1z+1

(21)

Int(2*HeunTPrime(a,b,c,(z-1)/(z+1))/(z+1)^2,z);

Int2HeunTPrimea,b,c,z1z+1z+12,z

(22)

value((22));

HeunTa,b,c,z1z+1

(23)
  

A 4-Dimensional Dirac and integral:

Int(Int(Int(Int(Dirac([x, y, z, t])*f(x,y,z,t), x = -infinity .. infinity), y = -infinity .. infinity), z = -infinity .. infinity), t = -infinity .. infinity);

IntIntIntIntDiract,x,y,zfx,y,z,t,x=∞..∞,y=∞..∞,z=∞..∞,t=∞..∞

(24)

value((24));

f0,0,0,0

(25)
  

Various families of integrals previously computed in terms of infinite sums are now computed in terms of MeijerG or other special functions.

  

Example

Int(1/2*x^(r-1)*Pi*BesselY(0,2*x)*BesselY(0,2*a^(1/2)*x),x = 0 .. infinity);

Int12xr1πBesselY0,2xBesselY0,2ax,x=0..∞

(26)

value((26)) assuming a>0;

πMeijerGr2+1,r2+1,12,32r2,0,0,12,32r2,a4

(27)
  

In Maple 10, the diff command can also compute integrals of abstract order for some expressions, returning results in closed form or as finite sums. To compute the nth integral, differentiate "n times". For more details, see the Exact Differentiation of Abstract (Symbolic) Order help page.

The simplify Command

Size of Expressions

  

The routines for simplifying the size of a mathematical expression were rewritten, resulting in more powerful, flexible, and efficient simplification. For details, see the simplify,size help page.

  

Example

  

Consider the following large symbolic expression, with rational subexpressions and exponential and trigonometric functions, which appeared as part of the solution of a differential equation problem.

eq:=-r*h*m*K*(K*exp(K*t/(A + Ab))*cos((h*C/(A + Ab) + h*Ab/(A + Ab))*t)/(A + Ab)/(K^2/(A + Ab)^2 + (h*C/(A + Ab) + h*Ab/(A + Ab))^2)-(-h*C/(A + Ab)-h*Ab/(A + Ab))*exp(K*t/(A + Ab))*sin((h*C/(A + Ab) + h*Ab/(A + Ab))*t)/(K^2/(A + Ab)^2 + (h*C/(A + Ab) + h*Ab/(A + Ab))^2)) + r*h*m*K*(K*exp(K*t/(A + Ab))*cos((-h*C/(A + Ab) + 2*h*A/(A + Ab) + h*Ab/(A + Ab))*t)/(A + Ab)/(K^2/(A + Ab)^2 + (-h*C/(A + Ab) + 2*h*A/(A + Ab) + h*Ab/(A + Ab))^2)-(h*C/(A + Ab)-2*h*A/(A + Ab)-h*Ab/(A + Ab))*exp(K*t/(A + Ab))*sin((-h*C/(A + Ab) + 2*h*A/(A + Ab) + h*Ab/(A + Ab))*t)/(K^2/(A + Ab)^2 + (-h*C/(A + Ab) + 2*h*A/(A + Ab) + h*Ab/(A + Ab))^2))-Ab*m*h^2*r*((h*C/(A + Ab)-2*h*A/(A + Ab)-h*Ab/(A + Ab))*exp(K*t/(A + Ab))*cos((-h*C/(A + Ab) + 2*h*A/(A + Ab) + h*Ab/(A + Ab))*t)/(K^2/(A + Ab)^2 + (-h*C/(A + Ab) + 2*h*A/(A + Ab) + h*Ab/(A + Ab))^2) + K*exp(K*t/(A + Ab))*sin((-h*C/(A + Ab) + 2*h*A/(A + Ab) + h*Ab/(A + Ab))*t)/(A + Ab)/(K^2/(A + Ab)^2 + (-h*C/(A + Ab) + 2*h*A/(A + Ab) + h*Ab/(A + Ab))^2)) + Ab*m*h^2*r*((-h*C/(A + Ab)-h*Ab/(A + Ab))*exp(K*t/(A + Ab))*cos((h*C/(A + Ab) + h*Ab/(A + Ab))*t)/(K^2/(A + Ab)^2 + (h*C/(A + Ab) + h*Ab/(A + Ab))^2)
 + K*exp(K*t/(A + Ab))*sin((h*C/(A + Ab) + h*Ab/(A + Ab))*t)/(A + Ab)/(K^2/(A + Ab)^2 + (h*C/(A + Ab) + h*Ab/(A + Ab))^2)):

  

Try different methods of simplifying its size, such as converting to horner form, factoring, directly simplifying, or simplifying and combining. Measure the length of the resulting expression and compare with the expression obtained by simplification by size.

`starting length` = length(eq), `converting to horner`=length(convert(eq,horner)),  factoring=length(factor(eq)), simplifying=length(simplify(eq)), `simplifying and combining` = length(combine(simplify(eq)));

starting length=2173,converting to horner=1688,factoring=2992,simplifying=616,simplifying and combining=2992

(28)

`using simplify/size`=length(simplify(eq,size));

using simplify/size=616

(29)
  

By performing simple manipulations (simplify,size), it is possible to rewrite the expression in a more compact form than by applying other specific mathematical simplification algorithms.

New Simplification Routines

  

Simplifying expressions involving the new Wrightomega function:

Wrightomega(ln(2)+ln(ln(2)));

Wrightomegaln2+lnln2

(30)

simplify((30));

ln2

(31)

Improved Simplification of RootOf

  

For expressions involving RootOf, the simplification is more efficient and sophisticated, finding simplifications in cases where previously none was found, and terminating more quickly when no simplification is possible.

  

Examples

Zeta(0,n,x+a)-Zeta(0,RootOf(-Zeta(0,n,a)+Zeta(0,_Z,A)),x+A);

ζ0,n,x+aζ0,RootOfζ0,n,a+ζ0,_Z,A,x+A

(32)

simplify( (32) );

ζ0,n,x+aζ0,n,x+A

(33)

a*RootOf(x^2-2*x+1,index = 1)^2+RootOf(x^2-2*x+1,index = 1)*RootOf(x^2-2*x+1,index = 1)+c;

a+1+c

(34)

simplify( (34) );

a+1+c

(35)
  

Taking advantage of the presence of multiple roots:

1/(alpha-RootOf(_Z^3-11*_Z^2+35*_Z-25));

1αRootOf_Z311_Z2+35_Z25

(36)

simplify( (36) );

1αRootOf_Z311_Z2+35_Z25

(37)
  

Less processing time when no simplification is available:

simplify(RootOf(-RootOf(_Z^4+_Z+1,index= 4)+_Z^3,index = 1));

RootOfRootOf_Z4+_Z+1,index=4+_Z3,index=1

(38)

Improved Simplification of Radicals and Powers

  

More transformations are considered:

2^(-sqrt(2)/4-1)*(sqrt(2)+2)^(sqrt(2)/4)*(2-sqrt(2))^(sqrt(2)/4)/Pi;

22412+2242224π

(39)

simplify((39));

12π

(40)

Improved Simplification of Bessel, Kummer and Whittaker Special Functions

  

More identities are taken into account.

(-alpha+2*y(x)^2*alpha+2)*WhittakerM(1/4*(alpha-2)/alpha,-1/4,y(x)^2)+(-1+alpha)*WhittakerM(1/4*(-2+5*alpha)/alpha,-1/4,y(x)^2)-WhittakerM(-1/4*(3*alpha+2)/alpha,-1/4,y(x)^2);

α+2yx2α+2WhittakerMα24α,14,yx2+1+αWhittakerM2+5α4α,14,yx2WhittakerM3α+24α,14,yx2

(41)

simplify((41));

0

(42)

BesselJ(1+1/v,x)-2/v*BesselJ(1/v,x)/x+BesselJ(-1+1/v,x);

BesselJ1+1v,x2BesselJ1v,xvx+BesselJ1+1v,x

(43)

simplify((43));

0

(44)
  

These improvements have also had a positive effect in other parts of the Maple library. For example, this Abel type differential equation and implicit exact solution are now testable due to improvements in the simplification of Bessel functions.

ode := diff(y(x),x) = 2*delta^3*y(x)*d/(-y(x)*d*delta^3+x*(x*d*delta^3-4));

odeⅆⅆxyx=2δ3yxdyxdδ3+xxdδ34

(45)

sol := _C1 = -(x*BesselI(2/d/delta^3,y(x)^(1/2))+y(x)^(1/2)*BesselI((2+d*delta^3)/d/delta^3,y(x)^(1/2)))/(x*BesselK(2/d/delta^3,y(x)^(1/2))-y(x)^(1/2)*BesselK((2+d*delta^3)/d/delta^3,y(x)^(1/2)));

sol_C1=xBesselI2dδ3,yx+yxBesselIdδ3+2dδ3,yxxBesselK2dδ3,yxyxBesselKdδ3+2dδ3,yx

(46)

odetest(sol, ode);

0

(47)

Combining Sums and Integrals

  

Products of Integrals and Sums can now be combined using combine.

  

Examples

Int(f(a,x),x)*Sum(g(a,x),_k2 = 0 .. n-_k1);

Intfa,x,xSumga,x,_k2=0..n_k1

(48)

combine((48));

SumIntfa,x,xga,x,_k2=0..n_k1

(49)

Mathematical Functions

  

Maple 10 includes important developments in the mathematical function's area:

• 

a pioneering implementation in computer algebra systems of the five Heun functions

• 

the Spherical Harmonics function

• 

the Wrightomega function

• 

the Dirac function has been extended to be multidimensional, as frequently presented in the context of physics problems

• 

additional knowledge regarding identities for mathematical functions

• 

more mathematical functions are sensitive to assumptions

The Heun functions

  

The five Heun functions are solutions to the five canonical forms of the Heun family of second order linear ordinary differential equations. The General Heun Equation

diff(y(x),x,x) + ((alpha+beta+1-delta-gamma)/(x-a)+delta/(x-1)+gamma/x)*diff(y(x),x) + ((alpha*beta*a-q)/(x-a)/a/(a-1)+(-alpha*beta+q)/(x-1)/(a-1)-q/x/a)*y(x) = 0;

ⅆ2ⅆx2yx+α+β+1δγxa+δx1+γxⅆⅆxyx+αβaqxaaa1+αβ+qx1a1qxayx=0

(50)
  

has four regular singular points. The other Heun equations are obtained from the general equation using confluence processes.

• 

None of the solutions to these five equations can be expressed in terms of other mathematical functions.

  

Due to the rich structure of their singularities, Heun equations appear in the representation of a large number of problems, from finance to general relativity and quantum physics. The generality of these functions is also illustrated by the fact that most other mathematical functions are particular cases of Heun functions, including the Spheroidal wave function, the Mathieu, Lame and hypergeometric pFq functions, and with them all of Legendre, Kummer, Bessel etc. functions admitting hypergeometric representation in the 2F1, 1F1, and 0F1 classes.

  

Examples

  

The Heun functions are defined as the solutions of the Heun equations for given initial conditions. The equations and conditions can be seen using the FunctionAdvisor.

FunctionAdvisor(definition, HeunG);

HeunGa,q,α,β,γ,δ,z=DESolⅆ2ⅆz2_Yzα+β+1z2+δγaα+δβ1z+γaⅆⅆz_Yzzz1z+aαβzq_Yzzz1z+a,_Yz,_Y0=1,D_Y0=qγa

(51)
  

The 2F1 and 1F1 hypergeometric functions are special cases of HeunG (the Heun General) and HeunC (the Heun Confluent) functions.

FunctionAdvisor(specialize, HeunG, hypergeom);

HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;z=hypergeomα&comma;β&comma;αδ+1+β&comma;z&comma;a=0q=0,HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;z=hypergeomα&comma;β&comma;γ&comma;z&comma;a=1q=αβq=aαβδ=α+βγ+1,HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;z=hypergeomαβ2+γ2+2α2βγ+4q2+γ2α2+β2&comma;αβ2+γ2+2α2βγ+4q2+γ2+α2β2&comma;γ&comma;z1+zαβ2+γ2+2α2βγ+4q2γ2+α2+β2&ExponentialE;I2παβ2+γ2+2α2βγ+4q+γαβ&comma;a=10z,HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;z=hypergeomβ2&comma;α2&comma;γ&comma;zz2&comma;a=2q=αβδ=α+β2γ+1−1<zz<1,HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;z=hypergeomβ3&comma;α3&comma;12&comma;zz324&comma;a=4q=αβγ=12δ=2α3+2β3−1<zz<1π<zz<π

(52)

FunctionAdvisor(specialize, HeunC, hypergeom);

HeunCα&comma;β&comma;γ&comma;δ&comma;η&comma;z=hypergeomβ+1α+2δ2α&comma;β+1&comma;zα1z&comma;α0β+10γ=1η=12δz1α0β+1=0δ=0γ=1η=12z1,HeunCα&comma;β&comma;γ&comma;δ&comma;η&comma;z=11zβ2+γ2+12+β2+γ24η+12hypergeomβ2γ2+12+β2+γ24η+12&comma;β2+γ2+12+β2+γ24η+12&comma;β+1&comma;z1+z&comma;α=0β+10δ=0z1

(53)
  

Some identities and special values:

FunctionAdvisor(identities,HeunC);

HeunCα&comma;β&comma;γ&comma;δ&comma;η&comma;z=1zγHeunCα&comma;β&comma;γ&comma;δ&comma;η&comma;z&comma;β::¬integerz<1&comma;HeunCα&comma;β&comma;γ&comma;δ&comma;η&comma;z=&ExponentialE;zαHeunCα&comma;β&comma;γ&comma;δ&comma;η&comma;z&comma;β::¬integerz<1

(54)

FunctionAdvisor(special_values,HeunG);

HeunGa&comma;q&comma;α&comma;−1&comma;γ&comma;δ&comma;z=HeunGa&comma;q&comma;−1&comma;α&comma;γ&comma;δ&comma;z&comma;HeunGa&comma;q&comma;α&comma;0&comma;γ&comma;δ&comma;z=HeunGa&comma;q&comma;0&comma;α&comma;γ&comma;δ&comma;z&comma;HeunGa&comma;q&comma;α&comma;1&comma;γ&comma;δ&comma;z=HeunGa&comma;q&comma;1&comma;α&comma;γ&comma;δ&comma;z&comma;HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;0=1&comma;HeunGa&comma;q&comma;&comma;β&comma;γ&comma;δ&comma;z=HeunGa&comma;q&comma;β&comma;&comma;γ&comma;δ&comma;z&comma;HeunGa&comma;q&comma;&comma;β&comma;γ&comma;δ&comma;z=HeunGa&comma;q&comma;β&comma;&comma;γ&comma;δ&comma;z

(55)
  

Series and asymptotic series expansions for the HeunT (Triconfluent Heun) and HeunD (Doubleconfluent Heun) functions:

FunctionAdvisor(series, HeunT);

seriesHeunTα&comma;β&comma;γ&comma;z&comma;z&comma;4=112αz2+γα6β6+12z3+Oz4

(56)
  

For more details, see the Heun help page.

The Spherical Harmonics

  

The spherical harmonics SphericalY(lambda,mu,theta,phi) are the angular part of the solution to Laplace's equation in spherical coordinates (r,theta,phi). These functions are frequently used to represent solutions in problems with spherical symmetry, and are particularly relevant in Quantum Mechanics, where they are eigenfunctions of observable operators associated with angular momentum. The SphericalY harmonics are related to Legendre functions as follows.

FunctionAdvisor(definition, SphericalY);

SphericalYλ&comma;μ&comma;θ&comma;φ=−1μ2λ+1πλμ!&ExponentialE;IφμLegendrePλ&comma;μ&comma;cosθ2λ+μ!&comma;¬λ+μ::negint¬λμ::negint

(57)
  

The differentiation rule with respect to the two angular variables is known in closed form.

Diff(SphericalY(lambda,mu,theta,phi),theta): (57) = value((57));

SphericalYλ&comma;μ&comma;θ&comma;φ=−1μ2λ+1πλμ!&ExponentialE;IφμLegendrePλ&comma;μ&comma;cosθ2λ+μ!&comma;¬λ+μ::negint¬λμ::negint=SphericalYλ&comma;μ&comma;θ&comma;φ=−1μ2λ+1πλμ!&ExponentialE;IφμLegendrePλ&comma;μ&comma;cosθ2λ+μ!&comma;¬λ+μ::negint¬λμ::negint

(58)

Diff(SphericalY(lambda,mu,theta,phi),phi): (58) = value((58));

SphericalYλ&comma;μ&comma;θ&comma;φ=−1μ2λ+1πλμ!&ExponentialE;IφμLegendrePλ&comma;μ&comma;cosθ2λ+μ!&comma;¬λ+μ::negint¬λμ::negint=SphericalYλ&comma;μ&comma;θ&comma;φ=−1μ2λ+1πλμ!&ExponentialE;IφμLegendrePλ&comma;μ&comma;cosθ2λ+μ!&comma;¬λ+μ::negint¬λμ::negint=SphericalYλ&comma;μ&comma;θ&comma;φ=−1μ2λ+1πλμ!&ExponentialE;IφμLegendrePλ&comma;μ&comma;cosθ2λ+μ!&comma;¬λ+μ::negint¬λμ::negint=SphericalYλ&comma;μ&comma;θ&comma;φ=−1μ2λ+1πλμ!&ExponentialE;IφμLegendrePλ&comma;μ&comma;cosθ2λ+μ!&comma;¬λ+μ::negint¬λμ::negint

(59)
  

The series expansion with respect to phi:

series( SphericalY(lambda,mu,theta,phi), phi, 3 );    # up to order 3

SphericalYλ&comma;μ&comma;θ&comma;0+IμSphericalYλ&comma;μ&comma;θ&comma;0φ12μ2SphericalYλ&comma;μ&comma;θ&comma;0φ2+Oφ3

(60)

The Wrightomega Function

  

The Wrightomega function is a single-valued (but discontinuous on two rays in the complex plane) variant of the LambertW function. It is defined as follows.

FunctionAdvisor(definition, Wrightomega);

Wrightomegaz=LambertWzπ2π&comma;&ExponentialE;z&comma;with no restrictions on z

(61)
  

Because the Wrightomega function is single-valued, its branching behavior is simpler than that of the LambertW function and the relationship LambertWk&comma;z=Wrightomegalnz+2Iπk can be used as an analytic continuation of LambertW in the (otherwise discrete) branch index.

  

The Wrightomega function sometimes has another advantage over the LambertW function. For large x,

Wrightomega(x) = asympt( Wrightomega(x), x, 3 );

Wrightomegax=xlnx+lnxx+lnx+lnx22x2

(62)
  

and when Wrightomega appears in applications, the equivalent formulation in terms of LambertW, namely Wrightomegax=LambertW&ExponentialE;x can overflow on computation of &ExponentialE;x, before being "undone" by LambertW. In other words, for some applications, such as the fringing fields of a capacitor, numerical evaluation of Wrightomega is easier.

The n-dimensional Dirac Function

  

The Maple 10 Dirac command allows for a compact representation, usual in formulations in Physics, of an n-dimensional Dirac delta function, defined in terms of the product of 1-dimensional Dirac functions.

Dirac([x, y, z, t]) = expand( Dirac([x, y, z, t]) );

Diract&comma;x&comma;y&comma;z=DiractDiracxDiracyDiracz

(63)
  

Derivatives of the n-dimensional Dirac function are denoted by the two-argument Dirac function as in the 1-dimensional case (see Dirac). The Maple library has been updated accordingly, so it is now possible to integrate, expand, compute integral transforms and other operations using the n-dimensional form.

  

Example

Int(Int(Int(Int( Dirac([x, y, z, t])*f(x,y,z,t), x=-infinity..infinity), y=-infinity..infinity), z=-infinity..infinity), t=-infinity..infinity);

IntIntIntIntDiract&comma;x&comma;y&comma;zfx&comma;y&comma;z&comma;t&comma;x&equals;&infin;..&infin;&comma;y&equals;&infin;..&infin;&comma;z&equals;&infin;..&infin;&comma;t&equals;&infin;..&infin;

(64)

value((64));

f0&comma;0&comma;0&comma;0

(65)

More Identities Known to the System

  

Example

FunctionAdvisor(identities, HeunG);

HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;z=1z1δHeunGa&comma;qδ1γa&comma;βδ+1&comma;αδ+1&comma;γ&comma;2δ&comma;z&comma;HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;z=1zaαβ+γ+δHeunGa&comma;qγα+βγδ&comma;β+γ+δ&comma;α+γ+δ&comma;γ&comma;δ&comma;z&comma;a0&comma;HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;z=1z1δ1zaαβ+γ+δHeunGa&comma;qγδ1a+α+βγδ&comma;β+γ+1&comma;α+γ+1&comma;γ&comma;2δ&comma;z&comma;a0&comma;HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;z=HeunG1a&comma;qa&comma;α&comma;β&comma;γ&comma;α+βγδ+1&comma;za&comma;a0&comma;HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;z=1zαHeunGaa1&comma;αγaqa1&comma;α&comma;αδ+1&comma;γ&comma;αβ+1&comma;zz1&comma;a1z1&comma;HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;z=1zaαHeunG1a&comma;αγq&comma;α&comma;β+γ+δ&comma;γ&comma;δ&comma;1azza&comma;a0za&comma;HeunGa&comma;q&comma;α&comma;β&comma;γ&comma;δ&comma;z=1zaαHeunG11a&comma;αγ+qa1&comma;α&comma;β+γ+δ&comma;γ&comma;αβ+1&comma;zza&comma;a0a1za

(66)

More Mathematical Functions Sensitive to Assumptions

  

The Psi function now takes into account assumptions made on the function parameters.

Psi(n,x) assuming n::posint, x=1;

−1n+1n!ζn+1

(67)

Psi(n,x) assuming n=1, x=1/4;

π2+8Catalan

(68)

Network of Conversion Routines for Mathematical Functions

  

The network of conversions between mathematical functions was introduced in Maple 8. In Maple 9, the number of conversions was almost tripled. In Maple 10, more relations and conversion routines have been added, including conversions for the LambertW function, the Wrightomega function, and the five Heun functions.

  

Examples

  

New conversions:

convert( Wrightomega(z), LambertW );

LambertWzπ2π&comma;&ExponentialE;z

(69)

convert( LambertW(z), Wrightomega );

Wrightomegalnz

(70)
  

The hypergeometric form of SphericalY:

convert( SphericalY(lambda,mu,theta,phi), hypergeom );

−1μ2λ+1πλμ!&ExponentialE;Iφμcosθ+1μ2hypergeomλ&comma;λ+1&comma;1μ&comma;12cosθ22λ+μ!cosθ1μ2Γ1μ

(71)
  

In the case, frequent in Quantum Mechanics, where lambda is a positive integer and mu lies between -lambda and lambda, the radicals can be combined.

combine((71)) assuming lambda::posint, mu >= -lambda, mu <= lambda;

−1μcosθ+1μ2cosθ1μ22λ+1λμ!πλ+μ!&ExponentialE;Iφμhypergeomλ&comma;λ+1&comma;1μ&comma;12cosθ22Γ1μ

(72)
  

The HeunG form of SphericalY can be obtained by rewriting the hypergeometric function in terms of HeunG.

convert((72), HeunG);

−1μcosθ+1μ2cosθ1μ22λ+1λμ!πλ+μ!&ExponentialE;IφμHeunG0&comma;0&comma;λ&comma;λ+1&comma;0&comma;1+μ&comma;12cosθ22Γ1μ

(73)
  

The HeunC form of the 1F1 hypergeometric confluent function:

hypergeom([a],[b],z);

hypergeoma&comma;b&comma;z

(74)

convert((74), HeunC);

HeunC1&comma;b1&comma;1&comma;b2+a&comma;b2a+12&comma;zz+1

(75)
  

For the HeunB form of 1F1, try converthypergeoma&comma;b&comma;z&comma;HeunB.

• 

New routines are available in the conversion network

JacobiZeta(z,k);

JacobiZetaz&comma;k

(76)

convert((76), Sum);

_k1=12πEllipticNomek_k1sin_k1πzEllipticKkEllipticKkEllipticNomek2_k11

(77)
  

The new convert,algebraic routine accepts a procedure and returns, when possible, an algebraic expression representing the procedure. This conversion takes advantage of the fact that in Maple all algebraic expressions are appliable, like procedures. The returned algebraic expression, when applied to arguments, will behave the same as the procedure applied to the same arguments.

P := z -> GAMMA(z)*Psi(z) + 1;

PzΓzΨz+1

(78)

convert((78), algebraic);

ΓΨ+1

(79)

(79)(z) = P(z);

ΓzΨz+1=ΓzΨz+1

(80)
  

The convert,boolean_function and convert,boolean_operator routines now accept a filtering option allowing the user to only apply the conversion to selected boolean operators or functions.

a or b and c;

aorbandc

(81)

convert((81), boolean_function, `and`);

aorbc

(82)

convert((81), boolean_function, `or`);

abandc

(83)

The series Command

  

Routines for computing series expansions of the new Wrightomega and Heun functions have been added to the library.

  

Examples

series( Wrightomega(z), z, 3);

Wrightomega0+Wrightomega01+Wrightomega0z+12Wrightomega01+Wrightomega03z2+Oz3

(84)

series( HeunB(alpha,beta,gamma,delta,z), z, 3);

1+12βα+β+δα+1z18α2β24αβ22αβδ4α2+4αγ3β24βδδ212α+4γ8α+1α+2z2+Oz3

(85)

Miscellaneous

The Equate Command

  

The new Equate command is used to turn pairs of datasets into a list of equations, matching up the elements of the datasets pairwise. The inputs can be two lists, a list and a Vector, two Matrices, or in fact any two objects of the same structure. For example, a 2x3 Matrix can be paired with a&comma;b&comma;c&comma;d&comma;e&comma;f.

The ImportMatrix and ImportVector Commands

  

The ImportMatrix and ImportVector commands now have the option of skipping lines at the beginning of source data.

  

Example

ImportMatrix("myData.dat", source=delimited, delimiter=",", skiplines=2):

Error, (in ImportMatrix) file or directory does not exist: myData.dat

The iratrecon Command

  

The iratrecon command has been extended to implement maximal quotient rational reconstruction.

The solve Command

  

The solve command now accepts lists of equations and variables. This removes the need to convert lists to sets for use with solve. Also when the variables are given in the list, solve will return the answer as list of lists of the equations, which left hand sides will be sorted according to initial order of variables' list.

New or Enhanced Symbolic Packages for Polynomial System Solving, Algebraic Geometry, Summation, and Difference Equations

• 

The Groebner package has been enhanced and the PolynomialIdeals and RegularChains packages added.

• 

The QDifferenceEquations and SumTools packages have been enhanced.

  

For more information, see Enhanced Packages in Maple 10.

See Also

Index of New Maple 10 Features