Enhanced Packages - Maple Help

Home : Support : Online Help : System : Information : Updates : Maple 11 : Enhanced Packages

Enhanced Packages in Maple 11

 Maple 11 contains many enhancements to existing packages.
 For information on new Maple 11 packages, see New Packages in Maple 11.
 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.
 This help page describes the following enhanced packages.

Groebner

 • The Groebner package implements new and much faster algorithms for Groebner basis computations and other related tasks. For more information, see Groebner Basis Algorithms and Efficiency Improvements in Maple 11.
 • The new command Groebner[RationalUnivariateRepresentation] provides an alternative to solving a system of polynomial equations by computing a lexicographic Groebner basis.
 • Other commands that have been added are as follows: Groebner[Homogenize], Groebner[InitialForm], Groebner[MatrixOrder], Groebner[MaximalIndependentSet], Groebner[MultivariateCyclicVector], Groebner[SuggestVariableOrder], Groebner[TrailingTerm], and Groebner[WeightedDegree].
 • Many of the existing commands in the Groebner package have been extended by additional options and calling sequences.
 Examples
 New command RationalUnivariateRepresentation.
 > with(Groebner):
 > cyclic3 := [x+y+z,x*y+x*z+y*z,x*y*z-1];
 ${\mathrm{cyclic3}}{≔}\left[{x}{+}{y}{+}{z}{,}{x}{}{y}{+}{x}{}{z}{+}{y}{}{z}{,}{x}{}{y}{}{z}{-}{1}\right]$ (1)
 > RationalUnivariateRepresentation(cyclic3);
 ${{\mathrm{_Z}}}^{{6}}{-}{20}{}{{\mathrm{_Z}}}^{{3}}{+}{343}{=}{0}{,}\left\{{x}{=}\frac{{11}{}{{\mathrm{_Z}}}^{{3}}{-}{245}}{{2}{}{{\mathrm{_Z}}}^{{5}}{-}{20}{}{{\mathrm{_Z}}}^{{2}}}{,}{y}{=}\frac{{-}{13}{}{{\mathrm{_Z}}}^{{3}}{+}{49}}{{2}{}{{\mathrm{_Z}}}^{{5}}{-}{20}{}{{\mathrm{_Z}}}^{{2}}}{,}{z}{=}\frac{{2}{}{{\mathrm{_Z}}}^{{3}}{+}{196}}{{2}{}{{\mathrm{_Z}}}^{{5}}{-}{20}{}{{\mathrm{_Z}}}^{{2}}}\right\}$
 $\left[{{\mathrm{_Z}}}^{{6}}{-}{20}{}{{\mathrm{_Z}}}^{{3}}{+}{343}{=}{0}{,}\left\{{x}{=}\frac{{11}{}{{\mathrm{_Z}}}^{{3}}{-}{245}}{{2}{}{{\mathrm{_Z}}}^{{5}}{-}{20}{}{{\mathrm{_Z}}}^{{2}}}{,}{y}{=}\frac{{-}{13}{}{{\mathrm{_Z}}}^{{3}}{+}{49}}{{2}{}{{\mathrm{_Z}}}^{{5}}{-}{20}{}{{\mathrm{_Z}}}^{{2}}}{,}{z}{=}\frac{{2}{}{{\mathrm{_Z}}}^{{3}}{+}{196}}{{2}{}{{\mathrm{_Z}}}^{{5}}{-}{20}{}{{\mathrm{_Z}}}^{{2}}}\right\}\right]$ (2)
 The following system is notorious for being difficult to solve exactly. In this example, the rational univariate representation can be computed much faster and has much smaller coefficients than a lexicographic Groebner basis.
 > katsura5 := [   2*x^2+2*y^2+2*z^2+2*t^2+2*u^2+v^2-v,   x*y+y*z+2*z*t+2*t*u+2*u*v-u,   2*x*z+2*y*t+2*z*u+u^2+2*t*v-t,   2*x*t+2*y*u+2*t*u+2*z*v-z,   t^2+2*x*v+2*y*v+2*z*v-y,   2*x+2*y+2*z+2*t+2*u+v-1]:
 > F := Basis(katsura5, plex(x,y,z,t,u,v)):
 > length(F);
 ${96728}$ (3)
 > G := RationalUnivariateRepresentation(katsura5):
 > length(G);
 ${16675}$ (4)
 Some other new commands.
 > Homogenize(x^3+x*y-1,z);
 ${{x}}^{{3}}{+}{x}{}{y}{}{z}{-}{{z}}^{{3}}$ (5)
 > F := [x^3+x*y^2+x*z^2-x, x^2-1, y^2+z^2];
 ${F}{≔}\left[{{x}}^{{3}}{+}{x}{}{{y}}^{{2}}{+}{x}{}{{z}}^{{2}}{-}{x}{,}{{x}}^{{2}}{-}{1}{,}{{y}}^{{2}}{+}{{z}}^{{2}}\right]$ (6)
 > HilbertDimension(F);
 ${1}$ (7)
 > MaximalIndependentSet(F);
 $\left\{{y}\right\}$ (8)
 Using the new option order, the Basis command automatically guesses and returns a computationally efficient variable ordering.
 > G := Basis(katsura5, 'MO', order='tdeg'):
 > MO;
 ${\mathrm{tdeg}}{}\left({x}{,}{y}{,}{z}{,}{t}{,}{u}{,}{v}\right)$ (9)
 > unwith(Groebner):

ImageTools

 • The performance of existing commands in the ImageTools package have been enhanced to run faster and use less memory. The following new commands have been added: Checkerboard, Clip, ColorTransform, CombineLayers, Complement, FitIntensity, Flip, GetLayer, GetSubImage, HSVtoRGB, PadImage, RGBtoGray, RGBtoHSV, RGBtoYUV, Rotate, SetLayer, SetSubImage, Stack, Threshold, ToRGBA, Transpose, View, WhatTypeImage, and YUVtoRGB.

LinearAlgebra

 • The LinearAlgebra package has one new command and one enhanced command. The LinearAlgebra[Modular] subpackage contains three new commands. Also, a new subpackage LinearAlgebra[Generic] has been created, which allows you to do linear algebra over arbitrary rings, domains, and fields.
 • The new StronglyConnectedBlocks command determines whether the rows and columns of a square matrix can be permuted to put the matrix into block upper or lower triangular form, and if so, outputs the diagonal blocks. This is automatically attempted by the LinearAlgebra[CharacteristicPolynomial] and LinearAlgebra[Determinant] commands.
 • The LinearAlgebra[CompanionMatrix] command has been extended to accept a matrix polynomial as input that is expressed in terms of any large number of orthogonal bases.
 • The new LinearSolve command solves the linear system described by an augmented matrix with augmented columns.
 • The new IntegerLinearSolve command computes the determinant of a square matrix with integer entries using a modular algorithm.
 • The new IntegerCharacteristicPolynomial command computes the characteristic polynomial of a square matrix with integer entries using a modular algorithm.
 Examples
 > with(LinearAlgebra):
 > A := Matrix([[a,b,w,x],[c,d,y,z],[0,0,e,f],[0,0,g,h]]);
 ${A}{≔}\left[\begin{array}{cccc}{a}& {b}& {w}& {x}\\ {c}& {d}& {y}& {z}\\ {0}& {0}& {e}& {f}\\ {0}& {0}& {g}& {h}\end{array}\right]$ (10)
 > B := StronglyConnectedBlocks(A);
 ${B}{≔}\left[\left[\begin{array}{cc}{e}& {f}\\ {g}& {h}\end{array}\right]{,}\left[\begin{array}{cc}{a}& {b}\\ {c}& {d}\end{array}\right]\right]$ (11)
 > Determinant(A) = Determinant(B[1])*Determinant(B[2]);
 ${a}{}{d}{}{e}{}{h}{-}{a}{}{d}{}{f}{}{g}{-}{b}{}{c}{}{e}{}{h}{+}{b}{}{c}{}{f}{}{g}{=}\left({e}{}{h}{-}{f}{}{g}\right){}\left({a}{}{d}{-}{c}{}{b}\right)$ (12)
 The CompanionMatrix can be computed in terms of the ChebyshevT basis.
 ${p}{≔}\frac{{\mathrm{ChebyshevT}}{}\left({0}{,}{x}\right)}{{2}}{+}\frac{{2}{}{\mathrm{ChebyshevT}}{}\left({1}{,}{x}\right)}{{3}}{+}\frac{{3}{}{\mathrm{ChebyshevT}}{}\left({2}{,}{x}\right)}{{4}}{+}\frac{{4}{}{\mathrm{ChebyshevT}}{}\left({3}{,}{x}\right)}{{5}}$ (13)
 > C0, C1 := CompanionMatrix(p);
 ${\mathrm{C0}}{,}{\mathrm{C1}}{≔}\left[\begin{array}{ccc}{0}& \frac{{1}}{{2}}& {-}\frac{{1}}{{2}}\\ {1}& {0}& \frac{{2}}{{15}}\\ {0}& \frac{{1}}{{2}}& {-}\frac{{3}}{{4}}\end{array}\right]{,}\left[\begin{array}{ccc}{1}& {0}& {0}\\ {0}& {1}& {0}\\ {0}& {0}& \frac{{8}}{{5}}\end{array}\right]$ (14)
 > normal(Determinant(x*C1-C0)/expand(p));
 $\frac{{1}}{{2}}$ (15)

ListTools

 The ListTools package has a new command LengthSplit. It allows you to split a list into an expression sequence of sublists of a given length.

LREtools

 • The LREtools[AnalyticityConditions] command has been extended to determine analyticity of the solution of a linear difference equation in the complex plane.
 • The LREtools[HypergeometricTerm][HypergeometricSolution] command for computing hypergeometric solutions of a linear difference equation with hypergeometric coefficients was added.
 • The LREtools[IsDesingularizable] command can now handle desingularization of a linear difference operator with respect to both the leading and the trailing coefficient simultaneously.
 • The LREtools[ValuesAtPoint] command has been extended to work when the evaluation point is an algebraic number.

Matlab

 The Matlab package supports a wider range of data conversions, including strings and structs.

Number Theory

 • The numtheory[index] command now additionally implements the Index Calculus method for computing discrete logarithms.

PDEtools

 • The PDEtools package has been enlarged with the addition of nineteen new commands for performing most of the steps of the traditional symmetry analysis of PDE systems. This is the most important development in the Maple libraries for exact solutions for PDEs and systems of PDEs since Maple 7.
 • The functionality provided by the new commands includes the automatic computation of the infinitesimal symmetry generators and the related group invariant solutions, using many symmetries in one go (you can optionally specify how many), departing directly and solely from the PDE system to be solved (you can optionally specify the symmetries to be used). The new solving capabilities are integrated into the Maple PDE solver command, pdsolve.
 • The set of commands includes one for reducing a PDE system modulo another PDE system, which is equivalent to what simplify,siderels does, but for differential equations. For details see the corresponding section in Updates to Differential Equations (DE) Solvers in Maple 11.

Plotting Feature

 • The plotting feature in Maple 11 has been greatly enhanced. For details, see the updates/Maple11/graphics help page.

PolynomialIdeals

 • The PolynomialIdeals package has two new commands: EquidimensionalDecomposition and NumberOfSolutions.

RegularChains

 • The command RegularChains[Triangularize] implements a new probabilistic modular algorithm that can be requested via the option $\mathrm{probability}=p$, where $p$ is a confidence parameter between 0 and 1 for the correctness of the result. For square input systems with certain regularity conditions, this probabilistic algorithm is asymptotically faster than the general (and generic) algorithm implemented by Triangularize.
 • The new command RegularChains[ChainTools][ChangeOfOrder] takes a regular chain for one variable ordering and returns a regular chain for a given second variable ordering, such that both regular chains have the same saturated ideal. This is useful, for example, for solving implicitization problems.
 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 option probability:
 > with(RegularChains):
 > R := PolynomialRing([x, y, z]);
 ${R}{≔}{\mathrm{polynomial_ring}}$ (16)
 > sys := {x*y^4+y*z^4-2*x^2*y-3,         y^4+x*y^2*z+x^2-2*x*y+y^2+z^2,         -x^3*y^2+x*y*z^3+y^4+x*y^2*z-2*x*y};
 ${\mathrm{sys}}{≔}\left\{{x}{}{{y}}^{{4}}{+}{y}{}{{z}}^{{4}}{-}{2}{}{{x}}^{{2}}{}{y}{-}{3}{,}{-}{{x}}^{{3}}{}{{y}}^{{2}}{+}{x}{}{y}{}{{z}}^{{3}}{+}{x}{}{{y}}^{{2}}{}{z}{+}{{y}}^{{4}}{-}{2}{}{x}{}{y}{,}{x}{}{{y}}^{{2}}{}{z}{+}{{y}}^{{4}}{+}{{x}}^{{2}}{-}{2}{}{x}{}{y}{+}{{y}}^{{2}}{+}{{z}}^{{2}}\right\}$ (17)
 > Triangularize(sys, R, probability = .9);
 $\left[{\mathrm{regular_chain}}\right]$ (18)
 To illustrate the new command ChangeOfOrder, consider the following implicitization problem.  The input system is surface in $x,y,z$ parametrized in $s,t$.  The change of ordering gives an implicit equation for this surface.  It also expresses the parameters $s,t$ as functions of $x,y,z$:
 > with(ChainTools):
 > R := PolynomialRing([x,y,z,s,t]);
 ${R}{≔}{\mathrm{polynomial_ring}}$ (19)
 > R2 := PolynomialRing([t,s,z,y,x]);
 ${\mathrm{R2}}{≔}{\mathrm{polynomial_ring}}$ (20)
 > F := [x-t^3, y-s^2-2, z-s*t];
 ${F}{≔}\left[{-}{{t}}^{{3}}{+}{x}{,}{-}{{s}}^{{2}}{+}{y}{-}{2}{,}{-}{s}{}{t}{+}{z}\right]$ (21)
 > rc := Triangularize(F, R, normalized=yes)[1]:
 > rc2 := ChangeOfOrder(rc,R,R2);
 ${\mathrm{rc2}}{≔}{\mathrm{regular_chain}}$ (22)
 > Equations(rc2, R2);
 $\left[{s}{}{t}{-}{z}{,}\left({x}{}{y}{-}{2}{}{x}\right){}{s}{-}{{z}}^{{3}}{,}{{z}}^{{6}}{-}{{y}}^{{3}}{}{{x}}^{{2}}{+}{6}{}{{y}}^{{2}}{}{{x}}^{{2}}{-}{12}{}{y}{}{{x}}^{{2}}{+}{8}{}{{x}}^{{2}}\right]$ (23)

RootFinding

 • The new command RootFinding[Isolate] isolates real roots of real univariate polynomials and polynomial systems with a finite number of solutions.

Statistics

 The FrequencyPlot command has a new option ignore. This option specifies how to handle non-numeric data.

StringTools

 The StringTools package has several new commands: DeleteSpace, Has, Indent, IndexOfCoincidence, Kasiski, LengthSplit, MatchFence, OtherCase, PatternCanonicalForm, PatternEquivalent, Readability, Repeats, Sentences, SortPermutation, Unique, WordContaining, WordEnd, and WordStart.

SumTools

 • The new command SumTools[Hypergeometric][DefiniteSumAsymptotic] computes asymptotic expansions of definite hypergeometric sums.
 • The new command SumTools[IndefiniteSum][HomotopySum] computes indefinite sums of expressions containing unknown functions.

VectorCalculus

 The VectorCalculus package has two new Vector structures:
 • The RootedVector carries a space attribute containing the coordinate system and the base point (or root point) of the Vector. The components of a rooted Vector are coefficients to the unit vectors. The rooted Vectors arise when evaluating VectorFields and when calculating  tangent, principal normal and binormal Vectors of a curve.
 • The Position Vector describes a radius Vector in cartesian coordinates and is used to define a curve or surface.
 • The package has eight new commands: ConvertVector, GetPVDescription, GetRootPoint, GetSpace, PlotPositionVector, PositionVector, RootedVector, and VectorSpace.
 • The DirectionalDiff command has a new option point that allows you to evaluate the directional derivative.