New Symbolic Features That Have Been Added to Maple V for Release 4
New and Improved Packages:
New and Improved Functionalities:
Other improvements:
Integral transforms:
The new integral transform package inttrans includes: inttrans[laplace], inttrans[invlaplace], inttrans[mellin], inttrans[fourier], inttrans[invfourier], inttrans[fouriersin], inttrans[fouriercos], inttrans[hankel], inttrans[hilbert].
inttrans[fouriersin](3/(t + a),t,w);
3⁢2⁢−cos⁡a⁢w⁢Ssi⁡a⁢w+sin⁡a⁢w⁢Ci⁡a⁢wπ
assume(a>0);
inttrans[hilbert](exp(I*a*x),x,y);
I⁢ⅇI⁢y⁢a~
a := 'a':
User defined lookup tables are added to the Fourier and Laplace transforms via routine inttrans[addtable]. Table entries can have an arbitrary number of constant parameters:
with(inttrans):
addtable(mellin,f1(t),F1(s),t,s);
addtable(mellin,f2(t),F2(s),t,s);
inttrans[mellin](t^a*int(x^b*f1(t/x)*f2(x),x=0..infinity),t,s);
F1⁡s+a⁢F2⁡s+a+b+1
Recognition and transformation of general convolution integrals is added to all three transforms:
addtable(mellin,f(t),F(s),t,s);
inttrans[mellin](diff(f(t),t),t,s);
−s−1⁢F⁡s−1
inttrans[mellin](int(f(x),x=t..infinity),t,s);
F⁡s+1s
Functions which are being integrated and differentiated with respect to parameters other than the transform parameter are now simplified using Leibniz and Fubini's theorem.
inttrans[fourier](diff(f(t,u),u),t,s);
fourier⁡diff⁡f⁡t,u,u,t,s
inttrans[laplace](int(f(t,u),u=a..b),t,s);
int⁡laplace⁡f⁡t,u,t,s,u=a..b
Transforms can now return multiple integrals, allowing for expressions of the form f(t)/t^n to be transformed for n>1:
inttrans[laplace](f(t)/t^4,t,s);
laplace⁡f⁡tt4,t,s
In many cases, hypergeometric functions are returned where formerly only definite integrals were returned:
inttrans[fourier]((1+I*t)^(-1/2)*(1+2*I*t)^(-3/2),t,w);
−2⁢π⁢ⅇw⁢w⁢hypergeom⁡32,2,−w2⁢Heaviside⁡−w2
DEtools: Differential Equations Tools package
There are significant changes over release 3 version. Some new functionalities include:
DEtools[Dchangevar]
handle a variety of substitutions and
transformations in DEs.
DEtools[PDEchangecoords]
allow users to change independent
variables in a PDE to a new coordinate system.
DEtools[reduceOrder]
either return an ODE of reduced order or
solve the ODE explicitly by the method of
reduction of order.
DEtools[convertsys]
convert a system of differential equations
to a first order system.
DEtools[PDEchangecoords](D[1,2](w)(x,y,z)-D[1](w)(x,y,z), [x,y,z], cylindrical,[r,phi,theta]);
sin⁡φ⁢cos⁡φ⁢D1,1⁡w⁡r,φ,θ⁢r2−cos⁡φ⁢D1⁡w⁡r,φ,θ⁢r⁢sin⁡φ+2⁢cos⁡φ2⁢D1,2⁡w⁡r,φ,θ⁢r−cos⁡φ⁢D1⁡w⁡r,φ,θ⁢r2−cos⁡φ⁢sin⁡φ⁢D2,2⁡w⁡r,φ,θ+sin⁡φ⁢D2⁡w⁡r,φ,θ⁢r−2⁢cos⁡φ2⁢D2⁡w⁡r,φ,θ−D1,2⁡w⁡r,φ,θ⁢r+D2⁡w⁡r,φ,θr2
combstruct: Combinatorial Structures package
The package combstruct is used to define, count and generate combinatorial structures.
A combinatorial class is defined by writing a grammar specification that describes it. In this way, an extensive collection of different classes may be defined. For example, the system applies to all regular and context-free grammars, grammars to define binary trees, plane general trees, necklaces, functional graphs, expression trees etc.
with(combstruct):
Model alcohol molecules, C_n H_{2n+1} OH.
Define the grammar for an alkyl, C_n H_{2n+1}, which is a ternary rooted tree that moves freely in space.
molecule := {alkyl = Union(H, Prod(C, Set(alkyl, card=3))), H=Atom, C=Atom}:
count([alkyl, molecule], size=6+2*6+1);
17
Thus we see that there are 17 different alcohol molecules with 6 carbon atoms. Here is one of them.
draw([alkyl, molecule], size=6+6*2+1);
Prod⁡C,Set⁡Prod⁡C,Set⁡Prod⁡C,Set⁡H,H,H,H,H,Prod⁡C,Set⁡Prod⁡C,Set⁡H,H,H,Prod⁡C,Set⁡H,H,H,H,H
tensor: Tensor Analysis and General Relativity Computations
The tensor package deals with tensors, their operations, and their use in General relativity both in the natural basis and in a rigid moving frame. Some utilities to manipulate tensors are also provided, as well as a mechanism for customizing the way simplification is done in multi-step calculations.
Compute the curvature in the natural basis for the Schwarzschild solution:
with(tensor):
g := create([-1,-1], array(1..4, 1..4, symmetric, sparse, [(1,1) = 1-2*M/r, (2,2) = -1/(1-2*M/r), (3,3) = -r^2, (4,4) = -r^2*sin(theta)^2])):
coord := [t, r, theta, phi]:
`tensor/simp` := proc(a) simplify(a); end:
con_g := invert(g, 'det_g'):
d1_g := d1metric(g, coord):
d2_g := d2metric(d1_g, coord):
Cf1 := Christoffel1(d1_g):
Cf2 := Christoffel2(con_g, Cf1):
Rm := Riemann(con_g, d2_g, Cf1):
Rc := Ricci(con_g, Rm):
Display the non-zero independent components of the covariant Riemann and Ricci tensors:
displayGR('Riemann', Rm);
The Riemann Tensor
non-zero components :
R1212=2⁢Mr3
R1313=−r+2⁢M⁢Mr2
R1414=−r+2⁢M⁢M⁢sin⁡θ2r2
R2323=−M−r+2⁢M
R2424=−M⁢sin⁡θ2−r+2⁢M
R3434=−2⁢r⁢M⁢sin⁡θ2
character : [-1, -1, -1, -1]
displayGR('Ricci', Rc);
The Ricci tensor
None
character : [-1, -1]
Notice that the last result confirms the fact that the Schwarzschild solution is indeed a vacuum solution.
Verify the Bianchi identity by computing the covariant derivatives of the Riemann components and anti-symmetrizing them on the last three indices:
D_Rm := cov_diff(Rm, coord, Cf2):
asymm_D_Rm := antisymmetrize(D_Rm, [3,4,5]):
act('display', asymm_D_Rm);
_____________________________________________________
No non-zero independent components.
CHARACTER :
−1,−1,−1,−1,−1
Since all of the components are zero, the Bianchi identity is verified.
geometry: 2D Euclidean Geometry Package
The geometry package is re-designed, and has more functionalities: the conic section is completely implemented, more transformations, graphical visualization is also provided.