Maple 2017 includes numerous cutting-edge updates in a variety of branches of mathematics.
Series and Limits
assume, is, coulditbe
The GroupTheory package has been extended and improved in several respects for Maple 2017. Most notable are an implementation of the Burnside-Dixon-Schneider algorithm to compute the (ordinary) character table of a finite group, and the redesign of the database architecture for small groups that allows for new and more flexible search options for the SearchSmallGroups command. In addition, the NumGroups command has been improved for this release. Finally, most objects produced by the GroupTheory package now have custom context-sensitive menus available.
Improvements to the SearchSmallGroups command
You can now search for groups whose specified subgroups and quotients have a designated order, as well as a specific group ID. Previously, if you wanted to find groups whose center had order equal to 4, you would have to have specified individual searches for each of the (two) groups of order 4 separately and then manually combine the results:
with⁡GroupTheory:A â‰” SearchSmallGroups⁡order=1..20,center=4,1
B â‰” SearchSmallGroups⁡order=1..20,center=4,2
Now it is possible to simply indicate the order in a single invocation of the command:
This works for all the subgroup and quotient properties that are supported by the SearchSmallGroups command.
In addition, several new properties have been added to the SearchSmallGroups command. These are: classnumber (the number of conjugacy classes), centralquotient (the order, or group ID of the quotient of the group by its center), fittingquotient (the quotient of the group by its Fitting subgroup) and frattiniquotient (the quotient of the group by its Frattini subgroup).
Computing Character Tables of Finite Groups
Maple 2017 includes a new command, CharacterTable, in the GroupTheory package to compute the ordinary character table of a finite group.
with⁡GroupTheory:G â‰” Alt⁡4
ct â‰” CharacterTable⁡G
The first line of the character table displays the class labels, while the second row indicates the size of the corresponding conjugacy class. The characters themselves occupy succeeding rows, with the value of each character on a conjugacy class in the corresponding column of the table.
Character tables are represented as Maple objects with a number of methods. For example, the CharacterDegrees command returns a list of the degrees of the irreducible characters of the group, along with their multiplicities.CharacterDegrees⁡ct
The Display method supports the inclusion of additional information about the character table, such as the associated (prime) power maps and the Frobenius-Schur indicator values.
To access the characters themselves, use the Character command:c2 â‰” Character⁡ct,2
c2≔character: 1a→1,2a→1,3a→−12−I⁢32,3b→−12+I⁢32 for A4
Improvements to the NumGroups Command
The NumGroups command has been updated for Maple 2017 so that all cases for arithmetically "small" group orders of the form p3q, p2qr and p2q2 are now handled. Also, an improved algorithm for computing the number of groups of a square-free order has been implemented that allows you to compute the number of groups for much larger square-free orders than in previous releases.
NumGroups( 139565314102386439 ); # 16253^3 * 32507
NumGroups( mul( ithprime( i ), i = 100 .. 1000 ) );
The asympt and limit commands can now handle asymptotic cases of the incomplete Γ function where both arguments tend to infinity and their quotient remains finite.
The limit command has also been enhanced for the case of limits of quotients of two bivariate analytic functions. For details, see Bivariate Limits.
The Slode package computes formal series expansions for linear ODEs. The commands FPseries, FTseries and dAlembertian_series_sol now support inhomogeneous ODEs where the right-hand side is d'Alembertian.
The output format for definite sums involving binomials has been improved, so that the answer is expressed again in terms of binomials, if possible, and also more simplified.
∑k=0n2 n2 k2
∑k=0n−1k 2 nk 2 n−kn22 n+12 n+1+k
∑k=0n4 n+12 n−2 k n+kk
∑k=02 n−1k 2 nk 2 kkn+kk22 k
The int command now takes into account equality assumptions:
∫xn ⅆx assuming n=−1;
Some improvements were made in the Risch algorithm:
∫1u⁢a−u⁢8⁢u2+6⁢u+3 ⅆu assuming 0< u;
Some improvements in definite integration:
Integration of symbolic powers of hyperbolic functions can now be handled:
∫coshxn ⅆx assuming posint;
Improved simplification of integrals:
simplify∫abImxⅆx assuming a=0, b=2;
Better error handling:
Error, (in IntegrationTools:-Change) no new integration variable found in transformation equation
Improvements in inttrans:
inttransfouriersin⁡ln⁡a2+x2b2−x2,x,y assuming a>0, b>0;
With the latest additions in Maple 2017, the NumberTheory package now completely replaces the deprecated numtheory package. It is recommended that you use the NumberTheory package instead of numtheory.
The new commands are ChineseRemainder, IthFermat, Radical and SimplestRational.
FermatDF ≔ n → DataFrame seq 2^`2`^i + 1, i in n | seq length IthFermat i , i in n | seq IthFermat i, output = prime , i in n | seq IthFermat i, output = completelyfactored , i in n , rows = op n , columns = F__n, `# of digits`, `Prime`, `Completely Factored` :
The following displays a data frame containing information on the first 8 Fermat numbers.
FermatDF seq 0..7 ;
F__n# of digitsPrimeCompletely Factored031truetrue122+11truetrue2222+12truetrue3223+13truetrue4224+15truetrue5225+110falsetrue6226+120falsetrue7227+139falsetrue
Better handling of multiple or complicated assumptions:
isb≠0 assuming a≠0, a=b2
c1 ≔ a0∷RealRangeOpen0, Open14, x0∷real, x1∷RealRangeOpen0, Open1, 1−a0−x11−x1∷real, −a0−x1∷RealRangeOpen−1, ∞, a0+x1∷RealRange−∞, Open1, 1−a0−x11−x1−x0∷RealRangeOpen0, ∞, 1−a0−x1∷real, x0+a0+x1∷RealRangeOpen1, ∞:
Rex0 assuming c1
isx0, imaginary assuming c1
c2 ≔ a0∷RealRangeOpen0, Open14, x0∷real, x1∷RealRangeOpen0, ∞, 1−a0−x11−x1∷real, 1−a0∷real, a0+x1∷RealRange−∞, Open1, 1−a0−x11−x1−x0∷RealRangeOpen0, ∞, 1−a0−x1∷real, x0+a0+x1∷RealRangeOpen1, ∞:
isx1≠1 assuming c2
c3 ≔ Anda1∷Notnonposint, a2∷Notnonposint, b1∷Notnonposint, b2∷Notnonposint, c∷Notnonposint, b1 − a1∷Notnonposint, a1 − b1∷Notnonposint, b2 − a2∷Notnonposint, a2 − b2∷Notnonposint, c − a1 + a2∷Notnonposint, c − b1 + a2∷Notnonposint, c − a1 + b2∷Notnonposint, c − b1 + b2∷Notnonposint:
isc3 assuming c3
Improved handling of SetOf:
is1,2 subset SetOfℤ
Functional properties added:
islnp<0 assuming p<1
Logic added to is to take into account functional properties during simplification:
is(x2<1) assuming x<1
is(x<1) assuming x2<1
abs factors out positive values:
is(x+53<1) assuming x+5<3
Simplification of properties:
`property/+`LinearProp4, ℤ, 0, LinearProp−6, ℤ, 0
`property/+`LinearProp23, ℤ, 0, RealRange0, Open23
Improved handling of specified RootOfs:
c5 ≔ t2>0, t2<2 π:
r1, r2, r3, r4 ≔ RootOf2 z2+2 z−1, index = 1, RootOf2 z2+2 z−1, index = 2, RootOf2 z2−2 z−1, index = 1, RootOf2 z2−2 z−1, index = 2:
is0 < r2−r1⋅tanθ2−r3−r3−r4⋅ r3
More care is taken with unspecified RootOfs. is now only returns true if the condition is true for all possible values of the RootOf. coulditbe returns true if any possible value of the RootOf returns true:
Improvements when processing Non properties:
AndProp, OrProp2, Non0
isν<3 assuming ν≤3, ν∷Notℤ
Improvements made to solving linear inequalities:
isj+nY04<0 assuming 1≤j,j≤n
is2 L1−x−y< 1 assuming L=12,x>0,y>0, x+y < L
Extra knowledge added regarding odd, even:
isx,posint assuming x∷odd, x>0
isx,posint assuming x∷even, x>0
Improvements regarding properties GaussianInteger and prime:
isn<3 assuming n∷prime, n∷even
is5 p,prime assuming p∷prime
c4 ≔ a in SetOfprime minus 2 :
isa+1,prime assuming c4
isa+1,even assuming c4
coulditbe x = 7 assuming x∷prime, x>5
Better treatment of conditions with infinity and floats:
is.75−t3 = ∞ assuming t∷RealRangeOpen0,Open.25
More simplification of radicals inside is:
Improved handling of assumptions involving Re and Im:
isa∷real assuming ℑa=0
coulditbea∷real assuming ℑa>0
ℑb assuming b∷imaginary,ℑb>−1
ℑx assuming ℑx=0, x∷real
Improved normalization for LinearProp:
LinearProp−1, Nonℤ, 52
Improved handling of OrProp and Or conditions:
isx≤−1 or x≥1 assuming x∷OrPropRealRange−∞,−1,RealRange1,∞
is y≤0 assuming OrOry<0, y=0, y>0
isOrb ≤ c,c ≤ a, a≤b assuming real
More care is taken about assuming variables are real if they are involved in an inequality assumption. The assumption must be an affirmative one:
isa, real assuming Nota>b
Improved handling of nonstrict inequalities involving infinity:
isx+∞≤x+∞ assuming x∷real
It is now recognized that a and b may not be real in this example:
isa>b assuming a−b∷RealRangeOpen0, ∞
Improved simplification of piecewise using assumptions:
piecewisew < 0,undefined,0 assuming Notw<0;
Improved handling of multiple periodic assumptions:
c6 ≔ n∷ℤ, 3 n2∷posint:
isn, even assuming c6
isn>1 assuming c6
Improvements in signum under assumptions:
signum1−a−x21−x2−1+a+x2 assuming a>0, a <1/4, 0< x2, a+x2<1
Other miscellaneous improvements:
coulditbe2 π I z,posint assuming z∷ℤ
iscx+I,real assuming real
isz=1 assuming z∷posint
coulditbex=0 assuming x∷nonnegint
The new Parity command returns the Boolean expression corresponding to the parity function on a set of variables: that is, the function which is true if and only if an odd number of inputs are true.
Parity true,false, true
Parity x xor y, y xor z,true
Parity true $ 2 n−1 assuming n∷posint
The content command now computes the content of all multivariate polynomials with numeric coefficients.
content2.0 u x + 3.5 u v, x
Some extra simplifications of expressions involving LambertW functions have been added:
LW1 ≔ LambertW−7213ln2+ln3:simplifyLW1−ln−1LW1, LambertW;
LW2 ≔ LambertW−7213ln2−ln3:simplifyLW2−ln−1LW2, LambertW;
rationalize is more careful about not multiplying and dividing by 0:
a ≔ 687:b ≔3256+a768⋅I16:c ≔ 9−a⋅I16:d ≔ 3: e ≔ 76816: z ≔ 1−6⁢I⁢a⁢d⁢c⁢e5⁢b5+54⁢d⁢c⁢e5⁢b5+6⁢I⁢a⁢d⁢c5⁢e⁢b+54⁢d⁢c5⁢e⁢b+96⁢d⁢3⁢I⁢a⁢e2⁢b2⁢c4+27⁢c4⁢e2⁢b2+4608−3⁢I⁢a⁢e4⁢b4⁢c2+27⁢c2⁢e4⁢b4 :rationalizez;
Efficiency has been improved for radnormal for certain examples:
a ≔ 108+12⋅687⋅I:b ≔ a13: c ≔ b2+48b: d ≔ c14: e ≔ 612: f ≔ −6⋅b2d2+12 e⋅b+48 d2b:g ≔ e⋅d2+fd12: x1 ≔ g4+g+1:t ≔ time:radnormalx1;time−t;
Download Help Document