|
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:
|
•
|
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.
|
|
|
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.
|
|
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);
|
| (1) |
| (2) |
>
|
Int(BesselJ(nu+1,x)/BesselJ(nu,x), x);
|
| (3) |
| (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);
|
| (5) |
| (6) |
|
For integrands involving periodic functions consider
|
>
|
Int((1-a^2*JacobiSN(x, k)^2)^2, x);
|
| (7) |
| (8) |
>
|
Int(1/(1+I*JacobiSC(x,k)), x);
|
| (9) |
| (10) |
>
|
Int(JacobiDN(x,k)*JacobiCN(x,k)/JacobiNC(x,k), x);
|
| (11) |
| (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.
|
|
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);
|
| (13) |
| (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;
|
| (15) |
>
|
intsolve(ee, p(x), method=Neumann, order=20);
|
| (16) |
|
Compare with the closed form exact solution
|
|
|
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.
|
|
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]);
|
| (18) |
>
|
solve(abs(x + a) + abs(x + b) > 2, x);
|
| (19) |
>
|
solve(abs(x + a) + abs(x + b) > 2, x) assuming b > 2, a < 0;
|
| (20) |
>
|
solve([(x-1)*(x-2)*(x-3)=0,a*(x-1)<2+b*(x-1)],[x]);
|
| (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;
|
| (22) |
>
|
solve([(x-1)*(x-2)*(x-3)=0,a*(x-1)<2+b*(x-1)],[x]);
|
|
|
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
|
|
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];
|
| (24) |
|
When the discriminant is zero, is related to ; evaluate the above at values of , satisfying that condition.
|
>
|
eval((24), [g2 = 3*t^2, g3=t^3]);
|
| (25) |
|
Take the derivative now with respect to t
|
>
|
map(Diff = diff, (25)[1..-2], t);
|
| (26) |
|
The four JacobiTheta functions can now be differentiated with respect to the second parameter.
|
|
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.
|
| (27) |
>
|
Diff((27), q) = diff((27), q);
|
| (28) |
|
There is also a better handling with automatic simplification for derivatives when they involve both the D and diff notations together.
|
>
|
Diff((29), x) = diff((29), x);
|
| (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).
|
|
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);
|
| (31) |
>
|
convert(exp(arcsin(x)), Sum);
|
| (32) |
>
|
convert(sqrt(1+x), FormalPowerSeries);
|
| (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);
|
>
|
convert(Int(erf(t)/t, t=0..x), Sum, expansionvariable = x, dummy = k);
|
| (35) |
|
|
Summation and Linear Recurrence Equations
|
|
•
|
The sum command can now compute indefinite sums in the presence of unknown functions.
|
|
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
|
|
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);
|
| (38) |
>
|
Sum((n+1)^3*u[n+2]*v[n+1]^5+v[n+2]^3-n^3*u[n+1]*v[n]^5,n);
|
| (40) |
| (41) |
|
|
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.
|
•
|
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;
|
| (42) |
>
|
g := Expand((x+RootOf(_Z^2+3))*(x+1)) mod 11;
|
| (43) |
>
|
h := Expand(f*g) mod 11;
|
| (45) |
| (46) |
|
|
Algebraic Geometry and Polynomial System Solving
|
|
|
|
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.
|
|
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.
|
>
|
(47) = convert((47), arcsin);
|
| (48) |
>
|
(47) = convert((47), arccot);
|
| (49) |
>
|
(cosh(x)-sinh(x))^2/sinh(x)^2;
|
| (50) |
>
|
(50) = convert((50), coth);
|
| (51) |
>
|
(52) = convert((52), sin);
|
| (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.
|
|
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
|
>
|
type( [ 1, 2, 3 ], 'partition' );
|
|
|
|