Advanced Math - Maple Help
For the best experience, we recommend viewing online help using Google Chrome or Microsoft Edge.

Online Help

All Products    Maple    MapleSim


Advanced Mathematics

Maple 2021 includes numerous cutting-edge updates in a variety of branches of mathematics.

 

 

Integration

Multivariate limits

New MultivariatePowerSeries package

New simplifications involving the LambertW function

Numerical solution of vectorized ODEs

Polyhedral sets

Asymptotic expansions

GF package

Additions to the intsolve command

LREtools

Generic linear algebra

Integration

The int command now supports the method option for indefinite integrals. Methods include Risch, MeijerG, Elliptic, Norman and Trager. More methods and details can be found on the help page.

intcosx+1,x,method=meijerg_raw

cos1xhypergeom,32,x24sin1x2hypergeom1,32,2,x242

(1.1)

intcosx+1,x,method=risch

sinx+1

(1.2)

Additionally, the new meta-method _RETURNVERBOSE has been added for both definite and indefinite integration. It returns the result of integration for most of the available integration methods.

intcosx+1,x,method=_RETURNVERBOSE

derivativedivides=sinx+1,default=sinx+1,norman=2tanx2+121+tanx2+122,meijerg=cos1sinxsin1π1πcosxπ,risch=sinx+1,FAILS=gosper,lookup,trager,elliptic

(1.3)

int1t2+12t2+1,t=0..1,method=_RETURNVERBOSE

ftoc=EllipticK2,elliptic=I2EllipticK222+2EllipticK222,ftocms=EllipticK2,FAILS=distribution,piecewise,series,o,polynomial,ln,lookup,cook,ratpoly,elliptictrig,meijergspecial,improper,asymptotic,meijerg,contour

(1.4)

The internal algorithms of indefinite integration have been improved. The Risch-Trager algorithm gets called more often so that fewer integrals containing radical expressions will return partially evaluated. In Maple 2020, the integral 3 x5+2x5+x21x512 ⅆx returned as xx5+x21x51+3x5+22x51x5+x21ⅆx.
Now, an elementary answer is computed. 

2+3x51+x2+x5121+x52ⅆx

xx5+x21x51+lnx5+2x5+x21x2x2+1x1x4+x3+x2+x+12

(1.5)

Multivariate limits

The limit command has been improved for the multivariate case of quotients of analytic functions. The following limits can now be computed.

g  x2xy+y2+z4:

g is not homogeneous but has an isolated root at the origin. It is, however, weighted homogeneous.

PolynomialTools:-IsHomogeneousg

false

(2.1)

PolynomialTools:-IsHomogeneousg,x,y,z,2,2,1

true

(2.2)

RCRegularChains: RRC:-PolynomialRingx,y,z:RC:-DisplayRC:-RealTriangularizeg,R,R

x=0y=0z=0

(2.3)

limitxyzg,x,y,z=~0

0

(2.4)

limitg+xyzg+xy3yz3,x,y,z=~0

1

(2.5)

limitg+xz2g+yz2,x,y,z=~0

undefined

(2.6)

limitsinx+y+z2g,x,y,z=~0

undefined

(2.7)

limitgxz24,x,y,z=~0

(2.8)

 

New MultivariatePowerSeries package

The MultivariatePowerSeries package is new. It provides functionality for doing lazy computations with multivariate power series at high speed and high precision. The word 'lazy' here means that terms are computed only when necessary; further terms can always be computed at relatively little cost.

withMultivariatePowerSeries;

Add,ApproximatelyEqual,ApproximatelyZero,Copy,Degree,Display,Divide,EvaluateAtOrigin,Exponentiate,GeometricSeries,GetAnalyticExpression,GetCoefficient,HenselFactorize,HomogeneousPart,Inverse,IsUnit,MainVariable,Multiply,Negate,PowerSeries,Precision,SetDefaultDisplayStyle,SetDisplayStyle,Subtract,SumOfAllMonomials,TaylorShift,Truncate,UnivariatePolynomialOverPowerSeries,UpdatePrecision,Variables,WeierstrassPreparation

(3.1)

a  GeometricSeriesx, y

ObjectPowerSeriesObject,Array(0..1, {(1) = 1}),1,geo_gen,x,y,ancestors

(3.2)

b  SumOfAllMonomialsx, y

ObjectPowerSeriesObject,Array(0..1, {(1) = 1}),1,sam_gen,x,y,ancestors

(3.3)

c  a  b

ObjectPowerSeriesObject,Array(0..0, {}),0,add_gen,x,y,ancestors

(3.4)

CodeTools:-UsageHomogeneousPartc, 100

99x99y+4949x98y2+161699x97y3+3921224x96y4+75287519x95y5+1192052399x94y6+16007560799x93y7+186087894299x92y8+1902231808399x91y9+17310309456439x90y10+141629804643599x89y11+1050421051106699x88y12+7110542499799199x87y13+44186942677323599x86y14+253338471349988639x85y15+1345860629046814649x84y16+6650134872937201799x83y17+30664510802988208299x82y18+132341572939212267399x81y19+535983370403809682969x80y20+2041841411062132125599x79y21+7332066885177656269199x78y22+24865270306254660391199x77y23+79776075565900368755099x76y24+242519269720337121015503x75y25+699574816500972464467799x74y26+1917353200780443050763599x73y27+4998813702034726525205099x72y28+12410847811948286545336799x71y29+29372339821610944823963759x70y30+66324638306863423796047199x69y31+143012501349174257560226774x68y32+294692427022540894366527899x67y33+580717429720889409486981449x66y34+1095067153187962886461165019x65y35+1977204582144932989443770174x64y36+3420029547493938143902737599x63y37+5670048986634686922786117599x62y38+9013924030034630492634340799x61y39+13746234145802811501267369719x60y40+20116440213369968050635175199x59y41+28258808871162574166368460399x58y42+38116532895986727945334202399x57y43+49378235797073715747364762199x56y44+61448471214136179596720592959x55y45+73470998190814997343905056799x54y46+84413487283064039501507937599x53y47+93206558875049876949581681099x52y48+98913082887808032681188722799x51y49+100891344545564193334812497255x50y50+98913082887808032681188722799x49y51+93206558875049876949581681099x48y52+84413487283064039501507937599x47y53+73470998190814997343905056799x46y54+61448471214136179596720592959x45y55+49378235797073715747364762199x44y56+38116532895986727945334202399x43y57+28258808871162574166368460399x42y58+20116440213369968050635175199x41y59+13746234145802811501267369719x40y60+9013924030034630492634340799x39y61+5670048986634686922786117599x38y62+3420029547493938143902737599x37y63+1977204582144932989443770174x36y64+1095067153187962886461165019x35y65+580717429720889409486981449x34y66+294692427022540894366527899x33y67+143012501349174257560226774x32y68+66324638306863423796047199x31y69+29372339821610944823963759x30y70+12410847811948286545336799x29y71+4998813702034726525205099x28y72+1917353200780443050763599x27y73+699574816500972464467799x26y74+242519269720337121015503x25y75+79776075565900368755099x24y76+24865270306254660391199x23y77+7332066885177656269199x22y78+2041841411062132125599x21y79+535983370403809682969x20y80+132341572939212267399x19y81+30664510802988208299x18y82+6650134872937201799x17y83+1345860629046814649x16y84+253338471349988639x15y85+44186942677323599x14y86+7110542499799199x13y87+1050421051106699x12y88+141629804643599x11y89+17310309456439x10y90+1902231808399x9y91+186087894299x8y92+16007560799x7y93+1192052399x6y94+75287519x5y95+3921224x4y96+161699x3y97+4949x2y98+99xy99

(3.5)

d  PowerSeriesn  x+ynn!,analytic = expx+y

ObjectPowerSeriesObject,Array(0..0, {}),0,proc_gen,x,y,ancestors

(3.6)

e  PowerSeriesn  ifelsen  even, 0, 1n12 xnn!, analytic=sinx

ObjectPowerSeriesObject,Array(0..0, {}),0,proc_gen,x,ancestors

(3.7)

The package also has functionality for univariate polynomials over such power series, including Hensel factorization. Mathematically, these objects are just power series where one of the variables occurs only up to a given finite degree, but implementation-wise, they allow for more and more efficient functionality.

u  UnivariatePolynomialOverPowerSeries4 d + e z  3 a z2 + z3, z

ObjectUnivariatePolynomialOverPowerSeriesObject,Array(0..3, {(1) = module PowerSeriesObject () local hpoly::Array, deg::nonnegint, gen::procedure, vars::(set(name)), ancestors::record, algexpr::algebraic, dstyle::(list(:-identical(:-maxterms, :-precision) = {:-nonnegint, :-identical(:-infinity)})); option object; end module, (2) = module PowerSeriesObject () local hpoly::Array, deg::nonnegint, gen::procedure, vars::(set(name)), ancestors::record, algexpr::algebraic, dstyle::(list(:-identical(:-maxterms, :-precision) = {:-nonnegint, :-identical(:-infinity)})); option object; end module, (3) = module PowerSeriesObject () local hpoly::Array, deg::nonnegint, gen::procedure, vars::(set(name)), ancestors::record, algexpr::algebraic, dstyle::(list(:-identical(:-maxterms, :-precision) = {:-nonnegint, :-identical(:-infinity)})); option object; end module})

(3.8)

factorization  HenselFactorizeu;

moduleUnivariatePolynomialOverPowerSeriesObjectoptionobject;localupoly::Array,vname::name,dstyle::list:-identical:-maxdegree=:-nonnegint,:-identical:-∞,:-identical:-maxterms,:-precision=:-nonnegint,:-identical:-∞;end module,moduleUnivariatePolynomialOverPowerSeriesObjectoptionobject;localupoly::Array,vname::name,dstyle::list:-identical:-maxdegree=:-nonnegint,:-identical:-∞,:-identical:-maxterms,:-precision=:-nonnegint,:-identical:-∞;end module

(3.9)

u1, u2  opfactorization:

Let us examine the coefficients of the quadratic factor further.

UpdatePrecisionu2, 10:

Displayu2, maxterms=20

UnⅈvarⅈatⅇPolynomⅈalOvⅇrPowⅇrSⅇrⅈⅇs: 4+4x+32y9+22x29+388xy81+578y2243+140x381+3968x2y729+3974xy2729+11876y36561+2291x41458+41530x3y6561+62197x2y26561+124138xy319683+185939y4118098+47494x532805+424718x4y59049+2546836x3y2177147+7642522x2y3531441+22924393xy43188646+++

(3.10)

New simplifications involving the LambertW function

Before Maple 2021, the following calls to the simplify command returned their arguments unchanged, or with minor changes that left a call to LambertW in the answer.

simplifyW 5 24 ln44

5ln24

(4.1)

simplifyW261767339628394714151429379115ln1439265100944259205

2ln2135+2ln71352ln3135

(4.2)

simplifyW1,34  ln4343

4ln38ln2

(4.3)

simplifyW1, 5104 ln135 1338 558

13ln138+13ln58

(4.4)

 simplifyW528309168976 ln94 2311010561 3745110561

39134ln31056139134ln210561

(4.5)

Numerical solution of vectorized ODEs

You can now numerically solve differential equations that are collected together in vectors.

dEqsⅆⅆtA__1tⅆⅆtA__2t=B__1tB__2t,ⅆⅆtB__1tⅆⅆtB__2t=1.2A__1t2.3A__2